import type { ObjectOrInterfaceDefinition, Osdk, PropertyKeys, QueryDefinition, SimplePropertyDef } from "@osdk/api";
import type { AccessorColumnDef } from "@tanstack/react-table";
import type { ColumnDefinition } from "../ObjectTableApi.js";
export interface UseColumnDefsResult<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef> = Record<string, never>
> {
	columns: AccessorColumnDef<Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>>[];
	loading: boolean;
	error: string | undefined;
}
/**
* Hook which builds column definitions for tanstack-table given the objectSet
*/
export declare function useColumnDefs<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,
	FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>
>(objectType: Q, columnDefinitions?: Array<ColumnDefinition<Q, RDPs, FunctionColumns>>): UseColumnDefsResult<Q, RDPs>;
