UNPKG

@gati-framework/runtime

Version:

Gati runtime execution engine for running handler-based applications

45 lines 1.97 kB
/** * @module runtime/types/storage-contract * @description Storage contract interface for pluggable manifest storage backends * * Allows Gati to use any storage implementation (in-memory, SQLite, PostgreSQL, etc.) * via the module system. */ import type { HandlerManifest, HookManifest, GType, Transformer, VersionGraph, TimescapeMetadata } from './manifest-store.js'; /** * Storage statistics */ export interface StorageStats { manifestCount: number; gtypeCount: number; transformerCount: number; versionGraphCount: number; timescapeMetadataCount: number; hookManifestCount: number; } /** * Storage Contract * * Interface that all storage backends must implement. * Provides persistence for manifests, GTypes, transformers, and metadata. */ export interface StorageContract { storeManifest(manifest: HandlerManifest): Promise<void>; getManifest(id: string, version?: string): Promise<HandlerManifest | undefined>; getAllManifestVersions(id: string): Promise<HandlerManifest[]>; storeHookManifest(manifest: HookManifest): Promise<void>; getHookManifest(handlerId: string): Promise<HookManifest | null>; listHookManifests(): Promise<HookManifest[]>; storeGType(gtype: GType): Promise<void>; getGType(ref: string): Promise<GType | undefined>; storeTransformer(transformer: Transformer): Promise<void>; getTransformer(id: string): Promise<Transformer | undefined>; getTransformersForVersions(handlerId: string, fromVersion: string, toVersion: string): Promise<Transformer[]>; storeVersionGraph(graph: VersionGraph): Promise<void>; getVersionGraph(handlerId: string): Promise<VersionGraph | undefined>; storeTimescapeMetadata(metadata: TimescapeMetadata): Promise<void>; getTimescapeMetadata(handlerId: string, version: string): Promise<TimescapeMetadata | undefined>; clear(): Promise<void>; getStats(): StorageStats; } //# sourceMappingURL=storage-contract.d.ts.map