import { DataTableBodyCellProps } from '../../../base/cells/TableBodyCell';
import { CellPosition } from '../../../internal/types';
import { Cell } from '@tanstack/react-table';
/**
 * Imperative handle for editable cell components, allowing programmatic control
 * of editing state and focus management
 */
export type EditableCellImperativeHandle = {
    invoke: () => void;
    focus: () => void;
};
/**
 * Props passed to editable cells for styling and event handling
 * This is a subset of DataTableBodyCellProps containing only the properties
 * that are actually used by editable cell components
 */
export type EditableCellCellProps = Pick<DataTableBodyCellProps, "className" | "onKeyDown" | "style">;
/**
 * Base props shared by all editable cell components
 */
export type BaseEditableCellProps<T> = {
    /**
     * The TanStack table cell instance
     */
    cell: Cell<T, unknown>;
    /**
     * Props for styling and event handling of the cell container
     */
    cellProps: EditableCellCellProps;
    /**
     * The position of the cell in the table
     */
    cellPosition: CellPosition;
    /**
     * The children to render in the cell
     */
    children: React.ReactNode;
};
