import { KnowledgeGraph } from '../../contracts/graph.js'; import type { ContextSessionDiagnostics, ContextSessionState } from '../../contracts/context-session.js'; import { type RetrieveResult } from '../../runtime/retrieve.js'; import { type PromptRunnerUsage } from '../prompt-runner.js'; export type BenchmarkPromptTokenSource = 'estimated_cl100k_base' | 'claude_reported_input' | 'gemini_reported_input'; export interface BenchmarkPromptArtifacts { prompt: string; answer: string; report: string; share_safe_report: string; } export interface BenchmarkPromptExecution { mode: 'madar'; question: string; promptFile: string; outputFile: string; command: string; } export interface BenchmarkPromptRunnerResult { exitCode: number; stdout: string; stderr: string; elapsedMs: number; } export interface RunBenchmarkPromptOptions { graphPath: string; graph: KnowledgeGraph; question: string; execTemplate: string; outputDir?: string; now?: Date; retrievalBudget?: number; retrieval?: RetrieveResult; session?: ContextSessionState; runner?: (execution: BenchmarkPromptExecution) => Promise; } export interface BenchmarkPromptRun { prompt_tokens_estimated: number; query_tokens: number; effective_query_tokens: number; reused_context_tokens: number; session_diagnostics: ContextSessionDiagnostics; total_tokens: number | null; prompt_token_source: BenchmarkPromptTokenSource; usage: PromptRunnerUsage | null; answer_text: string | null; elapsed_ms: number; artifacts: BenchmarkPromptArtifacts; session_state: ContextSessionState; } export declare function retrieveBenchmarkContext(graph: KnowledgeGraph, graphPath: string, question: string, budget: number): RetrieveResult; export declare function runBenchmarkPrompt(options: RunBenchmarkPromptOptions): Promise;