import { ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { UntypedFormGroup, NgForm } from '@angular/forms';
import { MenuItem } from 'primeng/api';
import { QuestionBase } from './question-base';
import { QuestionControlService } from './question-control.service';
import { QuestionService } from './question.service';
import { NavController } from '@ionic/angular';
import { StepperSelectionEvent } from '@angular/cdk/stepper';
import { MatStepper } from '@angular/material/stepper';
import { ActivatedRoute } from '@angular/router';
import { ValidationService } from '../../services/questionnaire/validation.service';
import { QuestionnaireService } from '../../services/questionnaire/questionnaire.service';
import { UtilService } from '../../services/util/util.service';
import { LoggerService } from '../../services/logger/logger.service';
import { BasePage } from '../../pages/BasePage';
import { QuestionnaireQueryModel } from '../../models/questionnaire/QuestionnaireQueryModel';
import { TranslateService } from '@ngx-translate/core';
import { Storage } from '@ionic/storage-angular';
import { ElementsModel } from '../../models/questionnaire/ElementsModel';
import { LoginService } from '../../services/login/login.service';
import { ErrorModel } from '../../models/ErrorModel';
import { MfaComponent } from '../mfa/mfa.component';
import { LoaderModel } from '../../models/questionnaire/LoaderModel';
import { CaptchaService } from '../../services/captcha/captcha.service';
import * as i0 from "@angular/core";
export declare class DynamicFormComponent extends BasePage implements OnInit, OnChanges {
    qes: QuestionService;
    questionnaireService: QuestionnaireService;
    navCtrl: NavController;
    private qcs;
    util: UtilService;
    private translate;
    private logger;
    validationService: ValidationService;
    el: ElementRef;
    private activatedRoute;
    storage: Storage;
    ls: LoginService;
    captcha: CaptchaService;
    mfa: MfaComponent;
    questionnaireForm: NgForm;
    potentialIssueId: number;
    blockUi: boolean;
    showMfa: boolean;
    questions: QuestionBase<string>[];
    forScreenQuestionnaire: QuestionBase<boolean>;
    isEnableBackButton: Boolean;
    potentialIssueIdBs: any;
    backButtonPage: string;
    nextButtonPage: string;
    pageType: string;
    hideFooter: boolean;
    multiMode: boolean;
    loaderService: string;
    loaderModel: LoaderModel;
    /**
     * when autoSave is false, component will only emit the value of the form builer data which needs to be saved by the calling component
     * only applicable when pageType is not POPUP and JSON
    **/
    autoSave: boolean;
    mfaRequired: boolean;
    modelCancel: EventEmitter<boolean>;
    onComplete: EventEmitter<any>;
    onError: EventEmitter<any>;
    stepper: MatStepper;
    data: any;
    readOnlyFields: string[];
    formReadOnly: Boolean;
    queryModel: QuestionnaireQueryModel;
    dynamicParam: any;
    formData: any;
    questionNumber: number;
    sizeXs: number;
    sizeSm: number;
    sizeMd: number;
    sizeLg: number;
    sizeXl: number;
    offsetXs: number;
    offsetSm: number;
    offsetMd: number;
    offsetLg: number;
    offsetXl: number;
    formGroupArray: UntypedFormGroup[];
    payLoad: string;
    items: MenuItem[];
    isFirst: boolean;
    isLast: boolean;
    submitted: boolean;
    hideStep: boolean;
    identifier: string;
    activeIndex: number;
    errorOccured: boolean;
    mfaData: any;
    mfaError: ErrorModel;
    ssnForCSR: string;
    td: any;
    alDec: string;
    var: number;
    constructor(qes: QuestionService, questionnaireService: QuestionnaireService, navCtrl: NavController, qcs: QuestionControlService, util: UtilService, translate: TranslateService, logger: LoggerService, validationService: ValidationService, el: ElementRef, activatedRoute: ActivatedRoute, storage: Storage, ls: LoginService, captcha: CaptchaService);
    ngOnChanges(changes: SimpleChanges): void;
    setFormValues(data: any): void;
    setValueInFormControl(name: any, value: any): void;
    getFormControlConfiguration(name: any): ElementsModel;
    setupLoaderModel(): void;
    /**
     * @description This method will also decrypt param values previously set in accept() method
     * from dynamic-form-question-component
     **/
    ngOnInit(): void;
    setValueSubscription(pageIndex: number, formGroup: UntypedFormGroup): void;
    setReadOnly(pageIndex: number, formGroup: UntypedFormGroup): void;
    setValidation(pageIndex: number, formGroup: UntypedFormGroup): void;
    setValidationForCheckBoxControl(element: any, formGroup: UntypedFormGroup): void;
    setValidationForRadioControl(element: any, formGroup: UntypedFormGroup): void;
    setValidationForDropDownControl(element: any, formGroup: UntypedFormGroup): void;
    setValidationForCommentControl(element: any, formGroup: UntypedFormGroup): void;
    setValidationForTextControl(element: any, formGroup: UntypedFormGroup): void;
    nextPage(index: number): void;
    prevPage(index: number): void;
    visibleIf(strExp: string, elementName: string, formGroup: UntypedFormGroup, element: any): boolean;
    complete(): void;
    saveScreenQuestionnaire(data: any): void;
    setPrevAndNextButton(): void;
    isPreviousPageAPlaceholder(page: any): boolean;
    stepChanged(event: StepperSelectionEvent): void;
    cancelAction(): void;
    cancelPopUp(): void;
    uploadFile(queue: File[]): void;
    blockFormUi(): void;
    unblockFormUi(): void;
    shouldFitContent(elements: ElementsModel[]): boolean;
    updateDynamicParam(event: any): void;
    onSubmit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "app-dynamic-form", never, { "questions": { "alias": "questions"; "required": false; }; "forScreenQuestionnaire": { "alias": "forScreenQuestionnaire"; "required": false; }; "isEnableBackButton": { "alias": "isEnableBackButton"; "required": false; }; "potentialIssueIdBs": { "alias": "potentialIssueIdBs"; "required": false; }; "backButtonPage": { "alias": "backButtonPage"; "required": false; }; "nextButtonPage": { "alias": "nextButtonPage"; "required": false; }; "pageType": { "alias": "pageType"; "required": false; }; "hideFooter": { "alias": "hideFooter"; "required": false; }; "multiMode": { "alias": "multiMode"; "required": false; }; "loaderService": { "alias": "loaderService"; "required": false; }; "autoSave": { "alias": "autoSave"; "required": false; }; "mfaRequired": { "alias": "mfaRequired"; "required": false; }; "data": { "alias": "data"; "required": false; }; "readOnlyFields": { "alias": "readOnlyFields"; "required": false; }; "formReadOnly": { "alias": "formReadOnly"; "required": false; }; "queryModel": { "alias": "queryModel"; "required": false; }; "dynamicParam": { "alias": "dynamicParam"; "required": false; }; "formData": { "alias": "formData"; "required": false; }; "questionNumber": { "alias": "questionNumber"; "required": false; }; "sizeXs": { "alias": "sizeXs"; "required": false; }; "sizeSm": { "alias": "sizeSm"; "required": false; }; "sizeMd": { "alias": "sizeMd"; "required": false; }; "sizeLg": { "alias": "sizeLg"; "required": false; }; "sizeXl": { "alias": "sizeXl"; "required": false; }; "offsetXs": { "alias": "offsetXs"; "required": false; }; "offsetSm": { "alias": "offsetSm"; "required": false; }; "offsetMd": { "alias": "offsetMd"; "required": false; }; "offsetLg": { "alias": "offsetLg"; "required": false; }; "offsetXl": { "alias": "offsetXl"; "required": false; }; }, { "modelCancel": "modelCancel"; "onComplete": "onComplete"; "onError": "onError"; }, never, never, false, never>;
}
//# sourceMappingURL=dynamic-form.component.d.ts.map