import type { ComponentType, ReactNode } from 'react'; import type { TogglesSelectAllProps } from './components/Toggles'; import type { WrappedComponentProps } from './components/helpers/with-pagination'; import * as utils from './helpers/functions'; export interface SmartDataTableProps { className: string; data: string | T[]; dataKey: string; dataKeyResolver: utils.KeyResolverFn; dataRequestOptions: RequestInit; dataSampling: number; dynamic: boolean; emptyTable: ReactNode; filterValue: string; headers: utils.Headers; hideUnordered: boolean; loader: ReactNode; name: string; onRowClick: utils.RowClickFn; orderedHeaders: string[]; paginator: ComponentType; parseBool: boolean | utils.ParseBool; parseImg: boolean | utils.ParseImg; perPage: number; rowClassName: utils.RowClassNameFn; sortable: boolean; withFooter: boolean; withHeader: boolean; withLinks: boolean; withToggles: boolean | { selectAll?: TogglesSelectAllProps; }; } export interface SmartDataTableState { activePage: number; asyncData: T[]; colProperties: utils.Headers; columns: utils.Column[]; isLoading: boolean; prevFilterValue: string; sorting: utils.Sorting; }