import type { KeyboardEvent, MouseEvent, ReactNode } from 'react';
import type { ResolvedValue } from '../../helpers/dataframe/index.js';
export interface CellContentProps {
    stringify: (value: unknown) => string | undefined;
    cell?: ResolvedValue;
    col: number;
    row?: number;
}
interface Props {
    /** aria column index */
    ariaColIndex: number;
    /** aria row index */
    ariaRowIndex: number;
    /** column index in the original dataframe, used for callbacks like onDoubleClickCell */
    columnIndex: number;
    /** index in the visible columns array (used for styling/widths) */
    visibleColumnIndex: number;
    /** function to stringify the cell value, used for default rendering and for copy to clipboard */
    stringify: (value: unknown) => string | undefined;
    /** cell value, undefined if the value has not been fetched yet, or if the value is actually undefined. Use hasResolved to distinguish these cases. */
    cellValue?: unknown;
    /** whether the cell value has been resolved */
    hasResolved?: boolean;
    /** class name */
    className?: string;
    /** double click callback */
    onDoubleClickCell?: (event: MouseEvent, col: number, row: number) => void;
    /** mouse down callback */
    onMouseDownCell?: (event: MouseEvent, col: number, row: number) => void;
    /** key down callback, for accessibility, it should be passed if onDoubleClickCell is passed. It can handle more than that action though. */
    onKeyDownCell?: (event: KeyboardEvent, col: number, row: number) => void;
    /** the row index in the original data, undefined if the value has not been fetched yet */
    rowNumber?: number;
    /** custom cell content component, if not provided, the default stringified value will be used */
    renderCellContent?: (props: CellContentProps) => ReactNode;
}
/**
 * Render a table cell <td> with title and optional custom rendering
 */
export default function Cell({ cellValue, hasResolved, onDoubleClickCell, onMouseDownCell, onKeyDownCell, stringify, columnIndex, visibleColumnIndex, className, ariaColIndex, ariaRowIndex, rowNumber, renderCellContent }: Props): import("react/jsx-runtime").JSX.Element;
export {};
