import type { RowData } from "@tanstack/react-table";
import React from "react";
import type { CellEditInfo, EditFieldConfig } from "./utils/types.js";
export interface EditableCellProps<
	TData extends RowData,
	CellValue = unknown
> {
	initialValue: CellValue;
	currentValue: CellValue;
	cellId: string;
	dataType?: string;
	onCellEdit: (cellId: string, info: CellEditInfo<TData, CellValue>) => void;
	onCellValidationError?: (cellId: string, error: string) => void;
	clearCellValidationError?: (cellId: string) => void;
	validationError?: string;
	originalRowData: TData;
	rowId: string;
	columnId: string;
	validateEdit?: (value: unknown) => Promise<string | undefined>;
	editFieldConfig?: EditFieldConfig<TData>;
	/**
	* Pending edits for this row, keyed by `columnId`. Forwarded to
	* `EditFieldConfig#getFieldComponentProps`. Filtering happens in
	* `DefaultCellRenderer` so unedited rows receive a stable `undefined`
	* reference and `React.memo` can skip them.
	*/
	rowCellEdits?: Record<string, CellEditInfo<TData, unknown>>;
	isRowFocused?: boolean;
}
declare function EditableCellInner<
	TData extends RowData,
	CellValue = unknown
>({ initialValue, currentValue, cellId, dataType, onCellEdit, onCellValidationError, clearCellValidationError, originalRowData, rowId, columnId, validateEdit, validationError, editFieldConfig, rowCellEdits, isRowFocused }: EditableCellProps<TData, CellValue>): React.ReactElement;
export declare const EditableCell: typeof EditableCellInner;
export {};
