import WidgetBase from '@dojo/framework/core/WidgetBase';
import ThemedMixin, { ThemedProperties } from '@dojo/framework/core/mixins/Themed';
import { DNode } from '@dojo/framework/core/interfaces';
import { Store } from '@dojo/framework/stores/Store';
import './utils';
import { Fetcher, ColumnConfig, Updater } from './interfaces';
import { SortRenderer, FilterRenderer } from './Header';
export interface CustomRenderers {
    sortRenderer?: SortRenderer;
    filterRenderer?: FilterRenderer;
}
export interface GridProperties<S> extends ThemedProperties {
    columnConfig: ColumnConfig[];
    fetcher: Fetcher<S>;
    height: number;
    updater?: Updater<S>;
    store?: Store<S>;
    storeId?: string;
    customRenderers?: CustomRenderers;
}
declare const Grid_base: import("@dojo/framework/core/interfaces").Constructor<ThemedMixin<{}>> & typeof WidgetBase;
export default class Grid<S> extends Grid_base<GridProperties<S>> {
    private _store;
    private _handle;
    private _scrollLeft;
    private _pageSize;
    constructor();
    protected onStoreProperty(previous: any, current: any): void;
    private _getProperties;
    private _getBodyHeight;
    private _fetcher;
    private _sorter;
    private _filterer;
    private _updater;
    private _pageChange;
    private _onScroll;
    protected render(): DNode;
}
export {};
