/**
 * Phase 3 Pipeline -- Stage: Language Resolution
 *
 * Deterministic, pure-function language resolution that scores signals from
 * Phase 2 artifacts (SPARC output, ADRs, DDD domain model) plus the original
 * scenario query to decide between Rust and TypeScript.
 *
 * The resolver is fully deterministic: no I/O, no randomness, no side effects.
 * Given the same inputs it always produces the same LanguageResolution.
 *
 * Twelve signal detectors scan different artifact sources for evidence that
 * favors one language over the other. Each signal carries a weight (importance)
 * and a confidence (strength of evidence). The final score for each language
 * is the sum of (weight * confidence) across all signals favoring that language.
 *
 * An explicit mention of "rust" or "typescript" in the scenario query overrides
 * the scoring algorithm entirely.
 *
 * Error codes:
 *   ECLI-P3-005  No language signals detected and no explicit mention
 *
 * Exports:
 *   resolveLanguage                 - Pure builder (no I/O)
 *   resolveImplementationLanguage   - Pipeline stage entry point
 */
import type { Phase2SPARCOutput, Phase2ADRRecord, Phase2DomainModel, LanguageResolution, Phase3Context, Phase3StageOutput } from '../types.js';
/**
 * Pure function that resolves the implementation language from Phase 2 artifacts
 * and the scenario query. Fully deterministic: no I/O, no randomness.
 *
 * Twelve signal detectors are evaluated. Each signal that fires contributes a
 * weighted score toward either Rust or TypeScript. An explicit language mention
 * in the query overrides all scoring.
 *
 * @param sparc         - The SPARC output from Phase 2
 * @param adrs          - The ADR records from Phase 2
 * @param ddd           - The DDD domain model from Phase 2
 * @param scenarioQuery - The original scenario query string
 * @returns A complete LanguageResolution with scores, signals, and rationale
 * @throws {Error} ECLI-P3-005 if no signals detected and no explicit mention
 */
export declare function resolveLanguage(sparc: Phase2SPARCOutput, adrs: Phase2ADRRecord[], ddd: Phase2DomainModel, scenarioQuery: string): LanguageResolution;
/**
 * Pipeline stage entry point for language resolution. Reads Phase 2 artifacts
 * from the context, delegates to the pure {@link resolveLanguage} builder, and
 * records the result on the context with telemetry spans.
 *
 * @param context - The Phase 3 pipeline context
 * @returns Stage output describing success or failure
 */
export declare function resolveImplementationLanguage(context: Phase3Context): Promise<Phase3StageOutput>;
//# sourceMappingURL=language-resolver.d.ts.map