import type { JsonObject } from "#shared/json.js";
import type { PreparedRuntimeDelegationTool } from "#runtime/sessions/turn.js";
import type { ResolvedRuntimeDelegationNode } from "#runtime/types.js";
/**
 * One runtime-owned subagent tracked by the prepared registry.
 */
interface RuntimeRegisteredSubagent {
    readonly definition: ResolvedRuntimeDelegationNode;
    readonly prepared: PreparedRuntimeDelegationTool;
}
/**
 * Runtime-owned registry that exposes resolved subagents as model-visible tools.
 */
export interface RuntimeSubagentRegistry {
    readonly preparedTools: readonly PreparedRuntimeDelegationTool[];
    readonly subagentsByName: ReadonlyMap<string, RuntimeRegisteredSubagent>;
    readonly subagentsByNodeId: ReadonlyMap<string, RuntimeRegisteredSubagent>;
}
/**
 * Stable JSON Schema lowered onto every subagent tool. Subagents always
 * accept one free-form `message` string from the parent agent.
 */
export declare const SUBAGENT_TOOL_INPUT_SCHEMA: JsonObject;
/**
 * Builds the runtime-owned registry for the resolved subagents visible from one
 * runtime agent node.
 */
export declare function createRuntimeSubagentRegistry(input: {
    readonly reservedToolNames?: readonly string[];
    readonly subagents: readonly ResolvedRuntimeDelegationNode[];
}): RuntimeSubagentRegistry;
export {};
