/** * Plugin hooks: discovery from `.aidlc/plugins//plugin.yaml` and * hook firing alongside lifecycle actions. * * Plugin hooks fire on the same lifecycle events as user-configured actions * (Req 20.9). All plugin hooks are currently non-blocking — they log errors * but never halt transitions. Network failures in plugins are also non-blocking * (Req 14.5). * * Requirements: 10.1, 10.2, 10.5, 10.6, 10.7, 14.5 */ import type { PluginManifest, EventPayload, DispatchReport } from '../core/types.js'; /** * Discover plugins from a `.aidlc/plugins/` directory. * * Scans subdirectories for `plugin.yaml` manifest files, validates them, * and returns an array of valid PluginManifest objects. * * Malformed plugins are logged to stderr and skipped — they do not prevent * other plugins from loading (Req 10.6). * * @param pluginsDir - Absolute path to the `.aidlc/plugins/` directory. * @returns Array of valid plugin manifests discovered. */ export declare function discoverPlugins(pluginsDir: string): PluginManifest[]; /** * Fire plugin hooks that match a lifecycle event. * * Hooks fire alongside user-configured actions (same lifecycle events). * All plugin hooks are currently non-blocking: errors are logged but * transitions are never halted. * * Network failures in a plugin are treated as non-blocking (Req 14.5): * logged and continued. * * @param plugins - Array of discovered plugin manifests. * @param event - The lifecycle event payload. * @param opts - Options: `dryRun` to skip execution and just report matches. * @returns A DispatchReport listing what fired and outcomes. */ export declare function firePluginHooks(plugins: PluginManifest[], event: EventPayload, opts?: { dryRun?: boolean; }): DispatchReport; //# sourceMappingURL=plugin-hooks.d.ts.map