import { QueryList, AfterContentInit, TemplateRef, OnInit, OnDestroy, ChangeDetectorRef, AfterViewInit, EventEmitter, SimpleChanges, OnChanges, ElementRef, Renderer2, ViewContainerRef } from '@angular/core';
import { EuiTemplateDirective } from '../../directives';
import { EuiTableSortService } from './services/eui-table-sort.service';
import { EuiTablePaginatorComponent } from './paginator/eui-table-paginator.component';
import { EuiTableFilterComponent } from './filter/eui-table-filter.component';
import { EuiTableSelectableRowService } from './services/eui-table-selectable-row.service';
import { SortEvent } from './models/sort-event.model';
import { BaseDirective } from '../../base.directive';
import * as i0 from "@angular/core";
export declare class EuiTableComponent extends BaseDirective implements AfterContentInit, OnInit, OnDestroy, AfterViewInit, OnChanges {
    private euiTableSortService;
    private cd;
    private renderer;
    private viewContainerRef;
    private euiTableSelectableRowService;
    rows: any[];
    paginator: EuiTablePaginatorComponent;
    filter: EuiTableFilterComponent;
    loading: boolean;
    preselectedRows: any[];
    get asyncTable(): boolean;
    set asyncTable(value: boolean);
    _asyncTable: boolean;
    get paginable(): boolean;
    set paginable(value: boolean);
    _paginable: boolean;
    get euiTableResponsive(): boolean;
    set euiTableResponsive(value: boolean);
    _euiTableResponsive: boolean;
    get euiTableFixedLayout(): boolean;
    set euiTableFixedLayout(value: boolean);
    _euiTableFixedLayout: boolean;
    get euiTableDraggable(): boolean;
    set euiTableDraggable(value: boolean);
    _euiTableDraggable: boolean;
    get euiTableCards(): boolean;
    set euiTableCards(value: boolean);
    _euiTableCards: boolean;
    get euiTableBordered(): boolean;
    set euiTableBordered(value: boolean);
    _euiTableBordered: boolean;
    get euiTableCompact(): boolean;
    set euiTableCompact(value: boolean);
    _euiTableCompact: boolean;
    get hasStickyHeader(): boolean;
    set hasStickyHeader(value: boolean);
    _hasStickyHeader: boolean;
    get hasStickyColumns(): boolean;
    set hasStickyColumns(value: boolean);
    private _hasStickyColumns;
    scrollableContainerRef: Element;
    selectedRows: EventEmitter<any[]>;
    sortChange: EventEmitter<SortEvent>;
    headerTemplate: TemplateRef<any>;
    bodyTemplate: TemplateRef<any>;
    footerTemplate: TemplateRef<any>;
    emptyMessageTemplate: TemplateRef<any>;
    page: number;
    pageSize: number;
    showStickyHeader: boolean;
    filteredRows: any[];
    templates: QueryList<EuiTemplateDirective>;
    stickyHeaderRef: ElementRef<HTMLElement>;
    stickyColumnsRef: ElementRef<HTMLElement>;
    stickyHeaderColumnsRef: ElementRef<HTMLElement>;
    theadRef: ElementRef<HTMLElement>;
    tbodyRef: ElementRef<HTMLElement>;
    private rowsSrc;
    private destroy$;
    private tableFeaturesHandlerSubscription;
    private selectRowsFeatureHandlerSubscription;
    private stickyHeaderHandlerSubscription;
    private stickyColumnsHandlerSubscription;
    private stickyContainerScrollTop;
    private stickyContainerScrollLeft;
    get cssClasses(): string;
    get hasLoading(): boolean;
    constructor(euiTableSortService: EuiTableSortService, cd: ChangeDetectorRef, renderer: Renderer2, viewContainerRef: ViewContainerRef, euiTableSelectableRowService: EuiTableSelectableRowService);
    ngOnChanges(c: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    trackByFn(index: number, item: any): number;
    selectAllRows(): void;
    unselectAllRows(): void;
    selectRows(rows: any[]): void;
    onContentChanges(): void;
    filterRows(filter: string, r: any[]): any[];
    private stickyHeaderHandler;
    private isColumnVisible;
    private getLeftPosition;
    private stickyColumnsHandler;
    private tableFeaturesHandler;
    private selectRowsFeatureHandler;
    private getProps;
    private paginateRows;
    private orderRows;
    private getObjProp;
    static ɵfac: i0.ɵɵFactoryDef<EuiTableComponent, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<EuiTableComponent, "eui-table, table[euiTable]", never, { "rows": "rows"; "paginator": "paginator"; "filter": "filter"; "loading": "loading"; "preselectedRows": "preselectedRows"; "asyncTable": "asyncTable"; "paginable": "paginable"; "euiTableResponsive": "euiTableResponsive"; "euiTableFixedLayout": "euiTableFixedLayout"; "euiTableDraggable": "euiTableDraggable"; "euiTableCards": "euiTableCards"; "euiTableBordered": "euiTableBordered"; "euiTableCompact": "euiTableCompact"; "hasStickyHeader": "hasStickyHeader"; "hasStickyColumns": "hasStickyColumns"; "scrollableContainerRef": "scrollableContainerRef"; }, { "selectedRows": "selectedRows"; "sortChange": "sortChange"; }, ["templates"], never>;
}
