import { Cell } from '@tanstack/react-table';
/**
 * Extracts the column ID from a cell, with proper type narrowing.
 * Uses the stored ColumnDef from meta if available, otherwise falls back to column.id.
 *
 * @param cell - The TanStack table cell instance
 * @returns The column ID as a keyof T
 */
export declare function getColumnId<T>(cell: Cell<T, unknown>): keyof T;
/**
 * Gets the cell value with proper type narrowing based on column ID.
 * Uses the column ID to narrow the return type from `unknown` to `T[K]`.
 *
 * @param cell - The TanStack table cell instance
 * @param _columnId - The column ID to use for type narrowing (unused at runtime, only for TypeScript)
 * @returns The cell value, typed as T[K]
 */
export declare function getCellValue<T, K extends keyof T>(cell: Cell<T, unknown>, _columnId: K): T[K];
/**
 * Gets the onChange callback with proper typing based on column ID.
 * Returns a callback that accepts T[K] instead of the union type T[keyof T].
 *
 * @param cell - The TanStack table cell instance
 * @param _columnId - The column ID to use for type narrowing (unused at runtime, only for TypeScript)
 * @returns The onChange callback, typed to accept T[K], or undefined if not configured
 */
export declare function getCellOnChange<T, K extends keyof T>(cell: Cell<T, unknown>, _columnId: K): ((value: T[K], rowId: string) => void) | undefined;
/**
 * Logs a warning when a cell value type doesn't match the expected type for its editMode.
 *
 * @param params - The warning parameters
 * @param params.columnId - The column ID for the warning message
 * @param params.editMode - The editMode of the column
 * @param params.expectedType - The expected type description
 * @param params.receivedType - The actual type received
 */
export declare function logWarningForInvalidCellValueType({ columnId, editMode, expectedType, receivedType, }: {
    columnId: string;
    editMode: string;
    expectedType: string;
    receivedType: string;
}): void;
