import { MmNotification } from "./notification" import { LiteralUnion } from './literal-union' import { VNode } from "vue" declare type NotificationTypes = LiteralUnion<"success" | "warning"| "info"| "error", string> declare type NotificationPositions = LiteralUnion<"top-right" | "top-left" | "bottom-right" | "bottom-left", string> declare interface NotificationParams { /** Title of notification */ title?: string /** The message content */ type?: NotificationTypes /** Whether to treat the message property as an HTML fragment */ message: string | VNode /** Whether to treat the message property as an HTML fragment */ messageIsHtml?: boolean /** Custom icon name */ iconName?: string iconEntity?: string /** Display time, unit seconds, set to 0 does not close automatically */ duration?: number /** Customize pop-up locations */ position?: NotificationPositions /** Whether the close button is displayed */ closable?: boolean /** A callback when closed */ onClose?: Function /** The callback when clicked */ onClick?: Function /** The bottom buttons */ buttons?: { text: string, onClick?: Function }[] } declare type NotificationMethod = (options: NotificationParams) => MmNotification export interface MmNotificationFactory { (options: NotificationParams): MmNotification success: NotificationMethod warning: NotificationMethod info: NotificationMethod error: NotificationMethod }