import { type AssistantMessage, type ImageContent, type Model } from "@earendil-works/pi-ai"; import type { AgentMessage, AgentTool, QueueMode, ThinkingLevel } from "../types.ts"; import type { AbortResult, AgentHarnessEvent, AgentHarnessEventResultMap, AgentHarnessOptions, AgentHarnessOwnEvent, AgentHarnessResources, AgentHarnessStreamOptions, ExecutionEnv, NavigateTreeResult, PromptTemplate, Skill } from "./types.ts"; export declare class AgentHarness { readonly env: ExecutionEnv; private session; private phase; private runAbortController?; private runPromise?; private pendingSessionWrites; private model; private thinkingLevel; private systemPrompt; private streamOptions; private getApiKeyAndHeaders?; private resources; private tools; private activeToolNames; private steerQueue; private steeringQueueMode; private followUpQueue; private followUpQueueMode; private nextTurnQueue; private handlers; constructor(options: AgentHarnessOptions); private getHandlers; private emitOwn; private emitAny; private emitHook; private emitBeforeProviderRequest; private emitBeforeProviderPayload; private emitQueueUpdate; private startRunPromise; private createTurnState; private createContext; private createStreamFn; private drainQueuedMessages; private createLoopConfig; private validateToolNames; private flushPendingSessionWrites; private handleAgentEvent; private emitRunFailure; 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[]; }): Promise; followUp(text: string, options?: { images?: ImageContent[]; }): Promise; nextTurn(text: string, options?: { images?: ImageContent[]; }): Promise; 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; getModel(): Model; getThinkingLevel(): ThinkingLevel; setModel(model: Model): Promise; setThinkingLevel(level: ThinkingLevel): Promise; setActiveTools(toolNames: string[]): Promise; getSteeringMode(): QueueMode; setSteeringMode(mode: QueueMode): Promise; getFollowUpMode(): QueueMode; setFollowUpMode(mode: QueueMode): Promise; getResources(): AgentHarnessResources; setResources(resources: AgentHarnessResources): Promise; getStreamOptions(): AgentHarnessStreamOptions; setStreamOptions(streamOptions: AgentHarnessStreamOptions): 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