import type { ObjectOrInterfaceDefinition, Osdk, PropertyKeys, QueryDefinition, SimplePropertyDef } from "@osdk/api";
import type { FunctionColumnLocator, ObjectTableDataRow } from "../ObjectTableApi.js";
import type { PagedObjects } from "./functionColumns.js";
/**
* Default value for `getSnapshot`'s `rowLimit`. When the object set's total
* row count exceeds this value, {@link ObjectTableHandle.getSnapshot} rejects,
* guarding against runaway loads over very large object sets.
*/
export declare const DEFAULT_SNAPSHOT_ROW_LIMIT = 1e4;
/**
* Builds a single {@link ObjectTableDataRow} for a loaded object. Property and
* derived-property cells read straight off the object; function-backed cells
* are looked up in the pre-resolved per-locator values map (whose values are
* either the raw cell or, for failed pages, an `Error` instance).
*/
export declare function buildSnapshotRow<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef>,
	FunctionColumns extends Record<string, QueryDefinition<{}>>
>(object: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, columnIds: ReadonlyArray<string>, functionLocators: ReadonlyArray<FunctionColumnLocator<Q, RDPs, FunctionColumns>>, functionColumnValues: Map<string, Map<string, unknown>> | undefined): ObjectTableDataRow<Q, RDPs>;
/**
* Executes a function-backed column for one page, applies `getValue`, and
* returns a map keyed by `locator.getKey(obj)` so callers can merge values
* back onto each row.
*
* On query failure, every object in the page maps to the thrown `Error`,
* so the caller surfaces a per-cell error rather than dropping the column.
*/
export declare function fetchFunctionColumnPage<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef>,
	FunctionColumns extends Record<string, QueryDefinition<{}>>
>(executeFunction: (params: unknown) => Promise<unknown>, locator: FunctionColumnLocator<Q, RDPs, FunctionColumns>, page: PagedObjects<Q, RDPs>): Promise<Map<string, unknown>>;
/**
* Resolves async column values for all loaded rows by paginating each function
* locator across the rows. Returns the per-locator map of `getKey(obj)` →
* cell value (already `getValue`-unwrapped, or an `Error` for failed pages).
*
* Each (locator, page) pair is one function call. They run concurrently but no
* more than `maxConcurrent` are in flight at once, so a wide table over many
* pages doesn't fire hundreds of requests at the server simultaneously. This
* mirrors the live function-column path (`useFunctionColumnsData`), which caps
* concurrency the same way via `useOsdkFunctions`.
*/
export declare function fetchFunctionColumnValues<
	Q extends ObjectOrInterfaceDefinition,
	RDPs extends Record<string, SimplePropertyDef>,
	FunctionColumns extends Record<string, QueryDefinition<{}>>
>(locators: ReadonlyArray<FunctionColumnLocator<Q, RDPs, FunctionColumns>>, pages: ReadonlyArray<PagedObjects<Q, RDPs>>, executeFunction: (queryDefinition: QueryDefinition<{}>, params: unknown) => Promise<unknown>, maxConcurrent?: number): Promise<Map<string, Map<string, unknown>>>;
