/**
 * Pure builder for the post-compact recovery note that gets persisted
 * to `sessionNotes` and re-injected into the next turn's system prompt.
 *
 * Extracted from `claudeRuntime.ts` (Phase 3-2 of v2.1) so the logic can
 * be unit-tested without standing up the full SDK stream loop. Phase 3-3
 * will additionally call this from the `interrupt` + `resume` fallback
 * (when the token meter trips) so the recovery preamble is built from
 * the same code path as the post-compact note.
 *
 * Sections in priority order, each added wholesale via the `tryAdd`
 * budget gate (no mid-section truncation). The first section that
 * doesn't fit is dropped:
 *
 *   1. Plan progress (statuses + summaries) — highest priority
 *   2. Next/in-progress phase pointer (with expected tools)
 *   3. Recent raw tool origins (last N=5, structured digest only)
 *   4. Key findings (confident first; falls back to all)
 *   5. Entity context (known process / thread names)
 *
 * Section 3 is the v2.1 Phase 3-2 addition: the previous note flattened
 * the recent tool calls into "findings" and lost the post-compact
 * "what did the agent just do?" signal.
 */
import type { AnalysisPlanV3, ToolCallRecord } from './types';
import type { Finding } from '../agent/types';
export declare const DEFAULT_MAX_NOTE_CHARS = 800;
export declare const DEFAULT_RAW_TOOL_PRESERVE = 5;
export interface RecoveryNoteInput {
    plan?: AnalysisPlanV3;
    findings?: ReadonlyArray<Finding>;
    /** Recent tool calls (already trimmed and time-ordered). */
    recentToolCalls?: ReadonlyArray<ToolCallRecord>;
    /** Optional human-readable entity snapshot — typically the output of `buildEntityContext`. */
    entitySnapshot?: string;
    /** Override character budget (default 800). */
    maxChars?: number;
    /** Override how many recent tool calls to keep (default 5). */
    rawToolPreserve?: number;
}
export interface RecoveryNote {
    text: string;
    sectionsIncluded: string[];
    usedChars: number;
}
/**
 * Build the recovery note as a single string plus structured metadata.
 * Pure function — does not touch sessionNotes or the SDK.
 */
export declare function buildRecoveryNote(input: RecoveryNoteInput): RecoveryNote;
//# sourceMappingURL=recoveryNoteBuilder.d.ts.map