import { ElementRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { BehaviorSubject, Subject } from 'rxjs';
import { UniqueIdService } from '@ironsource/fusion-ui/services/unique-id';
import { InputSize, InputType, InputVariant } from './input-v4.entities';
import { FieldHelpTextTestIdModifiers, InputTestIdModifiers } from '@ironsource/fusion-ui/entities';
import { TestIdsService } from '@ironsource/fusion-ui/services/test-ids';
import * as i0 from "@angular/core";
export declare class InputV4Component implements OnInit, OnDestroy {
    protected uniqueIdService: UniqueIdService;
    private injector;
    set id(value: string);
    testId: string;
    /** @internal */
    testIdInputModifiers: typeof InputTestIdModifiers;
    /** @internal */
    testIdsService: TestIdsService;
    get testAttribute(): string;
    get id(): string;
    private _id;
    set labelText(value: string);
    get labelText(): string;
    private _labelText;
    set placeholder(value: string);
    get placeholder(): string;
    private _placeholder;
    set type(value: InputType);
    get type(): InputType;
    private _type;
    set startIcon(value: string);
    get startIcon(): string;
    private _startIcon;
    set endIcon(value: string);
    get endIcon(): string;
    private _endIcon;
    set prefix(value: string);
    get prefix(): string;
    private _prefix;
    set suffix(value: string);
    get suffix(): string;
    private _suffix;
    set size(value: InputSize);
    get size(): InputSize;
    private _size;
    set maxLength(value: number);
    get maxLength(): number;
    private _maxLength;
    set viewOnly(value: boolean);
    get viewOnly(): boolean;
    private _viewOnly;
    set showApply(value: boolean);
    get showApply(): boolean;
    private _showApply;
    set showClear(value: boolean);
    get showClear(): boolean;
    private _showClear;
    set showLengthCounter(value: boolean);
    get showLengthCounter(): boolean;
    private _showLengthCounter;
    set inlineErrorText(value: string);
    get inlineErrorText(): string;
    private _inlineErrorText;
    variant: InputVariant;
    helperText: string;
    helperIcon: string;
    set step(value: number);
    get step(): number;
    private _step;
    set min(value: number);
    get min(): number;
    private _min;
    set max(value: number);
    get max(): number;
    private _max;
    set hideNumberArrows(value: boolean);
    get hideNumberArrows(): boolean;
    private _hideNumberArrows;
    applyButtonClicked: EventEmitter<void>;
    /** @internal */
    input: ElementRef;
    /** @internal */
    onDestroy$: Subject<void>;
    /** @internal */
    inputControl: FormControl<any>;
    /** @internal */
    disabled$: BehaviorSubject<boolean>;
    /** @internal */
    showPasswordToggleButton$: BehaviorSubject<boolean>;
    /** @internal */
    valueLength$: BehaviorSubject<number>;
    private inputControlValueChanges$;
    private _inputValue;
    constructor(uniqueIdService: UniqueIdService, injector: Injector);
    ngOnInit(): void;
    ngOnDestroy(): void;
    clearButtonClicked(): void;
    /** @internal */
    clearInput(isFocused?: boolean): void;
    /** @internal */
    setFocus(): void;
    togglePasswordShown(): void;
    /** @internal */
    writeValue(value: any): void;
    /**
     * Method to call when the input value has changes.
     * @internal
     */
    propagateChange: (_: string) => void;
    /**
     * Method to call when the component is touched (when it was is clicked).
     * @internal
     */
    propagateTouched: () => void;
    /** @internal */
    registerOnChange(fn: any): void;
    /** @internal */
    registerOnTouched(fn: any): void;
    /** @internal */
    setDisabledState?(isDisabled: boolean): void;
    protected readonly FieldHelpTextTestIdModifiers: typeof FieldHelpTextTestIdModifiers;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputV4Component, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<InputV4Component, "fusion-input", never, { "id": { "alias": "id"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "type": { "alias": "type"; "required": false; }; "startIcon": { "alias": "startIcon"; "required": false; }; "endIcon": { "alias": "endIcon"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "suffix": { "alias": "suffix"; "required": false; }; "size": { "alias": "size"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "viewOnly": { "alias": "viewOnly"; "required": false; }; "showApply": { "alias": "showApply"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "showLengthCounter": { "alias": "showLengthCounter"; "required": false; }; "inlineErrorText": { "alias": "inlineErrorText"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "helperIcon": { "alias": "helperIcon"; "required": false; }; "step": { "alias": "step"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "hideNumberArrows": { "alias": "hideNumberArrows"; "required": false; }; }, { "applyButtonClicked": "applyButtonClicked"; }, never, never, true, never>;
}
