import { type AuthSourceKind, type CredentialProfile, type CredentialProfileProblemCode, type EffectiveCredentialProfilePolicy, type HarnessPlatform } from "@claudexor/schema"; import type { HarnessAdapter } from "./adapter.js"; export interface CredentialProfilePolicyState { readonly harnessId: string; readonly platform: HarnessPlatform | null; readonly policy: EffectiveCredentialProfilePolicy; readonly enabledProfileCount: number; readonly ambiguous: boolean; } /** Node supports more platform literals than the public harness contract. */ export declare function harnessPlatform(platform?: NodeJS.Platform): HarnessPlatform | null; /** * Resolve static profile policy without running discover() or any vendor * probe. This is the early fail-loud seam: a persisted ambiguity must be * diagnosed before choosing or contacting one of the conflicting rows. */ export declare function credentialProfilePolicyState(input: { adapter: Pick | undefined; registry: readonly CredentialProfile[]; source?: AuthSourceKind; platform?: NodeJS.Platform; }): CredentialProfilePolicyState; export interface CredentialProfilePolicyProblem extends Error { status: 409; code: CredentialProfileProblemCode; retryable: false; fieldErrors: Record; requiredActions: string[]; context: { harnessId: string; platform: HarnessPlatform | null; maxEnabledProfiles: number; enabledProfileCount: number; }; } /** Exact typed 409 shared by create, enable, setup, and run admission. */ export declare function credentialProfilePolicyProblem(state: CredentialProfilePolicyState, code: "credential_profile_limit_exceeded" | "credential_profile_ambiguous", field?: "/profileId" | "/enabled"): CredentialProfilePolicyProblem; //# sourceMappingURL=credential-profile-policy.d.ts.map