import { Component, ExtractPropTypes, PropType, VNode, ComponentPublicInstance } from 'vue';
export declare const MessageStatusTypes: readonly ["info", "success", "warning", "danger", "loading"];
export type MessageStatusT = (typeof MessageStatusTypes)[number];
export type MessagePositionT = 'top' | 'bottom';
export declare const messageProps: {
    /**
     * 消息是否可见 v-model
     */
    visible: {
        type: BooleanConstructor;
        default: undefined;
    };
    /**
     * 非受控模式，消息是否默认可见
     */
    defaultVisible: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 状态 MessageStatusT
     */
    status: {
        type: PropType<MessageStatusT>;
        default: string;
    };
    /**
     * 预置背景（跟随状态）
     */
    colorful: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 消息显示的持续时间，函数式调用时，默认值为3000
     */
    duration: {
        type: NumberConstructor;
    };
    /**
     * 是否可手动关闭
     */
    closable: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 关闭前的钩子函数
     */
    beforeClose: {
        type: PropType<() => Promise<boolean> | boolean>;
    };
    /**
     * 消息标题
     */
    title: {
        type: StringConstructor;
    };
};
export declare const messageListProps: {
    /**
     * 消息列表位置 MessagePositionT
     */
    position: {
        type: PropType<MessagePositionT>;
        default: string;
    };
    /**
     * 消息列表销毁前的钩子函数
     */
    onDestory: {
        type: PropType<() => void>;
    };
};
export type MessagePropsT = ExtractPropTypes<typeof messageProps>;
export type MessageListPropsT = ExtractPropTypes<typeof messageListProps>;
export type MessageParamsT = Partial<MessagePropsT & {
    content: string | VNode | Component;
    position: MessagePositionT;
    target?: string | ComponentPublicInstance | HTMLElement | null;
    targetAlign?: 'center' | 'left' | 'right';
    icon: VNode | Component;
    onDurationEnd: () => void;
    onClose: (ev?: MouseEvent) => void;
}>;
