import { Directionality } from "@angular/cdk/bidi";
import { _ViewRepeater } from "@angular/cdk/collections";
import { Platform } from "@angular/cdk/platform";
import { CdkVirtualForOf, ViewportRuler } from "@angular/cdk/scrolling";
import { _CoalescedStyleScheduler, CdkTable, RenderRow, RowContext, StickyPositioningListener } from "@angular/cdk/table";
import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, IterableDiffers, OnChanges, OnDestroy, OnInit } from "@angular/core";
import { IFilteringParticipants, ISelection } from "../../services/public-api";
import { ComponentChanges } from "../../types";
import { ISortedItem, SorterDirection } from "../sorter/public-api";
import { TableStateHandlerService } from "./table-state-handler.service";
import * as i0 from "@angular/core";
/** @dynamic */
export declare class TableComponent<T> extends CdkTable<T> implements OnInit, AfterViewInit, AfterContentInit, OnDestroy, OnChanges {
    protected _differs: IterableDiffers;
    protected _changeDetectorRef: ChangeDetectorRef;
    protected _elementRef: ElementRef<any>;
    protected _dir: Directionality;
    private tableStateHandlerService;
    private document;
    private platform;
    reorderable: boolean;
    sortable: boolean;
    resizable: boolean;
    selectable: boolean;
    totalItems: number;
    get dataSource(): T[];
    set dataSource(value: T[]);
    selection: ISelection;
    sortedColumn: ISortedItem;
    columnsOrderChange: EventEmitter<Array<any>>;
    sortOrderChanged: EventEmitter<ISortedItem>;
    selectionChange: EventEmitter<ISelection>;
    sortDirection: SorterDirection;
    sortBy: string;
    private tableColumnsSubscription;
    private tableSortingSubscription;
    private selectionChangedSubscription;
    private stickyChangedSubscription;
    layoutFixed: boolean;
    virtualFor?: CdkVirtualForOf<unknown>;
    constructor(_differs: IterableDiffers, _changeDetectorRef: ChangeDetectorRef, _elementRef: ElementRef<any>, role: string, _dir: Directionality, tableStateHandlerService: TableStateHandlerService, document: Document, platform: Platform, viewRepeater: _ViewRepeater<T, RenderRow<T>, RowContext<T>>, coalescedStyleScheduler: _CoalescedStyleScheduler, viewportRuler: ViewportRuler, stickyPositioningListener: StickyPositioningListener);
    getFilterComponents(): IFilteringParticipants;
    getPreselectedItems(items: ReadonlyArray<T>): T[];
    ngOnChanges(changes: ComponentChanges<TableComponent<T>>): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private changeSelection;
    private handleSortedColumn;
    private onDataSourceChange;
    ngOnDestroy(): void;
    ngAfterContentInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, [null, null, null, { attribute: "role"; }, null, null, null, null, null, null, null, { optional: true; skipSelf: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "nui-table, table[nui-table]", ["nuiTable"], { "reorderable": "reorderable"; "sortable": "sortable"; "resizable": "resizable"; "selectable": "selectable"; "totalItems": "totalItems"; "dataSource": "dataSource"; "selection": "selection"; "sortedColumn": "sortedColumn"; }, { "columnsOrderChange": "columnsOrderChange"; "sortOrderChanged": "sortOrderChanged"; "selectionChange": "selectionChange"; }, ["virtualFor"], ["caption", "colgroup, col"]>;
}
