import { OnInit, EventEmitter, ElementRef } from '@angular/core';
import { EditorConfig } from 'vcomply-editor';
import { AuthService } from '../workflow-services/auth.service';
import { ResponsibilityService } from '../workflow-services/responsibility.service';
import { FrequencyService } from '../sharedComponents/frequency/frequency.service';
import { UiKitService } from '../workflow-services/ui-kit.service';
import { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';
import { Subject, Subscription } from 'rxjs';
import { ProgramsService } from '../workflow-services/programs.service';
import { GrcService } from '../workflow/shared/services/grc.service';
import { OrganizationUserService } from '../workflow-services/organization-user.service';
import { ComplianceCommonService } from '../workflow-services/common-workflow-services/compliance-common.service';
import { OrganizationCommonService } from '../workflow-services/common-workflow-services/organization-common.service';
import { IframeService } from '../services/iframe.service';
import { MoreOptionsService } from '../services/more-options.service';
import * as i0 from "@angular/core";
export declare class WorkflowComplianceComponent implements OnInit {
    private authService;
    private responsibilityService;
    private frequencyService;
    private uiKitService;
    private snackBar;
    private permission;
    private programService;
    private grcService;
    private organizationUserService;
    private complianceCommonService;
    private organizationCommonService;
    private iframeService;
    private moreOptionsService;
    mode: string;
    responsibilityId: string;
    frameworkDetails: Array<any>;
    isEntrust: boolean;
    feature: any;
    assessmentDetails: any;
    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;
    };
    allGroupAssignee: boolean;
    assignorId: any[];
    assigneeIds: any[];
    reviewerIds: any[];
    overseerIds: any[];
    disableRadioAssignee: any[];
    isResponsibilitySimplified: boolean;
    queryParam: string;
    recentResponsibilityUrl: any;
    isResponsibilityRcLinkEnabled: boolean;
    grcList: Array<any>;
    grcLoader: boolean;
    otherGRCCard: any;
    selectedGRCTab: number;
    grcTabLoader: boolean;
    grcSearchString: string;
    GRC_TYPE_ARRAY: string[];
    grcDataWithTypes: any;
    set closeOnEsc(escapeCondition: boolean);
    orgDetails: any;
    url: string;
    pickerChanged: EventEmitter<any>;
    populateOption: EventEmitter<any>;
    hideElementsFromMoreOptions: EventEmitter<any>;
    closeWorkflow: EventEmitter<any>;
    resetForm: EventEmitter<any>;
    disconnectRefresh: EventEmitter<any>;
    checkpointCountUpdated: EventEmitter<any>;
    rcSelected: EventEmitter<any>;
    openedFrom: any;
    selectedRC: number;
    featureFlag_groups: boolean;
    selectedProgram: any;
    selectedReviewer: boolean;
    set setSelectedProgram(program: any);
    onRemovingCheckpoint: EventEmitter<any>;
    isAssessmentDisabled: EventEmitter<any>;
    assigneeTypeChange: EventEmitter<any>;
    onReviewerTypeChange: EventEmitter<any>;
    entrustLoader: boolean;
    scrollToBottom: boolean;
    description: EditorConfig;
    programPeopleList: any;
    loader: boolean;
    submitted: boolean;
    editDetails: any;
    smileyMessage: string;
    actionButtons: {
        buttonText: string;
        class: string;
        id: string;
    }[];
    showSmiley: boolean;
    memberId: number;
    organizationId: number;
    rcListLoaded: boolean;
    assignorsListLoaded: boolean;
    assigneesListLoaded: boolean;
    categoriesListLoaded: boolean;
    groupsListLoaded: boolean;
    assuranceCategoryListLoaded: boolean;
    selectedFrameworkValues: any;
    hasReviewer: boolean;
    assignorsList: any[];
    assigneesList: any[];
    reviewersList: any[];
    disableAssigneeIds: any[];
    disableReviewerIds: any[];
    disableOverseerIds: any[];
    reviewerMemberIdsList: any[];
    groupOverseerList: any[];
    groupReviewerList: any[];
    groupAssigneeList: any[];
    overseersList: any[];
    allUsersList: any[];
    behalfOfUsersList: any[];
    assigneeUserList: any[];
    reviewerUserList: any[];
    overseerUserList: any[];
    overseerUserNotifyList: any[];
    allCategories: any[];
    assuranceCategoriesList: any[];
    assuranceRequiresAuditList: any[];
    groupsList: any[];
    OrgGroup: any[];
    adminsList: any[];
    responsibilityCentersList: any[];
    categoryList: any[];
    nonRemovableUsersList: any[];
    responsibilityCenterType: Number;
    responsibilityForm: any;
    moreOptions: any;
    mandatoryFields: any;
    activeSelector: string;
    sideSelectorElements: any;
    focus: {
        responsibilityName: boolean;
        description: boolean;
        objective: boolean;
    };
    categories: any;
    allPrograms: any[];
    riskClassification: {
        name: string;
        value: number;
        class: string;
    }[];
    assignorMode: string;
    rcMode: string;
    invalidType: string;
    responsibilityPayload: any;
    assigneeRadioSelect: boolean;
    programsList: any[];
    frequencyDetails: {
        pattern: string;
        notificationPending: number;
        dateOfModified: number;
        deactivationValue: number;
        selectedReport: number;
        lifecycle: string;
        startDate: number;
        startOnTheDay: number;
        window: number;
        failed: number;
        time: string;
        failedTime: string;
        continuous_failed_days: number;
        onCompletionReportDetails: {};
    };
    frequencyPlaceholder: string;
    shortMonth: Array<string>;
    isEditWhat: Boolean;
    isFrameworkAvailable: number;
    isNotificationPending: number;
    assuranceFlag: any;
    riskClassificationFlag: any;
    hiddenList: any[];
    subscriptionDetails: any;
    isRiskEnable: boolean;
    isDuplicateEntrust: boolean;
    auditTime: string;
    sendAuditRemindersValue: number;
    sampleValue: any;
    samplePercentage: any;
    selectedSample: number;
    isSample: boolean;
    tempCheckValue: number;
    isAssessment: boolean;
    managePermission: boolean;
    checkpointCount: number;
    roleBasedPermissions: any;
    isGroupAssigned: boolean;
    responsibilityData: any;
    originalAssignee: any;
    userListLoader: boolean;
    assignorsListLoader: boolean;
    rawResponsibility: any;
    otherGRCSubscription: Subscription;
    allowEditDueDateFeatureFlag: boolean;
    isComplianceOpsSettingsEnabled: boolean;
    validationMessages: Record<string, string>;
    mandatoryFieldsList: any;
    whatInput: ElementRef;
    unSubscribeProgram: Subject<void>;
    constructor(authService: AuthService, responsibilityService: ResponsibilityService, frequencyService: FrequencyService, uiKitService: UiKitService, snackBar: SnackBarService, permission: AuthService, programService: ProgramsService, grcService: GrcService, organizationUserService: OrganizationUserService, complianceCommonService: ComplianceCommonService, organizationCommonService: OrganizationCommonService, iframeService: IframeService, moreOptionsService: MoreOptionsService);
    ngOnInit(): void;
    populateRCList(): void;
    setFeatureFlags(): void;
    getInitialData(): void;
    getRCDetailsinRiskTreatment(): void;
    getOrgDetails(): void;
    getSubscriptionDetail(): void;
    hideOptionFromMoreOptions(): void;
    activateSelector(type: any, event: boolean): void;
    setResponsibilityName(): void;
    whatChanged(event: any): void;
    activeDeselector(): void;
    addMoreInfo(event: any): void;
    onRcTypeChange(selectedType: Number): void;
    getRCList(program_id?: string): void;
    getUserDetails(): void;
    getAssurance(): void;
    getOrganizationDetails(): void;
    getCategoryList(): void;
    filterListsAccordingToProgram(program_id?: string): void;
    getProgramDetails(programId?: string): void;
    getListsAccordingToProgram(program_id: string): void;
    getAssignorsList(program_id?: string): void;
    getAssigneesList(program_id?: string): void;
    fetchAssignee(program_id?: string): void;
    getPeopleListAgainstPID(program_id: string): void;
    setOrganizationUserList(res: any): void;
    getGroupsList(program_id?: string): void;
    getEditResponsibilityDetails(id: any): void;
    setList(list: any[], ids: any[], key: string): any;
    returnIds(list: any[], key: string): any[];
    populateProgramAssigneeGroup(): void;
    populateProgramOverseerGroup(): void;
    populateProgramReviewerGroup(): void;
    populateOverseerData(res: any): void;
    populateReviewerData(res: any): void;
    populateAssigneeData(res: any): void;
    /**
     * this function is for getting the users data based on member_id of users of selected User Group
     * @param userlist contains users data
     * @param selectedgroups contains selected User Group data
     * @returns user data of Selected user group.
     */
    getGroupsUserEmployeesId(userList: any, selectedGroups: any): any;
    setReviewerPayload(ids: any[], type: string, acceptedData?: Array<any>, reviewerType?: string): any;
    checkWhetherAllListsLoaded(): void;
    saveSelectedList(type: string, selectedItems: any): void;
    /**
     * If the program is selected and the user has full permission, refresh the lists while the program
     * is selected. Otherwise, refresh all lists.
     * </code>
     */
    callRefreshList(): void;
    remove(type: any, event?: any): void;
    saveGroupAssigneeData(selectedItems: any): void;
    saveGroupReviewerData(selectedItems: any): void;
    saveOverseerData(selectedItems: any, type: any): void;
    entrustFramework(event: any): void;
    assignFromFramework(freqObj: any): void;
    /**
     *
     * @param list userlist for listing users
     * @returns assign user's my_member_id  to member_id data
     */
    assignUserMemberId(list: any): any;
    refreshAllLists(): void;
    disableList(allUsers: any, assignorAndAssigneesIds: any, assigneeIds: any, reviewersIds: any, overseerIds: any): void;
    refreshListsWhileProgramSelected(): void;
    programGroupList(allGroups: any, ...args: any[]): any;
    disableProgramList(assignorAndAssigneesIds: any, assigneeIds: any, reviewersIds: any, overseerIds: any): void;
    /**
     * If the form is valid, then if the mode is EDIT, then set the organizationId and memberId to the
     * authService values, and then call the entrustResponsibility function with the responsibilityForm as
     * a parameter.
     *
     * If the mode is not EDIT, then call the entrustResponsibility function with the responsibilityForm
     * as a parameter.
     * @returns a boolean value.
     */
    submitResponsibility(): false | undefined;
    /**
     * If the responsibility name is empty, or the frequency is empty, or the assignees list is empty,
     * then return false. Otherwise, return true.
     */
    validateResponsibility(): boolean | undefined;
    /**
     * Validates the responsibility form against the current mandatory field configuration.
     * Delegates validation to ResponsibilityService and updates component state accordingly.
     * @returns true if validation passes, false otherwise
     */
    validateResponsibilityByConfig(): boolean;
    /**
   * Removes HTML entities and tags from a string and trims whitespace.
   * Used to check if a rich text field is effectively blank.
   * @param data - The string to clean
   * @returns The cleaned string or empty string if input is falsy
   */
    checkBlank(data: string): string;
    entrustResponsibility(entrustForm: any): void;
    uniqueIdUserGroups(totalUserList: any, selectedGroup: any, selectedUsers: any): any[];
    combineUserAndUserGroupMembers(isGroup?: any): void;
    /**
     * It resets the form.
     */
    reset(): void;
    action(event: string): void;
    viewResponsibilities(): void;
    closeSmiley(event: any): void;
    getOnCompletionReportDetails(event: any): any;
    frequencyDataPopulation(event: any): void;
    frequencyPopulation(event: any): void;
    frequencyData(event: any): void;
    /**
     * It takes a string and returns a string.
     * @param {any} res - any = {
     */
    getFrequencyPlaceholder(res: any): void;
    /**
     * It gets the frequency details and report id, then it sets the frequency placeholder to the frequency
     * details and then it gets the on completion of responsibility and sets the frequency placeholder to
     * the frequency details and the report name.
     * @param {any} frequencyDetails - [0] =&gt; "1"
     * @param {number} reportId - number
     */
    getOnCompletionOf(frequencyDetails: any, reportId: number, onCompletionReportDetails: any): void;
    /**
     * "If the frequencyDetails[3] is 1, then set the frequencyPlaceholder to 'Daily by ' + frequencyTime,
     * otherwise if frequencyDetails[3] is greater than 1, then set the frequencyPlaceholder to 'Every ' +
     * parseInt(frequencyDetails[3]) + ' days by ' + frequencyTime."
     * @param {any} frequencyDetails - [0, 0, 0, 1]
     * @param {any} frequencyTime - "12:00 AM"
     */
    getDailyPlaceholder(frequencyDetails: any, frequencyTime: any): void;
    /**
     * It takes a string of comma separated numbers and returns a string of comma separated words.
     *
     * The function is called with a string of comma separated numbers, like this:
     *
     * getWeeklyPlaceholder(["1","2,3,4,5,6,7","1","1"], "10:00 AM")
     *
     * The function returns a string of comma separated words, like this:
     *
     * "Every Monday,Tuesday,Wednesday,Thursday,Friday,Saturday by 10:00 AM"</code>
     * @param {any} frequencyDetails - ["1", "1,2,3,4,5", "", "1", ""]
     * @param {any} frequencyTime - "10:00 AM"
     */
    getWeeklyPlaceholder(frequencyDetails: any, frequencyTime: any): void;
    /**
     * It takes a string of comma separated numbers, converts them to month names, and then adds them to a
     * sentence.
     * @param {any} frequencyDetails - ["1", "1", "1,2,3,4,5,6,7,8,9,10,11,12"]
     * @param {any} frequencyTime - "10:00 AM"
     */
    getMonthlyPlaceholder(frequencyDetails: any, frequencyTime: any): void;
    /**
     * If the frequencyDetails[1] is 1, 2, 3, 21, 22, 23, or greater than 3, then set the
     * frequencyPlaceholder to a string that includes the frequencyDetails[1] and the frequencyDetails[2]
     * and the frequencyTime.
     * @param {any} frequencyDetails - ["3", "1", "1,2,3"]
     * @param {any} frequencyTime - "10:00 AM"
     */
    getQuarterlyPlaceholder(frequencyDetails: any, frequencyTime: any): void;
    /**
     * It takes a string of comma separated numbers and returns a string of comma separated month names.
     * @param {any} frequencyDetails - ["1", "1", "1,2,3,4,5,6,7,8,9,10,11,12"]
     * @param {any} frequencyTime - "10:00 AM"
     */
    getBiannualPlaceholder(frequencyDetails: any, frequencyTime: any): void;
    /**
     * If the frequencyDetails[1] is less than 2, then the frequencyPlaceholder is set to the 1st, 2nd,
     * 3rd, or nth of every month by frequencyTime.
     *
     * If the frequencyDetails[1] is greater than 1, then the frequencyPlaceholder is set to the 1st, 2nd,
     * 3rd, or nth of every month, Interval: every yearSequence years by frequencyTime.
     * @param {any} frequencyDetails - ["Yearly", "1", "1", "1"]
     * @param {any} frequencyTime - "10:00 AM"
     */
    getYearlyPlaceholder(frequencyDetails: any, frequencyTime: any): void;
    /**
     * It takes a frequencyDetails array and a frequencyTime array and returns a string.
     * @param {any} frequencyDetails - [4,1,1,1]
     */
    getRandomPlaceholder(frequencyDetails: any, frequencyTime: any): void;
    /**
     * "When the user clicks the edit button, the edit button is hidden and the input field is shown.
     * When the user clicks the input field, the input field is hidden and the edit button is shown."
     * @param {any} event - any - the event that triggered the function
     */
    onEditWhat(event: any): void;
    /**
     *
     * The function is called with a parameter and returns an array of strings.
     * @param {any} [res] - is the response from the API
     */
    getEditMoreOptions(res?: any): void;
    testFunction(): void;
    reviewerTypeChange(event: any): void;
    selectedSampleData(event: number): void;
    /**
     * It populates a list of assurance categories based on the test plan category selected.
     * @param {any} testPlanCategory - any
     */
    populateAssuranceList(testPlanCategory: any): void;
    checkInputValue(event: any): boolean;
    switchEnable(event: boolean): void;
    onAssessmentSelect(event: any): void;
    /**
     *
     * @param assessmentDetails : selected assessment details like it's object id and category_id
     */
    getAssessmentDetails(assessmentDetails: any, type?: string): void;
    setAssessmentData(res: any, assessmentDetails: any, type?: string): void;
    onRemoveCheckpoints(type: string): void;
    removeCheckpoint(): void;
    /**
     *
     * @param event Assessment details
     */
    postAssessment(event: any): void;
    setIsUploaded(event: any): void;
    checkDefaultProgramOnRemove(program: any): void;
    /**
     * It takes an array of numbers and returns an array of unique numbers.
     * @param {any} array - The array you want to get the unique values from.
     * @returns An array of unique values.
     */
    getUniqueIds(array: any): unknown[];
    openAssigneeChangeConfirmation(event: any): void;
    /**
     * If the mode is EDIT, emit the event.
     * @param {any} event - any - the event that is triggered when the user selects a radio button
     */
    onReviewerWorkflowChange(event: any): void;
    getOtherGRCObjects(event?: any): void;
    /**
     * The function `getOtherGRCTabCount` retrieves the count of different types of items (assets,
     * processes, vendors, inventory) and updates the corresponding tabs with the count.
     * @param {any} [event] - The "event" parameter is an optional parameter that can be passed to the
     * "getOtherGRCTabCount" function. It is of type "any", which means it can accept any data type.
     */
    getOtherGRCTabCount(event?: any): void;
    getAllRCIds(rcIds: any): string;
    setOtherGRCTypesFormate(): void;
    resetGRCDataWithTypes(): void;
    removeOtherGRCObjects(event: any): void;
    filterOtherGRCData(event: any, type: string): void;
    getFormConfig(): void;
    makeMandatoryFieldsVisible(fields: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WorkflowComplianceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<WorkflowComplianceComponent, "app-workflow-compliance", never, { "mode": { "alias": "mode"; "required": false; }; "responsibilityId": { "alias": "responsibilityId"; "required": false; }; "frameworkDetails": { "alias": "frameworkDetails"; "required": false; }; "isEntrust": { "alias": "isEntrust"; "required": false; }; "feature": { "alias": "feature"; "required": false; }; "assessmentDetails": { "alias": "assessmentDetails"; "required": false; }; "closeOnEsc": { "alias": "closeOnEsc"; "required": false; }; "orgDetails": { "alias": "orgDetails"; "required": false; }; "openedFrom": { "alias": "openedFrom"; "required": false; }; "selectedRC": { "alias": "selectedRC"; "required": false; }; "setSelectedProgram": { "alias": "selectedProgram"; "required": false; }; }, { "pickerChanged": "pickerChanged"; "populateOption": "populateOption"; "hideElementsFromMoreOptions": "hideElementsFromMoreOptions"; "closeWorkflow": "closeWorkflow"; "resetForm": "resetForm"; "disconnectRefresh": "disconnectRefresh"; "checkpointCountUpdated": "checkpointCountUpdated"; "rcSelected": "rcSelected"; "onRemovingCheckpoint": "onRemovingCheckpoint"; "isAssessmentDisabled": "isAssessmentDisabled"; "assigneeTypeChange": "assigneeTypeChange"; "onReviewerTypeChange": "onReviewerTypeChange"; }, never, never, false, never>;
}
