import React from "react";
import { DialogContent, DialogProps } from "@matrix-org/react-sdk-module-api/lib/components/DialogContent";
import { ModuleApi } from "@matrix-org/react-sdk-module-api/lib/ModuleApi";
import { ModuleUiDialogOptions } from "@matrix-org/react-sdk-module-api/lib/types/ModuleUiDialogOptions";
import ScrollableBaseModal, { IScrollableBaseState } from "./ScrollableBaseModal";
interface IProps<P extends DialogProps, C extends DialogContent<P>> {
    contentFactory: (props: P, ref: React.RefObject<C>) => React.ReactNode;
    additionalContentProps: Omit<P, keyof DialogProps> | undefined;
    initialOptions: ModuleUiDialogOptions;
    moduleApi: ModuleApi;
    onFinished(ok?: boolean, model?: Awaited<ReturnType<DialogContent<P & DialogProps>["trySubmit"]>>): void;
}
interface IState extends IScrollableBaseState {
}
export declare class ModuleUiDialog<P extends DialogProps, C extends DialogContent<P>> extends ScrollableBaseModal<IProps<P, C>, IState> {
    private contentRef;
    constructor(props: IProps<P, C>);
    protected submit(): Promise<void>;
    protected cancel(): void;
    private setOptions;
    protected renderContent(): React.ReactNode;
}
export {};
