import type { AgentTool } from '@earendil-works/pi-agent-core'; import { type BuildChildToolsOptions } from '../child-agent-factory.js'; export declare const DEFAULT_DELEGATE_TOOLS: readonly ["exec_command", "read_file", "write_file", "apply_patch", "grep", "find", "list_dir", "web_search", "web_fetch"]; /** Tools never passed to a delegated sub-agent (even if requested). */ export declare const DELEGATE_BLOCKED_TOOLS: Set; export interface DelegateToolDeps { workspace: string; getSubagentModel: () => import('@earendil-works/pi-ai').Model; bus: import('../../infra/bus/index.js').MessageBus; getConfig: () => import('../../config/schema.js').Config | undefined; getCurrentContext?: () => { sessionKey?: string; channel?: string; accountId?: string; to?: string; threadId?: string | number; } | null; hookRunner?: import('../../extensions/index.js').ExtensionHookRunner; toolExecutorConfig?: Partial; /** * Construct the child agent's tool set. Injected by `AgentToolsFactory` so * the child-agent-factory module does not import `tools/factory.ts` * (which would form a factory ↔ delegate-tool ↔ child-agent-factory cycle). */ buildChildTools: (opts: BuildChildToolsOptions) => AgentTool[]; } export declare function createDelegateTool(deps: DelegateToolDeps): AgentTool;