import { type InjectionKey, type ClassValue, type StyleValue } from 'vue'; import { type DefaultProps } from '../config'; import type { MotionEmits, MotionHookName, MotionName } from '../motion/common'; export type PopupEffect = 'slide-top' | 'slide-right' | 'slide-bottom' | 'slide-left' | 'zoom' | 'fade' | 'full-fade'; export interface PopupProps { visible?: boolean; effect?: PopupEffect; overlay?: boolean; overlayClass?: ClassValue; overlayStyle?: StyleValue; background?: string; transparent?: boolean; overlayClosable?: boolean; lockScroll?: boolean; destroyOnClose?: boolean; lazy?: boolean; closeOnBackPress?: boolean; } export declare const mapEffectMotion: Record; export declare const defaultPopupProps: DefaultProps; export interface PopupSlots { default?(props: Record): any; } export interface TransitionHookCallbacks { onVisibleHook?: (name: MotionHookName) => void; onBeforeEnter?: () => void; onEnter?: () => void; onAfterEnter?: () => void; onEnterCancelled?: () => void; onBeforeLeave?: () => void; onLeave?: () => void; onAfterLeave?: () => void; onLeaveCancelled?: () => void; } export interface PopupEmits extends MotionEmits { (e: 'overlay-click', event: any): void; (e: 'back-press'): void; (e: 'update:visible', visible: boolean): void; } export interface PopupExpose { } export interface PopupContext { visibleState: MotionHookName | undefined; } export declare const popupContextKey: InjectionKey; export declare function usePopupVisibleHookProvide(): (name: MotionHookName) => void; export declare function usePopupEnter(callback: () => void): { context: PopupContext | null; }; export declare function useInPopup(): boolean;