import type { ObjectOrInterfaceDefinition, Osdk, PropertyKeys, QueryDefinition, SimplePropertyDef } from "@osdk/api";
import type { ObjectTableProps } from "../ObjectTableApi.js";
import type { EditableConfig } from "../utils/types.js";
export interface UseEditableTableProps<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,
	FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>
> {
	editMode?: "always" | "manual";
	onCellValueChanged?: ObjectTableProps<Q, RDPs, FunctionColumns>["onCellValueChanged"];
	onSubmitEdits?: ObjectTableProps<Q, RDPs, FunctionColumns>["onSubmitEdits"];
}
export declare function useEditableTable<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,
	FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>
>({ editMode, onCellValueChanged, onSubmitEdits }: UseEditableTableProps<Q, RDPs, FunctionColumns>): EditableConfig<Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, unknown>;
