import type { IntegrationAgent } from "./agent-adapters.js"; import { type DiscoveryDirectory } from "./agent-discovery-directories.js"; import { type ManagedPluginRegistrationWitness } from "./plugin-discovery.js"; import { type CodexHookDiscoveryRecovery } from "./codex-hook-discovery-recovery.js"; export { captureDiscoveryDirectories, type DiscoveryDirectory } from "./agent-discovery-directories.js"; export interface DiscoverySource { path: string; sha256: string | null; hashMode?: "bytes" | "path-bytes" | "claude-plugin-registry" | "claude-marketplace-registry" | "claude-settings-v1" | "claude-settings-v2" | "claude-settings-v3" | "claude-marketplace-registry-v2"; managedPlugins?: ManagedPluginRegistrationWitness[]; format?: "json" | "toml" | "yaml"; fields?: string[]; } export interface AgentDiscoveryBinding { agent: IntegrationAgent; roots: string[]; sources: DiscoverySource[]; directories?: DiscoveryDirectory[]; method: "automatic" | "reviewed"; builtinNames?: string[]; } export interface ReviewedDiscoveryInputs { version: 1; agents: Array<{ agent: IntegrationAgent; roots: string[]; sources: DiscoverySource[]; directories?: DiscoveryDirectory[]; pluginHooks: "reviewed-no-skill-injection"; }>; } export declare function verifyAgentDiscovery(binding: AgentDiscoveryBinding, codexRecovery?: CodexHookDiscoveryRecovery): void; export declare function rebindAgentDiscovery(binding: AgentDiscoveryBinding, changes: Map): AgentDiscoveryBinding; /** Capture full byte witnesses for reviewed source or executable files; never import or execute them. */ export declare function captureDiscoveryByteSources(paths: string[]): DiscoverySource[]; /** Capture executable/source path identity, including links and absent targets. */ export declare function captureDiscoveryPathSources(paths: string[]): DiscoverySource[]; /** Project settings can introduce a higher-precedence discovery source. Until * its native merge format is supported, refuse that layer rather than certify * the home-only inventory. Ordinary unrelated project settings remain usable. */ export declare function assertProjectDiscovery(agent: IntegrationAgent, directories: string[], home: string, canonical?: (path: string) => string, reviewed?: AgentDiscoveryBinding): void; /** Resolve configured plugin discovery without starting an agent or loading a plugin. * Unknown runtime registrations require explicit reviewed inputs, never a cache guess. */ export declare function agentDiscoveryConfigPath(home: string, agent: IntegrationAgent): string; export declare function resolveAgentDiscovery(options: { home: string; agent: IntegrationAgent; reviewed?: ReviewedDiscoveryInputs; retainedReview?: AgentDiscoveryBinding; canonical?: (path: string) => string; }): AgentDiscoveryBinding;