import type { Lesson } from '../types.js';
/** The memory row compress reads/writes — the libSQL `lessons` (source:'memory') shape EXTENDED with
 * the two compression columns. No `scope` column: scope is the `scope:<v>` tag. */
export interface MemoryRow extends Lesson {
    derivedFrom: string[];
    consumedByUserLessons: number;
    embedding?: number[] | null;
}
export interface CompressDeps {
    getMemoryById: (id: string) => Promise<MemoryRow | null>;
    insertMemory: (m: MemoryRow) => Promise<void>;
    summarize: (prompt: string) => Promise<string>;
    embed: (text: string) => Promise<number[] | null>;
    now: () => Date;
}
/** Empty window OR an LLM refusal (an `error` key) — compress.rs maps both to InsufficientInput. */
export declare class CompressionInsufficientInputError extends Error {
    constructor(message?: string);
}
export declare class CompressionScopeMismatchError extends Error {
    readonly window: string[];
    constructor(window: string[]);
}
export declare class CompressionParseError extends Error {
    constructor(message: string);
}
export declare class CompressionValidationError extends Error {
    constructor(message: string);
}
/**
 * Compress a window of memory ids into one minted Mc (NO delete). Throws the typed errors above on
 * empty input, cycle/over-depth (via cycle.ts), scope mismatch, LLM refusal/parse, or invariant
 * violation. Predecessors are never mutated.
 */
export declare function compress(deps: CompressDeps, ids: string[]): Promise<MemoryRow>;
//# sourceMappingURL=compress.d.ts.map