import type { LLMProvider } from '../providers/types.js'; import type { ToolRegistry } from '../tools/registry.js'; import { Conversation } from './conversation.js'; import type { PermissionManager } from '../permissions/manager.js'; import type { UsageStats } from './pricing.js'; export interface EngineConfig { cwd: string; provider: LLMProvider; toolRegistry: ToolRegistry; permissionManager: PermissionManager; maxTokens?: number; abortSignal?: AbortSignal; } export interface EngineResult { text: string; toolCalls: Array<{ name: string; args: Record; result: string; }>; } export declare class Engine { readonly cwd: string; private provider; private toolRegistry; private permissionManager; private conversation; private loopGuard; private maxTokens; private abortSignal?; private textCallback?; private toolCallCallback?; private usageCallback?; private totalUsage; constructor(config: EngineConfig); onText(cb: (text: string) => void): void; onToolCall(cb: (name: string, status: 'start' | 'end', detail?: string) => void): void; onUsage(cb: (stats: UsageStats) => void): void; getUsageStats(): UsageStats; clearConversation(): void; switchProvider(provider: LLMProvider): void; getConversation(): Conversation; query(userMessage: string): Promise; private buildSystemPrompt; } //# sourceMappingURL=engine.d.ts.map