export interface VModalProps { /** Чи відкрите модальне вікно */ modelValue: boolean; /** Заголовок модального вікна */ title?: string; /** Розмір модального вікна */ size?: VModalSize; /** Чи показувати кнопку закриття */ showCloseButton?: boolean; /** Чи закривати при кліку на backdrop */ closeOnBackdropClick?: boolean; /** Z-index для модального вікна */ zIndex?: number; /** Padding для модального вікна */ bodyPadding?: 'all' | 'bottom' | 'none'; } export interface VModalEmits { (e: 'update:modelValue', value: boolean): void; (e: 'close'): void; } export type VModalSize = 'small' | 'medium' | 'large'; export interface VModalConfig { title?: string; content?: string; component?: any; props?: Record; size?: VModalSize; showCloseButton?: boolean; closeOnBackdropClick?: boolean; bodyPadding?: 'all' | 'bottom' | 'none'; } export interface VModalInstance { /** Відкриває нове модальне вікно та повертає його ID */ open: (config: VModalConfig) => string; /** Закриває останнє (верхнє) модальне вікно */ close: () => void; /** Закриває модальне вікно за ID */ closeById: (modalId: string) => void; /** Закриває всі модальні вікна */ closeAll: () => void; /** Повертає кількість відкритих модальних вікон */ getOpenModalsCount: () => number; } export interface VModalStack { closeAll: () => void; getCount: () => number; closeById: (id: string) => void; } declare module 'vue' { interface ComponentCustomProperties { $modal: VModalInstance; $modalStack: VModalStack; } } //# sourceMappingURL=types.d.ts.map