import type { ExtensionConfig, RecoveryStrategyModule, RecoveryPatternModule } from "./types.ts"; import type { ExtensionPoint } from "./extension-point.ts"; /** * Central coordinator for the Plugin Extension Registry. * * The registry holds a map of ExtensionPoints, one per scope. When * loadExtensions() is called, it iterates over the config and delegates * each scope's entries to the matching ExtensionPoint. * * Public API: * - loadExtensions(config, roleDir) * - getLoadedStrategies() * - getLoadedPatterns() * - dispose() * - registerExtensionPoint(point) // for third-party or test points */ export declare class ExtensionRegistry { private readonly points; private readonly strategiesPoint; private readonly patternsPoint; constructor(); /** * Register an additional ExtensionPoint. This lets third-party * scopes or test fixtures inject new points without modifying the * registry class. */ registerExtensionPoint(point: ExtensionPoint): void; getLoadedStrategies(): Map; getLoadedPatterns(): Map; /** * Load and register all extensions from an ExtensionConfig. * Dispatches each scope to its registered ExtensionPoint. * Safe to call with undefined/null config (no-op). */ loadExtensions(config: ExtensionConfig | undefined | null, roleDir: string): Promise; /** Dispose all registered extension points. */ dispose(): Promise; } //# sourceMappingURL=registry.d.ts.map