import { EventEmitter, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core';
import { AddGrc, Button, GRCType, InputType, ListObject, OpenedPopup } from '../../shared/interfaces/add-grc';
import { GrcService } from '../../shared/services/grc.service';
import { ResponsibilityService } from '../../../workflow-services/responsibility.service';
import { AuthService } from '../../../workflow-services/auth.service';
import { Subscription } from 'rxjs';
import { UiKitService } from '../../../workflow-services/ui-kit.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 * as i0 from "@angular/core";
export declare class GrcObjectContainerComponent implements OnInit, OnDestroy {
    private grcService;
    private apiService;
    private authService;
    private uiKitService;
    private complianceCommonService;
    private organizationCommonService;
    private iframeService;
    private changeDetectorRef;
    MODE: 'CREATE' | 'EDIT';
    ID: string;
    ALL_TEXT: {
        grcObjectName: string;
        grcObjectPlaceholder: string;
        grcOwnersTitle: string;
        grcOwnersPlaceholder: string;
        grcRCTitle: string;
        grcRCPlaceholder: string;
        grcRiskCategoryTitle: string;
        grcRiskCategoryPlaceholder: string;
        otherGRCObjectsTitle: string;
        otherGRCObjectsPlaceholder: string;
        grcDescription: string;
        riskPlaceholder: string;
        grcProgramResponsibilityTitle: string;
        grcProgramResponsibilityPlaceholder: string;
    };
    CDN_LINK: {
        grcObjectName: string;
        grcOwners: string;
        grcRC: string;
        grcType: string;
        customFields: string;
        noData: string;
        linkOthers: string;
        linkGRC: string;
        linkPolicyNoDataImage: string;
        linkedPolicyImage: string;
    };
    VALIDATION_MESSAGE: {
        grcObjectName: string;
        grcOwners: string;
        grcRC: string;
        grc_exists: string;
        attributes: string;
    };
    GRC_TYPE_ARRAY: string[];
    EDITOR_CONFIG: {
        mode: string;
        colorPalette: boolean;
        link: boolean;
        id: string;
        placeholder: string;
    };
    otherGRCCard: any;
    OBJECT_TYPE: GRCType[];
    LIST_POPUP: Array<string>;
    smileyMessage: string;
    INPUT_TYPE: InputType;
    ORIGINAL_GRC_ATTRIBUTES: any;
    dialogFields: Array<string>;
    scrollToBottom: boolean;
    grcType: 0 | 1 | 2 | 3;
    disabledIds: Array<number>;
    openedPopup: OpenedPopup['type'];
    isLoading: boolean;
    additionalOption: any;
    grcForm: any;
    grcPayload: AddGrc;
    listObject: ListObject;
    selectedAttributes: GRCType;
    showSmiley: boolean;
    actionButtons: Button[];
    grcDataWithTypes: any;
    GRCSelectedTab: number;
    otherGRCTabIndex: any;
    isFormSubmitted: boolean;
    grcNameValidationError: string;
    isDuplicateName: boolean;
    detailsLoader: boolean;
    selectedCategories: any[];
    selectedRisks: any[];
    addedGRC: any;
    otherGRCSearch: string;
    grcTabLoader: boolean;
    selectedProgram: any[];
    selectedResponsibility: any[];
    submitLoader: boolean;
    populateOption: EventEmitter<any>;
    pickerChanged: EventEmitter<any>;
    closeWorkflow: EventEmitter<any>;
    disconnectRefresh: EventEmitter<any>;
    resetForm: EventEmitter<any>;
    hideElementsFromMoreOptions: EventEmitter<any>;
    otherGRCSubscription: Subscription;
    hideMoreOption: any;
    constructor(grcService: GrcService, apiService: ResponsibilityService, authService: AuthService, uiKitService: UiKitService, complianceCommonService: ComplianceCommonService, organizationCommonService: OrganizationCommonService, iframeService: IframeService, changeDetectorRef: ChangeDetectorRef);
    ngOnDestroy(): void;
    ngOnInit(): void;
    getSubscriptionDetails(): void;
    populateOptionalFields(): void;
    addMoreInfo(event: any): void;
    onTextChange(event: any): void;
    onPopupOpen(type: OpenedPopup['type']): void;
    onSaveSelectedList(event: any): void;
    getAttributeSelection(event: any): void;
    setListPayload(type: string): void;
    onClickOutside(): void;
    onEdit(event: any, subType: string): void;
    onRemoveData(event: any, type: 'RC' | 'OWNER' | 'OTHER_GRC_OBJECTS' | 'RISK_CATEGORY' | 'PROGRAM_RESPONSIBILITY'): void;
    changeAttributesType(event: any): void;
    updateTabSelector(): void;
    private _initiateAPI;
    private _getOwnerList;
    /**
     * The function `mapUserList` maps the user list data and performs some additional operations on each
     * user object.
     * @param {any} userList - The `userList` parameter is an object that contains a `data` property. The
     * `data` property is an array of user objects.
     */
    private mapUserList;
    /**
     * The function `defaultSelectedUser()` sets the default selected user based on the current user's role
     * and assigns it to the `OWNER` list object.
     */
    private defaultSelectedUser;
    private _getRCList;
    private _getGRCObjectType;
    private setDefaultGRCObjectType;
    private checkIsDataLoaded;
    getOtherGRCObjects(event?: any): void;
    getOtherGRCTabCount(event?: any): void;
    getOtherGRCTabIndex(event?: any, data?: any): void;
    getGRCObjectDetails(grcId: string): void;
    private createGRCObject;
    private populatePayload;
    saveGRCObject(): void;
    resetGRCObject(): void;
    resetListObjectSelection(): void;
    smileyActions(event: any): void;
    closeSmiley(event: any): void;
    resetGRCForm(): void;
    viewGRC(): void;
    setOtherGRCTypesFormate(): void;
    removeOtherGRCObjects(event: any): void;
    filterOtherGRCData(event: any, type: string): void;
    resetGRCDataWithTypes(): void;
    get grcValidationCheck(): boolean;
    getRiskCategoryPayload(selectedData: any): any;
    getProgramResponsibilityPayload(selectedData: any): any;
    updateGRCObject(): void;
    updateOtherGRCObjectsPayload(): void;
    deleteSelectedRisk(categoryId: number, risk: any): void;
    deleteSelectedResponsibility(responsibility: any): void;
    findCheckedCategoryIndex(categoryId: number | number[]): number;
    setLinkRiskTab(tabDetails: any): void;
    populateLinkRisk(selectedData: any): any;
    populateLinkResponsibility(selectedData: any): any;
    getOwnersExceptDefault(users: any): any;
    setMoreOptionsOnSubmit(): void;
    resetOtherGRCCard(): void;
    resetDataOnRCChange(): void;
    resetMoreOptionsOnRCChange(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<GrcObjectContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GrcObjectContainerComponent, "lib-grc-object-container", never, { "grcType": { "alias": "grcType"; "required": false; }; "MODE": { "alias": "MODE"; "required": false; }; "ID": { "alias": "ID"; "required": false; }; }, { "populateOption": "populateOption"; "pickerChanged": "pickerChanged"; "closeWorkflow": "closeWorkflow"; "disconnectRefresh": "disconnectRefresh"; "resetForm": "resetForm"; "hideElementsFromMoreOptions": "hideElementsFromMoreOptions"; }, never, never, false, never>;
}
