/** * [WHO]: PresenceMemoryEngine type, getMemoryDir(), getProject(), detectLanguageFromMemory(), collectMemoryHighlights(), collectIdentityPreferenceHighlights() * [FROM]: Depends on node:os, node:path, node:fs for memory path discovery * [TO]: Consumed by extensions/builtin/presence/index.ts and presence tests * [HERE]: extensions/builtin/presence/presence-memory.ts - memory-derived locale and highlight selection for presence prompts */ type PresenceMemoryEntry = { type?: string; tags: string[]; name?: string; summary?: string; detail?: string; content?: string; importance?: number; }; export type PresenceMemoryEngine = { getAllEntries(): Promise<{ knowledge: PresenceMemoryEntry[]; lessons: PresenceMemoryEntry[]; events?: PresenceMemoryEntry[]; preferences?: PresenceMemoryEntry[]; facets?: PresenceMemoryEntry[]; }>; getAllEpisodes(): Promise>; searchEntries(query: string): Promise; }; export type PresenceMemoryState = { memEngine?: PresenceMemoryEngine; personaMemEngine?: PresenceMemoryEngine; recentlyReferencedMemories: string[]; }; export type MemoryHighlights = { preferences: string[]; lessons: string[]; }; export declare function getMemoryDir(): string; /** * Resolve the persona-specific memory directory, if one exists for the active persona. * Returns the path only when both NANO_PERSONA_DIR is set AND the persona has its own * `memory/` subdirectory containing at least one of the canonical nanomem files. * Returns undefined when persona has no memory (graceful fallback to global memory). */ export declare function getPersonaMemoryDir(): string | undefined; export declare function getProject(): string; export declare function detectLanguageFromMemory(state: PresenceMemoryState): Promise<"en" | "zh" | undefined>; export declare function collectMemoryHighlights(state: PresenceMemoryState): Promise; export declare function collectIdentityPreferenceHighlights(state: PresenceMemoryState): Promise; export {};