export declare function scoreRelevance(userPrompt: string, checkpointContent: string): number; export interface CheckpointMatch { content: string; score: number; sessionId: string; mode: string; /** Byte length of the full checkpoint content before truncation. * Used as the floor input to the checkpoint_restore savings estimate. */ rawBytes: number; } /** * Make raw checkpoint body safe to inject after a [RECOVERED DATA ...] sentinel. * * The body is prior-conversation text and may be attacker-influenced (a pasted * file, fetched web content, a crafted message). Strip C0 control chars and * DEFANG any forged RECOVERED-DATA sentinel / role-prefix so the body cannot * "close" the data fence and smuggle the following lines in as live instructions. * * Mirrors Python's _neutralize_recovered_body() in measure.py exactly: * - Strip C0 control chars except TAB and LF. * - Defang forged "[RECOVERED..." sentinels: leading bracket becomes paren. * - Bracket role-prefix lines (system:, user:, assistant:, etc.) so they * cannot read as a new turn or system instruction. */ export declare function neutralizeRecoveredBody(text: string): string; export declare function findBestCheckpoint(userPrompt: string, checkpoints: Array<{ session_id: string; content: string; mode: string; created_at: number; }>, threshold: number, maxChars?: number): CheckpointMatch | null; //# sourceMappingURL=matcher.d.ts.map