import type { CrowdyAgentMode, CrowdyAgentRegisteredToolV1, CrowdyAgentToolDescriptorV1, CrowdyAgentToolExecutor } from './types.js'; /** Names whose presence would create ambient or arbitrary authority. */ export declare const FORBIDDEN_AGENT_TOOL_SURFACES: readonly ["graphql", "fetch", "http", "url", "socket", "shell", "process", "filesystem", "dom", "keyboard", "mouse", "pointer", "host_call", "playercodebroker", "udp", "token", "cookie", "storage", "devtools", "database", "buddy"]; export interface CrowdyAgentRegistryFilter { readonly mode?: CrowdyAgentMode; readonly executor?: CrowdyAgentToolExecutor; /** Effective scopes filter descriptors; it never grants a scope. */ readonly availableScopes?: ReadonlySet; } /** Immutable, exact-lookup registry pinned by a canonical digest. */ export declare class CrowdyAgentToolRegistry { readonly contractVersion: "crowdy.agent-tools/1"; readonly registryDigest: `sha256:${string}`; private readonly entries; private readonly byLogical; private readonly byWire; constructor(descriptors: readonly CrowdyAgentToolDescriptorV1[]); list(filter?: CrowdyAgentRegistryFilter): readonly CrowdyAgentRegisteredToolV1[]; get(name: string, version: string): CrowdyAgentRegisteredToolV1 | undefined; require(name: string, version: string): CrowdyAgentRegisteredToolV1; /** Exact, case-sensitive provider wire-name reverse lookup. */ fromWireName(wireName: string): CrowdyAgentRegisteredToolV1; validateInput(name: string, version: string, value: unknown): void; validateOutput(name: string, version: string, value: unknown): void; /** Resolve conditional requirements from already validated arguments. */ requiredScopes(name: string, version: string, argumentsValue: unknown): readonly string[]; } export declare function isDescriptorDigest(value: string): value is `sha256:${string}`; //# sourceMappingURL=registry.d.ts.map