/**
 * Shared finding→text helpers for the curator-style proposers (`memoryCurationProposer`
 * dedup-and-replace, `aceProposer` append-mostly). One copy so the two proposers
 * extract lessons + normalize keys identically and cannot drift apart.
 */
import type { MutableSurface } from '../types';
/** A finding can be a raw string or a structured analyst finding. Pulls the
 *  most actionable text (recommended_action > claim > lesson > text > message). */
export declare function findingToLesson(f: unknown): string | null;
/** Normalize for dedup/idempotency: lowercase, collapse whitespace, strip
 *  trailing punctuation. */
export declare function normKey(s: string): string;
/** Curator proposers are prompt-tier — they manage a text block in the surface.
 *  A code-tier surface has no prompt to append to; fail loud rather than
 *  silently coercing. */
export declare function surfaceToText(surface: MutableSurface): string;
/** Body text strictly between `startMarker` and `endMarker`; '' if absent. */
export declare function extractBlockBody(text: string, startMarker: string, endMarker: string): string;
/** Remove the delimited block (and surrounding trailing whitespace), trimmed,
 *  so the caller can re-emit a fresh block. */
export declare function stripBlock(text: string, startMarker: string, endMarker: string): string;
//# sourceMappingURL=_findings-text.d.ts.map