import type { AgentSourceManifest, LocalSubagentSourceRef } from "#discover/manifest.js";
import type { CompiledAgentDefinition, CompiledExtensionMount, CompiledRemoteAgentNode, CompiledSubagentNode } from "#compiler/manifest.js";
import type { ModuleSourceRef } from "#shared/source-ref.js";
import { normalizeSubagentConfig } from "#compiler/normalize-subagent.js";
import { type AgentModuleCandidate, type AgentSourceOwner, type AgentSourceRegistry, type ComposedAgentModuleCandidates, type CompiledModuleBinding } from "#compiler/source-graph.js";
export declare function collectSelectedSourceIds(composed: ComposedAgentModuleCandidates): Set<string>;
export declare function assertRootOnlyConfig(config: CompiledAgentDefinition, isRoot: boolean, agentId: string): void;
export declare function assertApplicationOverlayCanApplyToAllNodes(logicalPaths: readonly string[]): void;
export declare function assertUniqueRegistryIds(registries: readonly AgentSourceRegistry[]): void;
export declare function assertRootOwnedSpecialTool(candidate: AgentModuleCandidate, label: string): void;
export declare function assertNonExtensionSpecialTool(candidate: AgentModuleCandidate, label: string): void;
export declare function withExtensionNamespace<T extends {
    readonly extensionNamespace?: string;
}>(definition: T, owner: AgentSourceOwner): T;
export declare function assertUniqueBy<T>(values: readonly T[], identity: (value: T) => string, label: string): void;
export declare function withDiagnosticsSummary(subagents: readonly CompiledSubagentNode[], diagnosticsSummary: import("#discover/diagnostics.js").DiscoverDiagnosticsSummary): CompiledSubagentNode[];
export declare function expectSubagentDescription(config: CompiledAgentDefinition, source: LocalSubagentSourceRef): string;
export declare function createCompiledRemoteAgent(input: {
    readonly binding: CompiledModuleBinding;
    readonly definition: Extract<ReturnType<typeof normalizeSubagentConfig>, {
        readonly kind: "remote";
    }>;
    readonly nodeId: string;
    readonly owner: AgentSourceOwner;
    readonly parentNodeId: string;
    readonly source: LocalSubagentSourceRef;
    readonly sourceRef: ModuleSourceRef;
}): CompiledRemoteAgentNode;
export declare function compileExtensionMounts(manifest: AgentSourceManifest, composed: ComposedAgentModuleCandidates): CompiledExtensionMount[];
export declare function mergeExternalDependencies(...lists: ReadonlyArray<readonly string[] | undefined>): string[];
