import type { ObjectOrInterfaceDefinition, Osdk, PropertyKeys, QueryDefinition, SimplePropertyDef } from "@osdk/api";
import type { ColumnDefinition } from "../ObjectTableApi.js";
import { type AsyncCellData } from "../utils/AsyncCellData.js";
export interface FunctionColumnData {
	[columnId: string]: {
		[objectPrimaryKey: string]: AsyncCellData
	};
}
export interface UseFunctionColumnsDataProps<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,
	FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>
> {
	objectOrInterfaceType: Q;
	objects: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>[] | undefined;
	columnDefinitions?: Array<ColumnDefinition<Q, RDPs, FunctionColumns>>;
	pageSize?: number;
}
export declare function useFunctionColumnsData<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,
	FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>
>({ objectOrInterfaceType, objects, columnDefinitions, pageSize }: UseFunctionColumnsDataProps<Q, RDPs, FunctionColumns>): FunctionColumnData;
