import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormControl } from '@angular/forms';
import { DatePickerComponent } from 'ng2-date-picker';
import { AuthService } from '../workflow-services/auth.service';
import { ProgramsService } from '../workflow-services/programs.service';
import { UiKitService } from '../workflow-services/ui-kit.service';
import { IframeService } from '../services/iframe.service';
import * as i0 from "@angular/core";
export declare class WorkflowProgramComponent implements OnInit {
    private fb;
    private programService;
    private authService;
    private uiKitService;
    private iframeService;
    private changeRef;
    ASSETS: {
        responsibility_center: string;
        case_type: string;
        case_category: string;
        when: string;
        what: string;
        case_resolution_deadline: string;
        case_assignees: string;
        format_evidence: string;
        case_owners: string;
        link_controls: string;
        link_items: string;
        spreadsheet_multiple_category: string;
        recommended_action: string;
        risks: string;
        exception_type: string;
        priority: string;
        associated_risks: string;
        oversight: string;
        add_risk_more_option: string;
        lables: string;
        reviewer: string;
        checkpoints: string;
        assessments: string;
        objectives: string;
        audit: string;
        roles: string;
        approval: string;
        recurring: string;
        lock_scope: string;
        custom_fields: string;
        link_risks: string;
        placeholder: string;
        add_logic: string;
        image_choice: string;
        logic_image_choice: string;
        thank_you_image: string;
        upload: string;
        select_users: string;
        everyone_as_per_category: string;
        bulb: string;
        enter_icon: string;
        im_creating: string;
        notes: string;
        attestations: string;
        risk_category: string;
        issue_type: string;
        type: string;
        search_data: string;
        approval_workflow: string;
        sequential: string;
        round_robin: string;
        anyone: string;
        collaborator: string;
    };
    constants: {
        categoryType: {
            label: string;
            value: number;
        }[];
        performanceCalculation: {
            label: string;
            value: string;
        }[];
        dateConfig: {
            disableKeypress: boolean;
            format: string;
            unSelectOnClick: boolean;
            openOnClick: boolean;
            openOnFocus: boolean;
            min: string;
        };
        description: {
            mode: string;
            colorPalette: boolean;
            link: boolean;
            file: boolean;
            id: string;
            placeholder: string;
        };
        objective: {
            mode: string;
            colorPalette: boolean;
            link: boolean;
            file: boolean;
            id: string;
            placeholder: string;
        };
        additionalOption: {
            REVIEWER: boolean;
            OVERSEER: boolean;
            ASSESSMENT: boolean;
            FORMATE_EVIDENCE: boolean;
            CUSTOM_FIELDS: boolean;
            PROGRAM_FREQUENCY: boolean;
            SCOPE_CHANGES: boolean;
            RC: boolean;
            ROLES: boolean;
            OWNERS: boolean;
            APPROVER: boolean;
            ASSIGNEES: boolean;
        };
    };
    showConfirmation: any;
    isAscentAllowed: boolean;
    ff_rc_listing: boolean;
    form: ElementRef;
    datePickerOverlay: boolean;
    datePicker: DatePickerComponent;
    pickerChanged: EventEmitter<any>;
    populateOption: EventEmitter<any>;
    closeWorkflow: EventEmitter<any>;
    showConfirmationAlert: EventEmitter<any>;
    disconnectRefresh: EventEmitter<any>;
    refreshForm: EventEmitter<any>;
    hideElementsFromMoreOptions: EventEmitter<any>;
    onRemovingRole: EventEmitter<any>;
    disableElementsFromMoreOptions: EventEmitter<any>;
    scrollToBottom: boolean;
    canFrameworkChange: boolean;
    programSimplifyFlag: boolean;
    mode: string;
    programId: string;
    programType: number;
    allowedFeature: any;
    addToProgramDetails: any;
    orgDetails: any;
    panelTitleDefaultReviewer: string;
    panelTitleOwner: string;
    panelTitleReviewer: string;
    panelTitleAssignee: string;
    panelTitleCollaborator: string;
    panelTitleApprover: string;
    isApproverDisabled: boolean;
    isProgramScope: boolean;
    toolTipData: any;
    businessCycle: any;
    featureflagrole: boolean;
    featureflagGroups: boolean;
    disableCollaboratorIds: any[];
    selectedReviewerIds: any[];
    selectedAssigneeIds: any[];
    selectedOverseerIds: any[];
    assignorId: number[];
    disableReviewerIds: any[];
    disableOverseerIds: any[];
    COLLABORATOR_PLACEHODLER: string;
    constructor(fb: UntypedFormBuilder, programService: ProgramsService, authService: AuthService, uiKitService: UiKitService, iframeService: IframeService, changeRef: ChangeDetectorRef);
    noWhitespaceValidator(control: UntypedFormControl): {
        whitespace: boolean;
    } | null;
    blankArrayValidator(control: UntypedFormControl): {
        blank: boolean;
    } | null;
    loader: boolean;
    showSmiley: boolean;
    actionButtons: {
        buttonText: string;
        class: string;
        id: string;
    }[];
    smileyMessage: string;
    createdProgramId: string;
    isObjectiveValid: boolean;
    isNameExists: boolean;
    programForm: import("@angular/forms").UntypedFormGroup;
    showAddCustomField: boolean;
    editorData: {
        programObjective: string;
        programDescription: string;
    };
    selectedAssessment: any;
    manageProgramsRoleId: string[];
    currentUser(): {
        member_email: any;
        member_id: any;
        member_name: any;
        user_role: string;
        _id: string;
    };
    setFormField(controlName: string, value: any, isFromForm?: boolean): void;
    get formValid(): boolean;
    controls: any;
    lists: any;
    listLoadingState: {
        ROLES: boolean;
        USERS: boolean;
        GROUP: boolean;
        RC: boolean;
    };
    sideElements: string[];
    ngOnInit(): void;
    get valid(): boolean;
    additionalOption: any;
    activeList: string;
    /**
     * #### Description
     * Populates optional fields status for the optional fields
     */
    populateOptionalFields(): void;
    addMoreInfo(event: any): void;
    formChangeListner(): void;
    handleFormFieldChange(control: string, payload?: any): void;
    activateList(evt: string): void;
    listAction(evt: any, type: any): void;
    remove(evt: any, type: any): void;
    returnIds(list: any[], key: string): any[];
    refreshList(): void;
    removeRole(evt: any): void;
    setDefaultAssignee(evt: any): void;
    setDefaultAssigneeOnRemove(evt: any, type: any): void;
    setDefaultReviewer(evt: any): void;
    setDefaultOverseer(evt: any): void;
    setDefaultReviewerOnRemove(evt: any, type: any): void;
    setDefaultOverseerOnRemove(evt: any, type: any): void;
    fieldDeselector(type: any): void;
    markasTouchedSelector(fieldName: any): void;
    fetchRoles(): void;
    getManageProgramsRoleId(): any;
    fetchRC(): void;
    fetchUsersAssociatedWithRoles(calledFrom?: any): void;
    fetchUserWithManageProgramsRole(): void;
    fetchGroupsAssociatedWithRoles(): void;
    setDefaultOwners(userList: any, calledFrom?: any): void;
    getPreSelectedOwners(previousSelectedUsers: any, currentUsers: any): any;
    fetchOrganizationUsers(data?: any): void;
    fetchOrganizationGroup(data?: any): void;
    fileUploadTracker: {
        description: never[];
        objective: never[];
    };
    selectFile(type: any, files: any): void;
    uploadFiles(type: 'DESCRIPTION' | 'OBJECTIVE', file: any): void;
    deleteAttachment(type: 'DESCRIPTION' | 'OBJECTIVE', file: any): void;
    selectAllRoleOwner(evt: any): void;
    /**
     * #### Description
     *
     * Returns the unique array of object based on unique key
     * @param array
     * @param key
     * @returns
     */
    uniqueByProp(array: any, key: string): unknown[];
    setList(list: any[], ids: any[], key: string): any;
    saveProgram(): void;
    action(event: string): void;
    viewPrograms(): void;
    resetForm(): void;
    closeSmiley(event: any): void;
    /**
     * Get program details when user is trying to edit program
     */
    getProgramDetails(): void;
    populateMembers(res: any): void;
    populateGroups(res: any): void;
    resetAdditionalOption(): void;
    checkProgramOptionField(): any;
    enablefeature(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WorkflowProgramComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<WorkflowProgramComponent, "app-workflow-program", never, { "canFrameworkChange": { "alias": "canFrameworkChange"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "programId": { "alias": "programId"; "required": false; }; "programType": { "alias": "programType"; "required": false; }; "allowedFeature": { "alias": "allowedFeature"; "required": false; }; "addToProgramDetails": { "alias": "addToProgramDetails"; "required": false; }; "orgDetails": { "alias": "orgDetails"; "required": false; }; }, { "pickerChanged": "pickerChanged"; "populateOption": "populateOption"; "closeWorkflow": "closeWorkflow"; "showConfirmationAlert": "showConfirmationAlert"; "disconnectRefresh": "disconnectRefresh"; "refreshForm": "refreshForm"; "hideElementsFromMoreOptions": "hideElementsFromMoreOptions"; "onRemovingRole": "onRemovingRole"; "disableElementsFromMoreOptions": "disableElementsFromMoreOptions"; }, never, never, false, never>;
}
