import { Ref, SetupContext } from "vue";
import { LookupProps } from "../lookup.props";
import { UserDataService } from "./use-user-data";
import { UseHttpComposition } from "./use-http";
import { LookupLocaleData } from "./use-locales";
type DictPickedResult = boolean | {
    /** @deprecated 请使用 canClose 替代 */
    closeDialog: boolean;
    message?: string;
    canClose: boolean;
};
export interface UseDialogOptions {
    dictPicked: (items: any) => Promise<DictPickedResult>;
    modelValue: Ref<any>;
    buttonEditInstance: Ref<any>;
    userDataService: UserDataService;
    useHttp: UseHttpComposition;
    lookupLocales: LookupLocaleData;
}
export declare function useDialog(props: LookupProps, context: SetupContext, selectedItems: Ref<any[]>, { dictPicked, modelValue, buttonEditInstance, userDataService, useHttp, lookupLocales }: UseDialogOptions): {
    modalOptions: {
        title: string;
        fitContent: boolean;
        showHeader: boolean;
        dragHandle: string;
        height: number;
        width: number;
        minWidth: number;
        minHeight: number;
        resizeable: boolean;
        draggable: boolean;
        enableEsc: boolean;
        closedCallback: ($event: Event, closeFrom: string) => void;
        showButtons: boolean;
        resizeHandle: ($event: any) => void;
        enableEnter: boolean;
        onEnter: ($event: any) => void;
    };
    beforeOpenDialog: ($event?: any) => Promise<boolean>;
    dialogSize: Ref<any, any>;
    customData: Ref<any, any>;
    updateModelValue: () => Promise<{
        shouldClose: boolean;
        message: string | undefined;
    }>;
    cancelDialog: () => boolean;
    submitDialog: () => Promise<boolean>;
    destroyed: () => void;
    setModelAndIdValue: () => void;
    runDictPickedAsync: () => Promise<{
        shouldClose: boolean;
        message: string | undefined;
    }>;
};
export {};
