import { default as Component } from './modal.vue';
import { AppContext, ComponentPublicInstance, MaybeRef } from 'vue';
import { ModalProps } from './props';
import { ModalCommonSlot } from './symbol';
export type ModalOptions = Omit<ModalProps, 'active' | 'transfer' | 'loading' | 'autoRemove'> & {
    /**
     * Specify the app context, ensue the modal using same context
     */
    appContext: AppContext;
    /**
     * Specify whether the modal is loading
     */
    loading: MaybeRef<boolean>;
    /**
     * Another way to use default slot
     */
    renderer: ModalCommonSlot;
    /**
     * Another way to use header slot
     */
    headerRenderer: ModalCommonSlot;
    /**
     * Another way to use title slot
     */
    titleRenderer: ModalCommonSlot;
    /**
     * Another way to use close slot
     */
    closeRenderer: ModalCommonSlot;
    /**
     * Another way to use footer slot
     */
    footerRenderer: ModalCommonSlot;
};
export declare function useModal(options?: Partial<ModalOptions>): () => Promise<void>;
declare const Modal: typeof Component & {
    open: typeof useModal;
};
export { Modal };
export { modalProps } from './props';
export type ModalExposed = ComponentPublicInstance & InstanceType<typeof Component>;
export type { ModalProps, ModalCProps } from './props';
export type { ModalSlotParams } from './symbol';
