import type { L0Options, L0Result } from "../types/l0"; export interface ParallelOptions { concurrency?: number; failFast?: boolean; sharedRetry?: L0Options["retry"]; sharedMonitoring?: L0Options["monitoring"]; onProgress?: (completed: number, total: number) => void; onComplete?: (result: L0Result, index: number) => void; onError?: (error: Error, index: number) => void; } export interface RaceResult extends L0Result { winnerIndex: number; } export interface ParallelResult { results: Array | null>; errors: Array; successCount: number; failureCount: number; duration: number; allSucceeded: boolean; aggregatedTelemetry?: AggregatedTelemetry; } export interface AggregatedTelemetry { totalTokens: number; totalDuration: number; totalRetries: number; totalNetworkErrors: number; totalViolations: number; avgTokensPerSecond: number; avgTimeToFirstToken: number; } export declare function parallel(operations: L0Options[], options?: ParallelOptions): Promise>; export declare function parallelAll(operations: L0Options[], options?: Omit): Promise>; export declare function sequential(operations: L0Options[], options?: Omit): Promise>; export declare function batched(operations: L0Options[], batchSize: number, options?: Omit): Promise>; export declare function race(operations: L0Options[], options?: Pick): Promise>; export declare class OperationPool { private concurrency; private options; private queue; private activeWorkers; constructor(concurrency: number, options?: Pick); execute(operation: L0Options): Promise; private processQueue; drain(): Promise; getQueueLength(): number; getActiveWorkers(): number; } export declare function createPool(concurrency: number, options?: Pick): OperationPool; //# sourceMappingURL=parallel.d.ts.map