import type { DreamBatch, DreamOperationStats } from '../types'; interface DreamBatchCoverage { batchId: string; targetCount: number; processedCount: number; unprocessedMemoryIds: string[]; } export interface DreamSessionState { mode: 'full' | 'post-extraction'; completedBatches: DreamBatchCoverage[]; untouchedSeedIds: string[]; involvedSpeakerKeys?: Set; batches: readonly DreamBatch[]; nextBatchIndex: number; currentBatch: DreamBatch | undefined; readonly targetMemoryIds: ReadonlySet; availableMemoryIds: Set; processedMemoryIds: Set; stats: DreamOperationStats; skippedBatches: { batchId: string; memoryIds: string[]; reason: string; }[]; } export declare function createDreamSessionState(targetMemoryIds: readonly string[], mode?: DreamSessionState['mode']): DreamSessionState; export declare function advanceDreamBatch(state: DreamSessionState): DreamBatch | undefined; export declare function pendingDreamMemoryIds(state: DreamSessionState): string[]; export declare function assertDreamMemoriesAvailable(state: DreamSessionState, ids: readonly string[]): void; export declare function recordDreamOperation(state: DreamSessionState, ids: readonly string[], operation: 'kept' | 'updated' | 'merged' | 'split' | 'archived'): void; export declare function recordSkippedDreamBatch(state: DreamSessionState, reason: string): void; export declare function getDreamCoverage(state: DreamSessionState): { targetCount: number; processedCount: number; unprocessedMemoryIds: string[]; }; export declare function recordDreamSpeakers(state: DreamSessionState, speakerKeys: readonly string[]): void; export {};