///
import * as React from 'react';
import { Component, HTMLProps, ReactElement, ReactNode } from 'react';
import { ColumnHeaderProperty, Query, SelectOption, ViewMode } from './models';
export interface DatagridProps {
defaultFilterDisabled?: boolean;
filtersActive?: boolean;
progress?: number;
loading?: boolean;
limitOptions?: number[];
mainButton?: HTMLProps;
noDefaultFilter?: boolean;
noFilters?: boolean;
noFiltersHeader?: boolean;
noHeader?: boolean;
noPagination?: boolean;
noSearchBarCollapse?: boolean;
noSearchBy?: boolean;
noTotalInHeader?: boolean;
noViewModeButton?: boolean;
properties?: ColumnHeaderProperty[];
query?: Query;
searchInputPlaceholder?: string;
searchPropertyOptions?: SelectOption[];
searchPropertyValue?: string;
searchTerm?: string;
total?: number;
tableMinWidth?: number;
viewMode?: ViewMode;
viewModeButtons?: ViewMode[];
viewModeCustomElement?: ReactNode;
onChangeQuery?: (updatedQuery: Query) => void;
onChangeSearchProperty?: (searchProperty: string) => void;
onChangeViewMode?: (viewMode: ViewMode) => void;
onResetAllFilters?: () => void;
onSearchTerm?: (term: string) => void;
onToggleFilters?: (active: boolean) => void;
}
export interface DatagridState {
filtersActive: boolean;
viewMode: ViewMode;
}
export declare class Datagrid extends Component {
static propTypes: any;
static defaultProps: Partial;
constructor(props: DatagridProps);
componentWillReceiveProps(nextProps: DatagridProps): void;
render(): JSX.Element;
renderTableView: (children: React.ReactElement[]) => JSX.Element;
renderCardsView: (children: React.ReactElement[]) => JSX.Element;
renderMapView(children: ReactElement[]): React.ReactElement;
handleToggleFilters: () => void;
handleChangeViewMode: (viewMode: ViewMode) => void;
handleQueryChange: (queryProp: string) => (value: any) => void;
getChildrenAsArray(): React.ReactElement[];
}