import { LitElement, TemplateResult } from 'lit';
import '../pagination';
import './table-header';
import { TColumnItem, TRowSelected, ISourceItem, TSortDirections, TFilterItem } from './interface';
export declare class LitTable extends LitElement {
    static get properties(): {
        columns: {
            type: ArrayConstructor;
        };
        rowHeight: {
            type: NumberConstructor;
        };
        headerHeight: {
            type: NumberConstructor;
        };
    };
    static styles: import("lit").CSSResult[];
    private RO;
    private _columns;
    set columns(value: TColumnItem[]);
    get columns(): TColumnItem[];
    private _headerHeight;
    set headerHeight(value: number);
    get headerHeight(): number;
    private _rowHeight;
    set rowHeight(value: number);
    get rowHeight(): number;
    rowSelect?: TRowSelected;
    dataSource: Array<ISourceItem>;
    pagination: boolean;
    paginationToHeight: boolean;
    pageLength: number;
    sort: string;
    sortDirection: TSortDirections;
    page: number;
    private _data;
    private _rect;
    private _stopResize;
    private _filters;
    setPage(page: number): void;
    get rect(): DOMRect | null;
    private recalcPageLength;
    private sortFunction;
    private _updateSort;
    hasFilters(): boolean;
    getFilteredData(): ISourceItem[];
    willUpdate(): void;
    getColumnFilters(key: string): TFilterItem[];
    setFilter(key: string, id: number, filter: TFilterItem): void;
    private _headerTemplate;
    private _rowsTemplate;
    render(): TemplateResult<1>;
    private _onRowClick;
    private _onResize;
    private _onFocus;
    private _onBlur;
    private _changeFilter;
    private _resetFilter;
    private _onSortChanged;
    private _onPageChanged;
}
declare global {
    interface HTMLElementTagNameMap {
        'lit-table': LitTable;
    }
}
