import type { MemoPlugin, PluginType, ExportPlugin, AnalysisPlugin, ValidationPlugin, GeneratorPlugin, PluginContext, AnalysisResult, ExportResult } from './plugin-types.js'; import type { DhfDocument } from '../dhf/document-ir.js'; import type { Violation } from '../validator/types.js'; /** Plugin registry — manages all registered plugins */ export declare class PluginRegistry { private plugins; /** Number of registered plugins */ get size(): number; /** Register a plugin. Overwrites any existing plugin with the same ID. */ register(plugin: MemoPlugin): void; /** Unregister a plugin by ID */ unregister(id: string): boolean; /** Get a plugin by ID */ get(id: string): MemoPlugin | undefined; /** Get a typed plugin by ID */ getExport(id: string): ExportPlugin | undefined; getAnalysis(id: string): AnalysisPlugin | undefined; getValidation(id: string): ValidationPlugin | undefined; getGenerator(id: string): GeneratorPlugin | undefined; /** List all plugins, optionally filtered by type */ list(type?: PluginType): MemoPlugin[]; /** List export plugins */ listExports(): ExportPlugin[]; /** List analysis plugins */ listAnalysis(): AnalysisPlugin[]; /** List validation plugins */ listValidation(): ValidationPlugin[]; /** List generator plugins */ listGenerators(): GeneratorPlugin[]; /** Check if a plugin is registered */ has(id: string): boolean; /** Clear all registered plugins */ clear(): void; /** Run an export plugin by ID */ runExport(id: string, doc: DhfDocument, ctx: PluginContext, options?: Record): Promise; /** Run an analysis plugin by ID */ runAnalysis(id: string, ctx: PluginContext, options?: Record): Promise; /** Run a validation plugin by ID, returns violations */ runValidation(id: string, ctx: PluginContext, options?: Record): Promise; /** Run all validation plugins, returns combined violations */ runAllValidation(ctx: PluginContext, options?: Record): Promise; /** Run a generator plugin by ID */ runGenerator(id: string, ctx: PluginContext, options?: Record): Promise; /** Run all generator plugins in sequence */ runAllGenerators(ctx: PluginContext, options?: Record): Promise; } /** Global plugin registry instance */ export declare const globalPluginRegistry: PluginRegistry; //# sourceMappingURL=plugin-registry.d.ts.map