import { generateText } from "ai"; import type { Observation } from "../types"; import { type ParsedSummary } from "./parser"; /** Configuration for the AI session summarizer. */ export interface SummarizerConfig { provider: string; apiKey: string | undefined; model: string; maxTokensPerCompression: number; compressionEnabled: boolean; rateLimitingEnabled: boolean; fallbackProviders?: string[]; } /** * Generates a concise summary of a coding session from its observations. * Falls back to a heuristic aggregation when the API is unavailable. */ export declare class SessionSummarizer { private model; private config; _generate: typeof generateText; constructor(config: SummarizerConfig); /** * Summarize a session's observations via the AI provider. * Returns `null` for empty observation lists, falls back to heuristic * summary when the API is disabled or errors out. */ summarize(sessionId: string, observations: ReadonlyArray): Promise; /** * Build a summary by aggregating observation metadata — no AI required. */ createFallbackSummary(observations: ReadonlyArray): ParsedSummary; /** Whether a session has enough observations to warrant summarization */ shouldSummarize(observationCount: number): boolean; } //# sourceMappingURL=summarizer.d.ts.map