/**
 * Conclusion Generator
 *
 * Generates analysis conclusions from accumulated findings and hypotheses.
 * Uses LLM for intelligent root-cause synthesis, with markdown fallback.
 */
import { Finding, Intent } from '../types';
import { SharedAgentContext } from '../types/agentProtocol';
import { ModelRouter } from './modelRouter';
import { ProgressEmitter } from './orchestratorTypes';
import type { ConclusionContract, ConclusionOutputMode } from './conclusionContract';
export interface ConclusionGenerationOptions {
    /**
     * Number of previous turns in this session (0-based).
     * Example: 0 means this is the first user query of the session.
     */
    turnCount?: number;
    /**
     * Optional multi-turn context summary (compact, prompt-friendly).
     */
    historyContext?: string;
}
export declare function deriveConclusionContract(rawText: string, options?: {
    mode?: ConclusionOutputMode;
    singleFrameDrillDown?: boolean;
    sceneId?: string;
}): ConclusionContract | null;
export declare function renderConclusionContractMarkdown(contract: ConclusionContract, options?: {
    singleFrameDrillDown?: boolean;
}): string;
/**
 * Generate an AI-powered conclusion from analysis results.
 * Falls back to a simple markdown summary if LLM fails.
 */
export declare function generateConclusion(sharedContext: SharedAgentContext, allFindings: Finding[], intent: Intent, modelRouter: ModelRouter, emitter: ProgressEmitter, stopReason?: string, options?: ConclusionGenerationOptions): Promise<string>;
/**
 * Generate a simple markdown-formatted conclusion without LLM.
 */
export declare function generateSimpleConclusion(findings: Finding[], stopReason?: string): string;
export declare function shouldNormalizeConclusionOutput(text: string): boolean;
export declare function normalizeConclusionOutput(rawText: string): string;
//# sourceMappingURL=conclusionGenerator.d.ts.map