import { FormControl, FormArray, FormGroup } from '@angular/forms';
import { DetailsElementType } from '../../../common/core/interface/resume.interface';
import { ICountries } from '../../../common/core/interface/utils.interface';
import { Subject } from 'rxjs';
import { GroupBase } from '../../../common/core/group/group-base';
import { QuestionBase } from '../../../common/core/question/question-base';
import { QuestionApiService } from '../../../common/services/apis/question/question-api.service';
import { IonicSelectableComponent } from 'ionic-selectable';
import { ModalController } from '@ionic/angular';
import { ElementRef, EventEmitter, OnDestroy, OnInit, OnChanges } from '@angular/core';
import { MatTableDataSource } from '@angular/material/table';
import { DatePipe } from '@angular/common';
import * as i0 from "@angular/core";
export declare abstract class QuestionCreationAbstractDirective implements OnInit, OnDestroy, OnChanges {
    readonly _questionApi: QuestionApiService;
    readonly modalController: ModalController;
    datepipe: DatePipe;
    group: GroupBase<any>;
    index: number;
    isTable: boolean;
    question: QuestionBase<any>;
    form: FormArray;
    detailsType: DetailsElementType;
    requerido: boolean;
    isDetail: boolean;
    isFirstRender: boolean;
    isMovilView: boolean;
    onFile: EventEmitter<any>;
    onDeleteFile: EventEmitter<any>;
    onChangeRadio: EventEmitter<any>;
    onDisableRadio: EventEmitter<any>;
    onAddTableWithData: EventEmitter<any>;
    dni: ElementRef;
    mySelections: string[];
    validations: {
        email: ({
            type: string;
            message: string;
        } | {
            type: string;
            message: (input: any) => string;
        })[];
        datepicker: {
            type: string;
            message: string;
        }[];
        passport: {
            type: string;
            message: string;
        }[];
        dni: {
            type: string;
            message: string;
        }[];
        username: {
            type: string;
            message: string;
        }[];
        confirm_password: {
            type: string;
            message: string;
        }[];
        password: {
            type: string;
            message: string;
        }[];
        terms: {
            type: string;
            message: string;
        }[];
        phone: {
            type: string;
            message: string;
        }[];
        textbox: ({
            type: string;
            message: string;
        } | {
            type: string;
            message: (input: any) => string;
        })[];
    };
    formatDate: any;
    columnsToDisplay: string[];
    columnsToDialog: string[];
    columnValues: any;
    data: MatTableDataSource<any>;
    countries: ICountries[];
    emailreg: RegExp;
    RegExpDni: RegExp;
    dateRegex: RegExp;
    dirAttached: File;
    matchInput: FormControl;
    hiddenInputTitle: string[];
    archivo: string;
    floatLabel: string;
    isLoadingFile: boolean;
    listado: any[];
    private readonly hasBeenBuild;
    private subscriptions;
    protected destroySubject$: Subject<void>;
    get ShowInputTitle(): boolean;
    portChange(event: {
        component: IonicSelectableComponent;
        value: any;
    }): void;
    get currentFormControl(): FormGroup;
    constructor(_questionApi: QuestionApiService, modalController: ModalController, datepipe: DatePipe);
    ngOnInit(): void;
    checkboxChange(): void;
    showAlertDialog(): Promise<void>;
    get isSeteableValue(): boolean;
    openInfoModal(): Promise<void>;
    checkDni(dniValue: string): void;
    initialFormatDate(): string;
    normalizeDate(): string;
    isValidDate(date: any): boolean;
    checkDate(day: any, month: any, year: any): boolean;
    changeDate(date: any): void;
    isOver18(dateOfBirth: any): boolean;
    ngOnChanges(changes: import('@angular/core').SimpleChanges): void;
    ngAfterViewInit(): void;
    validarTelefono(): void;
    onChangeTableAccionista(): void;
    checkRequerido(changes: any): void;
    checkReferenced(): void;
    checkCorrection(): void;
    get control(): any;
    get isValid(): any;
    get value(): any;
    checkValidations(): void;
    saveFile(file?: any): void;
    resetFile(): void;
    get flexValue(): number;
    unselectRadio(value: any): void;
    selectRadio(opt: any): void;
    initInputTable(): void;
    disableValidator(): void;
    enableValidator(): void;
    getValores(result: any): any[];
    checkInputs(question: any, val: any): any;
    checkSelect(question: any, val: any): any[];
    checkOptions(question: any, val: any): any[];
    checkCountryMultiple(question: any, val: any): any[];
    checkCountrySingle(question: any, val: any): any[];
    checkCountrySingleNotDetail(question: any, val: any): any[];
    checkRadio(question: any, val: any): any;
    transformResult(listado: any, result: any): any;
    getListado(result: any): any[];
    openImage(url: any): void;
    onKeyInputConfirmed(event: Event): void;
    onKeyConfirmed(event: any): void;
    tooltipViewMobile(message: any): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<QuestionCreationAbstractDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<QuestionCreationAbstractDirective, never, never, { "group": "group"; "index": "index"; "isTable": "isTable"; "question": "question"; "form": "form"; "detailsType": "detailsType"; "requerido": "requerido"; "isDetail": "isDetail"; "isFirstRender": "isFirstRender"; "isMovilView": "isMovilView"; }, { "onFile": "onFile"; "onDeleteFile": "onDeleteFile"; "onChangeRadio": "onChangeRadio"; "onDisableRadio": "onDisableRadio"; "onAddTableWithData": "onAddTableWithData"; }, never>;
}
//# sourceMappingURL=dynamic-form-question.d.ts.map