import { IChangingInputElement, ResetValueOptions } from './IChangingInputElement';
import { UpdateCallback } from './IInputElement';
import { InputElement } from './InputElement';
export declare abstract class ChangingInputElement<TValue> extends InputElement implements IChangingInputElement<TValue> {
    protected initialValue: TValue;
    protected _valueIsSet: boolean;
    protected _initialValueIsSet: boolean;
    protected constructor(update: UpdateCallback);
    /** @inheritdoc */
    setInitialValue(value: TValue): void;
    /** @inheritdoc */
    setValue(value: TValue): void;
    /** @inheritdoc */
    resetValue(options?: ResetValueOptions): void;
    protected abstract setInternalValue(value: TValue, isInitial: boolean): void;
    protected abstract resetInternalValue(): void;
}
