/** * Plugin Discovery - Automatic discovery of evaluator plugins from npm packages * * Scans node_modules for packages that declare evaluators in their package.json: * * ```json * { * "name": "praisonaibench-python", * "praisonaibench": { * "evaluators": { * "python": "./dist/evaluator.js" * } * } * } * ``` */ import { BaseEvaluator } from './base-evaluator'; export interface PluginInfo { packageName: string; language: string; evaluatorPath: string; evaluatorClass?: new () => BaseEvaluator; } export interface PluginPackageJson { name: string; praisonaibench?: { evaluators?: Record; }; } /** * Discover evaluator plugins from installed npm packages. * * Looks for packages with a "praisonaibench.evaluators" field in package.json. * * @param searchPaths - Additional paths to search for node_modules * @returns Array of discovered plugin information */ export declare function discoverPlugins(searchPaths?: string[]): PluginInfo[]; /** * Load an evaluator class from a plugin. * * @param plugin - Plugin information * @returns The evaluator class constructor, or undefined if loading fails */ export declare function loadEvaluatorClass(plugin: PluginInfo): (new () => BaseEvaluator) | undefined; /** * Validate that an object is a valid evaluator instance. */ export declare function isValidEvaluator(obj: unknown): obj is BaseEvaluator; /** * Get plugin info for a specific package by name. */ export declare function getPluginInfo(packageName: string): PluginInfo[]; /** * List all discovered plugin packages. */ export declare function listPluginPackages(): string[]; //# sourceMappingURL=plugin-discovery.d.ts.map