import { HttpClient } from '@angular/common/http';
import { EventEmitter } from '@angular/core';
import { AttributeData } from '../../fields/attribute-data';
import { TabularReport } from './tabular-report';
import * as i0 from "@angular/core";
export declare class TabularReportService {
    private _httpClient;
    dataRender: EventEmitter<any>;
    attrArray: Array<AttributeData>;
    _tableClickEvent: EventEmitter<any>;
    cloneIntegerCount: any[];
    constructor(_httpClient: HttpClient);
    /**to count data count in a series
     *
     * @param TabularReport
     *
     */
    groupData(tabularReport: TabularReport): TabularReport;
    /** to count data count in a series
     *
     * @param string
     * @param any
     *
     */
    getRowSpanCount(series: Array<any>, key: any): number;
    /** to count first row grouping data count
     *
     * @param AttributeData
     *
     */
    getFirstRowGrouping(attribute: AttributeData): AttributeData;
    sendEmail(emailDto: any): Promise<any>;
    /**to count data count and set clone data while column grouping is applied
     *
     * @param TabularReport
     *
     */
    columnData(tabularReport: TabularReport): TabularReport;
    /**to count rows group data when column grouping is applied
     *
     * @param TabularReport
     *
     */
    rowSpan(tabularReport: TabularReport): TabularReport;
    /**to set headers section of column grouping
     *
     * @param TabularReport
     * @param AttributeData
     *
     */
    newData(tabularReport: TabularReport, attr: AttributeData): TabularReport;
    /**to get data render value when single column grouping is applied
     *
     * @param TabularReport
     *
     */
    dataFactory(tabularReport: TabularReport): TabularReport;
    countGrandTotalAvg(data: number, count: number): number;
    /** returns sum of integer  columns subSeries for column grouping
     *
     * @param Array
     *
    //  */
    /** returns Average of integer  columns subSeries for column grouping
     *
     * @param Array
     *
     */
    countSum(series: Array<number>): number;
    countAvg(series: Array<number>): number;
    countMax(series: Array<number>): number;
    countMin(series: Array<number>): number;
    /** returns count of unique data for  integer columns subSeries in column grouping
     *
     * @param Array
     *
     */
    getUnique(series: Array<any>): number;
    /** to add integer column in IntegerArray
     *
     * @param TabularReport
     *
     */
    getIntegerArray(tabularReport: TabularReport): TabularReport;
    /** to count clone data for single column grouping
     *
     * @param tabularReport
     * @param number
     * @param attributeData
     *
     */
    getCloneData(tabularReport: TabularReport, index: number, attribute: AttributeData): AttributeData;
    /** to count clone data for double column grouping
     *
     * @param tabularReport
     * @param number
     *
     */
    getSecondColData(tabularReport: TabularReport, _index: number): TabularReport;
    /** create series with row count
     *
     * @param tabularReport
     * @param Array
     * @param Array
     *
     */
    getSeriesWithCount(swap1: Array<number>, integerArray: Array<any>, rowCount: Array<number>, tabularReport: TabularReport): Array<number>;
    /** count Integer columns subSeries Data for single column grouping
     *
     * @param tabularReport
     * @param number
     * @param number
     * @param number
     * @param Array
     * @param Array
     *
     */
    getfirstColIntegerData(tabularReport: TabularReport, int: number, firstColumnIndex: number, j: number, subSeries: Array<any>, swap: Array<number>): Array<number>;
    /** count Integer columns subSeries Data for double column grouping
     *
     * @param tabularReport
     * @param number
     * @param number
     * @param number
     * @param Array
     * @param Array
     *
     */
    getSecondColIntegerData(tabularReport: TabularReport, int: number, secondColumnIndex: number, n: number, swap: Array<number>, xyz: Array<any>): Array<number>;
    /** count horizontal grand Total
     *
     * @param Array
     * @param Array
     *
     */
    getSideTotal(swap: Array<number>, integerArray: Array<any>): Array<number>;
    /** get Second column series grouping data
     *
     * @param Array
     * @param TabularReport
     * @param number
     * @param Array
     * @param Array
     *
     */
    getSeriesData(iarr: Array<number>, tabularReport: TabularReport, rCount: number, cCount: number, swap: Array<number>, a: Array<number>): Array<number>;
    /** get Second column data
     *
     * @param TabularReport
     *
     */
    getSecondColumn(tabularReport: TabularReport): TabularReport;
    /** to get series data with row count
     *
     * @param TabularReport
     *
     */
    rowCountData(tabularReport: TabularReport): TabularReport;
    getIntegerIndex(integerArrayValues: Array<number>, tabularReport: TabularReport): TabularReport;
    tableClickEvent(tabularReport: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TabularReportService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TabularReportService>;
}
