/// <reference types="codemirror" />
import { FormControlProps } from 'amis-core';
import type { OptionsControlProps } from 'amis-core';
import React from 'react';
interface FormulaPluginConfig {
    getProps: () => any;
    onExpressionMouseEnter?: (e: MouseEvent, expression: string, brace?: Array<CodeMirror.Position>) => any;
    customMarkText?: (editor: CodeMirror.Editor) => void;
    onPluginInit?: (plugin: FormulaPlugin) => void;
    showPopover?: boolean;
    showClearIcon?: boolean;
}
declare class FormulaPlugin {
    readonly editor: CodeMirror.Editor;
    config: FormulaPluginConfig;
    constructor(editor: CodeMirror.Editor, config: FormulaPluginConfig);
    autoMark(): void;
    getExpressionBrace(expression: string): {
        line: number;
        ch: number;
    }[] | undefined;
    computedBracesPosition(exp: string): {
        begin: number;
        end: number;
    }[];
    checkStrIsInBraces([from, to]: number[], braces: {
        begin: number;
        end: number;
    }[]): boolean;
    insertBraces(originFrom: CodeMirror.Position, originTo: CodeMirror.Position): void;
    setValue(value: string): void;
    getCorsur(): import("codemirror").Position;
    insertContent(content: string, type?: 'expression' | 'string', brace?: Array<CodeMirror.Position>): void;
    markExpression(from: CodeMirror.Position, to: CodeMirror.Position, expression?: string, className?: string): void;
    focus(value: string): void;
    dispose(): void;
    validate(): void;
}
interface TitleFieldControlProps extends FormControlProps, OptionsControlProps {
    /**
     * 是否可清除
     */
    clearable?: boolean;
    placeholder?: string;
    popOverContainer?: any;
    /**
     * 是否从 amis数据域中取变量集合，默认 false;
     */
    requiredDataPropsVariables?: boolean;
}
interface TitleFieldControlState {
    value: string;
    variables: any[];
    isOpened: boolean;
    isLoading: boolean;
}
export declare class TitleFieldControl extends React.PureComponent<TitleFieldControlProps, TitleFieldControlState> {
    static defaultProps: Partial<TitleFieldControlProps>;
    wrapRef: React.RefObject<HTMLDivElement>;
    editorPlugin: FormulaPlugin;
    unReaction: any;
    appLocale: string;
    appCorpusData: any;
    constructor(props: TitleFieldControlProps);
    componentDidMount(): Promise<void>;
    componentDidUpdate(prevProps: TitleFieldControlProps): Promise<void>;
    getVariables(that: any): Promise<any[]>;
    handleClick(): void;
    handleItemClick(value: string): void;
    handleKeyDown(e: any): void;
    editorAutoMark(): void;
    handleEditorMounted(cm: any, editor: any): void;
    closeOuter(): void;
    handleClear(): void;
    handleOnChange(value: any): void;
    handleSearch(evt: any): void;
    handleSearchClear(): void;
    renderList(): React.JSX.Element;
    getParent(): HTMLElement | null;
    extractWrappedStrings(value: string): string[];
    renderOuter(): React.JSX.Element;
    render(): React.JSX.Element;
}
export default class TitleFieldControlRenderer extends TitleFieldControl {
}
export {};
