import type { Api, Model } from "@earendil-works/pi-ai"; import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { getToolsForType } from "./agent-types.js"; import type { AgentConfig, SubagentType, ThinkingLevel } from "./types.js"; /** Names of tools registered by this extension that subagents must NOT inherit. */ export declare const EXCLUDED_TOOL_NAMES: string[]; /** * Try to find the right model for an agent type. * Priority: explicit option > config.model > parent model. */ export declare function resolveDefaultModel(parentModel: Model | undefined, registry: { find(provider: string, modelId: string): Model | undefined; getAvailable?(): Model[]; }, configModel?: string): Model | undefined; export interface SelectedAgentLaunchOptions { pi: ExtensionAPI; cwd?: string; parentCwd?: string; parentSystemPrompt?: string; parentModel?: Model; modelRegistry: { find(provider: string, modelId: string): Model | undefined; getAvailable?(): Model[]; }; model?: Model; maxTurns?: number; isolated?: boolean; thinkingLevel?: ThinkingLevel; } export interface SelectedAgentLaunchConfig { agentConfig: AgentConfig; effectiveCwd: string; systemPrompt: string; builtinTools: ReturnType; builtinToolNames: string[]; disallowedTools?: string[]; excludedToolNames: string[]; extensions: true | string[] | false; skills: true | string[] | false; noSkills: boolean; model?: Model; modelInput?: string; thinkingLevel?: ThinkingLevel; maxTurns?: number; explicitMaxTurns: boolean; } export declare function buildSelectedAgentLaunchConfig(type: SubagentType, options: SelectedAgentLaunchOptions): Promise;