import { EventEmitter, OnInit, ElementRef, OnDestroy, AfterViewInit } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { InputConfigByStyle } from './input.component.config';
import { InputParameters } from './input-parameters';
import { InputConfiguration } from './input-entities';
import * as i0 from "@angular/core";
export declare class InputBaseComponent extends InputParameters implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor {
    /** @internal */
    elementRef: ElementRef;
    /** @internal */
    input: ElementRef;
    /** @internal */
    fileInput: ElementRef;
    /** @internal */
    loading: boolean;
    /** @internal */
    /** @internal */
    ngFocus: EventEmitter<void>;
    /** @internal */
    ngBlur: EventEmitter<void>;
    /** @internal */
    ngEnter: EventEmitter<any>;
    /** @internal */
    ngEscape: EventEmitter<any>;
    /** @internal */
    btnAction: EventEmitter<MouseEvent>;
    /** @internal */
    passHiddenStateChanged: EventEmitter<boolean>;
    /** @internal */
    onDestroy$: Subject<void>;
    /** @internal */
    inputControl: FormControl<any>;
    /** @internal */
    file: FormControl<any>;
    /** @internal */
    focused: boolean;
    /** @internal */
    step: string;
    /** @internal */
    showErrorClass$: BehaviorSubject<boolean>;
    /** @internal */
    configByStyle$: Observable<InputConfigByStyle>;
    /** @internal */
    disabled$: BehaviorSubject<boolean>;
    /** @internal */
    isDisabledInput$: BehaviorSubject<boolean>;
    /** @internal */
    isDisabledFormControl$: BehaviorSubject<boolean>;
    private inputControlValueChanges$;
    private fileControlValueChanges$;
    private _isPassHidden;
    private onBlur;
    constructor(
    /** @internal */
    elementRef: ElementRef);
    get config(): InputConfiguration;
    get isSmall(): boolean;
    set isPassHidden(val: boolean);
    get isPassHidden(): boolean;
    get isReadOnly(): boolean;
    get displaySearchIcon(): boolean;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /** @internal */
    initChangesTrigger(): void;
    initDisabledStateChanged(): void;
    /** @internal */
    onConfigurationChanged(value: InputConfiguration): void;
    /** @internal */
    getHolderClasses(): string[];
    /** @internal */
    showErrorIcon(): boolean;
    /** @internal */
    getErrorIcon(errorType: string, infoIconName: string, warningIconName: string): string;
    /** @internal */
    getTooltipErrorsMessage(): string;
    /** @internal */
    blur(): void;
    /** @internal */
    focus(): void;
    /** @internal */
    onButtonClicked($event: MouseEvent): void;
    /** @internal */
    clearInput(isFocused?: boolean): void;
    /** @internal */
    setFocus(): void;
    /** @internal */
    passToggle($event: Event): void;
    /** @internal */
    getInputType(): string;
    /** @internal */
    onPassToggleMouseDown($event: Event): void;
    /** @internal */
    toggleErrorClass(error: boolean): void;
    /** @internal */
    writeValue(value: any): void;
    /**
     * Method to call when the input value has changes.
     * @internal
     */
    propagateChange: (_: string) => void;
    /** @internal */
    registerOnChange(fn: any): void;
    /** @internal */
    registerOnTouched(fn: any): void;
    /** @internal */
    setDisabledState?(isDisabled: boolean): void;
    private getStepIndication;
    private setPasswordShownState;
    private getFileControlValueChangesObservable;
    private setInputElementListeners;
    private inputKeydownHandler;
    private setMouseWheelListener;
    private setKeyDownListener;
    private onOptionsChanged;
    private onDisabledChanged;
    private onErrorChanged;
    protected getConfigStyleObservable(): Observable<InputConfigByStyle>;
    static ɵfac: i0.ɵɵFactoryDeclaration<InputBaseComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InputBaseComponent, never, never, { "loading": { "alias": "loading"; "required": false; }; }, { "ngFocus": "ngFocus"; "ngBlur": "ngBlur"; "ngEnter": "ngEnter"; "ngEscape": "ngEscape"; "btnAction": "btnAction"; "passHiddenStateChanged": "passHiddenStateChanged"; }, never, never, false, never>;
}
