import { Reactive } from 'vue';
export type DialogId = string | symbol;
export type DialogInstance<TData> = {
    readonly isVisible: boolean;
    readonly data?: TData;
    readonly zIndex: number;
    open(data?: TData): void;
    updateData(data?: TData): void;
    close(): void;
    closeInstances(): void;
};
export declare function defineDialog<TData = void>(dialogId: DialogId): () => Reactive<DialogInstance<TData>>;
