import WidgetBase from '@dojo/framework/core/WidgetBase';
import I18nMixin from '@dojo/framework/core/mixins/I18n';
import ThemedMixin from '@dojo/framework/core/mixins/Themed';
import { DNode } from '@dojo/framework/core/interfaces';
import { GridPages, ColumnConfig, SelectionType } from './interfaces';
export interface PaginatedBodyProperties<S> {
    /** The current page number */
    pageNumber: number;
    /** A list of paginated grids */
    pages: GridPages<S>;
    /** The height (in pixels) */
    height: number;
    /** The width (in pixels) */
    width?: number;
    /** The number of elements to a page */
    pageSize: number;
    /** Configuration for grid columns (id, title, properties, and custom renderer) */
    columnConfig: ColumnConfig[];
    /** Custom renderer for the placeholder row used while data is loaded */
    placeholderRowRenderer?: (index: number) => DNode;
    /** Used to fetch additional pages of information */
    fetcher: (page: number, pageSize: number) => void;
    /** Called when a cell is updated */
    updater: (page: number, rowNumber: number, columnId: string, value: string) => void;
    /** Handler for scroll events */
    onScroll: (value: number) => void;
    /** Calculated column widths */
    columnWidths?: {
        [index: string]: number;
    };
    /** handler for row selection */
    onRowSelect?: (index: number, type: SelectionType) => void;
    /** array of selected rows */
    selectedRows?: number[];
}
declare const PaginatedBody_base: import("@dojo/framework/core/interfaces").Constructor<ThemedMixin<{}>> & typeof WidgetBase & import("@dojo/framework/core/interfaces").Constructor<I18nMixin>;
export default class PaginatedBody<S> extends PaginatedBody_base<PaginatedBodyProperties<S>> {
    private _defaultPlaceholderRow;
    private _updater;
    private _onScroll;
    private _renderRows;
    protected render(): DNode;
}
export {};
