export interface BinaryIdentity { readonly path: string; readonly version: string; readonly hash: string; } export interface CapabilityProbeResult { readonly binary: BinaryIdentity; readonly major: number; readonly minor: number; readonly discoverable_flags: readonly string[]; readonly missing_required: readonly string[]; readonly unknown_major: boolean; readonly denylisted: boolean; readonly live_handshake: "pending" | "passed" | "failed"; readonly warning: string | null; readonly usable: boolean; } export interface CapabilityPolicy { readonly minMajor: number; readonly minMinor: number; readonly denylistVersions: readonly string[]; readonly requiredFlags: readonly string[]; readonly requiredSurfaces: readonly string[]; } export declare const CLAUDE_CAPABILITY_POLICY: CapabilityPolicy; export declare const CODEX_CAPABILITY_POLICY: CapabilityPolicy; /** * Static probes claim discoverability only. Live auth/session behavior stays pending * until first-use handshake evidence exists. */ export declare function evaluateCapability(input: { readonly binaryPath: string; readonly version: string; readonly binaryContentsOrPathForHash: string; readonly discoveredFlags: readonly string[]; readonly policy: CapabilityPolicy; readonly liveHandshake?: "pending" | "passed" | "failed"; readonly previousEvidenceDigest?: string | null; }): CapabilityProbeResult; export declare function capabilityEvidenceDigest(result: CapabilityProbeResult): string; export declare function doctorCapabilityLine(result: CapabilityProbeResult, name: string): string;