import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
import { FormGroup, FormControl, FormArray, FormBuilder, AbstractControl } from '@angular/forms';
import { GlobalStateService, PageInfoService } from 'tango-app-ui-global';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { ActivatedRoute, Router } from '@angular/router';
import { ToastService } from 'tango-app-ui-shared';
import { TraxService } from '../../services/trax.service';
import dayjs from 'dayjs';
import * as i0 from "@angular/core";
export declare class AddChecklistComponent implements OnInit, OnDestroy {
    private pageInfo;
    private fb;
    private changedetector;
    private dialog;
    private route;
    private toast;
    private router;
    private sopService;
    private gs;
    formRef: ElementRef;
    ChecklistForm: FormGroup;
    show: number;
    sectionIndex: number;
    getobject: any;
    editvalue: any;
    nosection: boolean;
    showvalue: string;
    refImgQIdx: number;
    checklistLoading: boolean;
    popupCount: number;
    clientId: any;
    deletedList: any;
    environment: any;
    userType: any;
    maxSectionNumber: any;
    dropdownValue: any;
    dayjs: typeof dayjs;
    private detach;
    constructor(pageInfo: PageInfoService, fb: FormBuilder, changedetector: ChangeDetectorRef, dialog: NgbModal, route: ActivatedRoute, toast: ToastService, router: Router, sopService: TraxService, gs: GlobalStateService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    setPageData(): void;
    updateInputValue(sectionIndex: number, sectionName: string): void;
    scrollToQuestion(sectionIndex: number, questionIndex: number): void;
    formChecklistQuestions(): void;
    initChecklist(): void;
    allowedValuesValidator(allowedValues: string[]): (control: any) => {
        invalidValue: boolean;
    } | null;
    addNewSection(): void;
    removeSection(sectionIndex: number): void;
    dragDrop(sectionIndex: any, event: CdkDragDrop<any[]>): void;
    updatelinkedQuestionNo(secIdx: number, prevIdx: number, qnIdx: number): void;
    answerTypeSelection(sectionIndex: any, questionIndex: any, event: any): void;
    setAnswerAsTime(secIdx: number, qnIdx: number, type: string): void;
    removeQuestionLinked(secIdx: any, qnIdx: any): void;
    updateValidationType(event: any, section: number, question: number, answer: number): void;
    setAnswerAsFormArray(sectionIndex: number, questionIndex: number, selectvalue: string): void;
    setAnswerAsFormGroup(sectionIndex: number, questionIndex: number, answerType: string): void;
    loadImageFromDevice(secIdx: number, qIdx: number, event: any, ansIdx?: number, ctrlName?: string, imgIdx?: number): void;
    clearReferenceImage(secIdx: number, qIdx: number, ansIdx?: number, imageIndex?: number, ctrlName?: string): null | undefined;
    getvalidation(sectionIndex: any, questionIndex: any, addmoreqnIndex: any, event: any): void;
    addNewQuestion(sectionIndex: number): void;
    deleteQuestion(sectionIndex: any, questionIndex: any): void;
    subtractQuestionno(sectionIndex: number, questionIndex: any): void;
    raiseflag(sectionIndex: number, questionIndex: number, ansIdx: number, value: boolean, linkIndex?: number, linkAnsIndex?: number): void;
    addNestedQuestion(sectionIndex: number, questionIndex: number, ansIdx: number, value: boolean, linkedQuestionIndex?: number, linkedAnswer?: number): void;
    accordian(index: any): void;
    deleteSection(sectionIndex: any): void;
    AddMoreAns(sectionindex: any, questionIndex: any, type: string): void;
    deleteAnswer(sectionIndex: number, questionIndex: number, addmoreqnIndex: number, ansIndex?: number): void;
    cloneQuestion(sectionindex: any, questionindex: any): void;
    updateClonedlinkedQuestionNo(secIdx: number, qidx: number): void;
    saveChecklistQuestions(type: string): void;
    saveAsDraftPop(type: string): void;
    updateChecklistQuestions(type: string): void;
    markFormControlsAsTouched(control: FormGroup | FormArray, sectionIndex?: number): void;
    scrollToErrors(sections: FormArray): void;
    swalToast(err: string, type?: string, icon?: string): void;
    RunAI(sIdx: number, qIdx: number, ansIdx?: number): void;
    runAIOff(sIdx: number, qIdx: number, showError?: boolean, ansIdx?: number): void;
    unlockQuestionAfterRunAIOff(sIdx: number, qIdx: number, ansIdx?: number): void;
    getSectionFormArray(): FormArray<any>;
    getFormControl(formControl: string): FormControl<any>;
    getSectionFormControl(sectionIndex: number, formControlName: string): AbstractControl<any, any> | null;
    getQuestionFormControl(sectionIndex: number, questionIndex: number, formControlName: string, ansIdx?: number): FormControl<any> | null;
    getFormArrayQuestions(sectionIndex: number): FormArray<any>;
    getQuestionsFormGroup(sectionIndex: number, questionIndex: number): FormGroup<any>;
    getFormArrayQuestionsAnswer(sectionIndex: number, questionIndex: number, formArrayName: string, ansIndex?: number, linkquestionIndex?: number): FormArray<any>;
    getFormArrayLinkedQuestions(sectionIndex: number, questionIndex: number, answerIndex: number): FormArray<any>;
    getQuestionsFormArrayValues(sectionIndex: number): any[];
    getAnswerFormGroup_FormControl(sectionIndex: number, questionIndex: number, formControlName: string, ansIdx?: number): FormArray<any> | FormControl<any> | null;
    removedNestedQuestion(sectionindex: number, qno: any): void;
    updateQuestionQnos(sectionindex: number): void;
    getQuestionsAnswerFormGroup(sectionIndex: number, questionIndex: number, ansIndex: number): FormGroup<any>;
    setActiveQuestion(secIdx: number, questionIndex: number, activestatus: number, answerIndex?: number): void;
    allowAddAnswer(answers: any[]): boolean;
    getQuestionList(secIdx: number, qntIdx: number, ansIdx: number): number[];
    updateLinked(secIdx: number, qnIdx: number, ansIdx: number): void;
    updateQuestionType(secIdx: number, qnIdx: number, ansIdx: number, event: any): void;
    selectOption(qno: any, ansLinked: any): boolean;
    getQuestionName(secIdx: number, qIdx: number): any;
    RunAINew(sIdx: number, qIdx: number, ansIdx: number | undefined, event: any): void;
    insertFeatures(data: any): void;
    onPopup(image: string): void;
    dateRange(event: any, type: string, secIdx: number, qnIdx: number): void;
    /** Returns true when Configure Compliance Score should be disabled.
     * Disabled when validate response is enabled, EXCEPT when:
     *  - validationType is "Capture Image" and Run AI is enabled, OR
     *  - validationType is "Capture Multiple Image with description" and Run AI is enabled and at least one reference image is added. */
    hasValidationEnabled(sectionIndex: number, questionIndex: number): boolean;
    /** "Not Applicable" option — its compliance score is always 0 and is excluded from scoring.
     * Match is case-insensitive against "n/a" or "na" (after trimming). */
    isNotApplicableOption(value: any): boolean;
    /** Lock or unlock a single answer's compliance score based on whether it's an "N/A"
     * multiplechoicesingle option. N/A options are forced to 0 and disabled so they can't be scored. */
    applyNotApplicableLock(answer: FormGroup, answerType: string): void;
    /** Re-evaluate the N/A lock whenever a multiplechoicesingle option's text is edited. */
    onAnswerValueChange(secIdx: number, qnIdx: number, ansIdx: number): void;
    /** Normalize on load: lock the compliance score of any "N/A" multiplechoicesingle option to 0. */
    lockNotApplicableComplianceScores(): void;
    getComplianceToast(secIdx: number, qnIdx: number, event: any): void;
    bulkUploadQuestion(): void;
    updateNumber(event: any, secIdx: number, qnIdx: number): void;
    onRangeValueInput(event: Event, secIdx: number, qnIdx: number, controlName: 'minValue' | 'maxValue'): void;
    clampRangeInput(secIdx: number, qnIdx: number, controlName: 'minValue' | 'maxValue'): void;
    updateLimit(event: any, secIdx: number, qnIdx: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddChecklistComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddChecklistComponent, "lib-add-checklist", never, {}, {}, never, never, false, never>;
}
