import type { Ref, VNodeChild, ObjectEmitsOptions, Plugin } from 'vue'; import type { ModalExposeInstance, ModalProps, ModalObjectEmits } from '../modal'; import type { DrawerExposeInstance, DrawerProps, DrawerObjectEmits } from '../drawer'; export declare type PopupType = 'modal' | 'drawer'; export interface PopupModalSlots { header?: () => VNodeChild; footer?: () => VNodeChild; } export interface PopupDrawerSlots { header?: () => VNodeChild; } export declare type PopupModalConfig = Omit & ModalObjectEmits & { slots?: PopupModalSlots; }; export declare type PopupDrawerConfig = Omit & DrawerObjectEmits & { slots?: PopupDrawerSlots; }; export interface PopupSourceOptions

, E extends ObjectEmitsOptions> { props?: { [K in keyof P]: Ref | P[K]; }; on?: E; plugins?: Plugin[]; autoDestroy?: boolean; } export interface PopupInstance { show(): void; show(type: T): void; show(config: PopupModalConfig & Record): void; show(type: T, config: (T extends 'modal' ? PopupModalConfig : PopupDrawerConfig) & Record): void; hide: () => void; destroy: () => void; instance: Ref; }