import { RowManager, RowId } from '../../lib/row-manager';
import { GridEditingAPI } from '../use-grid-editing';
import { GridValidationAPI } from '../data/use-grid-validation';
export interface GridEditingAPIOptions<T extends {}> {
    rowManager: RowManager<T>;
    gridEditing: GridEditingAPI;
    validationAPI: GridValidationAPI<T>;
    displayData: T[];
    isServerSide: boolean;
    updateRow: (rowId: RowId, changes: Partial<T>) => boolean;
    onEditComplete?: (rowId: string, field: string) => void;
}
export interface GridEditingAPIResult {
    editingCell: {
        rowId: string;
        field: string;
    } | null;
    recentlySavedCells: Set<string>;
    singleClickEdit: boolean;
    setSingleClickEdit: (enabled: boolean) => void;
    startEdit: (rowId: string, field: string) => void;
    cancelEdit: () => void;
    handleCellEditComplete: (rowId: string, field: string, value: string | number) => void;
    handleEditCancel: () => void;
}
export declare function useGridEditingAPI<T extends {}>(options: GridEditingAPIOptions<T>): GridEditingAPIResult;
//# sourceMappingURL=use-grid-editing-api.d.ts.map