/** @jsx jsx */
import type { FocusEvent, KeyboardEvent } from 'react';
import { PureComponent } from 'react';
import { jsx } from '@emotion/react';
export interface Props {
    autoFocus?: boolean | FocusOptions;
    defaultValue?: string;
    onChange?: (value: string) => void;
    onSubmit?: (value: string) => void;
    onCancel?: (e: KeyboardEvent) => void;
    placeholder?: string;
    onMouseDown?: Function;
    onKeyDown?: (e: KeyboardEvent<any>) => void;
    onUndo?: Function;
    onRedo?: Function;
    onBlur?: Function;
    width?: number;
    maxLength?: number;
    testId?: string;
    ariaLabel?: string;
    describedById?: string;
    ariaExpanded?: boolean;
    ariaActiveDescendant?: string;
    ariaControls?: string;
    role?: string;
    ariaAutoComplete?: boolean;
    ariaRequired?: boolean;
    ariaInvalid?: boolean;
    inputId?: string;
}
export interface State {
    value?: string;
}
export default class PanelTextInput extends PureComponent<Props, State> {
    private input?;
    private focusTimeoutId;
    constructor(props: Props);
    componentDidUpdate(prevProps: Props): void;
    componentWillUnmount(): void;
    onMouseDown: () => void;
    onBlur: (e: FocusEvent<any>) => void;
    render(): jsx.JSX.Element;
    focus(): void;
    private handleChange;
    private handleKeydown;
    private isUndoEvent;
    private isRedoEvent;
    private handleRef;
}
