import { App } from 'vue' import { ComponentPublicInstance } from 'vue' interface NotificationOptions { title?: string text?: string content?: string message?: string position?: string type?: Type | 'info' color?: string duration?: number | string border?: string iconClass?: string square?: boolean [x: string]: unknown } type Type = 'success' | 'warning' | 'danger' | 'dark' | 'light' type TypeNotify = { (message: string, title: string, options: NotificationOptions): void (message: string, options: NotificationOptions): void } interface LoadingOptions { color?: string background?: string type?: Type variant?: string text?: string scale?: string target?: string | HTMLElement [x: string]: unknown } export type LoadingInstance = ComponentPublicInstance<{ type: string; text: string }, {}, { isVisible: boolean }> & { close(): () => void } export interface ConfirmOptions { title?: string message?: string callback?: (action: string) => any [x: string]: unknown } declare module '@vue/runtime-core' { interface ComponentCustomProperties { $notify: { (options: NotificationOptions): void info: TypeNotify success: TypeNotify warning: TypeNotify danger: TypeNotify dark: TypeNotify light: TypeNotify } $loading: (options: LoadingOptions) => LoadingInstance $confirm: (options: ConfirmOptions) => void } } declare const _default: { install: (app: App) => void } export default _default