import { ControlComponentBaseDirective } from '../control-component-base/control-component-base.directive';
import { FudisFocusService } from '../../../services/focus/focus.service';
import { FudisIdService } from '../../../services/id/id.service';
import { BehaviorSubject, Subscription } from 'rxjs';
import { FudisInputSize } from '../../../types/forms';
import * as i0 from "@angular/core";
export declare class TextFieldComponentBaseDirective extends ControlComponentBaseDirective {
    constructor(_idService: FudisIdService, _focusService: FudisFocusService);
    /**
     * Width of the input field.
     */
    size: FudisInputSize;
    /**
     * If user clears the input field, set FormControl value to null instead of empty string.
     */
    nullControlOnEmptyString: boolean;
    /**
     * Max length for HTML attribute and for character indicator in guidance.
     */
    protected _maxLength: BehaviorSubject<number | null>;
    /**
     * Min length for HTML attribute.
     */
    protected _minLength: BehaviorSubject<number | null>;
    /**
     * Subscription to listen to control's value changes
     */
    protected _baseSubscription: Subscription;
    /**
     * Depending on input prop 'nullControlOnEmptyString' either subscribe or unsubscribe to control's
     * value changes
     */
    protected _setControlValueSubscription(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TextFieldComponentBaseDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TextFieldComponentBaseDirective, "[fudisTextFieldComponentBase]", never, { "size": { "alias": "size"; "required": false; }; "nullControlOnEmptyString": { "alias": "nullControlOnEmptyString"; "required": false; }; }, {}, never, never, false, never>;
}
