import type { MemoryStore } from '../store/index.js'; import type { MemoryPipeline } from './types.js'; import type { BeatExtractor } from '../beats/extractor.js'; export interface NarrativePipelineConfig { /** The store both subflows share. */ readonly store: MemoryStore; /** * Beat extractor. Defaults to `heuristicExtractor()` — zero-dep, * zero-cost, baseline quality. Swap for `llmExtractor({ provider })` * for semantic quality. */ readonly extractor?: BeatExtractor; /** Forwarded to `loadRecent` (how many beats to consider per turn). */ readonly loadCount?: number; /** Forwarded to `pickByBudget`. */ readonly reserveTokens?: number; readonly minimumTokens?: number; readonly maxEntries?: number; /** Tier filter for read (e.g. `['hot']`). */ readonly tiers?: ReadonlyArray<'hot' | 'warm' | 'cold'>; /** Tier to tag written beats with. */ readonly writeTier?: 'hot' | 'warm' | 'cold'; /** Optional TTL for written beats (ms from write time). */ readonly writeTtlMs?: number; /** Forwarded to `formatAsNarrative`. */ readonly formatHeader?: string; readonly formatFooter?: string; readonly formatShowRefs?: boolean; readonly formatLeadIn?: string; } /** * Build the narrative read + write pipelines sharing a single store. * Returns `{ read, write }` ready to be passed to `Agent.memory()` via the appropriate `defineMemory` config (or used directly via `mountMemoryRead`/`mountMemoryWrite`). */ export declare function narrativePipeline(config: NarrativePipelineConfig): MemoryPipeline; //# sourceMappingURL=narrative.d.ts.map