import { MemorySaver } from '@langchain/langgraph'; import type { AgentContext, AgentResult, AgentFile } from '../types/agent.types'; import { LLMService } from '../llm/llm-service'; import { Logger } from '../utils/logger'; export declare const AgentWorkflowState: import("@langchain/langgraph").AnnotationRoot<{ context: import("@langchain/langgraph").BaseChannel, unknown>; iteration: import("@langchain/langgraph").BaseChannel, unknown>; currentAnalysis: import("@langchain/langgraph").BaseChannel, unknown>; missingInformation: import("@langchain/langgraph").BaseChannel, unknown>; clarityScore: import("@langchain/langgraph").BaseChannel, unknown>; previousGapCount: import("@langchain/langgraph").BaseChannel, unknown>; gapReductionRate: import("@langchain/langgraph").BaseChannel, unknown>; selfQuestions: import("@langchain/langgraph").BaseChannel, unknown>; retrievedFiles: import("@langchain/langgraph").BaseChannel<{ path: string; content: string; }[], { path: string; content: string; }[] | import("@langchain/langgraph").OverwriteValue<{ path: string; content: string; }[]>, unknown>; finalAnalysis: import("@langchain/langgraph").BaseChannel, unknown>; refinementNotes: import("@langchain/langgraph").BaseChannel, unknown>; allSeenGaps: import("@langchain/langgraph").BaseChannel, Set | import("@langchain/langgraph").OverwriteValue>, unknown>; forceStop: import("@langchain/langgraph").BaseChannel, unknown>; totalInputTokens: import("@langchain/langgraph").BaseChannel, unknown>; totalOutputTokens: import("@langchain/langgraph").BaseChannel, unknown>; }>; export interface AgentWorkflowConfig { maxIterations: number; clarityThreshold: number; minImprovement: number; enableSelfQuestioning: boolean; skipSelfRefinement?: boolean; maxQuestionsPerIteration?: number; evaluationTimeout?: number; } export declare abstract class BaseAgentWorkflow { protected llmService: LLMService; protected logger: Logger; protected workflow: ReturnType; protected checkpointer: MemorySaver; constructor(); private buildWorkflow; execute(context: AgentContext, options?: import('../types/agent.types').AgentExecutionOptions): Promise; protected executeWorkflow(context: AgentContext, config: AgentWorkflowConfig, runnableConfig?: Record): Promise; private executeFastPath; private analyzeInitialNode; private evaluateClarityNode; private normalizeGap; private deduplicateGaps; private deduplicateCurrentGaps; private areGapsSimilar; private generateQuestionsNode; private retrieveFilesNode; private vectorSearchFiles; private keywordSearchFiles; private prioritizeGaps; private refineAnalysisNode; private finalizeOutputNode; private shouldRefine; protected shouldForceStopFromOutput(parsedData: Record): boolean; protected enhancePromptWithUserQuery(basePrompt: string, context: AgentContext): Promise; protected shouldRunIncrementalMode(context: AgentContext): Promise; protected determineMergeStrategy(context: AgentContext, _data: Record): Promise>; protected getResponseLengthGuidance(context: AgentContext): string; protected getTargetTokenRanges(): Record<'quick' | 'normal' | 'deep' | 'exhaustive', { min: number; max: number; }>; protected getDepthSpecificGuidance(mode: 'quick' | 'normal' | 'deep' | 'exhaustive'): string; protected getMaxOutputTokens(isQuickMode: boolean, _context: AgentContext): number; protected abstract getAgentName(): string; protected abstract buildSystemPrompt(context: AgentContext): Promise; protected abstract buildHumanPrompt(context: AgentContext): Promise; protected abstract parseAnalysis(analysis: string): Promise>; protected abstract formatMarkdown(data: Record, state: typeof AgentWorkflowState.State): Promise; protected abstract generateSummary(data: Record): string; protected abstract generateFiles(data: Record, state: typeof AgentWorkflowState.State): Promise; } //# sourceMappingURL=base-agent-workflow.d.ts.map