import type { UseDataTableCellEditEvent, DataTableEditMode, UseDataTableEditingEvent, UseDataTableRowEditEvent, EditingKeys } from '@primereact/types/headless/datatable'; import * as React from 'react'; export interface UseDataTableEditingOptions { editMode?: DataTableEditMode; editingKeys?: EditingKeys; defaultEditingKeys?: EditingKeys; onEditingKeysChange?: (event: UseDataTableEditingEvent) => void; onRowEditInit?: (event: UseDataTableRowEditEvent) => void; onRowEditSave?: (event: UseDataTableRowEditEvent) => void; onRowEditCancel?: (event: UseDataTableRowEditEvent) => void; onCellEditInit?: (event: { originalEvent: React.SyntheticEvent; field: string; rowIndex: number; }) => void; onCellEditComplete?: (event: UseDataTableCellEditEvent) => void; onCellEditCancel?: (event: UseDataTableCellEditEvent) => void; } export declare function useDataTableEditing(options: UseDataTableEditingOptions): { state: { editingKeys: EditingKeys; editingCell: { rowIndex: number; field: string; rowKey?: string | number; } | null; }; exposes: { isEditing: (key: string | number) => boolean; startRowEdit: (event: React.SyntheticEvent, key: string | number, rowData?: Record, rowIndex?: number) => void; saveRowEdit: (event: React.SyntheticEvent, key: string | number, rowData?: Record, newData?: Record, rowIndex?: number) => void; cancelRowEdit: (event: React.SyntheticEvent, key: string | number, rowData?: Record, rowIndex?: number) => void; startCellEdit: (event: React.SyntheticEvent, rowIndex: number, field: string, rowKey?: string | number) => void; completeCellEdit: (event: UseDataTableCellEditEvent) => boolean; cancelCellEdit: (event: React.SyntheticEvent, rowIndex: number, field: string) => void; isCellEditing: (rowIndex: number, field: string, rowKey?: string | number) => boolean; getCellEditorRootProps: (params: { rowIndex: number; field: string; rowKey?: string | number; isEditing: boolean; }) => { 'data-editing'?: string | undefined; 'data-row-key'?: string | undefined; 'data-scope': string; 'data-part': string; 'data-row-index': string; 'data-field': string; }; getRowEditorInitProps: () => { 'data-scope': string; 'data-part': string; type: "button"; 'aria-label': string; }; getRowEditorSaveProps: () => { 'data-scope': string; 'data-part': string; type: "button"; 'aria-label': string; }; getRowEditorCancelProps: () => { 'data-scope': string; 'data-part': string; type: "button"; 'aria-label': string; }; }; };