import { BasicFieldEventMap, BasicFieldModel, ValueField } from '../../index';
/**
 * Common base class for ValueFields having an HTML input field.
 */
export declare abstract class BasicField<TValue extends TModelValue, TModelValue = TValue> extends ValueField<TValue, TModelValue> implements BasicFieldModel<TValue, TModelValue> {
    model: BasicFieldModel<TValue, TModelValue>;
    eventMap: BasicFieldEventMap<TValue>;
    self: BasicField<any>;
    updateDisplayTextOnModify: boolean;
    updateDisplayTextOnModifyDelay: number;
    protected _displayTextModifiedTimeoutId: number;
    protected _displayTextChangedWhileTyping: boolean;
    constructor();
    addField($field: JQuery): void;
    /** @see BasicFieldModel.updateDisplayTextOnModify */
    setUpdateDisplayTextOnModify(updateDisplayTextOnModify: boolean): void;
    /** @see BasicFieldModel.updateDisplayTextOnModifyDelay */
    setUpdateDisplayTextOnModifyDelay(delay: number): void;
    protected _clear(): void;
    protected _onFieldInput(): void;
    /**
     * Called when the property 'updateDisplayTextOnModified' is TRUE and the display text (field's input
     * value) has been modified by a user action, e.g. a key or paste event. If the property is FALSE, this
     * method is _never_ called. Uses the debounce pattern.
     */
    protected _onDisplayTextModified(): void;
    protected _acceptInputWhileTyping(): void;
    acceptInput(whileTyping?: boolean): void;
    protected _renderDisplayText(): void;
    protected _readDisplayText(): string;
    protected _checkDisplayTextChanged(displayText: string, whileTyping?: boolean): boolean;
}
//# sourceMappingURL=BasicField.d.ts.map