UNPKG

@ai2070/l0

Version:

L0: The Missing Reliability Substrate for AI

96 lines 4.72 kB
import type { L0EventStore, L0EventStoreWithSnapshots, L0EventEnvelope, L0RecordedEvent, L0Snapshot } from "../types/events"; export interface StorageAdapterConfig { type: string; connection?: string; prefix?: string; ttl?: number; options?: Record<string, unknown>; } export type StorageAdapterFactory = (config: StorageAdapterConfig) => L0EventStore | Promise<L0EventStore>; 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<L0EventStore>; 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<void>; abstract getEvents(streamId: string): Promise<L0EventEnvelope[]>; abstract exists(streamId: string): Promise<boolean>; abstract delete(streamId: string): Promise<void>; abstract listStreams(): Promise<string[]>; getLastEvent(streamId: string): Promise<L0EventEnvelope | null>; getEventsAfter(streamId: string, afterSeq: number): Promise<L0EventEnvelope[]>; } export declare abstract class BaseEventStoreWithSnapshots extends BaseEventStore implements L0EventStoreWithSnapshots { protected getSnapshotKey(streamId: string): string; abstract saveSnapshot(snapshot: L0Snapshot): Promise<void>; abstract getSnapshot(streamId: string): Promise<L0Snapshot | null>; getSnapshotBefore(streamId: string, seq: number): Promise<L0Snapshot | null>; } 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<void>; getEvents(streamId: string): Promise<L0EventEnvelope[]>; exists(streamId: string): Promise<boolean>; delete(streamId: string): Promise<void>; listStreams(): Promise<string[]>; saveSnapshot(snapshot: L0Snapshot): Promise<void>; getSnapshot(streamId: string): Promise<L0Snapshot | null>; } export declare class LocalStorageEventStore extends BaseEventStoreWithSnapshots { private storage; constructor(config?: StorageAdapterConfig); append(streamId: string, event: L0RecordedEvent): Promise<void>; getEvents(streamId: string): Promise<L0EventEnvelope[]>; exists(streamId: string): Promise<boolean>; delete(streamId: string): Promise<void>; listStreams(): Promise<string[]>; saveSnapshot(snapshot: L0Snapshot): Promise<void>; getSnapshot(streamId: string): Promise<L0Snapshot | null>; 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<void>; getEvents(streamId: string): Promise<L0EventEnvelope[]>; exists(streamId: string): Promise<boolean>; getLastEvent(streamId: string): Promise<L0EventEnvelope | null>; getEventsAfter(streamId: string, afterSeq: number): Promise<L0EventEnvelope[]>; delete(streamId: string): Promise<void>; listStreams(): Promise<string[]>; } 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<void>; getEvents(streamId: string): Promise<L0EventEnvelope[]>; exists(streamId: string): Promise<boolean>; getLastEvent(streamId: string): Promise<L0EventEnvelope | null>; getEventsAfter(streamId: string, afterSeq: number): Promise<L0EventEnvelope[]>; delete(streamId: string): Promise<void>; listStreams(): Promise<string[]>; } export declare function withTTL(store: L0EventStore, ttlMs: number): TTLEventStore; //# sourceMappingURL=storageAdapters.d.ts.map