import type { CheckpointMechanism } from "./types.js"; export declare function registerCheckpointMechanism(name: string, impl: CheckpointMechanism): void; export declare function getCheckpointMechanism(name: string): CheckpointMechanism; /** * Minimal config shape for per-checkpoint override resolution. * Structural subset of BoberConfig — passing a real BoberConfig works without a cast. * * Sprint 14: added mode field and extended checkpointOverrides type. */ export interface CheckpointOverrideConfig { pipeline?: { /** Global default checkpoint mechanism name (e.g., "noop", "cli", "disk", "pr"). */ checkpointMechanism?: string; /** Per-checkpoint overrides: { "": "" } */ checkpointOverrides?: Record; /** Pipeline execution mode — determines mechanism default when checkpointMechanism is unset. */ mode?: "autopilot" | "careful"; /** Allow any additional pipeline fields (e.g., maxCheckpointIterations) from BoberConfig. */ [key: string]: unknown; }; } /** * Pure resolution function — returns the mechanism name string without doing a registry lookup. * Sprint 14: implements 6-tier resolution order: * 1. cliOverrideAll && cliOverride → cliOverride (force-all CLI flag) * 2. config.pipeline.checkpointOverrides[checkpointId] (most specific per-checkpoint config) * 3. cliOverride (per-run CLI flag, deferred to after per-checkpoint config override) * 4. config.pipeline.checkpointMechanism (global config default, if set) * 5. mode default: mode='careful' → 'disk', mode='autopilot' or unset → 'noop' * 6. fallback param (back-compat hatch for callers that supply one) * * Exported so that pipeline.ts can snapshot the resolved name once per run for audit logging. */ export declare function resolveCheckpointMechanismName(checkpointId: string, config: CheckpointOverrideConfig | undefined, cliOverride?: string, cliOverrideAll?: boolean, fallback?: string): string; /** * Resolve the mechanism for a specific checkpoint. Resolution order: * 1. (cliOverrideAll && cliOverride) → cliOverride (force-all CLI flag) * 2. config.pipeline.checkpointOverrides[checkpointId] (per-checkpoint config) * 3. cliOverride (per-run CLI flag, after per-checkpoint config) * 4. config.pipeline.checkpointMechanism (global config default) * 5. mode default: 'careful' → 'disk', 'autopilot'/unset → 'noop' * 6. fallback param (back-compat; e.g., "noop") * * Sprint 14: extended with optional cliOverride + cliOverrideAll trailing params. * All existing 3-arg and 2-arg call-sites continue to work unchanged. */ export declare function getCheckpointMechanismFor(checkpointId: string, config: CheckpointOverrideConfig | undefined, fallback?: string, cliOverride?: string, cliOverrideAll?: boolean): CheckpointMechanism; //# sourceMappingURL=registry.d.ts.map