import { NgZone, QueryList } from '@angular/core';
import { MatPaginator, PageEvent } from '@angular/material/paginator';
import { MatSort, Sort } from '@angular/material/sort';
import { MatTable, MatTableDataSource } from '@angular/material/table';
import { ZUIEmptyDirective, ZUIExpandedDetailDirective } from './directive';
import { ZUICellDirective } from './directive/cell.directive';
import { ZuiColumnCommon, ZUIColumnExpanded, ZUIConfig, ZUITable, ZUITableSpecialColumn, ZUIColumnLink, ZMItem, ZUILoading } from '../constants';
import { ZUILoadingComponent } from '../loading';
export declare class ZuiTableComponent<T> {
    #private;
    private ngZone;
    options: ZUITable<T>;
    table: MatTable<T>;
    paginator: MatPaginator;
    sort: MatSort;
    loading: ZUILoadingComponent;
    zuiExpandedDetailDef: ZUIExpandedDetailDirective;
    zuiEmptyDef: ZUIEmptyDirective;
    zuiCellDefs: QueryList<ZUICellDirective>;
    cellDef: {
        [column: string]: ZUICellDirective;
    };
    loadingOptions: ZUILoading;
    currentOptions: ZUITable<T>;
    dataSource: MatTableDataSource<T>;
    items: Readonly<T>[];
    displayedColumns: string[];
    pageSizeOptions: number[];
    dateTimeFormat: {
        time: string;
        fullTime: string;
        date: string;
        dateTime: string;
        dateFullTime: string;
    };
    id: string;
    selectedIndex: number;
    checkedHighlightColor: string;
    checkAll: boolean;
    expandLoading: boolean;
    exportItems: ZMItem[];
    alias: {
        [newField: string]: string;
    };
    specialColumn: ZUITableSpecialColumn;
    tmp: Date;
    constructor(ngZone: NgZone);
    ngOnChanges(): Promise<void>;
    ngAfterViewInit(): void;
    get columns(): ZUITable<T>['columns'];
    get config(): ZUITable<T>['config'];
    get configPaginator(): ZUIConfig<T>['paginator'];
    get hoverHighlight(): ZUIConfig<T>['hoverHighlight'];
    get empty(): ZUIConfig<T>['empty'];
    get notAutoHeight(): boolean;
    refresh: () => void;
    valueHtml: (column: ZuiColumnCommon<T>, row: any) => string;
    getTransform: (column: ZuiColumnCommon<T>, row: any) => any;
    textDisplay: (column: ZUIColumnLink<T>, row: any) => string;
    getRawRow: (column: ZuiColumnCommon<T>, row: any) => {
        item: T;
        value: any;
    };
    onToggle: (column: ZUIColumnExpanded<T>, row: any) => Promise<void>;
    onClick: (column: ZuiColumnCommon<T>, row: any) => void;
    onCheckAll: (checkAll: boolean) => void;
    onPageChange: (pageEvent: PageEvent) => void;
    onSortChange: (sort: Sort) => void;
    onImgError: (_e: Event, row: any) => void;
    resetPaginator: () => void;
    reload: () => Promise<void>;
}
