/**
 * Pass 2 — Simulation & Scenario Modeling (ADR-035)
 *
 * Executes three concurrent workstreams that converge into a unified
 * Scenario Matrix stored in the DecisionGraph:
 *
 *   Workstream A: Scenario Generation (LLM-Simulator)
 *   Workstream B: Risk Signal Detection (LLM-Sentinel)
 *   Workstream C: Model Reliability (LLM-Test-Bench)
 *
 * After all workstreams complete, their outputs are merged into a
 * ScenarioMatrix node that cross-references scenarios with risk signals
 * and reliability assessments.
 */
import type { PassNumber, AgentRef, AgentInvocationResult } from './types.js';
import { DecisionGraph } from './decision-graph.js';
import { ProvenanceTracker } from './provenance-tracker.js';
/** Scenario types per ADR-035. */
export type ScenarioType = 'deployment' | 'integration' | 'failure' | 'scaling' | 'edge_case';
/** Probability/impact levels. */
export type ProbabilityLevel = 'high' | 'medium' | 'low';
export type ImpactLevel = 'critical' | 'high' | 'medium' | 'low';
/** A single simulation scenario. */
export interface Scenario {
    readonly id: string;
    readonly type: ScenarioType;
    readonly name: string;
    readonly description: string;
    readonly assumptions: readonly string[];
    readonly probability: ProbabilityLevel;
    readonly impact: ImpactLevel;
    readonly expectedOutcome: string;
    readonly mitigationStrategy: string;
    readonly metrics: ScenarioMetrics;
}
/** Quantified metrics for a scenario. */
export interface ScenarioMetrics {
    readonly reliabilityProbability?: number;
    readonly failureProbability?: number;
    readonly deploymentSuccessProbability?: number;
    readonly estimatedRecoveryTime?: string;
}
/** Risk signal categories per ADR-035. */
export type RiskCategory = 'operational' | 'integration' | 'security' | 'compliance' | 'performance';
/** Severity levels for risk signals. */
export type SeverityLevel = 'critical' | 'high' | 'medium' | 'low';
/** A single risk signal detected by Sentinel agents. */
export interface RiskSignal {
    readonly id: string;
    readonly category: RiskCategory;
    readonly severity: SeverityLevel;
    readonly description: string;
    readonly source: string;
    readonly correlatedWith: readonly string[];
    readonly rootCause: string;
    readonly mitigationSuggestion: string;
}
/** Reliability recommendation. */
export type ReliabilityRecommendation = 'reliable' | 'caution' | 'unreliable';
/** Model reliability report from Test-Bench agents. */
export interface ReliabilityReport {
    readonly overallScore: number;
    readonly hallucinationScore: number;
    readonly faithfulnessScore: number;
    readonly biasScore: number;
    readonly stressResilienceScore: number;
    readonly redTeamFindings: readonly string[];
    readonly recommendation: ReliabilityRecommendation;
}
/** Cross-reference between a scenario and its related risk signals. */
export interface ScenarioCrossReference {
    readonly scenarioId: string;
    readonly relatedRiskSignals: readonly string[];
    readonly reliabilityImpact: string;
}
/** The merged output of all three workstreams. */
export interface ScenarioMatrix {
    readonly scenarios: readonly Scenario[];
    readonly riskSignals: readonly RiskSignal[];
    readonly reliabilityReport: ReliabilityReport;
    readonly crossReferences: readonly ScenarioCrossReference[];
    readonly overallRiskLevel: ImpactLevel;
}
/** Workstream identifier. */
export type WorkstreamId = 'scenario-generation' | 'risk-signal-detection' | 'model-reliability';
/** Agent-to-workstream mapping. */
export interface WorkstreamConfig {
    readonly id: WorkstreamId;
    readonly label: string;
    readonly agents: readonly AgentRef[];
}
/** Define which agents belong to which workstream. */
export declare const WORKSTREAM_CONFIGS: readonly WorkstreamConfig[];
/** Result from a single workstream execution. */
export interface WorkstreamResult {
    readonly workstream: WorkstreamId;
    readonly label: string;
    readonly agentResults: readonly AgentInvocationResult[];
    readonly successCount: number;
    readonly totalCount: number;
    readonly durationMs: number;
}
/** Full Pass 2 execution result. */
export interface Pass2Result {
    readonly workstreamResults: readonly WorkstreamResult[];
    readonly scenarios: readonly Scenario[];
    readonly riskSignals: readonly RiskSignal[];
    readonly reliabilityReport: ReliabilityReport;
    readonly scenarioMatrix: ScenarioMatrix;
    readonly graphNodeIds: readonly string[];
    readonly totalAgentResults: readonly AgentInvocationResult[];
}
/**
 * Execute Pass 2: Simulation & Scenario Modeling.
 *
 * Dispatches three workstreams concurrently, processes their results
 * into typed domain objects, merges into a ScenarioMatrix, and writes
 * all outputs to the DecisionGraph.
 */
export declare function executePass2(params: {
    prompt: string;
    graph: DecisionGraph;
    tracker: ProvenanceTracker;
    timeoutMs: number;
    verbose: boolean;
    skipRedTeam?: boolean;
    /** Injected invoker for testing. If not provided, uses the real agent invoker. */
    invokeAgents?: (agents: readonly AgentRef[], payload: Record<string, unknown>, pass: PassNumber, timeoutMs: number) => Promise<AgentInvocationResult[]>;
}): Promise<Pass2Result>;
//# sourceMappingURL=pass2-simulation.d.ts.map