import { PropType, VNodeChild, Ref, InjectionKey, CSSProperties } from 'vue'; import { ElementClassSet } from '../_utils_'; export declare type OnBeforeLeaveImpl = (action: ModalCloseAction) => Promise | boolean | undefined | void; export declare type OnCancelImpl = () => Promise | boolean | undefined | void; export declare type OnConfirmImpl = () => Promise | boolean | undefined | void; export declare type ModalCloseAction = 'wrapper' | 'close' | 'shortcut' | 'cancel' | 'confirm'; export declare type ModalInjection = Ref | null; export interface ModalPosition { top?: number | string; right?: number | string; bottom?: number | string; left?: number | string; } export interface ModalExposeInstance { hide: () => void; el: HTMLElement; } export interface ModalProps { show?: boolean; width?: number | string; height?: number | string; appearFromCursor?: boolean; wrapperClosable?: boolean; shortcutKey?: string; closeOnShortcut?: boolean; closable?: boolean; headerStyle?: string | CSSProperties; bodyStyle?: string | CSSProperties; footerStyle?: string | CSSProperties; maskStyle?: string | CSSProperties; headerClass?: ElementClassSet; bodyClass?: ElementClassSet; footerClass?: ElementClassSet; title?: string | (() => VNodeChild); showHeader?: boolean; showFooter?: boolean; cancelText?: string | null; confirmText?: string | null; pure?: boolean; position?: ModalPosition; animation?: 'scale' | 'slide'; onBeforeLeave?: OnBeforeLeaveImpl; appearX?: number; appearY?: number; } export interface ModalObjectEmits { 'onUpdate:show'?: (val: boolean) => void; onWrapperClick?: (e: MouseEvent) => void; onShortcutStroke?: (keys: string[]) => void; onAfterEnter?: () => void; onAfterLeave?: () => void; onBeforeEnter?: () => void; onCancel?: () => void; onConfirm?: () => void; } export declare const modalProps: { show: { type: PropType; default: boolean; }; width: { type: PropType; default: number; }; height: { type: PropType; default: string; }; appearFromCursor: { type: PropType; default: boolean; }; wrapperClosable: { type: PropType; default: boolean; }; shortcutKey: { type: PropType; default: string; }; closeOnShortcut: { type: PropType; default: boolean; }; closable: { type: PropType; default: boolean; }; headerStyle: { type: PropType; default: undefined; }; bodyStyle: { type: PropType; default: undefined; }; footerStyle: { type: PropType; default: undefined; }; headerClass: { type: PropType; default: undefined; }; bodyClass: { type: PropType; default: undefined; }; footerClass: { type: PropType; default: undefined; }; title: { type: PropType VNodeChild) | undefined>; default: string; }; showHeader: { type: PropType; default: boolean; }; showFooter: { type: PropType; default: boolean; }; cancelText: { type: PropType; default: undefined; }; confirmText: { type: PropType; default: undefined; }; pure: { type: PropType; default: boolean; }; position: { type: PropType; default: undefined; }; animation: { type: PropType<"scale" | "slide" | undefined>; default: string; }; onBeforeLeave: { type: PropType; default: undefined; }; appearX: { type: PropType; default: undefined; }; appearY: { type: PropType; default: undefined; }; }; export declare const modalInjectionKey: InjectionKey;