import { ElementRef, OnInit } from '@angular/core';
import { GroupSettingsModel } from './interface/GroupSettingsModel';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { MatDialog } from '@angular/material/dialog';
import { DocumentLitsLabelConfigInterface, DocumentLitsLabelConfigInterfaceValueType } from '../../../types/DocumentSectionConfigurationsInterface';
import { NgxTMatrixTableStoreService } from './store/ngx-tmatrix-table-store.service';
import * as i0 from "@angular/core";
export declare class NgxTMatrixTableComponent implements OnInit {
    dialog: MatDialog;
    scrollContainer: ElementRef<HTMLElement>;
    get tableContainerHeight(): number;
    store: NgxTMatrixTableStoreService;
    set list(value: any[] | null);
    set reportName(value: string | null);
    set listConfig(value: DocumentLitsLabelConfigInterface[] | null | undefined);
    set aggregates(value: DocumentLitsLabelConfigInterface[] | null);
    set groupOptions(value: GroupSettingsModel);
    tableColumns$: import("rxjs").Observable<import("../../../types/IMatrixTableState").IDocumentListConfigLocal[] | null | undefined>;
    displayedColumns$: import("rxjs").Observable<any[]>;
    groupLabelConfig$: import("rxjs").Observable<{
        level: number;
        formControlName: string;
        label: string;
    }[]>;
    groupOptions$: import("rxjs").Observable<GroupSettingsModel | null>;
    getGroupedData$: import("rxjs").Observable<(import("./functions/groupedBy").GroupConfig | {
        [key: string]: any;
    })[]>;
    groupedColumns$: import("rxjs").Observable<{
        formControlName: string;
        label: string;
    }[]>;
    isOpen$: import("rxjs").Observable<any>;
    groupChart$: import("rxjs").Observable<GroupChartConfig | null>;
    closedGroups$: import("rxjs").Observable<string[]>;
    draggedGroup$: import("rxjs").Observable<string>;
    vm$: import("rxjs").Observable<{
        groupOptions: GroupSettingsModel | null;
        tableColumns: import("../../../types/IMatrixTableState").IDocumentListConfigLocal[] | null | undefined;
        displayedColumns: any[];
        groupLabelConfig: {
            level: number;
            formControlName: string;
            label: string;
        }[];
        getGroupedData: (import("./functions/groupedBy").GroupConfig | {
            [key: string]: any;
        })[];
        groupedColumns: {
            formControlName: string;
            label: string;
        }[];
        isOpen: any;
        closedGroups: string[];
        groupChart: GroupChartConfig | null;
        draggedGroup: string;
    }>;
    ValueTypes: typeof DocumentLitsLabelConfigInterfaceValueType;
    constructor(dialog: MatDialog);
    ngOnInit(): void;
    toggleMenu(row: any): void;
    remove(groupCol: String): void;
    drop(event: CdkDragDrop<TemplateStringsArray, any>): void;
    export(): void;
    dropChip(event: CdkDragDrop<string[]>): void;
    addToGrouping(formControlName: string): void;
    toggleCloseGroup(name: string): void;
    mainShowChart(): void;
    foldUnFoldGroup(row: any): void;
    setDraggedGroup(col: string): void;
    showReport(row: any): void;
    setLevelColors(): void;
    levelColors: any;
    get colorPalletArray(): string[][];
    selectColor(colors: string[]): void;
    updateColors(newColors: {
        [key: string]: string;
    }): void;
    scrollIndex(event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxTMatrixTableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxTMatrixTableComponent, "app-ngx-t-matrix-table", never, { "list": { "alias": "list"; "required": false; }; "reportName": { "alias": "reportName"; "required": false; }; "listConfig": { "alias": "listConfig"; "required": false; }; "aggregates": { "alias": "aggregates"; "required": false; }; "groupOptions": { "alias": "groupOptions"; "required": false; }; }, {}, never, never, true, never>;
}
export interface GroupChartConfig {
    groups: any[];
    numberProperties: DocumentLitsLabelConfigInterface[];
    mainTitle: string;
}
