import './utils'; import WidgetBase from '@dojo/framework/core/WidgetBase'; import { DNode } from '@dojo/framework/core/interfaces'; import I18nMixin, { I18nProperties } from '@dojo/framework/core/mixins/I18n'; import ThemedMixin, { ThemedProperties } from '@dojo/framework/core/mixins/Themed'; import { Store } from '@dojo/framework/stores/Store'; import { FilterRenderer, SortRenderer } from './Header'; import { ColumnConfig, Fetcher, Updater } from './interfaces'; export interface CustomRenderers { sortRenderer?: SortRenderer; filterRenderer?: FilterRenderer; } export interface GridProperties extends I18nProperties, ThemedProperties { /** The full configuration for the grid columns */ columnConfig: ColumnConfig[]; /** function that returns results for the page reflected */ fetcher: Fetcher; /** gird height in px */ height: number; /** function that updates an item from a edit made in the grid */ updater?: Updater; /** options store, if no store is passed each grid will factory their own grid */ store?: Store; /** the path to store the grid data in */ storeId?: string; /** set of custom renderers for sorting or filtering */ customRenderers?: CustomRenderers; /** when set uses traditional pagination */ pagination?: boolean; /** handler for row selection */ onRowSelect?: (rowData: S[]) => void; } declare const Grid_base: import("@dojo/framework/core/interfaces").Constructor> & typeof WidgetBase & import("@dojo/framework/core/interfaces").Constructor; export default class Grid extends Grid_base> { private _store; private _handle; private _scrollLeft; private _pageSize; private _columnWidths; private _gridWidth; constructor(); protected onStoreProperty(previous: any, current: any): void; private _getProperties; private _getBodyDimensions; private _onColumnResize; private _fetcher; private _sorter; private _filterer; private _updater; private _pageChange; private _selection; private _onScroll; protected render(): DNode; } export {};