import type { AssistantMessage, ImageContent, Model } from "@elyracode/ai"; import { Agent, type QueueMode } from "../agent.js"; import type { AgentMessage, AgentTool, ThinkingLevel } from "../types.js"; import type { AbortResult, AgentHarnessEvent, AgentHarnessEventResultMap, AgentHarnessOptions, AgentHarnessOwnEvent, AgentHarnessResources, ExecutionEnv, NavigateTreeResult, PromptTemplate, Skill } from "./types.js"; export declare class AgentHarness { readonly agent: Agent; readonly env: ExecutionEnv; private session; private model; private thinkingLevel; private activeToolNames; private nextTurnQueue; private phase; private steerQueue; private followUpQueue; private pendingSessionWrites; private resources; private systemPrompt; private getApiKeyAndHeaders?; private tools; private listeners; private hooks; constructor(options: AgentHarnessOptions); private emitOwn; private emitAny; private emitHook; private emitQueueUpdate; private createTurnState; private applyTurnState; private validateToolNames; private flushPendingSessionWrites; private handleAgentEvent; private executeTurn; prompt(text: string, options?: { images?: ImageContent[]; }): Promise; skill(name: string, additionalInstructions?: string): Promise; promptFromTemplate(name: string, args?: string[]): Promise; steer(text: string, options?: { images?: ImageContent[]; }): void; followUp(text: string, options?: { images?: ImageContent[]; }): void; nextTurn(text: string, options?: { images?: ImageContent[]; }): void; appendMessage(message: AgentMessage): Promise; compact(customInstructions?: string): Promise<{ summary: string; firstKeptEntryId: string; tokensBefore: number; details?: unknown; }>; navigateTree(targetId: string, options?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string; }): Promise; setModel(model: Model): Promise; setThinkingLevel(level: ThinkingLevel): Promise; setActiveTools(toolNames: string[]): Promise; get steeringMode(): QueueMode; set steeringMode(mode: QueueMode); get followUpMode(): QueueMode; set followUpMode(mode: QueueMode); getResources(): AgentHarnessResources; setResources(resources: AgentHarnessResources): Promise; setTools(tools: TTool[], activeToolNames?: string[]): Promise; abort(): Promise; waitForIdle(): Promise; subscribe(listener: (event: AgentHarnessEvent, signal?: AbortSignal) => Promise | void): () => void; on(type: TType, handler: (event: Extract) => Promise | AgentHarnessEventResultMap[TType]): () => void; } //# sourceMappingURL=agent-harness.d.ts.map