import { App, MaybeRef } from 'vue';
import { MaybeInstance } from '@vexip-ui/hooks';
import { Key, MessageConfig, MessageOptions, MessagePlacement, MessageType } from './symbol';
export type { MessageConfig, MessageType, MessagePlacement, MessageOptions };
type FuzzyOptions = string | MessageOptions;
type ManagerOptions = {
    duration?: number;
    placement?: MessagePlacement;
} & Record<string, unknown>;
interface AipMethod {
    (options: MessageOptions): () => void;
    (content: string, duration?: number): () => void;
    /** @internal */
    (options: FuzzyOptions, duration?: number): () => void;
}
export declare class MessageManager {
    name: string;
    defaults: Record<string, unknown>;
    open: AipMethod;
    primary: AipMethod;
    info: AipMethod;
    success: AipMethod;
    warning: AipMethod;
    error: AipMethod;
    private _mountedApp;
    private _instance;
    private _innerApp;
    private _container;
    private _wrapper;
    private _mountedEl;
    constructor(options?: ManagerOptions);
    judge(state: boolean, success: string, error: string, duration?: number): void;
    judge(state: boolean, success: MessageOptions, error: string, duration?: number): void;
    judge(state: boolean, success: string, error: MessageOptions, duration?: number): void;
    judge(state: boolean, success: MessageOptions, error: MessageOptions): void;
    close(key: Key): void;
    config({ placement, ...others }: MessageConfig & MessageOptions): void;
    clone(): MessageManager;
    clear(): void;
    destroy(): void;
    isDestroyed(): boolean;
    install(app: App, options?: ManagerOptions & {
        property?: string;
    }): void;
    transferTo(target: MaybeRef<string | MaybeInstance>): void;
    private _getInstance;
    private _open;
}
export declare const Message: MessageManager;
