import type { EditTwoToneIconType } from '@ant-design/icons-vue/lib/icons/EditTwoTone';
import type { SrmI18n } from '../../../utils/type';
import type { DefineComponent, Ref, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from 'vue';
import type { LanguageSupport } from '@codemirror/language';
interface MixButton {
    name: string;
    key: string;
    arrts: {
        type?: string;
    };
    callback: (params: string) => void;
}
declare const _sfc_main: DefineComponent<{
    editorModalFlag: {
        type: BooleanConstructor;
        default: boolean;
    };
    zIndex: {
        type: NumberConstructor;
        default: number;
    };
    value: {
        type: StringConstructor;
        default: string;
    };
    isAllowToOpenMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    options: {
        type: ObjectConstructor;
        default: () => {
            disabled: boolean;
            indentWithTab: boolean;
            tabSize: number;
            autofocus: boolean;
            placeholder: string;
        };
    };
    disabled: {
        type: BooleanConstructor;
        default: null;
    };
    showLabel: {
        type: StringConstructor;
        default: string;
    };
    customButton: {
        type: ArrayConstructor;
        default: () => never[];
    };
}, {
    props: any;
    emit: (event: "update:value" | "handleSureClick" | "handleSureClose" | "update:editorModalFlag", ...args: any[]) => void;
    srmI18n: SrmI18n;
    visible: Ref<boolean>;
    code: Ref<string>;
    vattrs: Ref<{
        [x: string]: unknown;
    }>;
    lang: LanguageSupport;
    editorOption: {
        disabled: boolean;
        indentWithTab: boolean;
        tabSize: number;
        autofocus: boolean;
        placeholder: string;
        phrases: {
            Completions: string;
        };
        theme: {
            '&': {
                color: string;
                backgroundColor: string;
            };
            '.cm-content': {
                caretColor: string;
            };
            '.cm-cursor, .cm-dropCursor': {
                borderLeftColor: string;
            };
            '&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection': {
                backgroundColor: string;
            };
            '.cm-panels': {
                backgroundColor: string;
                color: string;
            };
            '.cm-panels.cm-panels-top': {
                borderBottom: string;
            };
            '.cm-panels.cm-panels-bottom': {
                borderTop: string;
            };
            '.cm-searchMatch': {
                backgroundColor: string;
                outline: string;
            };
            '.cm-searchMatch.cm-searchMatch-selected': {
                backgroundColor: string;
            };
            '.cm-activeLine': {
                backgroundColor: string;
            };
            '.cm-selectionMatch': {
                backgroundColor: string;
            };
            '&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket': {
                backgroundColor: string;
            };
            '.cm-gutters': {
                backgroundColor: string;
                color: string;
                border: string;
            };
            '.cm-activeLineGutter': {
                backgroundColor: string;
            };
            '.cm-foldPlaceholder': {
                backgroundColor: string;
                border: string;
                color: string;
            };
            '.cm-tooltip': {
                border: string;
                backgroundColor: string;
            };
            '.cm-tooltip .cm-tooltip-arrow:before': {
                borderTopColor: string;
                borderBottomColor: string;
            };
            '.cm-tooltip .cm-tooltip-arrow:after': {
                borderTopColor: string;
                borderBottomColor: string;
            };
            '.cm-tooltip-autocomplete': {
                '& > ul > li[aria-selected]': {
                    backgroundColor: string;
                    color: string;
                };
            };
            '.\u037Cb': {
                color: string;
            };
            '.\u037Cg': {
                color: string;
            };
            '.\u037Cc': {
                color: string;
            };
            '.\u037Cd': {
                color: string;
            };
        };
    };
    mixButton: ComputedRef<MixButton[]>;
    handleSureClick: () => void;
    handleSureClose: () => void;
    handleToOpenMode: () => void;
    handleToOpenValueMode: (val: string) => void;
    readonly CodeMirror: any;
    readonly EditTwoTone: EditTwoToneIconType;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("update:value" | "handleSureClick" | "handleSureClose" | "update:editorModalFlag")[], "update:value" | "handleSureClick" | "handleSureClose" | "update:editorModalFlag", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    editorModalFlag: {
        type: BooleanConstructor;
        default: boolean;
    };
    zIndex: {
        type: NumberConstructor;
        default: number;
    };
    value: {
        type: StringConstructor;
        default: string;
    };
    isAllowToOpenMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    options: {
        type: ObjectConstructor;
        default: () => {
            disabled: boolean;
            indentWithTab: boolean;
            tabSize: number;
            autofocus: boolean;
            placeholder: string;
        };
    };
    disabled: {
        type: BooleanConstructor;
        default: null;
    };
    showLabel: {
        type: StringConstructor;
        default: string;
    };
    customButton: {
        type: ArrayConstructor;
        default: () => never[];
    };
}>> & {
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    onHandleSureClick?: ((...args: any[]) => any) | undefined;
    onHandleSureClose?: ((...args: any[]) => any) | undefined;
    "onUpdate:editorModalFlag"?: ((...args: any[]) => any) | undefined;
}, {
    value: string;
    options: Record<string, any>;
    disabled: boolean;
    editorModalFlag: boolean;
    zIndex: number;
    isAllowToOpenMode: boolean;
    showLabel: string;
    customButton: unknown[];
}, {}>;
export default _sfc_main;
