import { CSSProperties, ReactNode } from "react"; export declare type ReferenceObject = { id: string; selectable?: boolean; }; export interface TableObject extends ReferenceObject { [key: string]: any; } export interface TableColumn { name: keyof T; text: string; sortable?: boolean; hidden?: boolean; getValue?(row: T, defaultValue: ReactNode): ReactNode; alignment?: Alignment; disabled?: boolean; } export declare type Alignment = "left" | "center" | "right"; export interface TableAction { name: string; text: string; icon?: ReactNode; multiple?: boolean; primary?: boolean; onClick?(selectedIds: string[]): void; isActive?(rows: T[]): boolean; } export interface RowConfig { style?: CSSProperties; cellStyle?: CSSProperties; disabled?: boolean; selectable?: boolean; } export declare type TableGlobalAction = Omit, "isActive">; export interface TableSorting { field: keyof T; order: "asc" | "desc"; } export interface TablePagination { pageSize: number; total: number; page: number; } export interface TableState { selection: TableSelection[]; sorting: TableSorting; pagination: TablePagination; } export declare type TableInitialState = Partial, "pagination">> & { pagination?: Partial; }; export interface TableNotification { message: ReactNode; link?: string; newSelection?: TableSelection[]; } export interface TableSelection { id: string; checked?: boolean; indeterminate?: boolean; icon?: ReactNode; } export declare type ObjectsTableDetailField = Pick, "name" | "text" | "getValue">; export declare type MouseActionMapping = { type: "primary"; } | { type: "contextual"; } | { type: "action"; action: string; }; export declare type MouseActionsMapping = Record<"left" | "right", MouseActionMapping>; export interface PaginationOptions { pageSizeOptions: number[]; pageSizeInitialValue: number; renderPosition?: { bottom: boolean; top: boolean; }; }