import type { ILLMProvider } from "../llm/ILLMProvider.ts"; import type { ExecutionContext } from "../core/ExecutionContext.ts"; import type { Message, TokenUsage } from "../llm/types.ts"; import { ContextCompressor } from "../core/ContextCompressor.ts"; import { ToolRegistry } from "../tools/ToolRegistry.ts"; import { ThinkingBudget } from "./ThinkingBudget.ts"; export declare class ToolLoopDetectedError extends Error { constructor(toolName: string, count: number); } export declare class MaxStepsExceededError extends Error { readonly partialResult: string; constructor(partialResult: string, maxSteps: number); } /** Thrown when SIGINT/SIGTERM is observed at a step boundary. Carries a * work summary so the CLI can report progress before exiting 130. */ export declare class ShutdownRequestedError extends Error { readonly steps: number; readonly usage: TokenUsage; readonly model: string; constructor(steps: number, usage: TokenUsage, model: string); summary(): string; } export interface ReActLoopOptions { budget?: ThinkingBudget; compressor?: ContextCompressor; loopWindow?: number; loopThreshold?: number; maxSteps?: number; onStepComplete?: (step: number, messages: Message[], usage: TokenUsage, model: string) => void; interactive?: boolean; seedMessages?: Message[]; } export declare class ReActLoop { private llm; private skillRegistry; activatedSkills: Set; usage: TokenUsage; private _model; /** Responding model of the most recent step; the loop owns the write. */ get model(): string; setModel(model: string): void; private _member; /** Member identity of the current run, stamped by the owning agent. */ get member(): string; setMember(member: string): void; private readonly budget; private readonly compressor; private readonly loopWindow; private readonly loopThreshold; private readonly maxSteps; private readonly onStepComplete?; private readonly interactive; private readonly seedMessages?; constructor(llm: ILLMProvider, skillRegistry: ToolRegistry, options?: ReActLoopOptions); run(systemPrompt: string, userInput: string, context: ExecutionContext): Promise; private runStep; private emitReasoningEvent; private runToolCalls; private executeTool; private validateToolArgs; private resolveContextWindow; private confirmToolCall; } //# sourceMappingURL=ReActLoop.d.ts.map