import { App, Component } from 'vue'; import { MultiLangText } from '../model/CommonTypes'; export declare const modalPluginKey = "BlueseaModalPlugin"; export declare const modalHandleKey = "BlueseaModalHandle"; export type ModalStyle = { width?: string; height?: string; minWidth?: string; maxWidth?: string; minHeight?: string; maxHeight?: string; resizable?: boolean; styleClass?: string; escToClose?: boolean; }; export type ModalStyleChangeListener = (modalStyle: ModalStyle) => void; export type ModalPosition = { vertical?: 'top' | 'middle' | 'bottom'; horizontal?: 'left' | 'center' | 'right'; offsetX?: number; offsetY?: number; }; export type ModalPositionChangeListener = (modalPosition: ModalPosition) => void; export type ModalItem = { component: Component; pageId?: string; style?: ModalStyle; position?: ModalPosition; bind?: { [key: string]: any; }; on?: { [key: string]: Function | Function[]; }; slots?: { [key: string]: string | { component: string | Component; bind?: { [key: string]: any; }; on?: { [key: string]: Function | Function[]; }; }; }; }; export interface ModalHandle { maximized: boolean; close(): void; setDefaultStyle(modalStyle: ModalStyle): void; setDefaultPosition(modalPosition: ModalPosition): void; setDefaultStyleListener(listener?: ModalStyleChangeListener): void; setDefaultPositionListener(listener?: ModalPositionChangeListener): void; } export type RegisteredModalItem = ModalItem & { modalId: string; modalHandle: ModalHandle; escToClose?: boolean; }; export declare class BSModal { modalItems: RegisteredModalItem[]; openModal(modalItem: ModalItem): RegisteredModalItem; closeModal(modalItem: RegisteredModalItem | string): void; closeAllModals(): void; openAlert(title?: MultiLangText, message?: MultiLangText, clickHandler?: () => void | Promise): RegisteredModalItem; openYesNo(title?: MultiLangText, message?: MultiLangText, yesHandler?: () => void | Promise, noHandler?: () => void | Promise): RegisteredModalItem; install(app: App): void; } export declare const useModal: () => BSModal; export declare const provideModalHandle: (modalHandle: ModalHandle) => void; export declare const useModalHandle: () => ModalHandle; export declare const createModalPlugin: () => BSModal;