import { Component, PropType, ExtractPropTypes } from 'vue'; export type NotificationType = 'success' | 'warning' | 'danger' | 'info' | 'default'; export type NotificationPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'; export interface NotificationAction { text: string; onClick: () => void; } export interface NotificationOptions { id?: string; title: string; message?: string; type?: NotificationType; duration?: number; closable?: boolean; showIcon?: boolean; icon?: Component | string; position?: NotificationPosition; showProgress?: boolean; dangerouslyUseHTMLString?: boolean; action?: NotificationAction; background?: string; color?: string; titleColor?: string; iconColor?: string; borderColor?: string; progressColor?: string; borderRadius?: string; shadow?: string; customClass?: string; customStyle?: Partial; onClose?: () => void; onClick?: () => void; } export interface NotificationHandle { close: () => void; update: (opts: Partial) => void; then: (fn: () => void) => void; } export interface NotificationInstance { id: string; el: HTMLDivElement; close: () => void; update: (opts: Partial) => void; options: ResolvedNotificationOptions; timer: ReturnType | null; progressTimer: ReturnType | null; startTime: number; remainingDuration: number; onCloseCallbacks: Array<() => void>; } export type ResolvedNotificationOptions = Required> & NotificationOptions; export declare const notificationProps: { readonly title: { readonly type: StringConstructor; readonly default: ""; }; readonly message: { readonly type: StringConstructor; readonly default: ""; }; readonly type: { readonly type: PropType; readonly default: "default"; }; readonly duration: { readonly type: NumberConstructor; readonly default: 4500; }; readonly closable: { readonly type: BooleanConstructor; readonly default: true; }; readonly showIcon: { readonly type: BooleanConstructor; readonly default: true; }; readonly icon: { readonly type: PropType; readonly default: undefined; }; readonly position: { readonly type: PropType; readonly default: "top-right"; }; readonly showProgress: { readonly type: BooleanConstructor; readonly default: false; }; readonly dangerouslyUseHTMLString: { readonly type: BooleanConstructor; readonly default: false; }; readonly customClass: { readonly type: StringConstructor; readonly default: ""; }; }; export type NotificationProps = ExtractPropTypes;