import type { LivingMemoryRepository } from '../../persistence/repository'; import { Context } from 'koishi'; import type { DreamVectorProvider } from '../../../contracts/vector_index'; import type { DreamMemoryEntryRecord, LivingMemoryConfig, LivingMemoryUpdateProvider } from '../../../contracts/workflows'; import type { PresetPersonaResolver } from '../../../contracts/memory'; import type { LivingMemoryMutationService } from '../../app/memory_mutation_service'; import type { DreamWorkerRunner } from './worker/protocol'; import type { LivingMemorySearchEngine } from '../recall/memory_search_engine'; import type { DreamRunInput, DreamRunResult } from './types'; import type { LivingMemoryLogger } from '../../logging/logger'; export interface DreamRepository extends Pick { listDreamEntriesByPreset(presetId: string): Promise; getEntriesByPresetAndIds: LivingMemoryRepository['getEntriesByPresetAndIds']; } export declare class LivingMemoryDreamService { private readonly ctx; private readonly config; private readonly repository; private readonly mutations; private readonly onOrganized; private readonly presetPersona; private readonly search; private readonly clusterer; private readonly planningQueue; constructor(ctx: Context, config: Pick, repository: DreamRepository, mutations: Pick, vectors: DreamVectorProvider, worker: DreamWorkerRunner, onOrganized: (presetId: string, mode: DreamRunInput['mode'], speakerKeys?: string[]) => void, presetPersona: PresetPersonaResolver, search: Pick); run(presetId: string, sessionId: string, logger: LivingMemoryLogger, signal?: AbortSignal, input?: DreamRunInput): Promise; }