import { EventEmitter, QueryList, ElementRef, AfterContentInit, OnChanges, TemplateRef } from '@angular/core';
import { GrwitTableColumn } from './table-column';
export declare enum SORT_DIRECTION {
    ASCENDING = "ASCENDING",
    DESCENDING = "DESCENDING"
}
export declare class GrwitTable implements AfterContentInit, OnChanges {
    private zenegyTableWrapperRef;
    noDataFoundHeadline: string;
    noDataFoundDescription: string;
    noDataMessageTemplate: TemplateRef<any>;
    dataLoadingHeadline: string;
    dataLoadingDescription: TemplateRef<any>;
    dataLoadingMessageTemplate: TemplateRef<any>;
    items: any[];
    getStatusIconName: Function;
    _showCheckbox: boolean;
    showCheckbox: boolean;
    hasMoreData: boolean;
    checkboxColumnWidth: string;
    allItemsSelected: boolean;
    showHeader: boolean;
    rowHoverClass: string;
    rowClick: EventEmitter<any>;
    allItemsSelectedChange: EventEmitter<boolean>;
    noItemsSelected: EventEmitter<boolean>;
    someItemsSelected: EventEmitter<boolean>;
    sort: EventEmitter<any>;
    fetchMore: EventEmitter<any>;
    itemSelectionCount: number;
    contentLoaded: boolean;
    loading: boolean;
    hasFooter: boolean;
    hoveredRowIndex: any;
    private virtualScroll;
    scroller: any;
    tableHeader: any;
    tableBody: any;
    tableFooter: any;
    readonly selectable: boolean;
    readonly noCheckbox: boolean;
    columns: QueryList<GrwitTableColumn>;
    private checkColumnWidths;
    constructor(zenegyTableWrapperRef: ElementRef);
    onTableScroll($event: any): void;
    scrollerClicked($event: any): void;
    ngAfterContentInit(): void;
    onRowMouseOver(index: any): void;
    onRowMouseOut(index: any): void;
    handleRowClick(item: any): void;
    setupTableDimensions(): void;
    setTableBodyHeight(): void;
    setHeaderWidth(): void;
    ngOnChanges(change: any): void;
    handleCheckboxChange($event: any, element: any): void;
    stopPropagation($event: any): void;
    toggleItemsSelection(isSelected: any): void;
    sortData(column: any): void;
    getColumnValue(item: any, property: any): any;
    getSortFunction(column: any, direction: any): (a: any, b: any) => any;
    getCurrentSortFunction(): (a: any, b: any) => any;
    fetchNewItems($event: any): void;
    showLoader(): void;
    hideLoader(): void;
}
