import { LearningMemory, LearningMemoryConfig, LearningMemoryRecord, LearningSemanticSearch } from '@happyvertical/smrt-core'; import { DatabaseInterface } from '@happyvertical/sql'; import { Feedback, FeedbackOutcomeOptions } from './feedback.js'; /** The minimal persona shape the memory router needs. */ export interface PersonaMemoryLike { id?: string | null; memoryScope?: string; agentClass?: string; tenantId?: string | null; } /** * The effective memory partition key for a persona: its explicit `memoryScope`, * or a stable `persona:` fallback when none is set. * * @throws if neither a `memoryScope` nor an id is available. */ export declare function personaMemoryScope(persona: PersonaMemoryLike): string; /** * Build a {@link LearningMemory} partitioned to a persona's memory scope. * * The persona's `memoryScope` is used as the memory `owner_id`, so recall and * capture are isolated per persona. `owner_class` defaults to the persona's * agent class (falling back to `'AgentPersona'`). */ export declare function personaLearningMemory(options: { db: DatabaseInterface; persona: PersonaMemoryLike; ownerClass?: string; tenantId?: string | null; semanticSearch?: LearningSemanticSearch; config?: Partial; }): LearningMemory; /** * Apply a single {@link Feedback} signal to a persona's memory as * confidence-only reinforcement. * * Maps the signal onto a `LearningOutcome` and captures it against the episode * the signal names (`feedback.scope` / `feedback.key`). A `correction` signal * additionally supersedes the stored strategy with the corrected value. * * @returns The updated/seeded memory record, or `null` when the signal carries * no reinforcement value (or there was nothing to reinforce). */ export declare function reinforceFromFeedback(memory: LearningMemory, feedback: Feedback, options?: FeedbackOutcomeOptions): Promise; //# sourceMappingURL=persona-memory.d.ts.map