/**
 * `memoryCurationProposer` — a CURATOR `SurfaceProposer`, the complement to the
 * OPTIMIZER proposers (`gepaProposer` rewrites the prompt; this one BUILDS a
 * searchable memory of what prior trajectories taught and grafts the most
 * relevant lessons onto the surface).
 *
 * Each generation it:
 *  1. collects lessons — this generation's trace-analyst `findings` PLUS the
 *     memory already carried in the parent surface (so memory accumulates
 *     across generations instead of resetting);
 *  2. curates them — normalizes, deduplicates near-identical lessons, and ranks
 *     by recurrence (a lesson seen across many findings outranks a one-off);
 *  3. retrieves the top-K and writes them back as a single delimited memory
 *     block in the surface (idempotent — the block is replaced, never stacked,
 *     so the prompt does not grow without bound).
 *
 * This is the substrate behind the "knowledge base of working trajectories" the
 * agent searches: the curated block IS the retrieved memory the next run reads.
 * Curation is DETERMINISTIC (no LLM) so a lift it produces is attributable to
 * the lessons, not to model noise in a rewrite. An optional `distill` LLM step
 * can compress raw findings into crisp imperatives; default is verbatim.
 *
 * Fail-loud: never fabricates a lesson. With no findings and no prior memory it
 * returns no candidate (nothing learned yet — gen 0). It does not throw on an
 * empty generation because early generations legitimately have no findings.
 */
import { type LlmClientOptions } from '../../llm-client';
import type { SurfaceProposer } from '../types';
export interface MemoryCurationProposerOptions {
    /** Top-K lessons retained in the surface memory block. Default 12. */
    maxEntries?: number;
    /** Heading rendered above the lessons inside the block. Default below. */
    sectionHeading?: string;
    /**
     * Optional LLM distillation: compress raw findings into crisp, generalizable
     * one-line imperatives before curating. Omit for verbatim (deterministic).
     */
    distill?: {
        baseUrl: string;
        apiKey?: string;
        model: string;
        fetchImpl?: LlmClientOptions['fetch'];
    };
}
/** Build the CURATOR proposer. */
export declare function memoryCurationProposer(opts?: MemoryCurationProposerOptions): SurfaceProposer;
//# sourceMappingURL=memory.d.ts.map