/** * Plugin registry builder. * Validates plugins and merges their contributions into a single registry. */ import { Effect } from "effect"; import type { PluginError } from "../errors/plugin-errors.js"; import type { PluginRegistry, ProseQLPlugin } from "./plugin-types.js"; /** * Builds a PluginRegistry from an array of plugins. * * This function: * 1. Validates each plugin individually (structure, codecs, operators, generators) * 2. Validates operator conflicts (between plugins and with built-in operators) * 3. Validates dependencies (all declared dependencies must exist) * 4. Merges codecs (append in registration order) * 5. Merges operators into a Map (O(1) lookup) * 6. Merges ID generators into a Map (O(1) lookup) * 7. Merges global hooks (concatenate arrays in registration order) * * If plugins is undefined or empty, returns an empty registry. * * @param plugins - Array of plugins to validate and merge (optional) * @returns Effect - The merged registry or validation error */ export declare const buildPluginRegistry: (plugins?: ReadonlyArray) => Effect.Effect; //# sourceMappingURL=plugin-registry.d.ts.map