/**
 * Turn-time QMemory recall orchestration (hippocampus bridge).
 *
 * Impure counterpart to the pure memory-recall-context.ts: it drives the
 * `memory.before_recall` hook, caps the recalled set by a per-turn byte budget,
 * and fires `memory.after_recall`. Kept out of Agent.run so the turn entrypoint
 * stays a thin lifecycle wrapper; the pure prompt-building (and conflict
 * detection) stays in memory-recall-context.ts.
 *
 * Returns the system-message content to inject (already prefixed), or null when
 * there is nothing to inject. Recall failures are swallowed — a recall miss must
 * never block the turn. The caller decides WHERE to splice the message; this
 * module only decides WHAT (if anything) to inject.
 */
import type { AgentLogger, HookRegistry } from "./types.js";
export interface RecallMemoriesDeps {
    hooks: HookRegistry;
    /** P6: maps the query to category recall preferences (runtime port). */
    detectRecallCategories: (query: string) => {
        preferred: string[];
        deprioritized: string[];
    };
    log: AgentLogger;
    sessionId: string;
    turnId: string;
    /** Last user message (already truncated by the caller). */
    query: string;
}
/**
 * Recall long-term memories for this turn and build the system-message content
 * to inject. Always fires `memory.after_recall` (with the pre-cap count) when the
 * recall hook runs. Returns null when there is nothing worth injecting.
 */
export declare function recallMemoriesForTurn(deps: RecallMemoriesDeps): Promise<string | null>;
