import { GridColumn } from '../types';
interface UseGridEditingProps<T extends {
    id: string | number;
}> {
    columns: GridColumn<T>[];
    onCellEdit?: (rowIndex: number, field: string, value: any) => void;
    data?: T[];
}
interface UseGridEditingReturn<T> {
    editingCell: {
        rowId: string;
        field: string;
    } | null;
    recentlySavedCells: Set<string>;
    singleClickEdit: boolean;
    setEditingCell: (cell: {
        rowId: string;
        field: string;
    } | null) => void;
    setSingleClickEdit: (enabled: boolean) => void;
    handleCellEdit: (rowId: string, field: string, value: string | number) => void;
    handleEditStart: (rowId: string, field: string) => void;
    handleEditCancel: () => void;
    handleTabToNext: (currentRowId: string, currentField: string, totalRows: number) => void;
    handleTabToPrevious: (currentRowId: string, currentField: string) => void;
    getEditableColumns: () => GridColumn<T>[];
    validateEmail: (value: string | number) => boolean | string;
    validateAge: (value: string | number) => boolean | string;
}
export type GridEditingAPI = UseGridEditingReturn<any>;
export declare function useGridEditing<T extends {
    id: string | number;
}>({ columns, onCellEdit, data, }: UseGridEditingProps<T>): UseGridEditingReturn<T>;
export {};
//# sourceMappingURL=use-grid-editing.d.ts.map