import { EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, ElementRef } from "@angular/core";
import { BehaviorSubject } from "rxjs";
import { DxcTextInputService } from "./services/dxc-text-input.service";
import { OnDestroy } from "@angular/core";
import { DxcTextInputHelper } from "./dxc-text-input.helper";
import { BackgroundProviderService } from "../background-provider/service/background-provider.service";
import { ControlValueAccessor } from "@angular/forms";
import EmittedValue from "./emitted-value.type";
import * as i0 from "@angular/core";
export declare class DxcTextInputComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {
    private cdRef;
    private service;
    private helper;
    bgProviderService?: BackgroundProviderService;
    className: any;
    hasError: boolean;
    label: string;
    name: string;
    value: string;
    id: string;
    helperText: string;
    autocomplete: string;
    hasAction: () => number;
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    get optional(): boolean;
    set optional(value: boolean);
    private _optional;
    clearable: boolean;
    error: any;
    placeholder: string;
    pattern: string;
    minLength: number;
    maxLength: number;
    margin: Object | string;
    suggestions: any;
    tabIndex: number;
    size: string;
    autoSuggestId: string;
    private controlled;
    defaultInputs: BehaviorSubject<any>;
    onChange: EventEmitter<EmittedValue>;
    onBlur: EventEmitter<EmittedValue>;
    onActionClick: EventEmitter<any>;
    inputRef: ElementRef;
    optionsRef: ElementRef;
    stepButtonMinus: ElementRef;
    stepButtonPlus: ElementRef;
    actionButton: ElementRef;
    autosuggestVisible: boolean;
    focusedOption: number;
    activedOption: number;
    filteredOptions: Array<string>;
    darkBackground: boolean;
    isDirty: boolean;
    options: Array<string>;
    loading: BehaviorSubject<boolean>;
    fetchingError: BehaviorSubject<boolean>;
    autosuggestType: string;
    validationError: string;
    isInputNumber: boolean;
    constructor(cdRef: ChangeDetectorRef, service: DxcTextInputService, helper: DxcTextInputHelper, bgProviderService?: BackgroundProviderService);
    onTouch: () => void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    ngOnDestroy(): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    handleOnChange(event: any): void;
    handleDefaultClearAction(): void;
    handleActionOnClick(event: any): void;
    handleOnBlur(): void;
    handleOnFocus(): void;
    focusInput(): void;
    handleOnClick(): void;
    handleOnClose(): void;
    handleOnClickOption(event: any): void;
    handleEnterKey(): void;
    handleMouseDown(event: any, index: any): void;
    handleOnLeave(): void;
    handleOnKeyDown(event: any): void;
    private patternMatch;
    private validateValue;
    private handleValidationError;
    private isRequired;
    private isLengthIncorrect;
    getAsyncSuggestions(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxcTextInputComponent, [null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxcTextInputComponent, "dxc-text-input", never, { "label": "label"; "name": "name"; "value": "value"; "id": "id"; "helperText": "helperText"; "autocomplete": "autocomplete"; "disabled": "disabled"; "optional": "optional"; "clearable": "clearable"; "error": "error"; "placeholder": "placeholder"; "pattern": "pattern"; "minLength": "minLength"; "maxLength": "maxLength"; "margin": "margin"; "suggestions": "suggestions"; "tabIndex": "tabIndex"; "size": "size"; }, { "onChange": "onChange"; "onBlur": "onBlur"; "onActionClick": "onActionClick"; }, never, ["dxc-text-input-prefix", "dxc-text-input-action", "dxc-text-input-suffix"]>;
}
//# sourceMappingURL=dxc-text-input.component.d.ts.map