import { AfterViewChecked, ChangeDetectorRef, EventEmitter, 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, AfterViewChecked {
    config: NiceComponentLibraryConfig;
    private cdRef;
    loaderService: LoaderService;
    moduleName: string;
    varPaging: TablePagingRequestModel;
    results: MatTableDataSource<BaseModel>;
    columns: ColumnModel[];
    buttons: ButtonModel[];
    showTotalPages: number;
    expandHeaderButton?: ButtonModel;
    pageSizeOptions: number[];
    pagingChange: EventEmitter<TablePagingRequestModel>;
    clickAction: EventEmitter<ButtonClickEvent>;
    onRowClickAction: EventEmitter<ButtonClickEvent>;
    onChangeDisplayColumn: EventEmitter<{
        [key: string]: any;
    }>;
    selectAllChecked: boolean;
    goToPageNumber: number;
    errorMsg: Map<string, () => string>;
    expandDisplayCols: {
        [key: string]: any;
    };
    buttonColspan: number;
    constructor(config: NiceComponentLibraryConfig, cdRef: ChangeDetectorRef, loaderService: LoaderService);
    set paging(value: TablePagingRequestModel);
    get displayedColumns(): string[];
    get ColumnTypes(): typeof ColumnTypeEnum;
    get IconTypes(): typeof IconTypeEnum;
    get AlignEnum(): typeof AlignEnum;
    get TableService(): typeof TableService;
    isExpandColumn(col: ColumnModel): boolean;
    getPage(pageable: any): void;
    onClick(action: string, result: any): void;
    ngOnInit(): void;
    onRowClick(result: any, index?: number): void;
    onDisplayHeaderCell(column: ColumnModel): boolean;
    onDisplayCell(column: ColumnModel, cell: any): boolean;
    toggleSelectAll(val: MatCheckboxChange, col: ColumnModel): void;
    toggleSelect(val: MatCheckboxChange | null, result: any, column?: ColumnModel): void;
    ngAfterViewChecked(): void;
    hasData(): boolean;
    getTotalPage(): number;
    goToPage(): void;
    getHeaderButtonColspan(): number;
    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; }; "paging": { "alias": "paging"; "required": false; }; }, { "pagingChange": "pagingChange"; "clickAction": "clickAction"; "onRowClickAction": "onRowClickAction"; "onChangeDisplayColumn": "onChangeDisplayColumn"; }, never, never, false, never>;
}
