import { GlobalBrain } from './global-brain.js'; export interface ReplayEvent { type: string; payload: unknown; ts: number; project: string; agent?: string; } export interface ReplayFrame { ts: number; eventCount: number; memoryCount: number; entityCount: number; topEntities: string[]; deltaFromPrevious: { added: number; modified: number; decayed: number; }; healthScore?: number; } export interface ReplayTimeline { project: string; frames: ReplayFrame[]; totalEvents: number; firstEventAt: number | null; lastEventAt: number | null; } export declare class BrainReplay { private brain; constructor(brain?: GlobalBrain); /** Append an event to the per-project log. */ record(event: { type: string; payload: unknown; ts?: number; project?: string; agent?: string; }): void; /** Read all events for a project as a timeline of frames (downsampled). */ getTimeline(project: string, opts?: { from?: number; to?: number; types?: string[]; }): ReplayFrame[]; /** Return the brain state as it would have appeared at exactly `ts`. */ frameAt(project: string, ts: number): ReplayFrame; /** Compact old events into snapshots + diff chains; keeps file size bounded. */ compress(project: string): { kept: number; archived: number; }; /** Export as JSONL string, CSV string, or SVG Buffer. */ export(project: string, format: 'jsonl' | 'csv' | 'svg'): string | Buffer; /** Get the raw event list (used by Brain DNA + tests). */ listEvents(project: string, opts?: { from?: number; to?: number; types?: string[]; }): ReplayEvent[]; private fileFor; private projectHash; private readEvents; private buildFrame; private entityKeyOf; private estimateHealth; private emptyFrame; private renderSvg; private emptySvg; private findMilestones; } export declare function getBrainReplay(): BrainReplay; export declare function resetBrainReplayForTests(): void; //# sourceMappingURL=brain-replay.d.ts.map