import { Hooks } from "react-table"; import { AtLeastOneProperty } from "./types"; import { RowData } from "./types"; export declare const DRAFT_ID = -1; declare type HandlerFunction = (row: R) => Promise; declare type PermissionsHandler = (row: R) => boolean; export interface UseEditRowTableOptions { isEditRowEnabled?: boolean; isEditRowLoading?: boolean; onEditRowConfirmed?: HandlerFunction; onEditRowCanceled?: HandlerFunction; onEditRowDeleted?: HandlerFunction; onEditRowRestored?: HandlerFunction; canEditRow?: boolean | PermissionsHandler; canDeleteRow?: boolean | PermissionsHandler; canRestoreRow?: boolean | PermissionsHandler; editRowValidate?: (row: R) => null | EditRowValidationError[]; } declare function useEditRow(hooks: Hooks): void; declare namespace useEditRow { var pluginName: string; } export default useEditRow; export declare type EditRowValidationError = { column: keyof R; code?: string; message?: string; }; export interface UseEditRowTableState { editRowId?: string; editRowTransaction?: R; editRowValidationErrors?: null | EditRowValidationError[]; } export interface UseEditRowInstanceProps { setEditRow: (rowId: string) => void; resetEditRow: () => void; updateEditRow: (update: AtLeastOneProperty) => void; canEditRow: PermissionsHandler; canDeleteRow: PermissionsHandler; canRestoreRow: PermissionsHandler; } export interface UseEditRowRowProps { isEditing: boolean; isEditLoading: boolean; isEditDraft: boolean; editValidationErrors: null | EditRowValidationError[]; canEdit: () => boolean; canRestore: () => boolean; canDelete: () => boolean; edit: () => void; resetEdit: () => void; updateEdit: (update: AtLeastOneProperty) => void; } export declare function getPermissionsHandler(options: UseEditRowTableOptions, name: "canEdit" | "canDelete" | "canRestore"): PermissionsHandler;