/**
 * Parallel arm execution for CANT workflow parallel blocks.
 *
 * Supports three join strategies:
 * - `all` (default): Wait for ALL arms. Fail if any arm fails.
 * - `race`: Return when the FIRST arm completes. Cancel remaining.
 * - `settle`: Wait for ALL arms. Collect successes and failures.
 *
 * @see docs/specs/CANT-DSL-SPEC.md Section 7.5 (Parallel Execution)
 */
import type { JoinStrategy, SettleResult, StepResult } from './types.js';
/** A single parallel arm to execute. */
export interface ParallelArm {
    /** The arm name (used for binding results to scope). */
    name: string;
    /** The async function that executes the arm's body. */
    execute: () => Promise<unknown>;
}
/** Result of a parallel block execution. */
export interface ParallelResult {
    /** Whether the parallel block succeeded according to its join strategy. */
    success: boolean;
    /** Per-arm results mapped by arm name. */
    results: Record<string, unknown>;
    /** Step results for audit/logging. */
    steps: StepResult[];
    /** Settle-mode detailed breakdown (only for `settle` strategy). */
    settleResult?: SettleResult;
}
/**
 * Executes parallel arms according to the specified join strategy.
 *
 * @param arms - The arms to execute concurrently.
 * @param strategy - The join strategy (default: 'all').
 * @returns Parallel execution result.
 */
export declare function executeParallel(arms: ParallelArm[], strategy?: JoinStrategy): Promise<ParallelResult>;
//# sourceMappingURL=parallel-runner.d.ts.map