/** * Small helpers shared by the MM GraphQL proxy reads/writes in `MMApiClient` * (paging, chunking, numeric coercion of Hasura's varied renderings). */ /** Default rows per GraphQL page for the paged MM proxy reads. */ export declare const DEFAULT_GRAPHQL_PAGE_SIZE = 500; /** A GraphQL document plus the operation name and variables to post with it. */ export interface GraphqlOperation { operationName: string; query: string; variables?: Record; } /** * Preserve null: MM's numeric columns are nullable and "not provided" must stay * distinguishable from a real 0 for connector-side selection rules. Non-finite * values (NaN, Infinity, unparsable strings) are reported as null too. */ export declare function toNullableFiniteNumber(value: unknown): number | null; /** * A page/chunk size option: finite values of at least 1 are floored, anything else falls * back. The `>= 1` bound matters — a fractional size such as `0.5` floors to `0`, and a * page size of `0` makes `rows.length < pageSize` false for an empty page while * `offset += pageSize` leaves the offset unchanged, so the paged reads would loop forever. */ export declare function normalizePositiveInteger(value: number | undefined, fallback: number): number; /** * Split a list into chunks of `chunkSize`. * @throws {RangeError} when `chunkSize` is not a positive finite number — callers normalize * options with {@link normalizePositiveInteger} first; a silent "one chunk of everything" * would put thousands of ids into a single `_in` list. */ export declare function chunkList(items: readonly T[], chunkSize: number): T[][]; /** * Strings and finite numbers, trimmed; blanks and anything else dropped; deduped **exactly** * (MM compares text exactly); keep * first-seen order. Accepts an optional single value plus an optional list. */ export declare function collectNonBlankStrings(single: unknown, many: readonly unknown[] | undefined): string[]; //# sourceMappingURL=graphql-helpers.d.ts.map