export declare const BACKENDS_ENV = "AGENTPRISM_BACKENDS"; /** How to spawn (and optionally pre-configure) one custom ACP backend. */ export interface CustomBackendConfig { /** The ACP server executable (absolute path or on PATH). */ command: string; /** Arguments for the command. Default []. */ args?: string[]; /** Extra environment for the subprocess, merged OVER the inherited process.env. */ env?: Record; /** Static `_meta` sent on every session/new for this backend (backend-level defaults). * Per-call RunOptions.meta merges over these; backend-computed keys win over both. */ sessionMeta?: Record; /** agentCapabilities._meta namespace + bare `_meta` keys this custom agent negotiates. * Undefined means the backend's custom `_meta`, if any, is never gated. */ customCapabilities?: { readonly namespace: string; readonly gatedKeys: readonly string[]; }; /** Enable client-hosted StructuredOutput MCP tool injection when schema runs negotiate HTTP MCP. * Default true; set false for custom agents that should use only the generic prompt/_meta path. */ structuredOutputTool?: boolean; } /** A validated registry entry: the (lowercased) name plus its config. */ export interface RegisteredBackend extends CustomBackendConfig { name: string; } export type BackendRegistry = ReadonlyMap; /** * Resolve the custom-backend registry: env-declared backends first, programmatic `backends` * merged over them (option wins per name). Throws on malformed JSON, invalid names/configs, or * malformed configs — a misconfigured registry should fail LOUDLY at construction, not silently * misroute at run time. A name matching a built-in is valid and takes routing priority. */ export declare function resolveBackendRegistry(option?: Record, env?: NodeJS.ProcessEnv): BackendRegistry; /** * Layer a RUN-SCOPED registry (an approved script-declared `meta.backends`, arriving via * RunOptions.backends) UNDER the host registry: run entries are validated with the same rules * and a host-registered name always wins on conflict — a script can never hijack a name the * operator configured. Returns the host registry unchanged when the run declares nothing. */ export declare function registryWithRunBackends(host: BackendRegistry, run?: Record): BackendRegistry; //# sourceMappingURL=registry.d.ts.map