import * as React from 'react'; //TODO: Find good way to export this, and set it as first type argument on ColumnMetaData.customComponent interface CustomColumnComponentProps { data: any, rowData: T, metaData: ColumnMetaData } interface ColumnMetaData { columnName: string; order?: number; locked?: boolean; cssClassName?: string; displayName?: string; customComponent?: any; //TODO: should be React.Component, but getting weird error. } interface BodyCssClassNameFunction { (rowData:T): string; } interface RowMetaData { bodyCssClassName?: BodyCssClassNameFunction | string; } 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; useGriddleStyles?: boolean; customRowComponent?: any; //TODO: should be React.Component, but getting weird error. customGridComponent?: any; //TODO: should be React.Component, but getting weird error. customPagerComponent?: any; //TODO: should be React.Component, but getting weird error. enableToggleCustom?: boolean; noDataMessage?: string; noDataClassName?: string; customNoDataComponent?: any; //TODO: should be React.Component, but getting weird error. 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?: any; //TODO: should be React.Component, but getting weird error. 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;