/** @format */ export interface Column { key: string; dataIndex: string; title: string; width?: number; minWidth?: number; render?: (value: unknown, record: Record, index: number) => React.ReactNode; align?: "left" | "center" | "right"; fixed?: "left" | "right"; sortable?: boolean; sorter?: (a: Record, b: Record) => number; /** Enables column filter menu */ filterable?: boolean; /** Enables inline editing */ editable?: boolean; /** Editor configuration for inline editing */ editor?: { type: "text" | "number"; } | { type: "date"; } | { type: "checkbox"; } | { type: "select"; options: Array<{ label: string; value: string | number; }>; }; } export interface SortState { columnKey: string | null; direction: "asc" | "desc" | null; } export interface CellSelection { rowIndex: number; columnKey: string; value: unknown; } export interface RangeSelection { startRow: number; endRow: number; startColumn: string; endColumn: string; } export interface CellSelectionState { selectedCells: CellSelection[]; selectedRange?: RangeSelection; isEnabled: boolean; activeCell?: { rowIndex: number; columnKey: string; }; } export interface VirtualGridProps { dataSource: Record[]; originalDataSource?: Record[]; columns: Column[]; rowHeight?: number; headerHeight?: number; overscan?: number; style?: React.CSSProperties; className?: string; onRowClick?: (record: Record, index: number) => void; rowClassName?: (record: Record, index: number) => string; sortState?: SortState; onSort?: (columnKey: string, direction: "asc" | "desc" | null) => void; cellSelection?: CellSelectionState; onCellSelection?: (selectedCells: CellSelection[]) => void; enableCellSelection?: boolean; enableRowSelection?: boolean; rowKey?: string; selectedRowKeys?: Array; onRowSelectionChange?: (selectedRowKeys: Array, selectedRows: Record[]) => void; enableColumnResize?: boolean; onColumnResize?: (columnKey: string, newWidth: number) => void; columnWidths?: Record; enableColumnReorder?: boolean; onColumnReorder?: (sourceIndex: number, targetIndex: number) => void; filters?: Record>; onFiltersChange?: (next: Record>) => void; onCellEdit?: (params: { rowIndex: number; rowKeyValue: string | number; columnKey: string; dataIndex: string; value: unknown; }) => void; theme?: { headerBackground?: string; headerColor?: string; rowBackground?: string; rowAlternateBackground?: string; rowHoverBackground?: string; borderColor?: string; fontSize?: string; fontFamily?: string; rowColor?: string; }; } export interface VirtualGridState { scrollTop: number; scrollLeft: number; containerHeight: number; containerWidth: number; } //# sourceMappingURL=types.d.ts.map