/** * Harness Plugin Loader — discovers and loads harness plugins from * configured module specifiers. * * Plugins are specified in `config.harness.plugins` as an array of: * - Relative paths (resolved from project root) * - Package names (resolved via standard module resolution) * * Each module must export a `HarnessPlugin`-conformant object as the default * export or as a named `plugin` export. */ import type { HarnessPlugin } from './plugin-api'; import type { Logger } from '../types'; export interface PluginLoadResult { loaded: HarnessPlugin[]; errors: Array<{ specifier: string; error: string; }>; } /** * Load all harness plugins from the given specifiers. * Failures are collected but do not halt loading — each plugin is isolated. */ export declare function loadHarnessPlugins(specifiers: string[], projectDir: string, logger: Logger): Promise; /** * HarnessPluginRegistry — in-memory registry of loaded plugins. * Provides convenient accessors for all detectors, truncators, and snapshots. */ export declare class HarnessPluginRegistry { private plugins; register(plugin: HarnessPlugin): void; registerAll(plugins: HarnessPlugin[]): void; /** All detectors from all registered plugins, in registration order. */ get detectors(): import("./plugin-api").HarnessDetector[]; /** All truncators from all registered plugins, in registration order. */ get truncators(): import("./plugin-api").HarnessTruncator[]; /** All snapshot providers from all registered plugins, in registration order. */ get snapshotProviders(): import("./plugin-api").HarnessSnapshotProvider[]; /** Names of all loaded plugins. */ get names(): string[]; get count(): number; } //# sourceMappingURL=plugin-loader.d.ts.map