import type { JSONSchemaType } from 'ajv'; import type { Datastore } from '.'; import type { Any, AnyObject } from '../typings'; export interface MultiQuery { datastore: string; model: string; source: 'events' | 'entities'; query: object; headers?: any; raw?: any; correlationField?: string; } export interface Iteration { query_index: number; page: number; version: number; max_version: number; is_exhausted: boolean; cursor_last_id: string; cursor_last_correlation_id: string; results: AnyObject[]; } export declare const ERRORS: { INCOMPATIBLE_MULTIPLE_HANDLE_OPTIONS: string; INCOMPATIBLE_MUTATION_ON_EVENTS: string; }; export declare function objToJsonSchema(obj: Any): JSONSchemaType; export declare function defaultWalkMultiSortHandler(a: any, b: any): any; export declare function sortResults(results: AnyObject[], sortHandler?: (a: any, b: any) => any): AnyObject[]; export declare function getMinVersions(datastores: Map, queries: MultiQuery[]): Promise; export declare function getMaxVersions(datastores: Map, queries: MultiQuery[]): Promise; export declare function fetchResultsForQuery(datastores: Map, query: MultiQuery, pageSize: number, queryIteration: Iteration, opts?: { version_ordered?: boolean; }): Promise; export declare function handleResults(results: Array, queries: MultiQuery[], iteration: Map, handler: (res: any, query: MultiQuery, queryIteration: Iteration, batch_id: number, index: number) => any, opts?: { handle_in_order?: boolean; handle_in_parallel?: boolean; }): Promise; export declare function handleIterationWithMutation(datastores: Map, iteration: Map, clonedIteration: Map, queries: MultiQuery[], pageSize: number, opts?: { sleep?: number; version_ordered?: boolean; handle_in_order?: boolean; handle_in_parallel?: boolean; chunk_size?: number; }): Promise; export declare function getLastMatchingCorrelationIdIndex(before: Array, after: Array): number; export declare function checkOptions(queries: MultiQuery[], opts?: { sleep?: number; version_ordered?: boolean; handle_in_order?: boolean; handle_in_parallel?: boolean; chunk_size?: number; is_mutating?: boolean; }): void; export declare function walkMulti(datastores: Map, queries: MultiQuery[], pageSize: number | undefined, handler: (res: any, query: MultiQuery, queryIteration: Iteration) => any, opts?: { sleep?: number; version_ordered?: boolean; handle_in_order?: boolean; handle_in_parallel?: boolean; chunk_size?: number; is_mutating?: boolean; }, sortHandler?: (a: any, b: any) => any): Promise;