import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { MatMenuTrigger } from '@angular/material/menu';
import { Report } from '../../../../../common-utils/report';
import { AttributeData } from '../../../../fields/attribute-data';
import { FieldsListService } from '../../../../../field-list-lib/fields-list.service';
import { ReportBuilderMasterService } from '../../../report-builder-master.service';
import { TabularReport } from '../../tabular-report';
import { TabularReportService } from '../../tabular-report.service';
import { CommonService } from '../../../../../common.service';
import { ElementService } from '../../../element.service';
import { ScreenType } from '../../../../filters/condition-type';
import { DashboardBuilderService } from '../../../../../dashboard-lib/dashboard-builder.service';
import { TabularComponent } from '../tabular.component';
import { AxFilter } from '../../../../filters/ax-filter';
import { GhostLoaderType } from '../../../../../ghost-loader/ghost-loader.component';
import * as i0 from "@angular/core";
export declare class RowGroupViewComponent implements OnInit, OnChanges {
    private _reportBuilderMasterService;
    private _fieldsListService;
    private _tabularReportService;
    private _commonService;
    private _elementService;
    private _dashboardBuilderService;
    tabularReport: TabularReport;
    isEditable: boolean;
    x1ImageMediaUrl: string;
    screenType: ScreenType;
    drillThroughParentType: ScreenType;
    drillThroughFilterInput: AxFilter;
    parentRef: TabularComponent;
    reportId: number;
    contextMenu: MatMenuTrigger;
    contextMenuPosition: {
        x: string;
        y: string;
    };
    currentIndex: number;
    showSum: boolean;
    showMax: boolean;
    showMin: boolean;
    showAvg: boolean;
    moment: any;
    isDirty: boolean;
    report: Report;
    attrGlobal: number;
    count: number;
    ct: number;
    isDataLoaded: boolean;
    GhostLoaderType: typeof GhostLoaderType;
    constructor(_reportBuilderMasterService: ReportBuilderMasterService, _fieldsListService: FieldsListService, _tabularReportService: TabularReportService, _commonService: CommonService, _elementService: ElementService, _dashboardBuilderService: DashboardBuilderService);
    get screenTypes(): typeof ScreenType;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    /**
     * remove slash from url
     * @param url
     * @returns
     */
    removeSlashFromURL(url: string): any;
    getTabularData(): void;
    /**
     * to drop column from tabular report
     *
     * @param CdkDragDrop
     *
     */
    drop(event: CdkDragDrop<string[]>): void;
    /**
     * to move column left on tabular report
     *
     * @param CdkDragDrop
     *
     */
    moveColumnLeft(event: CdkDragDrop<string[]>): void;
    /**
     * to move column right on tabular report
     *
     * @param CdkDragDrop
     *
     */
    moveColumnRight(event: CdkDragDrop<string[]>): void;
    /**used to create a row for subtotal
     *
     *@param number
     *@param number
     */
    indexing(count_: number, i: number): void;
    /**  to count subtotal of a grouped data
     *
     *@param number
     *@param number
     *@param string
     *
     */
    subTotal(c: number, i: number, series: Array<string>): number;
    /**
     *
     * @param MouseEvent
     * @param number
     * @param AttributeData
     */
    onContextMenu(event: MouseEvent, index: number, attr: AttributeData): void;
    /**
     * to returns sum of rows
     *
     *@param string
     */
    sum(series: Array<string>): number;
    /**
     * to returns average of rows
     *
     * @param string
     *
     */
    avg(series: Array<string>): number;
    /**
     * to returns maximum value of rows
     *
     *@param string
     */
    max(series: Array<string>): number;
    /**
     * to returns minimum value of rows
     *
     *@param string
     */
    min(series: Array<string>): number;
    /**
     * to returns count of unique values of rows
     *
     * @param string
     *
     */
    unique(series: Array<string>): number;
    /***
     * On chart context  click for sum aggregation
     * @param MatCheckboxChange
     */
    sumAggregation(ob: MatCheckboxChange): void;
    /***
     * On chart context  click for avg aggregation
     * @param MatCheckboxChange
     */
    averageAggregation(ob: MatCheckboxChange): void;
    /***
     * On chart context  click for max aggregation
     * @param MatCheckboxChange
     */
    maxAggregation(ob: MatCheckboxChange): void;
    /***
     * On chart context  click for min aggregation
     * @param MatCheckboxChange
     */
    minAggregation(ob: MatCheckboxChange): void;
    /**
     * to set isDirty after changes in tabular report filter
     *
     */
    dirtyFlowCheckEvent(): void;
    /**
     * to remove column from tabular report
     *
     * @param Event
     *
     */
    removeColumn($event: Event): void;
    /**
     * will emit table properties on table click t
     *
     * @param event
     */
    tableSelect(event: PointerEvent): void;
    /**
     * to redirect media url
     *
     * @param event
     * @param url
     */
    redirect(event: KeyboardEvent, url: string): void;
    /**
   * to redirect media url on single click
   */
    redirectOnSingleClick(event: Event, url: string): void;
    removeFromDashboard(): void;
    drillThroughContext(event: MouseEvent, attribute: AttributeData, i: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RowGroupViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RowGroupViewComponent, "lib-row-group-view", never, { "tabularReport": "tabularReport"; "isEditable": "isEditable"; "x1ImageMediaUrl": "x1ImageMediaUrl"; "screenType": "screenType"; "drillThroughParentType": "drillThroughParentType"; "drillThroughFilterInput": "drillThroughFilterInput"; "parentRef": "parentRef"; "reportId": "reportId"; }, {}, never, never>;
}
