import { App, MaybeRef } from 'vue';
import { MaybeInstance } from '@vexip-ui/hooks';
import { Key, NoticeConfig, NoticeOptions, NoticePlacement, NoticeType } from './symbol';
export type { NoticeType, NoticePlacement, NoticeOptions };
type FuzzyOptions = string | NoticeOptions;
type ManagerOptions = {
    marker?: boolean;
    duration?: number;
    placement?: NoticePlacement;
} & Record<string, unknown>;
interface AipMethod {
    (options: NoticeOptions): () => void;
    (title: string, duration?: number): () => void;
    (title: string, content: string, duration?: number): () => void;
    /** @internal */
    (options: FuzzyOptions, duration?: number): () => void;
}
export declare class NoticeManager {
    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: NoticeOptions, error: string, duration?: number): void;
    judge(state: boolean, success: string, error: NoticeOptions, duration?: number): void;
    judge(state: boolean, success: NoticeOptions, error: NoticeOptions): void;
    close(key: Key): void;
    config({ placement, ...others }: NoticeConfig & NoticeOptions): void;
    clone(): NoticeManager;
    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 Notice: NoticeManager;
