/**
 * Lightweight transcript summarizer for session resets.
 *
 * Reads the meaningful tail of a JSONL transcript and uses a fast LLM call to produce
 * a structured summary of the session's current state. Used by the /refresh
 * command to carry context across session resets.
 */
import type { VisionClawConfig } from "../config/types.js";
export declare function buildTranscriptSummaryInputFromLines(lines: string[]): string;
/**
 * Streaming selection of the most recent transcript lines.
 *
 * Always keeps a rolling window of at most {@link RECENT_LINES_LIMIT} non-empty
 * lines. When a `compact_boundary` record is seen, the window is reset so only
 * lines after the latest boundary are retained. This bounds memory regardless
 * of overall transcript size.
 */
export interface SelectedTranscriptLines {
    lines: string[];
    compactSummaryLine?: string;
}
export declare function selectTranscriptLinesForSummary(lines: string[]): SelectedTranscriptLines;
/**
 * Fallback text used when there is no transcript to summarize, or when
 * the side LLM call fails. Kept verbatim with what /refresh injected
 * historically so behavior is identical across all reset paths.
 */
export declare const RESET_SUMMARY_FALLBACK: string;
/**
 * Convenience wrapper around {@link summarizeTranscript} that:
 *  - returns the {@link RESET_SUMMARY_FALLBACK} text when `transcriptPath`
 *    is `null` (no transcript yet) or summarization returns `null`,
 *  - never throws (the LLM-side errors are already swallowed by
 *    `summarizeTranscript`).
 *
 * Used by both the `/refresh` command and the startup engine-switch
 * boundary so they share a single summarize+fallback pipeline.
 */
export declare function summarizeWithFallback(transcriptPath: string | null, config: VisionClawConfig): Promise<string>;
export declare function summarizeTranscript(transcriptPath: string, config: VisionClawConfig): Promise<string | null>;
//# sourceMappingURL=transcript-summarizer.d.ts.map