import type { AppContext, VNode } from 'vue';
declare type ContentType = string | VNode | (() => VNode);
export interface MessageOptions {
    type?: '' | 'info' | 'success' | 'warning' | 'error' | 'loading';
    title?: string;
    message?: ContentType;
    iconURL?: string;
    duration?: number;
    zIndex?: number;
    isCollapsed?: boolean;
    collapsable?: boolean;
    supportHTML?: boolean;
    hasMask?: boolean;
    position?: '' | 'top-left' | 'top-center' | 'top-right' | 'center' | 'bottom-left' | 'bottom-center' | 'bottom-right';
    width?: string;
    className?: string;
    wrapperClassName?: string;
    closable?: boolean;
    stopTimerOnHover?: boolean;
    onClose?: () => void;
    onCollapsed?: (collapsed: boolean) => void;
    ctx?: AppContext;
}
export declare type MessageTypeOptions = Omit<MessageOptions, 'type' | 'message'>;
export interface MessageIntance {
    id: string;
    close: () => void;
}
export declare type MessageFn = (message: ContentType, options?: MessageTypeOptions) => MessageIntance;
export interface Message {
    (options: MessageOptions): MessageIntance;
    info: MessageFn;
    success: MessageFn;
    error: MessageFn;
    warning: MessageFn;
    loading: MessageFn;
    closeAll: () => void;
    setDefault: (options: MessageTypeOptions) => void;
    _context?: AppContext | null;
}
declare const message: Message;
export default message;
