import * as React from 'react'; type ReactClass = React.ComponentClass | React.StatelessComponent export interface CustomColumnComponentProps { data: any; rowData: T; metaData: ColumnMetaData; } export interface CustomRowComponentProps { data: T; } export interface CustomGridComponentProps { data: T[]; } export interface CustomPagerComponentProps { currentPage: number; maxPage: number; nextText: string; previousText: string; next(): void; previous(): void; setPage(number: number): void; } export interface CustomHeaderComponentProps { filterByColumn?(filter: string, columnName: string): void; columnName: string; displayName: string; } export interface CustomFilterComponentProps { placeholderText?: string; changeFilter(val: any): void; } export interface ColumnMetaData { columnName: string; cssClassName?: string; customComponent?: ReactClass>; customHeaderComponent?: ReactClass; customHeaderComponentProps?: {}; displayName?: string; locked?: boolean; order?: number; sortable?: boolean; visible?: boolean; } export interface BodyCssClassNameFunction { (rowData: T): string; } export interface RowMetaData { bodyCssClassName?: BodyCssClassNameFunction | string; } export interface GriddleProps { columns?: string[]; columnMetadata?: ColumnMetaData[]; rowMetadata?: RowMetaData; results?: T[]; resultsPerPage?: number; initialSort?: string; initialSortAscending?: boolean; gridClassName?: string; tableClassName?: string; customFormatClassName?: string; settingsText?: string; filterPlaceholderText?: string; nextText?: string; previousText?: string; maxRowsText?: string; enableCustomFormatText?: string; childrenColumnName?: string; metadataColumns?: string[]; showFilter?: boolean; showSettings?: boolean; useCustomRowComponent?: boolean; useCustomGridComponent?: boolean; useCustomPagerComponent?: boolean; useCustomFilterer?: boolean; useCustomFilterComponent?: boolean; useGriddleStyles?: boolean; customRowComponent?: ReactClass> customGridComponent?: ReactClass> customPagerComponent?: ReactClass customFilterComponent?: ReactClass customFilterer?(items: T[], query: any): T[]; enableToggleCustom?: boolean; noDataMessage?: string; noDataClassName?: string; customNoDataComponent?: ReactClass showTableHeading?: boolean; showPager?: boolean; useFixedHeader?: boolean; useExternal?: boolean; externalSetPage?(index: number): void; externalChangeSort?(sort: string, sortAscending: boolean): void; externalSetFilter?(filter: string): void; externalSetPageSize?(size: number): void; externalMaxPage?: number; externalCurrentPage?: number; externalSortColumn?: string; externalSortAscending?: boolean; externalLoadingComponent?: ReactClass externalIsLoading?: boolean; enableInfiniteScroll?: boolean; bodyHeight?: number; paddingHeight?: number; rowHeight?: number; infiniteScrollLoadTreshold?: number; useFixedLayout?: boolean; isSubGriddle?: boolean; enableSort?: boolean; sortAscendingClassName?: string; sortDescendingClassName?: string; parentRowCollapsedClassName?: string; parentRowExpandedClassName?: string; settingsToggleClassName?: string; nextClassName?: string; previousClassName?: string; sortAscendingComponent?: string | React.ReactElement; sortDescendingComponent?: string | React.ReactElement; sortDefaultComponent?: string | React.ReactElement; parentRowCollapsedComponent?: string | React.ReactElement; parentRowExpandedComponent?: string | React.ReactElement; settingsIconComponent?: string | React.ReactElement; nextIconComponent?: string | React.ReactElement; previousIconComponent?: string | React.ReactElement; onRowClick?(): void; } declare class Griddle extends React.Component, any> { } export default Griddle;