import type { EventId, EventStore, StreamId } from '@frontmcp/protocol'; import type { JSONRPCMessage } from '@frontmcp/protocol'; export interface MemoryEventStoreOptions { /** Maximum number of events to store before eviction. Default: 10000 */ maxEvents?: number; /** TTL in milliseconds for stored events. Default: 300000 (5 minutes) */ ttlMs?: number; } /** * Bounded in-memory EventStore for SSE resumability support. * * Features: * - TTL-based expiration of old events * - Max events limit with LRU eviction * - Per-stream storage with global index * * Use this for single-node deployments or development. * For distributed deployments, use RedisEventStore instead. */ export declare class MemoryEventStore implements EventStore { private streams; private index; private readonly maxEvents; private readonly ttlMs; constructor(options?: MemoryEventStoreOptions); storeEvent(streamId: StreamId, message: JSONRPCMessage): Promise; replayEventsAfter(lastEventId: EventId, { send }: { send: (eventId: EventId, message: JSONRPCMessage) => Promise; }): Promise; /** * Evict all expired events across all streams */ private evictExpired; /** * Evict the oldest event across all streams */ private evictOldest; /** * Rebuild the index for a specific stream after modification */ private rebuildIndex; /** * Clear all stored events (useful for testing) */ clear(): void; /** * Get the current number of stored events */ get size(): number; } //# sourceMappingURL=memory.event-store.d.ts.map