import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit } from '@angular/core';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { MatTableDataSource } from '@angular/material/table';
import { TablePagingRequestModel } from '../../models/components/table-paging-request.model';
import { ButtonClickEvent } from '../../models/button-click.event';
import { ButtonModel } from '../../models/components/button.model';
import { ColumnModel } from '../../models/components/column.model';
import { ColumnTypeEnum } from '../../enums/column-type.enum';
import { NiceComponentLibraryConfig } from '../../models/nice-component-library.config';
import { AlignEnum } from '../../enums/align.enum';
import { BaseModel } from '../../models/base.model';
import { LoaderService } from '../../services/loader.service';
import { TableService } from '../../services/table.service';
import { IconTypeEnum } from '../../enums/icon-type.enum';
import * as i0 from "@angular/core";
export declare class CvaTableComponent implements OnInit, OnChanges {
    config: NiceComponentLibraryConfig;
    private cdRef;
    loaderService: LoaderService;
    private elementRef;
    protected readonly ColumnTypeEnum: typeof ColumnTypeEnum;
    protected readonly AlignEnum: typeof AlignEnum;
    protected readonly IconTypeEnum: typeof IconTypeEnum;
    protected readonly TableService: typeof TableService;
    moduleName: string;
    varPaging: TablePagingRequestModel;
    results: MatTableDataSource<BaseModel>;
    columns: ColumnModel[];
    buttons: ButtonModel[];
    showTotalPages: number;
    expandHeaderButton?: ButtonModel;
    superHeaders: ColumnModel[][];
    disableExpandColumns?: string[];
    pageSizeOptions: number[];
    pagingChange: EventEmitter<TablePagingRequestModel>;
    clickAction: EventEmitter<ButtonClickEvent>;
    onRowClickAction: EventEmitter<ButtonClickEvent>;
    onChangeDisplayColumn: EventEmitter<Record<string, boolean>>;
    selectAllChecked: boolean;
    goToPageNumber: number;
    goToPageInputRef?: ElementRef;
    errorMsg: Map<string, () => string>;
    expandDisplayCols: Record<string, boolean>;
    buttonColspan: number;
    constructor(config: NiceComponentLibraryConfig, cdRef: ChangeDetectorRef, loaderService: LoaderService, elementRef: ElementRef);
    set paging(value: TablePagingRequestModel);
    isExpandColumn(col: ColumnModel): boolean;
    getPage(pageable: {
        pageIndex: number;
        pageSize: number;
    }): void;
    onClick(action: string, result: any, mouseEvent?: MouseEvent): void;
    ngOnInit(): void;
    ngOnChanges(): void;
    onRowClick(result: any, index?: number): void;
    onDisplayHeaderCell(column: ColumnModel): boolean;
    onDisplayCell(column: ColumnModel, cell: any): boolean;
    toggleSelect(val: MatCheckboxChange | null, result?: any, column?: ColumnModel): void;
    hasData(): boolean;
    getTotalPage(): number;
    goToPage(): void;
    updateHeaderButtonColspan(): void;
    trackByColumnDef(index: number, item: {
        columnDef: string;
    }): string;
    trackBySuperHeaderRow(index: number, row: ColumnModel[]): string;
    onChangeGoToPageNumber($event: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CvaTableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CvaTableComponent, "cva-table", never, { "moduleName": { "alias": "moduleName"; "required": false; }; "results": { "alias": "results"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; "showTotalPages": { "alias": "showTotalPages"; "required": false; }; "expandHeaderButton": { "alias": "expandHeaderButton"; "required": false; }; "superHeaders": { "alias": "superHeaders"; "required": false; }; "disableExpandColumns": { "alias": "disableExpandColumns"; "required": false; }; "paging": { "alias": "paging"; "required": false; }; }, { "pagingChange": "pagingChange"; "clickAction": "clickAction"; "onRowClickAction": "onRowClickAction"; "onChangeDisplayColumn": "onChangeDisplayColumn"; }, never, never, false, never>;
}
