import { OnInit, AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnChanges, SimpleChanges, QueryList } from '@angular/core';
import { MatSort, MatTableDataSource, MatPaginator, MatPaginatorIntl } from '@angular/material';
import { SelectionModel } from '@angular/cdk/collections';
import { TranslateService } from '@ngx-translate/core';
import { UxDynamicComponentService, UxTableHeaderDirective, UxTableBodyDirective, UxTableFooterDirective } from '@eui/core';
export declare class MatPaginatorCustomIntl extends MatPaginatorIntl implements OnDestroy {
    private translateService;
    firstPageLabel: string;
    itemsPerPageLabel: string;
    lastPageLabel: string;
    nextPageLabel: string;
    previousPageLabel: string;
    rangeLabel: string;
    private destroy$;
    constructor(translateService: TranslateService);
    ngOnDestroy(): void;
    getRangeLabel: (page: number, pageSize: number, length: number) => string;
    private getTranslations;
}
export declare class UxDataTableComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {
    private uxDynamicComponentService;
    private translateService;
    styleClass: string;
    tableData: any[];
    tableColsLabel: string[];
    tableBorder: boolean;
    expandableComponent: any;
    expandableComponentConfig: any;
    actionsColLabel: string;
    actionsColComponent: any;
    actionsColComponentConfig: any;
    tableColsSortable: boolean | string[];
    tableColsDefaultSort: string;
    tableColsDefaultOrder: 'asc' | 'desc';
    hasPagination: boolean;
    paginationSize: any;
    paginationLength: number;
    hasRowIndex: boolean;
    rowIndexLabel: string;
    asyncModel: any;
    dataLoading: boolean;
    isRowSelectable: boolean;
    isHeaderSticky: boolean;
    isFooterSticky: boolean;
    fullAsync: boolean;
    tableColsAdvancedConfig: {
        [key: number]: 'html' | 'link';
    };
    onSortChange: EventEmitter<{
        sort: string;
        order: string;
    }>;
    onPaginationChange: EventEmitter<{
        previousPageIndex: number;
        pageIndex: number;
        pageSize: number;
        length: number;
    }>;
    onSelectionChange: EventEmitter<any[]>;
    tableDataProps: string[];
    expandedElement: any;
    tableDataSource: MatTableDataSource<any>;
    isTableSortable: boolean;
    selection: SelectionModel<any>;
    noResultFound: boolean;
    noResultFoundLabel: string;
    private destroy$;
    private paginationInited;
    private sortInited;
    private colsInited;
    private sortSub;
    expandableRowWrappers: ElementRef[];
    actionsColWrappers: ElementRef[];
    sort: MatSort;
    paginator: MatPaginator;
    customHeaderContent: QueryList<UxTableHeaderDirective>;
    customBodyContent: QueryList<UxTableBodyDirective>;
    customFooterContent: QueryList<UxTableFooterDirective>;
    constructor(uxDynamicComponentService: UxDynamicComponentService, translateService: TranslateService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(c: SimpleChanges): void;
    ngAfterViewInit(): void;
    paginationFirstPage(): void;
    isAllSelected(): boolean;
    toggleSelection(e: any): void;
    rowSelection(e: any, row: any): void;
    isSelectedRow(row: any): boolean;
    trackById(index: number, element: any): any;
    isTableHeaderDisabled(tableDataProp: string): boolean;
    expandableRowToggle(row: any): any;
    paginate(e: {
        previousPageIndex: number;
        pageIndex: number;
        pageSize: number;
        length: number;
    }): void;
    rowIndex(element: any): number;
    private id;
    private paginationHandler;
    private sortHandler;
    private actionsColHandler;
    private expandableRowHandler;
    private returnNull;
}
