/** Medical inference resolver — local-default fail-closed; cloud only behind cloud-inference (Sprint 3). */ import type { BoberConfig } from "../config/schema.js"; import type { LLMClient } from "../providers/types.js"; import type { EgressGuard } from "./egress.js"; import { createClient } from "../providers/factory.js"; /** Injectable factory seam so tests can spy without real network. Defaults to the real createClient. */ export type ClientFactory = typeof createClient; /** * Resolve the synthesis/critic LLMClient + model from config, gated by cloud-inference. * * - No inference config => exact local default (back-compat, byte-identical to engine.ts:402). * - inference points at the local provider/endpoint => used as-is (non-egressing). * - inference points at a CLOUD provider/endpoint AND cloud-inference is OFF => FAIL CLOSED to local. * - cloud config AND cloud-inference is ON => the configured cloud client/model is built. * * The local-vs-cloud decision lives ONLY here; createClient is the sole client-construction seam. */ export declare function buildMedicalInferenceClient(config: BoberConfig, egress: EgressGuard, factory?: ClientFactory): { client: LLMClient; model: string; }; //# sourceMappingURL=inference.d.ts.map