import React from 'react';
import { FormControlProps } from './Item';
export interface EditorProps extends FormControlProps {
    options?: object;
}
export default class EditorControl extends React.Component<EditorProps, any> {
    static defaultProps: Partial<EditorProps>;
    state: {
        focused: boolean;
    };
    editor: any;
    toDispose: Array<Function>;
    constructor(props: EditorProps);
    componentWillUnmount(): void;
    handleFocus(): void;
    handleBlur(): void;
    handleEditorMounted(editor: any, monaco: any): void;
    updateContainerSize(): void;
    render(): JSX.Element;
}
export declare const availableLanguages: string[];
export declare const EditorControls: Array<typeof EditorControl>;
export declare class EditorControlRenderer extends EditorControl {
    static defaultProps: {
        language: string;
        options?: object | undefined;
        error?: string | undefined;
        inputOnly?: boolean | undefined;
        errors?: {
            [propName: string]: string;
        } | undefined;
        defaultValue?: any;
        value?: any;
        onChange?: ((value: any, submitOnChange?: boolean | undefined) => void) | undefined;
        onBulkChange?: ((values: any, submitOnChange?: boolean | undefined) => void) | undefined;
        prinstine?: any;
        setPrinstineValue?: ((value: any) => void) | undefined;
        formMode?: "default" | "inline" | "row" | "horizontal" | undefined;
        formItem?: (import("mobx-state-tree").ModelInstanceTypeProps<{
            identifier: import("mobx-state-tree").ISimpleType<string>;
            type: import("mobx-state-tree").IType<string | undefined, string, string>;
            unique: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            loading: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            required: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            rules: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            messages: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            errorData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
                msg: import("mobx-state-tree").IType<string | undefined, string, string>;
                tag: import("mobx-state-tree").IType<string | undefined, string, string>;
            }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>, [undefined]>;
            name: import("mobx-state-tree").ISimpleType<string>;
            id: import("mobx-state-tree").IType<string | undefined, string, string>;
            unsetValueOnInvisible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            validated: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            validating: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            multiple: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            delimiter: import("mobx-state-tree").IType<string | undefined, string, string>;
            valueField: import("mobx-state-tree").IType<string | undefined, string, string>;
            labelField: import("mobx-state-tree").IType<string | undefined, string, string>;
            joinValues: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            extractValue: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            options: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>, [undefined]>;
            expressionsInOptions: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            selectedOptions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            filteredOptions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
        }> & {
            readonly form: any;
            readonly value: any;
            readonly prinstine: any;
            readonly errors: string[];
            readonly valid: boolean;
            readonly lastSelectValue: string;
            getSelectedOptions(value?: any): any;
        } & {
            config: ({ required, unique, value, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id }: {
                required?: any;
                unique?: any;
                value?: any;
                rules?: string | {
                    [propName: string]: any;
                } | undefined;
                messages?: {
                    [propName: string]: string;
                } | undefined;
                multiple?: boolean | undefined;
                delimiter?: string | undefined;
                valueField?: string | undefined;
                labelField?: string | undefined;
                joinValues?: boolean | undefined;
                extractValue?: boolean | undefined;
                type?: string | undefined;
                id?: string | undefined;
            }) => void;
            changeValue: (value: any, isPrintine?: boolean) => void;
            validate: (hook?: any) => Promise<boolean>;
            setError: (msg: string | string[], tag?: string) => void;
            addError: (msg: string | string[], tag?: string) => void;
            clearError: (tag?: string | undefined) => void;
            setOptions: (options: object[]) => void;
            loadOptions: (api: import("../../types").Api, data?: object | undefined, options?: import("../../types").fetchOptions | undefined, clearValue?: boolean | undefined, onChange?: ((value: any) => void) | undefined) => Promise<any>;
            syncOptions: (originOptions?: any[] | undefined) => void;
            setLoading: (value: boolean) => void;
            setSubStore: (store: any) => void;
            reset: () => void;
        } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
            identifier: import("mobx-state-tree").ISimpleType<string>;
            type: import("mobx-state-tree").IType<string | undefined, string, string>;
            unique: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            loading: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            required: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            rules: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            messages: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            errorData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
                msg: import("mobx-state-tree").IType<string | undefined, string, string>;
                tag: import("mobx-state-tree").IType<string | undefined, string, string>;
            }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>, [undefined]>;
            name: import("mobx-state-tree").ISimpleType<string>;
            id: import("mobx-state-tree").IType<string | undefined, string, string>;
            unsetValueOnInvisible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            validated: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            validating: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            multiple: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            delimiter: import("mobx-state-tree").IType<string | undefined, string, string>;
            valueField: import("mobx-state-tree").IType<string | undefined, string, string>;
            labelField: import("mobx-state-tree").IType<string | undefined, string, string>;
            joinValues: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            extractValue: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            options: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>, [undefined]>;
            expressionsInOptions: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            selectedOptions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            filteredOptions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
        }, {
            readonly form: any;
            readonly value: any;
            readonly prinstine: any;
            readonly errors: string[];
            readonly valid: boolean;
            readonly lastSelectValue: string;
            getSelectedOptions(value?: any): any;
        } & {
            config: ({ required, unique, value, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id }: {
                required?: any;
                unique?: any;
                value?: any;
                rules?: string | {
                    [propName: string]: any;
                } | undefined;
                messages?: {
                    [propName: string]: string;
                } | undefined;
                multiple?: boolean | undefined;
                delimiter?: string | undefined;
                valueField?: string | undefined;
                labelField?: string | undefined;
                joinValues?: boolean | undefined;
                extractValue?: boolean | undefined;
                type?: string | undefined;
                id?: string | undefined;
            }) => void;
            changeValue: (value: any, isPrintine?: boolean) => void;
            validate: (hook?: any) => Promise<boolean>;
            setError: (msg: string | string[], tag?: string) => void;
            addError: (msg: string | string[], tag?: string) => void;
            clearError: (tag?: string | undefined) => void;
            setOptions: (options: object[]) => void;
            loadOptions: (api: import("../../types").Api, data?: object | undefined, options?: import("../../types").fetchOptions | undefined, clearValue?: boolean | undefined, onChange?: ((value: any) => void) | undefined) => Promise<any>;
            syncOptions: (originOptions?: any[] | undefined) => void;
            setLoading: (value: boolean) => void;
            setSubStore: (store: any) => void;
            reset: () => void;
        }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | undefined;
        strictMode?: boolean | undefined;
        renderControl?: ((props: import("../../factory").RendererProps) => JSX.Element) | undefined;
        renderLabel?: boolean | undefined;
        renderDescription?: boolean | undefined;
        sizeMutable?: boolean | undefined;
        wrap?: boolean | undefined;
        hint?: string | undefined;
        description?: string | undefined;
        descriptionClassName?: string | undefined;
        render?: ((region: string, node: import("../../types").SchemaNode, props?: any) => JSX.Element) | undefined;
        env?: import("../../factory").RendererEnv | undefined;
        classPrefix?: string | undefined;
        classnames?: import("../../theme").ClassNamesFn | undefined;
        $path?: string | undefined;
        store?: (import("mobx-state-tree").ModelInstanceTypeProps<{
            id: import("mobx-state-tree").ISimpleType<string>;
            path: import("mobx-state-tree").IType<string | undefined, string, string>;
            storeType: import("mobx-state-tree").ISimpleType<string>;
            hasRemoteData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
            data: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            updatedAt: import("mobx-state-tree").IType<number | undefined, number, number>;
            pristine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            parentId: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
            action: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            dialogOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            dialogData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            drawerOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            drawerData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
        }> & {
            readonly parentStore: any;
        } & {
            initData(data?: object): void;
            reset(): void;
            updateData(data?: object, tag?: object | undefined): void;
            setCurrentAction(action: object): void;
            openDialog(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined): void;
            closeDialog(result?: any): void;
            openDrawer(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined): void;
            closeDrawer(result?: any): void;
        } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
            id: import("mobx-state-tree").ISimpleType<string>;
            path: import("mobx-state-tree").IType<string | undefined, string, string>;
            storeType: import("mobx-state-tree").ISimpleType<string>;
            hasRemoteData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
            data: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            updatedAt: import("mobx-state-tree").IType<number | undefined, number, number>;
            pristine: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            parentId: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
            action: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            dialogOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            dialogData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
            drawerOpen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
            drawerData: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
        }, {
            readonly parentStore: any;
        } & {
            initData(data?: object): void;
            reset(): void;
            updateData(data?: object, tag?: object | undefined): void;
            setCurrentAction(action: object): void;
            openDialog(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined): void;
            closeDialog(result?: any): void;
            openDrawer(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined): void;
            closeDrawer(result?: any): void;
        }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | undefined;
        data?: {
            [propName: string]: any;
        } | undefined;
        defaultData?: object | undefined;
        className?: string | undefined;
    };
}
