import type { L0EventStore, L0EventStoreWithSnapshots, L0EventEnvelope, L0RecordedEvent, L0Snapshot } from "../types/events"; export interface StorageAdapterConfig { type: string; connection?: string; prefix?: string; ttl?: number; options?: Record; } export type StorageAdapterFactory = (config: StorageAdapterConfig) => L0EventStore | Promise; export declare function registerStorageAdapter(type: string, factory: StorageAdapterFactory): void; export declare function unregisterStorageAdapter(type: string): boolean; export declare function getRegisteredAdapters(): string[]; export declare function createEventStore(config: StorageAdapterConfig): Promise; export declare abstract class BaseEventStore implements L0EventStore { protected prefix: string; protected ttl: number; constructor(config?: StorageAdapterConfig); protected getStreamKey(streamId: string): string; protected getMetaKey(streamId: string): string; protected isExpired(timestamp: number): boolean; abstract append(streamId: string, event: L0RecordedEvent): Promise; abstract getEvents(streamId: string): Promise; abstract exists(streamId: string): Promise; abstract delete(streamId: string): Promise; abstract listStreams(): Promise; getLastEvent(streamId: string): Promise; getEventsAfter(streamId: string, afterSeq: number): Promise; } export declare abstract class BaseEventStoreWithSnapshots extends BaseEventStore implements L0EventStoreWithSnapshots { protected getSnapshotKey(streamId: string): string; abstract saveSnapshot(snapshot: L0Snapshot): Promise; abstract getSnapshot(streamId: string): Promise; getSnapshotBefore(streamId: string, seq: number): Promise; } export declare class FileEventStore extends BaseEventStoreWithSnapshots { private basePath; private fs; private path; constructor(config: StorageAdapterConfig & { basePath?: string; }); private ensureFs; static validateStreamId(streamId: string): string; private getFilePath; private getSnapshotFilePath; append(streamId: string, event: L0RecordedEvent): Promise; getEvents(streamId: string): Promise; exists(streamId: string): Promise; delete(streamId: string): Promise; listStreams(): Promise; saveSnapshot(snapshot: L0Snapshot): Promise; getSnapshot(streamId: string): Promise; } export declare class LocalStorageEventStore extends BaseEventStoreWithSnapshots { private storage; constructor(config?: StorageAdapterConfig); append(streamId: string, event: L0RecordedEvent): Promise; getEvents(streamId: string): Promise; exists(streamId: string): Promise; delete(streamId: string): Promise; listStreams(): Promise; saveSnapshot(snapshot: L0Snapshot): Promise; getSnapshot(streamId: string): Promise; private addToStreamList; private removeFromStreamList; } export declare class CompositeEventStore implements L0EventStore { private stores; private primaryIndex; constructor(stores: L0EventStore[], primaryIndex?: number); private get primary(); append(streamId: string, event: L0RecordedEvent): Promise; getEvents(streamId: string): Promise; exists(streamId: string): Promise; getLastEvent(streamId: string): Promise; getEventsAfter(streamId: string, afterSeq: number): Promise; delete(streamId: string): Promise; listStreams(): Promise; } export declare function createCompositeStore(stores: L0EventStore[], primaryIndex?: number): CompositeEventStore; export declare class TTLEventStore implements L0EventStore { private store; private ttl; constructor(store: L0EventStore, ttlMs: number); private isExpired; private filterExpired; append(streamId: string, event: L0RecordedEvent): Promise; getEvents(streamId: string): Promise; exists(streamId: string): Promise; getLastEvent(streamId: string): Promise; getEventsAfter(streamId: string, afterSeq: number): Promise; delete(streamId: string): Promise; listStreams(): Promise; } export declare function withTTL(store: L0EventStore, ttlMs: number): TTLEventStore; //# sourceMappingURL=storageAdapters.d.ts.map