import { type SubAgentBatchResult, type SubAgentDispatcher, type SubAgentRole } from './sub-agent-dispatcher-types.js'; export { awaitClaudeCodeBatch, pollDispatchRecords, type PollDispatchRecordsOptions } from './sub-agent-batch-await.js'; export type { SubAgentAwaitBatchInput, SubAgentBatchResult, SubAgentDispatchInput, SubAgentDispatcher, SubAgentRole, SubAgentToolCall } from './sub-agent-dispatcher-types.js'; /** * Claude Code dispatcher. Real, byte-level implementation. * * - `supportsRole`: any non-empty string (Claude Code's * `general-purpose` sub-agent accepts any prompt). * - `buildToolCall`: returns `{name: 'Task', args: {subagent_type, * description, prompt}}` — the exact shape the `Task` tool * in Claude Code expects. */ export declare const claudeCodeSubAgentDispatcher: SubAgentDispatcher; /** * Trae dispatcher. UNVERIFIED — Trae sub-agent tool name TBD on real * dogfood. Byte-level identical to claude-code by design so: * - The dispatcher's return shape is uniform across both adapters * — a single byte-equality test can verify the placeholder * contract. * - Future real Trae dogfood can replace the body of * `buildToolCall` without breaking the adapter contract. * * Slice #014: the legacy `subAgentToolMatcher: 'Task'` install entry * is gone — the field is removed from `IdeAdapter`. Slice #009+ * dispatched sub-agents directly, not via a PreToolUse hook. The Trae * dispatcher remains a placeholder so the dispatch surface is uniform * across adapters. * * When real Trae dogfood lands, replace the body of `buildToolCall` * with Trae's actual sub-agent tool name + args shape. The interface * stays the same; only the per-IDE wiring breaks (intentionally). */ export declare const traeSubAgentDispatcher: SubAgentDispatcher; /** * Codex (OpenAI CLI IDE) dispatcher. * * Slice #13 noted Codex's sub-agent tool name is TBD; per slice #009 * rationale, the dispatcher mirrors Claude Code's shape so the * adapter contract stays uniform. Slice 1.3 promotes Codex from the * 1.2 marker to a real `awaitBatch` (file-based polling, * Codex default 45s — Codex's documented heartbeat is slightly * slower per slice #13 R-3). */ export declare const codexSubAgentDispatcher: SubAgentDispatcher; /** * Cursor dispatcher. UNVERIFIED — Cursor sub-agent tool name TBD on * real dogfood. Byte-level identical to claude-code by design (slice * #012 framing). * * Slice 1.3: real `awaitBatch` — file-based polling, Cursor default * 30s. */ export declare const cursorSubAgentDispatcher: SubAgentDispatcher; /** * Null dispatcher for IDEs that cannot dispatch sub-agents at all * (e.g. a CLI-only IDE that has no LLM tool surface). Used as the * fallback by future unsupported-IDE adapters. The CLI returns * `{ok: false, code: "IDE_NOT_SUPPORTED"}` when the dispatcher's * `supportsRole` returns false. */ export declare const nullSubAgentDispatcher: SubAgentDispatcher; /** * Thrown by `nullSubAgentDispatcher.buildToolCall` and any future * dispatcher that does not support a given role. The CLI catches * this and returns the IDE_NOT_SUPPORTED error envelope. */ export declare class SubAgentNotSupportedError extends Error { readonly role: SubAgentRole; readonly code: "IDE_NOT_SUPPORTED"; constructor(role: SubAgentRole); } /** * In-process awaiter registration hook (used by `peaks sub-agent dispatch` * to attach a resolver; not part of the dispatcher public surface). * Reserved for slice 1.3 cross-process upgrade. */ export declare function registerClaudeCodeAwaiter(batchId: string, awaiter: Promise): void;