import React from 'react'; import { Column, TableHeadRow, TableRow, DataType, SortDir, TableCell, TableHeadCell } from './type'; export declare type SingleFilter = { excludeIds: string[]; filterValue?: any; }; export declare type FilterMapType = Record; declare type Props = { columns: Column[]; data: T[]; page?: PageConfig; tableWidth?: number; onFilter?: (filters: FilterMapType, data: TableRow[]) => void; onSort?: (sorter: SaveSort[], data: TableRow[]) => void; }; export declare type SaveSort = { accessor: string; dir: SortDir; customSort?: (curRow: TableRow, nextRow: TableRow, dir: SortDir) => number; }; export declare type Col = { span: number; cell: TableHeadCell; width?: number; }; export declare type PageConfig = { pageSize: number; page: number; }; export default function useTable({ columns, data, page, tableWidth, onFilter, onSort, }: Props): { header: TableHeadRow[]; footer: TableHeadRow[]; body: TableRow[]; cols: Col[]; afterHandleBody: { cells: TableCell[]; style?: React.CSSProperties | undefined; data: T; id: string; }[]; afterFilterBody: TableRow[]; afterFilterTotal: number; }; export {};