import { Cell } from '@tanstack/react-table';
/**
 * Hook to extract and memoize cell properties from TanStack Table cell object.
 *
 * Follows Single Responsibility Principle by only handling cell property extraction.
 * Memoizes the extraction to prevent unnecessary recalculations on re-renders.
 *
 * @template T - The type of the data record
 * @param cell - The TanStack Table cell object
 * @returns Memoized cell properties including columnId, getters, and render function
 *
 * @example
 * ```tsx
 * const {
 *   columnId,
 *   getIndex,
 *   getCanResize,
 *   getSize,
 *   cellRender,
 *   getContext,
 * } = useCellProperties(cell);
 * ```
 */
export default function useCellProperties<T>(cell: Cell<T, unknown>): {
    /** The unique identifier for this column */
    columnId: string;
    /** Function to get the column index */
    getIndex: (position?: import('@tanstack/react-table').ColumnPinningPosition | "center") => number;
    /** Function to check if the column can be resized */
    getCanResize: () => boolean;
    /** Function to get the current column size */
    getSize: () => number;
    /** The cell render function from column definition */
    cellRender: import('@tanstack/react-table').ColumnDefTemplate<import('@tanstack/react-table').CellContext<T, unknown>> | undefined;
    /** Function to get the cell context for rendering */
    getContext: () => import('@tanstack/react-table').CellContext<T, unknown>;
};
