import type { ExecutionGrant, OrchestrationDispatchRequest, OrchestrationModelBinding, OrchestrationProfile, ResourcePointer, TaskContract, ToolCapabilityManifest } from "./contracts.ts"; import { type ExecutionPolicyCompiler, type PolicyCompilationResult } from "./policy-compiler.ts"; export interface ModelHealthView { isHealthy(binding: OrchestrationModelBinding): boolean; } export interface ProfileDispatchPlan { profile: OrchestrationProfile; model: OrchestrationModelBinding; grant: ExecutionGrant; toolManifests: readonly ToolCapabilityManifest[]; } export type ProfileDispatchPlanResult = { outcome: "allow"; plan: ProfileDispatchPlan; } | Exclude | { outcome: "deny"; decisions: readonly []; reasonCodes: readonly ["profile_model_unavailable"]; }; export declare class OrchestrationProfileError extends Error { constructor(message: string); } export declare function parseOrchestrationDispatchRequest(value: unknown): OrchestrationDispatchRequest; export declare function validateOrchestrationProfile(profile: OrchestrationProfile): void; export declare function parseOrchestrationProfile(value: unknown, sourcePath?: string): OrchestrationProfile; export declare class OrchestrationProfileRegistry { private readonly profiles; constructor(profiles?: readonly OrchestrationProfile[]); register(profile: OrchestrationProfile): void; get(profileId: string): OrchestrationProfile | undefined; list(): OrchestrationProfile[]; } export declare function resolveProfileModel(profile: OrchestrationProfile, health: ModelHealthView): OrchestrationModelBinding | undefined; export declare function planProfileDispatch(args: { request: OrchestrationDispatchRequest; task: TaskContract; attemptId: string; subjectId: string; registry: OrchestrationProfileRegistry; health: ModelHealthView; policyCompiler: ExecutionPolicyCompiler; toolManifests: readonly ToolCapabilityManifest[]; resources: readonly ResourcePointer[]; readPaths: readonly string[]; writePaths?: readonly string[]; deniedPaths?: readonly string[]; policyVersion: string; }): ProfileDispatchPlanResult; //# sourceMappingURL=profile-registry.d.ts.map