import { AppContext, VNode } from 'vue';
export declare const notificationTypes: readonly ["success", "info", "warning", "error"];
export type NotificationType = (typeof notificationTypes)[number];
export interface BasicNotificationProps {
    customClass?: string;
    dangerouslyUseHTMLString?: boolean;
    duration?: number;
    icon?: string;
    id?: string;
    message?: string | VNode | (() => VNode);
    offset?: number;
    onClick?: () => void;
    onClose?: () => void;
    position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
    showClose?: boolean;
    title?: string;
    type?: NotificationType | '';
    zIndex?: number;
}
export type NotificationOptions = Omit<BasicNotificationProps, 'id' | 'onClose'> & {
    /**
     * @description set the root element for the notification, default to `document.body`
     */
    appendTo?: HTMLElement | string;
    /**
     * @description callback function when closed
     */
    onClose?: (vm: VNode) => void;
};
export type NotificationOptionsTyped = Omit<NotificationOptions, 'type'>;
export interface NotificationHandle {
    close: () => void;
}
export type NotificationParams = Partial<NotificationOptions> | string | VNode;
export type NotificationParamsTyped = Partial<NotificationOptionsTyped> | string | VNode;
export interface NotifyFn {
    (options?: NotificationParams, appContext?: null | AppContext): NotificationHandle;
    closeAll: () => void;
    _context: AppContext | null;
}
export type NotifyTypedFn = (options?: NotificationParamsTyped, appContext?: null | AppContext) => NotificationHandle;
export interface Notify extends NotifyFn {
    success: NotifyTypedFn;
    warning: NotifyTypedFn;
    error: NotifyTypedFn;
    info: NotifyTypedFn;
}
export interface NotificationQueueItem {
    vm: VNode;
}
export type NotificationQueue = NotificationQueueItem[];
export interface BasicNotificationContext {
    name: string;
}
//# sourceMappingURL=interface.d.ts.map