import { VNode } from 'vue';
declare enum MessageContentType {
    JSON = "json",
    KEY_VALUE = "key-value"
}
declare enum IMessageActionType {
    /**
     * 联系助手：默认直接拉起企业微信与助手的聊天，需要在 message.assistant 配置对应的企微群ID
     */
    ASSISTANT = "assistant",
    /**
     * 关闭：点击关闭，Message 消失
     */
    CLOSE = "close",
    /**
     * 展开详情：展开面向开发的详情
     */
    DETAILS = "details",
    /**
     * 图钉按钮：点击后，Message 不会自动消失
     */
    FIX = "fix"
}
type IMessageAction = {
    /**
     * 唯一ID，从给定的 IMessageActionType 中选择
     * 如果是自定义的其他操作，此ID可以自定义，此时将会作为一个新的操作项追加
     */
    id: IMessageActionType;
    /**
     * 需要展示的文本，如果不设置显示默认
     */
    text?: () => string | string;
    /**
     * 需要展示的ICON，如果不设置显示默认
     */
    icon?: () => VNode | VNode | string;
    /**
     * 鼠标点击事件，如果返回false则阻止默认点击行为
     * 如果返回其他，默认行为不会阻止
     * @returns
     */
    onClick?: (...args: any[]) => boolean | void;
    /**
     * 自定义渲染 & 事件处理
     * 如果设置了render则整个渲染都需要自己处理，默认渲染将会被阻止
     * @returns VNode
     */
    render?: () => VNode;
    /**
     * 是否禁用此功能
     * 如果设置为true，则此功能不展示
     */
    disabled?: boolean;
    /**
     * 是否只读
     * 如果设置为true，则此功能只做文本展示
     */
    readonly?: boolean;
    /**
     * 需要添加到操作项外层元素的样式列表
     */
    classList?: string | string[];
};
type IMessageActions = IMessageAction[];
export type IMessage = {
    /**
     * 错误码
     */
    code: number | string;
    /**
     * 错误概述
     */
    overview: string;
    /**
     * 操作建议
     */
    suggestion: string;
    /**
     * 详情
     */
    details: Array<Record<string, any> | boolean | number | string> | Record<string, any> | string;
    /**
     * 助手
     */
    assistant: string;
    /**
     * 展开详情：数据展示格式
     * 详情分为：Key Value 类详情、JSON 类详情
     * 可选值：'key-value', 'json'
     */
    type: MessageContentType;
};
export type IMessageProp = IMessage | string;
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    id: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    } & {
        default: string;
    };
    message: import("vue-types").VueTypeDef<IMessageProp>;
    theme: import("vue-types").VueTypeDef<"error" | "primary" | "success" | "warning"> & {
        default: "error" | "primary" | "success" | "warning";
    };
    delay: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
        default: number;
    };
    dismissable: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>> & {
        default: boolean;
    };
    offsetY: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
        default: number;
    } & {
        default: number;
    };
    spacing: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
        default: number;
    } & {
        default: number;
    };
    extCls: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    } & {
        default: string;
    };
    onClose: import("vue-types").VueTypeValidableDef<(...args: any[]) => any, import("vue-types/dist/shared/vue-types.d8e57a80").b<(...args: any[]) => any>> & {
        default: (...args: any[]) => any;
    };
    getContainer: import("vue-types").VueTypeDef<HTMLElement>;
    width: import("vue-types").VueTypeDef<string | number>;
    minWidth: import("vue-types").VueTypeDef<string | number> & {
        default: string | number;
    };
    maxWidth: import("vue-types").VueTypeDef<string | number> & {
        default: string | number;
    };
    actions: import("vue-types").VueTypeDef<IMessageActions>;
}>, {
    classNames: import("vue").ComputedRef<string[]>;
    styles: import("vue").ComputedRef<{
        top: string;
        zIndex: number;
        position: "absolute" | "fixed";
    } & ({
        maxWidth: any;
        minWidth: any;
        width: string | number;
    } | {
        width: string;
    })>;
    visible: import("vue").Ref<boolean, boolean>;
    close: (e: Event) => void;
    setDetailsShow: (e: MouseEvent, isShow?: boolean, shouldEmit?: boolean) => void;
    fixMesage: (_e: MouseEvent, isFix?: boolean) => void;
    copyMessage: () => void;
    parseToJson: (value: any) => any;
    handleMouseenter: (_e: MouseEvent) => void;
    handleMouseleave: (_e: MouseEvent) => void;
    renderMessageActions: () => unknown[];
    refJsonContent: import("vue").Ref<any, any>;
    refCopyStatus: import("vue").Ref<any, any>;
    refCopyMsgDiv: import("vue").Ref<any, any>;
    toolOperation: {
        isFix: boolean;
        isDetailShow: boolean;
    };
    copyStatus: import("vue").Ref<any, any>;
    t: import("vue").ComputedRef<{
        assistant: string;
        details: string;
        copySuccess: string;
        copyFailed: string;
    }>;
    resolveClassName: (cls: string) => string;
    copyValueItem: () => void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("detail" | "destroy")[], "detail" | "destroy", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    id: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    } & {
        default: string;
    };
    message: import("vue-types").VueTypeDef<IMessageProp>;
    theme: import("vue-types").VueTypeDef<"error" | "primary" | "success" | "warning"> & {
        default: "error" | "primary" | "success" | "warning";
    };
    delay: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
        default: number;
    };
    dismissable: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>> & {
        default: boolean;
    };
    offsetY: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
        default: number;
    } & {
        default: number;
    };
    spacing: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
        default: number;
    } & {
        default: number;
    };
    extCls: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
        default: string;
    } & {
        default: string;
    };
    onClose: import("vue-types").VueTypeValidableDef<(...args: any[]) => any, import("vue-types/dist/shared/vue-types.d8e57a80").b<(...args: any[]) => any>> & {
        default: (...args: any[]) => any;
    };
    getContainer: import("vue-types").VueTypeDef<HTMLElement>;
    width: import("vue-types").VueTypeDef<string | number>;
    minWidth: import("vue-types").VueTypeDef<string | number> & {
        default: string | number;
    };
    maxWidth: import("vue-types").VueTypeDef<string | number> & {
        default: string | number;
    };
    actions: import("vue-types").VueTypeDef<IMessageActions>;
}>> & Readonly<{
    onDestroy?: (...args: any[]) => any;
    onDetail?: (...args: any[]) => any;
}>, {
    onClose: (...args: any[]) => any;
    maxWidth: string | number;
    theme: "error" | "primary" | "success" | "warning";
    extCls: string;
    id: string;
    minWidth: string | number;
    offsetY: number;
    delay: number;
    spacing: number;
    dismissable: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
