import { type ChildProcess, type SpawnOptions } from 'node:child_process'; import type { ToolDefinition } from './pi-ext-types.js'; export declare const MAX_SUBAGENT_TASKS = 8; export declare const MAX_SUBAGENT_CONCURRENCY = 8; export declare const MAX_SUBAGENT_MODEL_CHOICES = 32; export declare const MAX_SUBAGENT_MODEL_LIST_CHARS = 1200; export declare const SUBAGENT_KILL_GRACE_MS = 5000; declare const SubagentParameters: import("@sinclair/typebox").TObject<{ description: import("@sinclair/typebox").TOptional; prompt: import("@sinclair/typebox").TOptional; subagent_type: import("@sinclair/typebox").TOptional; model: import("@sinclair/typebox").TOptional; parallel: import("@sinclair/typebox").TOptional; }>>>; chain: import("@sinclair/typebox").TOptional; }>>>; }>; export interface SubagentModelOption { provider: string; id: string; } type SubagentMode = 'single' | 'parallel' | 'chain'; export interface SubagentUsage { input: number; output: number; cacheRead: number; cacheWrite: number; cost: number; contextTokens: number; turns: number; } export interface SubagentResult { description: string; prompt: string; subagentType: string; exitCode: number; output: string; stderr: string; usage: SubagentUsage; model?: string; stopReason?: string; errorMessage?: string; } export interface SubagentDetails { mode: SubagentMode; results: SubagentResult[]; usage: SubagentUsage; } export type SubagentSpawn = (command: string, args: string[], options: SpawnOptions) => ChildProcess; export interface SubagentToolDeps { spawn: SubagentSpawn; command: string; agentDir: string; ensureRoles(): void; toolShimsPath: string; mcpBridgePath: string; killGraceMs: number; } export declare function createSubagentTool(overrides?: Partial, modelOptions?: SubagentModelOption[]): ToolDefinition; export {};