import type { DecisionOptions, DecisionResult } from "../types/index.js";
/**
 * How many batches of one split request are in flight at once. A request that
 * splits into many must not meet the vendor's rate limit first: Perplexity, for
 * one, allows ten requests a second.
 */
export declare const MAX_PARALLEL_DECISION_BATCHES = 4;
/**
 * Cut a request whose question map is longer than a provider's cap into
 * requests the provider takes, keeping the questions in the order they were
 * given. A request that fits, or a provider with no cap, comes back as the one
 * request it was.
 *
 * `state` and any images or video travel with every batch, since each batch is
 * a decision of its own.
 */
export declare function splitDecisionRequest(options: DecisionOptions, maxQuestions: number | undefined): DecisionOptions[];
/**
 * One result from the results of several batches: the answers joined, usage and
 * media summed, the latency of the slowest (the batches ran side by side), and
 * the request ids listed. Model and provider are the first batch's, which is
 * the same for all of them.
 */
export declare function mergeDecisionResults(results: readonly [DecisionResult, ...DecisionResult[]]): DecisionResult;
