import { EventEmitter, QueryList, ElementRef, SimpleChanges, AfterViewInit, Renderer2, ChangeDetectorRef, NgZone } from '@angular/core';
import { AbstractControl, FormArray, FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';
import { Subscription } from 'rxjs';
import { QuillModules } from 'ngx-quill';
import { ChangeService } from '../../services/change/change.service';
import { DataService } from '../../services/data/data.service';
import { TranslationService } from '../../services/translation/translation.service';
import { NxtDatePipe } from '../../pipe/NxtDate.pipe';
import { StorageService } from '../../services/storage/storage.service';
import { CountryService } from '../../services/country/country.service';
import { GoogleMapsLoaderService } from '../../services/GoogleMapsLoaderService/google-maps-loader-service.service';
import * as i0 from "@angular/core";
export declare class NxtInput implements AfterViewInit {
    #private;
    private nxtDatePipe;
    private mapsLoader;
    private cdr;
    private ngZone;
    private countryService;
    private storageService;
    private translationService;
    private renderer;
    private elRef;
    private elementRef;
    private changeService;
    private dataService;
    label: string;
    labelFont: string;
    labelWeight: string;
    inputWeight: string;
    labelSize: string;
    inputValueSize: string;
    textAlign: string;
    labelColor: string;
    showLabel: boolean;
    svgHeight: string;
    svgWidth: string;
    type: string;
    inputIconRightSrc: string;
    inputIconLeftSrc: string;
    required: boolean;
    minLength?: number;
    pattern?: any;
    errorMessages: {
        [key: string]: string;
    };
    maxLength: number;
    placeholder: string;
    inputBgColor: string;
    inputBorder: string;
    placeholderColor: string;
    placeholderFont: string;
    placeholderWeight: string;
    placeholderSize: string;
    inputTextColor: string;
    inputHeight: string;
    inputWidth: string;
    inputId: string;
    inputBorderSize: string;
    inputConfig: any;
    confPassVal: any;
    confPass: boolean;
    mode: 'view' | 'edit' | 'print';
    value: any;
    question: any;
    showSuggestion: boolean;
    ariaOwns?: string;
    ariaHasPopup?: string;
    isLoading: boolean;
    options: any[];
    minDate: any;
    maxDate: any;
    rows: number;
    from: any;
    selectedOption: any;
    apiMeta: any;
    direction: any;
    currency: any;
    helpText: any;
    apiKey: any;
    readOnly: boolean;
    padding: any;
    margin: any;
    onlyView: boolean;
    set size(size: number);
    valueChange: EventEmitter<string>;
    inputValue: EventEmitter<any>;
    selectEmit: EventEmitter<any>;
    onBlur: EventEmitter<any>;
    onFocus: EventEmitter<any>;
    toggleEmit: EventEmitter<any>;
    removeValueEmit: EventEmitter<any>;
    inputEls: QueryList<ElementRef<HTMLInputElement>>;
    inputRef: ElementRef;
    inputs: FormArray<any>;
    control: FormControl;
    isPasswordVisible: boolean;
    countryCode: string;
    countries: ({
        name: string;
        flag: string;
        code: string;
        dial_code: string;
        regex: string;
        placeholder: string;
        example?: undefined;
        format?: undefined;
    } | {
        name: string;
        flag: string;
        code: string;
        dial_code: string;
        regex: string;
        placeholder: string;
        example: string;
        format?: undefined;
    } | {
        name: string;
        code: string;
        dial_code: string;
        regex: string;
        placeholder: string;
        format: string;
        flag: string;
        example?: undefined;
    })[];
    filteredCountries: any;
    selectedCountry: any;
    showCountryDropdown: boolean;
    countrySearch: string;
    subscription: Subscription;
    viewEdit: boolean;
    originalValue: any;
    private lastClickTime;
    cachedInputList: any[];
    showHijriPicker: boolean;
    dateFormatName: any;
    rawInputVal: any;
    languageCode: any;
    currencyOptions: any;
    currentCurrency: any;
    showModal: boolean;
    private geoCoder;
    markerOptions: any;
    markerPosition: {
        lat: number;
        lng: number;
    };
    private googleMapsPromise;
    private destroy$;
    private removeDocClick?;
    private timers;
    constructor(nxtDatePipe: NxtDatePipe, mapsLoader: GoogleMapsLoaderService, cdr: ChangeDetectorRef, ngZone: NgZone, countryService: CountryService, storageService: StorageService, translationService: TranslationService, renderer: Renderer2, elRef: ElementRef, elementRef: ElementRef, changeService: ChangeService, dataService: DataService);
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    private updateInputList;
    getQuillModules(questionId: string): QuillModules;
    private setupValidators;
    closeDropdown(event: Event): void;
    onClickOutside(event: Event): void;
    onChange: (value: string) => void;
    onTouched: () => void;
    registerOnTouched(fn: any): void;
    onInputChange(event: any): void;
    togglePasswordVisibility(): void;
    passwordMatchValidator(): ValidatorFn;
    getErrorMessage(): string;
    writeValue(value: any, from?: any): void;
    registerOnChange(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    private updateControlState;
    validate(control: AbstractControl<string, string>): ValidationErrors | null;
    handleKeyDown(e: KeyboardEvent, idx: number): void;
    handleInput(): void;
    handleKeyPress(e: KeyboardEvent, idx: number): boolean;
    handlePaste(e: ClipboardEvent, idx: number): void;
    handleFocus(e: FocusEvent): void;
    toggleCountryDropdown(): void;
    filterCountries(event: any): void;
    selectCountry(country: any): void;
    removeDialCodeFromRegex(originalRegex: string, dialCode: string): string;
    removeDialCode(placeholder: string): string;
    blurEmit(): void;
    focusinEmit(event: any): void;
    toggle(event: any): void;
    onEditorFocusOut(): void;
    viewEditClick(ques: any): void;
    saveChanges: (event?: CustomEvent) => void;
    discardChanges: (event?: CustomEvent) => void;
    openDatePicker(type: string): void;
    removeValue(): void;
    onHijriInputClick(): void;
    private searchFromApi;
    initAutocomplete(): void;
    openMap(): void;
    closeModal(): void;
    private setCurrentLocation;
    getAddress(latitude: number, longitude: number): void;
    onMapClick(event: google.maps.MapMouseEvent): void;
    onMarkerDragEnd(event: google.maps.MapMouseEvent): void;
    loadGoogleMaps(): Promise<void>;
    allowNumberDecimal(event: KeyboardEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NxtInput, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NxtInput, "nxt-input", never, { "label": { "alias": "label"; "required": false; }; "labelFont": { "alias": "labelFont"; "required": false; }; "labelWeight": { "alias": "labelWeight"; "required": false; }; "inputWeight": { "alias": "inputWeight"; "required": false; }; "labelSize": { "alias": "labelSize"; "required": false; }; "inputValueSize": { "alias": "inputValueSize"; "required": false; }; "textAlign": { "alias": "textAlign"; "required": false; }; "labelColor": { "alias": "labelColor"; "required": false; }; "showLabel": { "alias": "showLabel"; "required": false; }; "svgHeight": { "alias": "svgHeight"; "required": false; }; "svgWidth": { "alias": "svgWidth"; "required": false; }; "type": { "alias": "type"; "required": false; }; "inputIconRightSrc": { "alias": "inputIconRightSrc"; "required": false; }; "inputIconLeftSrc": { "alias": "inputIconLeftSrc"; "required": false; }; "required": { "alias": "required"; "required": false; }; "minLength": { "alias": "minLength"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "inputBgColor": { "alias": "inputBgColor"; "required": false; }; "inputBorder": { "alias": "inputBorder"; "required": false; }; "placeholderColor": { "alias": "placeholderColor"; "required": false; }; "placeholderFont": { "alias": "placeholderFont"; "required": false; }; "placeholderWeight": { "alias": "placeholderWeight"; "required": false; }; "placeholderSize": { "alias": "placeholderSize"; "required": false; }; "inputTextColor": { "alias": "inputTextColor"; "required": false; }; "inputHeight": { "alias": "inputHeight"; "required": false; }; "inputWidth": { "alias": "inputWidth"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "inputBorderSize": { "alias": "inputBorderSize"; "required": false; }; "inputConfig": { "alias": "inputConfig"; "required": false; }; "confPassVal": { "alias": "confPassVal"; "required": false; }; "confPass": { "alias": "confPass"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "value": { "alias": "value"; "required": false; }; "question": { "alias": "question"; "required": false; }; "showSuggestion": { "alias": "showSuggestion"; "required": false; }; "ariaOwns": { "alias": "ariaOwns"; "required": false; }; "ariaHasPopup": { "alias": "ariaHasPopup"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "options": { "alias": "options"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "from": { "alias": "from"; "required": false; }; "selectedOption": { "alias": "selectedOption"; "required": false; }; "apiMeta": { "alias": "apiMeta"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "currency": { "alias": "currency"; "required": false; }; "helpText": { "alias": "helpText"; "required": false; }; "apiKey": { "alias": "apiKey"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; "onlyView": { "alias": "onlyView"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "valueChange": "valueChange"; "inputValue": "inputValue"; "selectEmit": "selectEmit"; "onBlur": "onBlur"; "onFocus": "onFocus"; "toggleEmit": "toggleEmit"; "removeValueEmit": "removeValueEmit"; }, never, never, true, never>;
}
