import { CSSProperties, FocusEventHandler, KeyboardEventHandler, MouseEventHandler, Ref } from 'react';
import { FlexboxProps } from 'react-layout-kit';
export interface CodeEditorProps extends Omit<FlexboxProps, 'onFocus' | 'onBlur' | 'onKeyUp' | 'onKeyDown' | 'onClick'> {
    autoFocus?: boolean;
    classNames?: {
        highlight?: string;
        textarea?: string;
    };
    disabled?: boolean;
    fontSize?: number | string;
    form?: string;
    ignoreTabKey?: boolean;
    insertSpaces?: boolean;
    language: string;
    maxLength?: number;
    minLength?: number;
    onBlur?: FocusEventHandler<HTMLTextAreaElement>;
    onClick?: MouseEventHandler<HTMLTextAreaElement>;
    onFocus?: FocusEventHandler<HTMLTextAreaElement>;
    onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;
    onKeyUp?: KeyboardEventHandler<HTMLTextAreaElement>;
    onValueChange: (value: string) => void;
    placeholder?: string;
    readOnly?: boolean;
    required?: boolean;
    style?: CSSProperties;
    styles?: {
        highlight?: CSSProperties;
        textarea?: CSSProperties;
    };
    tabSize?: number;
    textareaId?: string;
    value: string;
    variant?: 'ghost' | 'block' | 'pure';
}
type Record = {
    selectionEnd: number;
    selectionStart: number;
    value: string;
};
type History = {
    offset: number;
    stack: (Record & {
        timestamp: number;
    })[];
};
export declare const CodeEditor: import("react").ForwardRefExoticComponent<Omit<CodeEditorProps, "ref"> & import("react").RefAttributes<Ref<{
    session: {
        history: History;
    };
} | null>>>;
export {};
