import { type OrchestrationModelBinding, type WorkerRole } from "./contracts.ts"; export type WorkerModelPinSource = "global" | "project" | "directoryProfile"; export interface WorkerModelPinsSettings { default?: OrchestrationModelBinding; roles?: Partial>; } export interface ResolvedWorkerModelPin { binding: OrchestrationModelBinding; source: WorkerModelPinSource; } export type WorkerModelPinPolicy = { status: "absent"; } | { status: "invalid"; diagnostics: readonly string[]; } | { status: "active"; byRole: Readonly>>; /** * Non-blocking configuration observations (e.g. role entries with no `default`, which * leaves every unlisted role unpinned and admits any caller-requested model for it). * Never gates admission — see resolveWorkerModelPin and the delegation-time * `modelPinBypass` diagnostic in worker-delegation-controller.ts. */ diagnostics?: readonly string[]; }; export interface WorkerModelPinPolicyLayers { global?: unknown; project?: unknown; directoryProfile?: unknown; } /** Compile independently validated settings scopes into one immutable admission policy. */ export declare function compileWorkerModelPinPolicy(layers: WorkerModelPinPolicyLayers): WorkerModelPinPolicy; export declare function resolveWorkerModelPin(policy: WorkerModelPinPolicy, role: WorkerRole): ResolvedWorkerModelPin | undefined; //# sourceMappingURL=worker-model-pins.d.ts.map