/** * Types for Fan-Out Pattern */ import { AsyncFunction, Logger } from "./common"; /** * Options for fan-out pattern */ export interface FanOutOptions { /** * Array of items to process */ items: TInput[]; /** * Transformation function to apply to each item */ execute: AsyncFunction; /** * Maximum concurrency level * @default Infinity (no limit) */ concurrency?: number; /** * Continue processing even if some items fail * @default false */ continueOnError?: boolean; /** * Logger */ logger?: Logger; /** * Progress callback */ onProgress?: (completed: number, total: number) => void; /** * Error callback for individual items */ onItemError?: (item: TInput, error: Error, index: number) => void; } /** * Result of fan-out operation */ export interface FanOutResult { /** * Successful results */ results: TOutput[]; /** * Errors (empty array if no errors) */ errors: Error[]; /** * Total number of items processed */ total: number; /** * Number of successes */ successCount: number; /** * Number of failures */ errorCount: number; /** * Number of failures (alias for errorCount) */ failureCount: number; /** * Total duration in ms */ duration: number; } //# sourceMappingURL=fan-out.d.ts.map