import type { Extractor, FileContentsParser, Plugin, ValidationResult } from '../types/index.js'; /** * Wrapper for a plugin's validator function with plugin name context. */ export interface PluginValidator { pluginName: string; validate: (value: T) => ValidationResult; } /** * Schema entry from a plugin with plugin name context. */ export interface PluginSchemaEntry { pluginName: string; /** Package name this plugin was loaded from (set for string/tuple refs) */ packageName?: string; options?: string; metadata?: string; } /** * Registry for plugins with extension-based lookup. */ export declare class PluginRegistry { private plugins; private extensionMap; /** * Register a plugin. * @throws If plugin with same name already registered */ register(plugin: Plugin): void; /** * Get all registered plugins. */ getPlugins(): readonly Plugin[]; /** * Get plugins registered for a file extension. */ getPluginsForExtension(extension: string): Plugin[]; /** * Get all extractors from registered plugins. */ getExtractors(): Extractor[]; /** * Get parsers for files with given extension, in registration order. * Parsers from each plugin are flattened into a single ordered list. */ getParsersForExtension(extension: string): FileContentsParser[]; /** * Get all options validators from registered plugins. */ getOptionsValidators(): PluginValidator[]; /** * Get all metadata validators from registered plugins. */ getMetadataValidators(): PluginValidator[]; /** * Get all schemas from registered plugins. */ getSchemas(): PluginSchemaEntry[]; } //# sourceMappingURL=registry.d.ts.map