import { RequiredKeys } from '../utils'; import { Updater, TableOptionsResolved, TableState, Table, InitialTableState, Row, Column, RowModel, ColumnDef, TableOptions, RowData, TableMeta } from '../types'; export interface TableFeature { getDefaultOptions?: (table: any) => any; getInitialState?: (initialState?: InitialTableState) => any; createTable?: (table: any) => any; getDefaultColumnDef?: () => any; createColumn?: (column: any, table: any) => any; createHeader?: (column: any, table: any) => any; createCell?: (cell: any, column: any, row: any, table: any) => any; createRow?: (row: any, table: any) => any; } export interface CoreTableState { } export interface CoreOptions { data: TData[]; state: Partial; onStateChange: (updater: Updater) => void; debugAll?: boolean; debugTable?: boolean; debugHeaders?: boolean; debugColumns?: boolean; debugRows?: boolean; initialState?: InitialTableState; autoResetAll?: boolean; mergeOptions?: (defaultOptions: TableOptions, options: Partial>) => TableOptions; meta?: TableMeta; getCoreRowModel: (table: Table) => () => RowModel; getSubRows?: (originalRow: TData, index: number) => undefined | TData[]; getRowId?: (originalRow: TData, index: number, parent?: Row) => string; columns: ColumnDef[]; defaultColumn?: Partial>; renderFallbackValue: any; } export interface CoreInstance { initialState: TableState; reset: () => void; options: RequiredKeys, 'state'>; setOptions: (newOptions: Updater>) => void; getState: () => TableState; setState: (updater: Updater) => void; _features: readonly TableFeature[]; _queue: (cb: () => void) => void; _getRowId: (_: TData, index: number, parent?: Row) => string; getCoreRowModel: () => RowModel; _getCoreRowModel?: () => RowModel; getRowModel: () => RowModel; getRow: (id: string) => Row; _getDefaultColumnDef: () => Partial>; _getColumnDefs: () => ColumnDef[]; _getAllFlatColumnsById: () => Record>; getAllColumns: () => Column[]; getAllFlatColumns: () => Column[]; getAllLeafColumns: () => Column[]; getColumn: (columnId: string) => Column | undefined; } export declare function createTable(options: TableOptionsResolved): Table;