import { EventEmitter, SimpleChanges, OnInit } from '@angular/core';
import * as XLSX from 'xlsx';
import { SnackBarService } from '../ui-kit/snack-bar/snack-bar.service';
import { AddRiskService } from '../workflow-services/add-risk.service';
import { AuthService } from '../workflow-services/auth.service';
import { FrequencyBulkService } from '../workflow-services/frequency.service';
import { ResponsibilityService } from '../workflow-services/responsibility.service';
import { IframeService } from '../services/iframe.service';
import * as i0 from "@angular/core";
export declare class AddMultipleResponsibilityWithTabComponent implements OnInit {
    private riskService;
    private responsibilityService;
    private authService;
    private frequencyService;
    private snackBar;
    private iframeService;
    pickerChanged: EventEmitter<any>;
    populateOption: EventEmitter<any>;
    closeWorkflow: EventEmitter<any>;
    disconnectRefresh: EventEmitter<any>;
    isNotificationPending: number;
    closeAddMultipleResponsibility: EventEmitter<any>;
    queryParam: string;
    recentResponsibilityUrl: any;
    set uploadedFileData(data: any);
    orgDetails: any;
    feature: any;
    url: string;
    responsibilityBulkUpload: any;
    tabType: 'frequency' | 'ongoing' | 'onCompletion';
    tabIndex: any;
    bulkUpload: any;
    templateInfo: any;
    isLoader: boolean;
    showCategoryList: boolean;
    templateDownloaded: boolean;
    downloadInProgress: boolean;
    loader: boolean;
    isFileEmpty: boolean;
    isWrongFile: boolean;
    isWrongFormat: boolean;
    fileName: any;
    data: any;
    showExcel: boolean;
    uploadedFiles: any;
    fileResponse: any;
    fileValue: any;
    memberId: number;
    organizationId: number;
    errorMessage: string;
    downloadStatus: string;
    downloadPercent: number;
    defaultOwner: string;
    smileyMessage: string;
    actionButtons: {
        buttonText: string;
        class: string;
        id: string;
    }[];
    showSmiley: boolean;
    member_obj_id: string;
    riskClassEnabled: any;
    userInfo: any;
    responsibilityData: any;
    featureflag: any;
    ffBulkUploadOptimization: boolean;
    isDayInvalid: boolean;
    isDateFormatInvalid: boolean;
    constructor(riskService: AddRiskService, responsibilityService: ResponsibilityService, authService: AuthService, frequencyService: FrequencyBulkService, snackBar: SnackBarService, iframeService: IframeService);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    triggerBrowseFile(): void;
    getUserDetails(): void;
    uploadedFile(event: any, tabType?: any): void;
    /**
     * It takes a worksheet and a sheet name, and then it sets the data for different tabs.
     * @param ws - XLSX.WorkSheet, sheet: string
     * @param {string} sheet - string - the name of the sheet in the excel file
     * @returns the value of the variable "responsibilityBulkUpload" which is an object.
     */
    setDataForDifferentTabs(ws: XLSX.WorkSheet, sheet: string): void;
    /**
     * If the bulkUpload object has a frequency object with a reports array, set the
     * responsibilityBulkUpload to the frequency object and set the tabType to frequency. If not, check
     * if the bulkUpload object has an ongoing object with a reports array, set the
     * responsibilityBulkUpload to the ongoing object and set the tabType to ongoing. If not, check if
     * the bulkUpload object has an onCompletion object with a reports array, set the
     * responsibilityBulkUpload to the onCompletion object and set the tabType to onCompletion. If not,
     * return true.
     * </code>
     * @param {any} data - any = {
     * @returns a boolean value.
     */
    checkEmptyFile(data?: any): boolean;
    compareWithCurrentDate(day: any, month: any): boolean;
    isPastDate(day: any, month: any): boolean;
    downloadTemplate(): void;
    submitResponsibilityBulkUpload(): void;
    submitWorkflow(): void;
    private getOrigin;
    returnIds(item: any, key: string): any;
    reset(): void;
    action(event: string): void;
    closeSmiley(event: any): void;
    viewResponsibilities(): void;
    fileUpload(): void;
    setOrganizationDetails(tempList: any): void;
    /**
     * It takes an event, which is a string, and then it sets the responsibilityBulkUpload variable to
     * the value of the bulkUpload variable, which is an object, and then it accesses the property of
     * that object that matches the event string.
     *
     * So if the event string is 'frequency', then the responsibilityBulkUpload variable will be set to
     * the value of the frequency property of the bulkUpload object.
     *
     * If the event string is 'ongoing', then the responsibilityBulkUpload variable will be set to the
     * value of the ongoing property of the bulkUpload object.
     *
     * If the event string is 'onCompletion', then the responsibilityBulkUpload variable will be set to the
     * value of the onCompletion property of the bulkUpload object.
     *
     * If the event string is anything else, then the responsibilityBulkUpload variable will be set to
     * the value of the frequency property of the bulkUpload object.
     * @param {string} event - string - the event that is emitted from the child component (frequency | ongoing | onCompletion)
     */
    selectedTab(event: 'frequency' | 'ongoing' | 'onCompletion'): void;
    /**
     * It takes in a report, a tab type, and a boolean value. It then returns an object with a bunch of
     * properties.
     * </code>
     * @param {any} report - any =&gt; the array of data
     * @param {string} tabType - string - this is the type of tab that is selected.
     * @param {boolean} isProgram - boolean
     * @returns An object with the following properties:
     */
    setReportDetails(report: any, tabType: string, isProgram: boolean): any;
    isValidRiskClass(riskClass: any): boolean;
    /**
     * It takes a string, removes all whitespace, and returns the string
     * @param {any} name - the name of the responsibility
     * @returns the trimmedName variable.
     */
    checkValidResponsibilityName(name: any): any;
    /**
     * If the responsibility name is valid, and the assignee and assignor are not empty, then return
     * true. Otherwise, return false
     * @param {any} data - any - the data that is being passed in
     * @returns A boolean value.
     */
    isValidData(data: any): boolean;
    /**
     * If the assignor is the same as the overseer or the NotifyOnFailure, or if the assignor is not set
     * and the defaultOwner is the same as the overseer or the NotifyOnFailure, or if the assignee is the
     * same as the reviewer, overseer, or NotifyOnFailure, or if the assignee is not set and the
     * defaultOwner is the same as the overseer or the NotifyOnFailure, or if the reviewer is the same as
     * the overseer or the NotifyOnFailure, or if the assignee is not set, then return false. Otherwise,
     * return true
     * @param {any} data - any - this is the data that is passed in from the form.
     * @returns A boolean value.
     */
    isValidUsers(data: any): boolean;
    /**
     * It takes in a data object and returns an object with 4 boolean properties.
     * The boolean properties are determined by the values of the data object.
     * @param {any} data - any = {
     * @returns {
     *   isValidAssignee: true,
     *   isValidAssignor: true,
     *   isValidReviewer: true,
     *   isValidOverseer: true
     * }
     */
    validateDataWithProgram(data: any): any;
    /**
     * It takes two strings as arguments, and returns an object with three properties
     * @param {string} programName - string -&gt; Name of the program
     * @param {string} [chileProgram] - string =&gt; this is the name of the sub-program
     * @returns {
     *   programId: 1,
     *   childProgramId: 2,
     *   categoryId: '1,2'
     * }
     */
    getProgramId(programName: string, chileProgram?: string): any;
    /**
     * It takes a string as an argument and returns a string.
     * @param {any} item - this is the name of the group that is selected from the dropdown.
     * it will return employee id in this form '1234,2345'.
     */
    getEmployeeIdFromGroup(item: any): any;
    /**
     * If the item is a group, return true, otherwise return false.
     * @param {any} item - any - the item that is being checked
     */
    isGroupSelected(item: any): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddMultipleResponsibilityWithTabComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddMultipleResponsibilityWithTabComponent, "lib-add-multiple-responsibility-with-tab", never, { "uploadedFileData": { "alias": "uploadedFile"; "required": false; }; "orgDetails": { "alias": "orgDetails"; "required": false; }; "feature": { "alias": "feature"; "required": false; }; "featureflag": { "alias": "featureflag"; "required": false; }; }, { "pickerChanged": "pickerChanged"; "populateOption": "populateOption"; "closeWorkflow": "closeWorkflow"; "disconnectRefresh": "disconnectRefresh"; "closeAddMultipleResponsibility": "closeAddMultipleResponsibility"; }, never, never, false, never>;
}
