import { InjectionKey, Plugin } from 'vue';
import { ConfirmModalUserOptions, ModalComponentProps, ModalFormComponentProps, ModalFormOptions, ModalOptions } from './modalTypes';
export interface ModalApi {
    showModal: <T extends {
        [key: string]: any;
    }>(options: ModalOptions, slots?: {
        [key: string]: any;
    }) => ModalComponentProps<T> | undefined;
    showModalForm: <T extends {
        [key: string]: any;
    }>(options: ModalFormOptions<T>, slots?: {
        [key: string]: any;
    }) => ModalFormComponentProps<T> | undefined;
    hideModal: (index?: number) => void;
    confirmModal: (options: ConfirmModalUserOptions) => Promise<boolean>;
}
export declare const ModalSymbol: InjectionKey<ModalApi>;
export declare function useModal(): ModalApi;
export declare const ModalPlugin: Plugin;
//# sourceMappingURL=modal.d.ts.map