import { ExtendedHTMLElement } from '../../../helper/dom';
import { QuickActionCommand } from '../../../static';
export interface PromptTextInputProps {
tabId: string;
initMaxLength: number;
children?: ExtendedHTMLElement[];
onKeydown: (e: KeyboardEvent) => void;
onInput?: (e: KeyboardEvent) => void;
onFocus?: () => void;
onBlur?: () => void;
}
export declare class PromptTextInput {
render: ExtendedHTMLElement;
promptTextInputMaxLength: number;
private lastCursorIndex;
private readonly props;
private readonly promptTextInput;
private promptInputOverlay;
private keydownSupport;
private readonly selectedContext;
private contextTooltip;
private contextTooltipTimeout;
private mutationObserver;
private hasImageCommand;
constructor(props: PromptTextInputProps);
private readonly setupContextRemovalObserver;
private readonly handleContextRemoval;
readonly restoreRange: (range: Range) => void;
private readonly updateCursorPos;
private readonly updateSelectionAndCursor;
private readonly insertSpaceNodeAndUpdateCursor;
private readonly checkIsEmpty;
private readonly removeContextPlaceholderOverlay;
private readonly insertElementToGivenPosition;
private readonly moveCursorToEnd;
private readonly showContextTooltip;
private readonly hideContextTooltip;
readonly insertContextItem: (contextItem: QuickActionCommand, position: number, topBarHidden?: boolean) => void;
readonly getCursorPos: () => number;
readonly clear: () => void;
readonly focus: () => void;
readonly blur: () => void;
readonly getTextInputValue: (withInputLineBreaks?: boolean) => string;
readonly updateTextInputValue: (value: string) => void;
readonly insertEndSpace: () => void;
readonly updateTextInputMaxLength: (maxLength: number) => void;
readonly updateTextInputPlaceholder: (text: string) => void;
readonly deleteTextRange: (position: number, endPosition: number) => void;
/**
* Returns the cursorLine, totalLines and if the cursor is at the beginning or end of the whole text
* @returns {cursorLine: number, totalLines: number, isAtTheBeginning: boolean, isAtTheEnd: boolean}
*/
readonly getCursorPosition: () => {
cursorLine: number;
totalLines: number;
isAtTheBeginning: boolean;
isAtTheEnd: boolean;
};
readonly getUsedContext: () => QuickActionCommand[];
readonly destroy: () => void;
}