import { ModuleApi } from "@matrix-org/react-sdk-module-api/lib/ModuleApi";
import { TranslationStringsObject, PlainSubstitution } from "@matrix-org/react-sdk-module-api/lib/types/translations";
import { Optional } from "matrix-events-sdk";
import { DialogContent, DialogProps } from "@matrix-org/react-sdk-module-api/lib/components/DialogContent";
import React from "react";
import { AccountAuthInfo } from "@matrix-org/react-sdk-module-api/lib/types/AccountAuthInfo";
import { ModuleUiDialogOptions } from "@matrix-org/react-sdk-module-api/lib/types/ModuleUiDialogOptions";
import { TranslationKey } from "../languageHandler";
import { IApp } from "../stores/WidgetStore";
import { Container } from "../stores/widgets/WidgetLayoutStore";
/**
 * Glue between the `ModuleApi` interface and the react-sdk. Anticipates one instance
 * to be assigned to a single module.
 */
export declare class ProxiedModuleApi implements ModuleApi {
    private cachedTranslations;
    private overrideLoginResolve?;
    constructor();
    private onAction;
    /**
     * All custom translations used by the associated module.
     */
    get translations(): Optional<TranslationStringsObject>;
    /**
     * @override
     */
    registerTranslations(translations: TranslationStringsObject): void;
    /**
     * @override
     */
    translateString(s: TranslationKey, variables?: Record<string, PlainSubstitution>): string;
    /**
     * @override
     */
    openDialog<M extends object, P extends DialogProps, C extends DialogContent<P>>(initialTitleOrOptions: string | ModuleUiDialogOptions, body: (props: P, ref: React.RefObject<C>) => React.ReactNode, props?: Omit<P, keyof DialogProps>): Promise<{
        didOkOrSubmit: boolean;
        model: M;
    }>;
    /**
     * @override
     */
    registerSimpleAccount(username: string, password: string, displayName?: string): Promise<AccountAuthInfo>;
    /**
     * @override
     */
    overwriteAccountAuth(accountInfo: AccountAuthInfo): Promise<void>;
    /**
     * @override
     */
    navigatePermalink(uri: string, andJoin?: boolean): Promise<void>;
    /**
     * @override
     */
    getConfigValue<T>(namespace: string, key: string): T | undefined;
    /**
     * @override
     */
    getApps(roomId: string): IApp[];
    /**
     * @override
     */
    getAppAvatarUrl(app: IApp, width?: number, height?: number, resizeMethod?: string): string | null;
    /**
     * @override
     */
    isAppInContainer(app: IApp, container: Container, roomId: string): boolean;
    /**
     * @override
     */
    moveAppToContainer(app: IApp, container: Container, roomId: string): void;
}
