import { DialogCMD } from "./internal/model"; export type DialogType = 'bottom_sheet' | 'bottom_sheet_btn' | 'normal1btn' | 'normal2btn' | 'normal3btn' | 'bottom_sheet_selections'; export type DialogEventListener = (data: { id: string; code?: string; }) => void; export interface NormalConfig { title: string; content: string; option: { confirmText: string; middleText?: string; cancelText?: string; confirmTextColor?: string; confirmBgColor?: string; middleTextColor?: string; middleBgColor?: string; cancelTextColor?: string; cancelBgColor?: string; }; clickOverlayToClose?: boolean; } export interface SheetContentItem { icon: string; title: string; content: string; } export interface SheetBtnContentItem { title: string; code: string; label?: string; labelColor?: string; labelBgColor?: string; checked: boolean; } export interface SheetSelectionsContentItem { code: string; icon?: string; label: string; labelColor?: string; } export interface SheetConfig { title: string; content: SheetContentItem[]; clickOverlayToClose?: boolean; } export interface SheetBtnConfig { title: string; content: SheetBtnContentItem[]; option: { confirmText: string; cancelText?: string; }; multiple?: boolean; clickOverlayToClose?: boolean; } export interface SheetSelectionsConfig { content: SheetSelectionsContentItem[]; option: { cancelText: string; }; clickOverlayToClose?: boolean; } export interface UpdateSheetContent extends Partial { index: number; } export interface UpdateConfig { content: UpdateSheetContent[] | string; } export interface PresentResult { id: string; action?: 'cancel' | 'middle' | 'confirm'; checked?: string[]; } export type DialogConfig = NormalConfig | SheetConfig | SheetBtnConfig | SheetSelectionsConfig; export declare class Dialog { private type; private config; private id; private listeners; constructor(type: DialogType, config: DialogConfig); getId(): string; /** * present dialog * @returns */ present(): Promise; /** * update dialog content * @param updateConfig * @returns */ update(updateConfig: UpdateConfig): Promise<{ id: string; }>; /** * dismiss dialog * @returns */ dismiss(): Promise<{ id: string; }>; onAction(event: DialogCMD, listener: DialogEventListener): void; addEventListener(event: DialogCMD, listener: DialogEventListener): void; removeEventListener(event: DialogCMD, listener: DialogEventListener): void; removeAllListeners(event?: DialogCMD): void; } export declare const dialog: { create: (type: DialogType, config: DialogConfig) => Dialog; onAction: (event: DialogCMD, listener: DialogEventListener) => void; addEventListener: (event: DialogCMD, listener: DialogEventListener) => void; removeEventListener: (event: DialogCMD, listener: DialogEventListener) => void; removeAllListeners: (event?: DialogCMD) => void; };