import { DialogCloseReason, DialogProps } from './dialog.js';
import { DialogContentInstance } from './dialog-content.js';
import { ComputedRef, Ref } from 'vue';
import { OverlayDialogReturn } from '../../../xiaoye-primitives/index.js';
export declare function useDialog(props: DialogProps, options: {
    emitUpdateModelValue: (value: boolean) => void;
    emitUpdateFullscreen: (value: boolean) => void;
    emitOpen: () => void;
    emitOpened: () => void;
    emitClose: () => void;
    emitClosed: () => void;
    emitOpenAutoFocus: () => void;
    emitCloseAutoFocus: () => void;
    emitMaximize: () => void;
    emitRestore: () => void;
    emitResizeStart: (event: MouseEvent, width: number, height: number) => void;
    emitResize: (event: MouseEvent, width: number, height: number) => void;
    emitResizeEnd: (event: MouseEvent, width: number, height: number) => void;
    hasLabelledTitle: () => boolean;
    dialogContentRef: {
        value: DialogContentInstance | null;
    };
    overlayRef: {
        value: HTMLElement | null;
    };
}): {
    ariaLabel: ComputedRef<string | undefined>;
    ariaLabelledby: ComputedRef<string | undefined>;
    bodyId: string;
    closing: Ref<boolean, boolean>;
    focusTrap: {
        handleKeydown: (event: KeyboardEvent) => void;
        restoreOnClose: () => Promise<void>;
    };
    handleClose: (reason?: DialogCloseReason) => void;
    handleOverlayClick: (event: MouseEvent) => void;
    handleOverlayMouseDown: (event: MouseEvent) => void;
    handleOverlayMouseUp: (event: MouseEvent) => void;
    handleResizeStart: (event: MouseEvent) => void;
    handleToggleFullscreen: () => void;
    isPenetrable: ComputedRef<boolean>;
    isResizing: Ref<boolean, boolean>;
    overlay: OverlayDialogReturn;
    panelStyle: ComputedRef<(Record<string, string> | {
        width: string | undefined;
        minWidth: string | undefined;
        maxWidth: string | undefined;
        minHeight: string | undefined;
        maxHeight: string | undefined;
    })[]>;
    resolvedAlignCenter: ComputedRef<boolean>;
    resolvedDraggable: ComputedRef<boolean>;
    resolvedFullscreen: ComputedRef<boolean>;
    resolvedMaximizable: ComputedRef<boolean>;
    resolvedOverflow: ComputedRef<boolean>;
    resolvedResizable: ComputedRef<boolean>;
    resolvedStickyFooter: ComputedRef<boolean>;
    resolvedStickyHeader: ComputedRef<boolean>;
    rootStyle: ComputedRef<{
        zIndex: string;
        "--xy-dialog-margin-top": string;
    }>;
    titleId: string;
    transitionConfig: ComputedRef<{
        appear: boolean;
        name: string;
        onAfterEnter: (element: Element) => void;
        onAfterLeave: (element: Element) => void;
        type?: "transition" | "animation";
        css?: boolean;
        duration?: number | {
            enter: number;
            leave: number;
        };
        enterFromClass?: string;
        enterActiveClass?: string;
        enterToClass?: string;
        appearFromClass?: string;
        appearActiveClass?: string;
        appearToClass?: string;
        leaveFromClass?: string;
        leaveActiveClass?: string;
        leaveToClass?: string;
        mode?: "in-out" | "out-in" | "default";
        persisted?: boolean;
        onBeforeEnter?: (((el: Element) => void) | ((el: Element) => void)[]) | undefined;
        onEnter?: (((el: Element, done: () => void) => void) | ((el: Element, done: () => void) => void)[]) | undefined;
        onEnterCancelled?: (((el: Element) => void) | ((el: Element) => void)[]) | undefined;
        onBeforeLeave?: (((el: Element) => void) | ((el: Element) => void)[]) | undefined;
        onLeave?: (((el: Element, done: () => void) => void) | ((el: Element, done: () => void) => void)[]) | undefined;
        onLeaveCancelled?: (((el: Element) => void) | ((el: Element) => void)[]) | undefined;
        onBeforeAppear?: (((el: Element) => void) | ((el: Element) => void)[]) | undefined;
        onAppear?: (((el: Element, done: () => void) => void) | ((el: Element, done: () => void) => void)[]) | undefined;
        onAfterAppear?: (((el: Element) => void) | ((el: Element) => void)[]) | undefined;
        onAppearCancelled?: (((el: Element) => void) | ((el: Element) => void)[]) | undefined;
    }>;
};
