import type { AgentConfig, AgentEvent, AgentHooks, AgentTool, BasicLogger, HookErrorMode, ITelemetryService, ToolApprovalRequest, ToolApprovalResult } from "@cline/shared"; import { SessionRuntime } from "../../../runtime/orchestration/session-runtime-orchestrator"; type AgentExtension = NonNullable[number]; export type DelegatedAgentConnectionConfig = Pick; export interface DelegatedAgentRuntimeConfig extends DelegatedAgentConnectionConfig { cwd?: string; providerId: string; clinePlatform?: string; clineIdeName?: string; maxIterations?: number; hooks?: AgentHooks; extensions?: AgentExtension[]; logger?: BasicLogger; telemetry?: ITelemetryService; workspaceMetadata?: string; } export interface DelegatedAgentConfigProvider { getRuntimeConfig(): DelegatedAgentRuntimeConfig; getConnectionConfig(): DelegatedAgentConnectionConfig; updateConnectionDefaults(overrides: Partial): void; } export type DelegatedAgentKind = "subagent" | "teammate"; export interface BuildDelegatedAgentConfigOptions { kind: DelegatedAgentKind; prompt: string; tools: AgentTool[]; configProvider: DelegatedAgentConfigProvider; parentAgentId?: string; maxIterations?: number; abortSignal?: AbortSignal; onEvent?: (event: AgentEvent) => void; hookErrorMode?: HookErrorMode; toolPolicies?: AgentConfig["toolPolicies"]; requestToolApproval?: (request: ToolApprovalRequest) => Promise | ToolApprovalResult; role?: string; cwd?: string; } export declare function createDelegatedAgentConfigProvider(initialConfig: DelegatedAgentRuntimeConfig): DelegatedAgentConfigProvider; export declare function buildDelegatedAgentConfig(options: BuildDelegatedAgentConfigOptions): AgentConfig & { role?: string; }; export declare function createDelegatedAgent(options: BuildDelegatedAgentConfigOptions): SessionRuntime; export {};