import { UseColumnOrderInstanceProps, UseColumnOrderState, UseExpandedHooks, UseExpandedInstanceProps, UseExpandedOptions, UseExpandedRowProps, UseExpandedState, UseFiltersColumnOptions, UseFiltersColumnProps, UseFiltersInstanceProps, UseFiltersOptions, UseFiltersState, UseGlobalFiltersColumnOptions, UseGlobalFiltersInstanceProps, UseGlobalFiltersOptions, UseGlobalFiltersState, UseGroupByCellProps, UseGroupByColumnOptions, UseGroupByColumnProps, UseGroupByHooks, UseGroupByInstanceProps, UseGroupByOptions, UseGroupByRowProps, UseGroupByState, UsePaginationInstanceProps, UsePaginationOptions, UsePaginationState, UseResizeColumnsColumnOptions, UseResizeColumnsColumnProps, UseResizeColumnsOptions, UseResizeColumnsState, UseRowSelectHooks, UseRowSelectInstanceProps, UseRowSelectOptions, UseRowSelectRowProps, UseRowSelectState, UseRowStateCellProps, UseRowStateInstanceProps, UseRowStateOptions, UseRowStateRowProps, UseRowStateState, UseSortByColumnOptions, UseSortByColumnProps, UseSortByHooks, UseSortByInstanceProps, UseSortByOptions, UseSortByState, } from 'react-table'; import { UseSelectColumnTableOptions } from '@lineup-lite/hooks'; declare module 'react-table' { // take this file as-is, or comment out the sections that don't apply to your plugin configuration export interface TableOptions< D extends Record<string, unknown> > extends UseExpandedOptions<D>, UseFiltersOptions<D>, UseGlobalFiltersOptions<D>, UseGroupByOptions<D>, UsePaginationOptions<D>, UseResizeColumnsOptions<D>, UseRowSelectOptions<D>, UseRowStateOptions<D>, UseSortByOptions<D>, UseSelectColumnTableOptions<D>, // note that having Record here allows you to add anything to the options, this matches the spirit of the // underlying js library, but might be cleaner if it's replaced by a more specific type that matches your // feature set, this is a safe default. // eslint-disable-next-line @typescript-eslint/no-explicit-any Record<string, any> {} export interface Hooks< D extends Record<string, unknown> = Record<string, unknown> > extends UseExpandedHooks<D>, UseGroupByHooks<D>, UseRowSelectHooks<D>, UseSortByHooks<D> {} export interface TableInstance< D extends Record<string, unknown> = Record<string, unknown> > extends UseColumnOrderInstanceProps<D>, UseExpandedInstanceProps<D>, UseFiltersInstanceProps<D>, UseGlobalFiltersInstanceProps<D>, UseGroupByInstanceProps<D>, UsePaginationInstanceProps<D>, UseRowSelectInstanceProps<D>, UseRowStateInstanceProps<D>, UseSortByInstanceProps<D> {} export interface TableState< D extends Record<string, unknown> = Record<string, unknown> > extends UseColumnOrderState<D>, UseExpandedState<D>, UseFiltersState<D>, UseGlobalFiltersState<D>, UseGroupByState<D>, UsePaginationState<D>, UseResizeColumnsState<D>, UseRowSelectState<D>, UseRowStateState<D>, UseSortByState<D> {} export interface ColumnInterface< D extends Record<string, unknown> = Record<string, unknown> > extends UseFiltersColumnOptions<D>, UseGlobalFiltersColumnOptions<D>, UseGroupByColumnOptions<D>, UseResizeColumnsColumnOptions<D>, UseSortByColumnOptions<D> { className?: string; canHide?: boolean; } export interface ColumnInstance< D extends Record<string, unknown> = Record<string, unknown> > extends UseFiltersColumnProps<D>, UseGroupByColumnProps<D>, UseResizeColumnsColumnProps<D>, UseSortByColumnProps<D> { className?: string; } export interface Cell< D extends Record<string, unknown> = Record<string, unknown>, // eslint-disable-next-line @typescript-eslint/no-explicit-any V = any > extends UseTableCellProps<D, V>, UseGroupByCellProps<D>, UseRowStateCellProps<D> { className?: string; } export interface Row< D extends Record<string, unknown> = Record<string, unknown> > extends UseExpandedRowProps<D>, UseGroupByRowProps<D>, UseRowSelectRowProps<D>, UseRowStateRowProps<D> {} export function makePropGetter( hooks: Array<PropGetter>, ...meta: Record<string, unknown>[] ): PropGetter; export interface TableToggleRowsSelectedProps { disabled: boolean; } }