///
import { Column, Row, Cell, TableOptions as ReactTableOptions, TableState as ReactTableState, TableInstance as ReactTableInstance, UseExpandedInstanceProps, UseExpandedOptions, UseExpandedRowProps, UseExpandedState, UseGroupByCellProps, UseGroupByColumnOptions, UseGroupByColumnProps, UseGroupByInstanceProps, UseGroupByOptions, UseGroupByRowProps, UseGroupByState, UsePaginationInstanceProps, UsePaginationOptions, UsePaginationState, UseSortByColumnOptions, UseSortByColumnProps, UseSortByInstanceProps, UseSortByOptions, UseSortByState } from "react-table";
import { UseEditRowTableState, UseEditRowTableOptions, UseEditRowInstanceProps, UseEditRowRowProps } from "./useEditRow";
import { UseDuplicateRowTableOptions, UseDuplicateRowInstanceProps, UseDuplicateRowRowProps } from "./useDuplicateRow";
import { UseRowClassTableOptions, UseRowClassInstanceProps, UseRowClassRowProps } from "./useRowClass";
export declare enum Alignment {
Leading = 0,
Trailing = 1
}
export declare type RowDataId = number | string;
export interface RowData {
id: RowDataId;
}
export declare type CanEditCell = boolean | ((value: undefined | R, cell: TableCell) => boolean);
export interface EditableCellOptions {
name: N;
disabled?: boolean;
canEdit?: CanEditCell;
}
interface WithPlaceholderRenderer {
Placeholder?: (props: CellRendererProps) => React.ReactNode;
}
export declare type TableRow = Row & UseGroupByRowProps & UseExpandedRowProps & UseEditRowRowProps & UseDuplicateRowRowProps & UseRowClassRowProps;
export declare type TableColumn = Column & UseSortByColumnProps & UseGroupByColumnProps & WithPlaceholderRenderer & {
align?: Alignment;
format?: (value: any) => string;
validate?: (value: any) => boolean;
};
export declare type TableColumnProps = TableColumn & {
accessor: (row: R) => V;
};
export declare type TableCell = Cell & {
row: TableRow;
column: TableColumnProps;
value: V;
} & UseGroupByCellProps;
export declare type CellRendererProps = TableInstance & Pick, "row" | "column" | "value"> & {
cell: TableCell;
};
export declare type TableState = ReactTableState & UseSortByState & UseGroupByState & UseExpandedState & UsePaginationState & UseEditRowTableState;
export declare type TableOptions = ReactTableOptions & UseSortByOptions & UseGroupByOptions & UseExpandedOptions & UsePaginationOptions & UseEditRowTableOptions & UseRowClassTableOptions & UseDuplicateRowTableOptions & {
initialState: Partial>;
};
export declare type TableInstance = ReactTableInstance & UseSortByInstanceProps & UseGroupByInstanceProps & UseExpandedInstanceProps & UsePaginationInstanceProps & UseDuplicateRowTableOptions & UseDuplicateRowInstanceProps & UseEditRowTableOptions & UseRowClassInstanceProps & UseEditRowInstanceProps & {
rows: TableRow[];
rowsById: Record>;
state: TableState;
};
export declare type TableColumnOptions = TableOptions["columns"][number] & UseSortByColumnOptions & UseGroupByColumnOptions & WithPlaceholderRenderer;
export declare type RowClickHandler = (e: React.MouseEvent) => void;
export declare type ToggleRowState = (id: string, state?: boolean) => void;
export declare type ToggleRowsState = (id: string[], state?: boolean) => void;
export declare type AtLeastOneProperty;
}> = Partial & U[keyof U];
export {};