import React from 'react';
import { InputProps } from '../input/input';
export type EditableTextProps = {
    buttonLabel?: string;
    inputLabel?: string;
    isDisabled?: boolean;
    isMultiline?: boolean;
    /** Defaults to `false` */
    cancelEditsOnEscape?: boolean;
    placeholder?: string;
    onSubmit?: (e?: string) => void;
    onChange?: (event: React.ChangeEvent<HTMLInputElement> | string) => void;
    value?: string;
    testId?: string;
    options?: InputProps;
    textClassName?: string;
    inputClassName?: string;
    /** Show spinner instead of edit button */
    isLoading?: boolean;
    buttonTooltip?: string;
    /** Render Submit and Cancel buttons inside the input */
    shouldDisplayControls?: boolean;
    areHyperLinksClickable?: boolean;
    editButtonTestId?: string;
    buttonAriaLabel?: string;
};
type EditableTextState = {
    value: string;
    isEditing: boolean;
};
/** Text field with an edit */
export default class EditableText extends React.Component<EditableTextProps, EditableTextState> {
    private editInputRef;
    private originalValue;
    static defaultProps: {
        onSubmit: () => void;
        options: {};
        cancelEditsOnEscape: boolean;
        shouldDisplayControls: boolean;
        areHyperLinksClickable: boolean;
    };
    constructor(props: EditableTextProps);
    componentDidUpdate(prevProps: EditableTextProps): void;
    startEditing(): void;
    submitEdit(): Promise<false | undefined>;
    onChange(e: React.ChangeEvent<HTMLInputElement>): void;
    onKeyDown(e: React.KeyboardEvent<HTMLInputElement>): void;
    handleCancel(): void;
    handleSubmit(): void;
    render(): import("react/jsx-runtime").JSX.Element;
}
export {};
