import type { BoberConfig } from "../../config/schema.js"; import type { PipelineEngine, PipelineEngineName } from "./engine.js"; import type { Team } from "../../teams/types.js"; /** * Pure resolver — returns the engine name without instantiating an engine. * * Resolution branches: * - engine unset → 'ts' * - engine === 'workflow' && ineligible → 'ts' (one downgrade log line) * - engine === 'workflow' && mode === 'careful' → 'ts' (one downgrade log line) * - else → engine verbatim ('ts' | 'skill' | 'workflow') * * Mirrors the pure-resolver pattern of resolveCheckpointMechanismName * (src/orchestrator/checkpoints/registry.ts:65). */ export declare function resolveEngineName(config: BoberConfig): PipelineEngineName; /** * Resolve config.pipeline.engine to a PipelineEngine instance. * * Belt-and-suspenders per ADR-6: * - resolveEngineName (above) ALREADY downgrades workflow→ts when ineligible/careful. * - In the eligible case, WorkflowEngine is returned; its run() has a second guard * that catches WorkflowUnavailableError from the dormant invoke and re-dispatches TS. * - 'skill' remains on TsPipelineEngine (no skill engine this sprint — non-goal). */ export declare function selectPipelineEngine(config: BoberConfig): PipelineEngine; /** * Pure resolver — returns the engine name for a team, using team.pipelineShape * as the requested engine, then applying the SAME downgrade pipeline as * resolveEngineName (ineligible or mode='careful' → 'ts'). * * The downgrade log line is byte-identical to resolveEngineName's (selector.ts:29-31). */ export declare function resolveEngineNameForTeam(team: Team, config: BoberConfig): PipelineEngineName; /** * Resolve a Team's pipelineShape to a PipelineEngine instance. * * Applies the same downgrade rules as selectPipelineEngine (via resolveEngineNameForTeam), * and uses the same exhaustive switch over PipelineEngineName. The programming team's * pipelineShape === resolveEngineName(config) by construction (registry.ts:68), so this * is byte-for-byte identical to selectPipelineEngine(config) for the programming team. */ export declare function selectPipelineEngineForTeam(team: Team, config: BoberConfig): PipelineEngine; //# sourceMappingURL=selector.d.ts.map