import { IWeaveProvider, ProviderFactory } from "./types.js"; /** * ProviderRegistry * * Central factory and registration hub for IWeaveProvider implementations. * * Built-in providers: * "json" → JsonProvider (default) * "memory" → MemoryProvider * * Third-party providers (weave-provider-sqlite, weave-provider-mongodb …) can * register themselves at startup via `ProviderRegistry.register()`. * * Runtime resolution order: * 1. `WEAVE_PROVIDER` environment variable (e.g. `WEAVE_PROVIDER=memory`) * 2. Falls back to `"json"` when the env var is absent or empty */ export declare class ProviderRegistry { private static factories; /** * Register a new provider factory under a named key. * The key is normalised to lower-case before storing. * * @example * // In weave-provider-sqlite: * ProviderRegistry.register("sqlite", async () => new SqliteProvider(...)); */ static register(name: string, factory: ProviderFactory): void; /** * Resolve and instantiate a provider. * * @param type Explicit provider type string. When omitted, reads * `process.env.WEAVE_PROVIDER`. Defaults to `"json"`. * * @throws {UnknownProviderError} if the type is not registered. */ static resolve(type?: string): Promise>; /** * Returns the list of currently registered provider names. * Useful for diagnostics and help text. */ static available(): string[]; /** * Remove a registered provider (mainly for test isolation). */ static unregister(name: string): void; } /** * Convenience function — resolve the default (or env-configured) provider. * * @example * const provider = await resolveProvider(); * await provider.set("graph:my-session", snapshot); */ export declare function resolveProvider(type?: string): Promise>; //# sourceMappingURL=registry.d.ts.map