import { SubagentManager } from '../subagent.js'; import { SubagentExecutor } from '../tools/subagent-executor.js'; import { SkillExecutor } from '../tools/skill-executor.js'; import { ComposeExecutor } from '../tools/compose-executor.js'; import type { SubagentExecutorContext } from '../tools/subagent-executor.js'; import type { BackgroundAgentRegistry } from '../background-registry.js'; import type { TraceSink } from '../trace/writer.js'; import type { Surface } from '../awareness/types.js'; import type { AgentModelInput } from '../types.js'; import type { WorkspaceStore } from '../workspace/index.js'; export interface WireExecutorsOptions { surface: Surface; parentSession: SubagentExecutorContext['parentSession']; apiKey: string | undefined; model: AgentModelInput; managerParentModel: AgentModelInput; defaultSubagentModel: AgentModelInput; resolveApiKeyForModel: (model: string) => string | undefined; systemPrompt?: string; baseUrl?: string; openaiBaseUrl?: string; xaiBaseUrl?: string; cwd?: string; nestedCwd?: string; traceWriter?: TraceSink; skillTraceWriter?: TraceSink; backgroundRegistry?: BackgroundAgentRegistry; agentRegistryWarn?: (message: string) => void; workspaceStore?: WorkspaceStore; sessionLabel?: string; } export interface WiredExecutors { rootManager: SubagentManager; subagentExecutor: SubagentExecutor; skillExecutor: SkillExecutor; composeExecutor: ComposeExecutor; } export declare function wireExecutors(opts: WireExecutorsOptions): WiredExecutors;