import { EventEmitter, QueryList, ElementRef, SimpleChanges, AfterViewInit } from '@angular/core';
import { AbstractControl, FormArray, FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';
import { ChangeService } from '../../services/change.service';
import { DataService } from '../../services/data.service';
import { Subscription } from 'rxjs';
import { OwlDateTimeComponent } from '@danielmoncada/angular-datetime-picker';
import { QuillModules } from 'ngx-quill';
import * as i0 from "@angular/core";
export declare class NxtInput implements AfterViewInit {
    #private;
    private elementRef;
    private changeService;
    private dataService;
    label: string;
    labelFont: string;
    labelWeight: string;
    inputWeight: string;
    labelSize: string;
    inputValueSize: string;
    labelColor: string;
    showLabel: string;
    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;
    rawInputVal: any;
    set size(size: number);
    valueChange: EventEmitter<string>;
    inputValue: EventEmitter<any>;
    onBlur: EventEmitter<any>;
    onFocus: EventEmitter<any>;
    toggleEmit: EventEmitter<any>;
    clearInputEmit: EventEmitter<any>;
    nativeInputRef: EventEmitter<ElementRef<any>>;
    inputEls: QueryList<ElementRef<HTMLInputElement>>;
    dateTimePicker: any;
    datePicker: any;
    timePicker: any;
    dtPicker: OwlDateTimeComponent<Date>;
    dPicker: OwlDateTimeComponent<Date>;
    tPicker: OwlDateTimeComponent<Date>;
    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;
    dateSelected: any;
    timeSelected: any;
    viewEdit: boolean;
    originalValue: any;
    isSaveHovered: boolean;
    isDiscardHovered: boolean;
    constructor(elementRef: ElementRef, changeService: ChangeService, dataService: DataService);
    hasEmittedRef: boolean;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    getQuillModules(questionId: string): QuillModules;
    private setupValidators;
    closeDropdown(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: string): 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;
    get inputList(): AbstractControl<any, any>[];
    blurEmit(): void;
    focusinEmit(event: any): void;
    toggle(event: any): void;
    clearEmit(event: any): void;
    onEditorFocusOut(): void;
    viewEditClick(ques: any): void;
    saveChanges: (event?: CustomEvent) => void;
    discardChanges: (event?: CustomEvent) => void;
    openDatePicker(type: string): 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; }; "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; }; "size": { "alias": "size"; "required": false; }; }, { "valueChange": "valueChange"; "inputValue": "inputValue"; "onBlur": "onBlur"; "onFocus": "onFocus"; "toggleEmit": "toggleEmit"; "clearInputEmit": "clearInputEmit"; "nativeInputRef": "nativeInputRef"; }, never, never, true, never>;
}
