import { EventEmitter } from 'events'; import type { EventbaseConfig } from './types.js'; export type EventbaseManagerConfig = { dbPath?: string; getStatsStreamName?: (streamName: string) => string; nats: EventbaseConfig['nats']; keepAliveSeconds?: number; onMessage?: EventbaseConfig['onMessage']; cleanupIntervalMs?: number; }; export declare class EventbaseManager extends EventEmitter { private config; private instances; private dbPath?; private nats; private keepAliveSeconds; private onMessage?; private cleanupIntervalMs; private cleanupInterval; private getStatsStreamName?; constructor(config: EventbaseManagerConfig); private startCleanupInterval; private stopCleanupInterval; getStream(streamName: string): Promise<{ closed: boolean; get: (id: string) => Promise<{ meta: import("./index.js").MetaData; data: T; } | null>; put: (id: string, data: T) => Promise<{ meta: import("./index.js").MetaData; data: T; }>; insert: (data: T) => Promise<{ id: string; meta: import("./index.js").MetaData; data: T; }>; delete: (id: string) => Promise<{ purged: number; }>; keys: (pattern?: string) => Promise; subscribe: (query: { [key: string]: any; }, callback: (key: string, data: T, meta: import("./index.js").MetaData, event: import("./types.js").Event) => void) => () => void; query: (queryObject: object, options?: { limit?: number; offset?: number; sort?: { [key: string]: 1 | -1; }; project?: { [key: string]: 1; }; }) => Promise; count: (queryObject: object) => Promise; getLastAccessed: () => number; getActiveSubscriptions: () => number; deleteStream: () => Promise; close: () => Promise; }>; closeAll(): Promise; } export declare function createEventbaseManager(config: EventbaseManagerConfig): EventbaseManager;