type DialogAction = 'confirm' | 'cancel'; type DialogDone = (close?: boolean) => void; export type DialogOptions = { title?: string; message?: string; overlay?: boolean; className?: string; lockScroll?: boolean; confirmButtonText?: string; cancelButtonText?: string; showConfirmButton?: boolean; showCancelButton?: boolean; closeOnClickOverlay?: boolean; beforeClose?: (action: DialogAction, done: DialogDone) => void; } export interface Dialog { (options: DialogOptions): Promise; alert(options: DialogOptions): Promise; confirm(options: DialogOptions): Promise; close(): void; install(): void; setDefaultOptions(options: DialogOptions): void; resetDefaultOptions(): void; } declare module 'vue/types/vue' { interface Vue { $dialog: Dialog } } export const Dialog: Dialog;