/// <reference types="react" />
import { React, GlamorValue } from '../../common';
import { CodeEditorChangeEventHandler, CodeEditorChangeEvent, CodeEditorOptions } from '../../types';
export { CodeEditorChangeEventHandler, CodeEditorChangeEvent };
export declare type CodeEditorDiff = {
    code?: string;
    inline?: boolean;
};
export interface ICodeEditorProps {
    options?: Partial<CodeEditorOptions>;
    code?: string;
    diff?: CodeEditorDiff;
    focusOnLoad?: boolean;
    style?: GlamorValue;
    onChange?: CodeEditorChangeEventHandler;
}
export interface ICodeEditorState {
    width?: number;
    height?: number;
    isMounted: boolean;
}
export declare class CodeEditor extends React.PureComponent<ICodeEditorProps, ICodeEditorState> {
    state: ICodeEditorState;
    private editor;
    private unmounted$;
    private el;
    private elRef;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
    readonly isFocused: boolean;
    readonly width: number;
    readonly height: number;
    readonly size: {
        width: number;
        height: number;
    };
    private readonly options;
    updateSize(): void;
    focus(): void;
    private handleBeforeMount;
    private handleAfterMount;
    private handleChange;
}
