import { BasicField, EnumObject, InitModelOf, InputFieldKeyStrokeContext, JQueryWheelEvent, MaxLengthHandler, StringFieldEventMap, StringFieldModel } from '../../../index';
export declare class StringField extends BasicField<string> implements StringFieldModel {
    model: StringFieldModel;
    eventMap: StringFieldEventMap;
    self: StringField;
    keyStrokeContext: InputFieldKeyStrokeContext;
    $field: JQuery | JQuery<HTMLInputElement>;
    format: StringFieldFormat;
    hasAction: boolean;
    inputMasked: boolean;
    inputObfuscated: boolean;
    maxLength: number;
    maxLengthHandler: MaxLengthHandler;
    multilineText: boolean;
    selectionStart: number;
    selectionEnd: number;
    selectionTrackingEnabled: boolean;
    spellCheckEnabled: boolean;
    trimText: boolean;
    wrapText: boolean;
    mouseClicked: boolean;
    protected _selectionChangingActionHandler: (event: JQuery.TriggeredEvent) => void;
    constructor();
    static Format: {
        readonly LOWER: "a";
        readonly UPPER: "A";
    };
    static TRIM_REGEXP: RegExp;
    /**
     * Resolves the text key if value contains one.
     * This cannot be done in _init because the value field would call _setValue first
     */
    protected _initValue(value: string): void;
    _readDisplayText(): string;
    protected _initKeyStrokeContext(): void;
    protected _createKeyStrokeContext(): InputFieldKeyStrokeContext;
    protected _init(model: InitModelOf<this>): void;
    protected _render(): void;
    protected _makeMultilineField(): JQuery;
    /**
     * Adds a focus handler that renders the selection if the field was focused using keyboard (TAB).
     * Actually, this is only for Safari because Chrome and Firefox restore the selection by default but Safari doesn't.
     */
    protected _addRestoreSelectionFocusHandler($field: JQuery): void;
    protected _onFieldBlur(event: JQuery.BlurEvent): void;
    protected _onMouseWheel(event: JQueryWheelEvent): void;
    protected _renderProperties(): void;
    /**
     * Adds a click handler instead of a mouse down handler because it executes an action.
     */
    addIcon($parent?: JQuery): void;
    /**
     * override to ensure dropdown fields and touch mode smart fields does not have a clear icon.
     */
    isClearable(): boolean;
    selectAll(): void;
    setCursorAtEnd(): void;
    setSelectionStart(selectionStart: number): void;
    protected _renderSelectionStart(): void;
    setSelectionEnd(selectionEnd: number): void;
    protected _renderSelectionEnd(): void;
    setSelectionTrackingEnabled(selectionTrackingEnabled: boolean): void;
    setInputMasked(inputMasked: boolean): void;
    protected _renderInputMasked(): void;
    protected _renderInputObfuscated(): void;
    setHasAction(hasAction: boolean): void;
    protected _renderHasAction(): void;
    protected _renderEnabled(): void;
    setFormatUpper(formatUpper: boolean): void;
    setFormatLower(formatLower: boolean): void;
    setFormat(format: StringFieldFormat): void;
    protected _renderFormat(): void;
    setSpellCheckEnabled(spellCheckEnabled: boolean): void;
    protected _renderSpellCheckEnabled(): void;
    protected _renderDisplayText(): void;
    /**
     * Inserts the text at the current cursor position. If text is selected, it will be replaced.
     *
     * @param text the text to be inserted.
     */
    insertText(text: string): void;
    protected _insertText(textToInsert: string): void;
    protected _applyTextToSelection(text: string, textToInsert: string, selection: StringFieldSelection): string;
    setWrapText(wrapText: boolean): void;
    protected _renderWrapText(): void;
    setTrimText(trimText: boolean): void;
    protected _renderTrimText(): void;
    setMultilineText(multilineText: boolean): void;
    protected _setMultilineText(multilineText: boolean): void;
    protected _renderGridData(): void;
    protected _renderGridDataHints(): void;
    setMaxLength(maxLength: number): void;
    protected _renderMaxLength(): void;
    /** @internal */
    _onIconClick(): void;
    protected _onSelectionChangingAction(event: JQuery.TriggeredEvent): void;
    protected _getSelection(): StringFieldSelection;
    protected _setSelection(selectionStartOrSelection: number | StringFieldSelection, selectionEnd?: number): void;
    protected _updateSelection(): void;
    triggerSelectionChange(): void;
    protected _validateValue(value: string): string;
    protected _clear(): void;
    protected _computeEmpty(): boolean;
    acceptInput(whileTyping?: boolean): void;
    protected _onFieldFocus(event: JQuery.FocusEvent): void;
    protected _showNotification(textKey: string): void;
    protected _checkDisplayTextChanged(displayText: string, whileTyping?: boolean): boolean;
}
export type StringFieldFormat = EnumObject<typeof StringField.Format>;
export type StringFieldSelection = {
    start: number;
    end: number;
};
//# sourceMappingURL=StringField.d.ts.map