import { type ExtractionConfig, type ExtractionCursor, type ExtractedMemory } from "./extract-memories.js";
/**
 * Get or create an extraction cursor for a session.
 */
export declare function getOrCreateCursor(sessionId: string): ExtractionCursor;
/**
 * Fire-and-forget memory extraction. Called after the agent's final response.
 * NEVER delays the user's next message — runs in a detached microtask.
 *
 * @param opts.sessionId - The current session ID
 * @param opts.lastTurnHadToolCalls - Whether the last assistant turn included tool calls
 * @param opts.newMessageCount - Number of messages since last extraction
 * @param opts.userWroteMemoryThisTurn - Whether the user/agent wrote to memory this turn
 * @param opts.existingMemory - Current MEMORY.md content (for dedup)
 * @param opts.recentMessages - Messages since last extraction (role + content pairs)
 * @param opts.llmCall - Function to call the LLM (injected dependency)
 * @param opts.onMemoryExtracted - Callback for each extracted memory (write to store)
 * @param opts.config - Optional extraction config override
 */
export declare function maybeExtractMemories(opts: {
    sessionId: string;
    lastTurnHadToolCalls: boolean;
    newMessageCount: number;
    userWroteMemoryThisTurn: boolean;
    existingMemory: string;
    recentMessages: ReadonlyArray<{
        role: string;
        content: string;
    }>;
    llmCall: (prompt: string) => Promise<string>;
    onMemoryExtracted?: (memory: ExtractedMemory) => Promise<void>;
    config?: ExtractionConfig;
}): void;
/**
 * Clean up cursor for a session (call on session end).
 */
export declare function clearSessionCursor(sessionId: string): void;
