import type { BasePluginDefinition } from '#src/schema/plugins/definition.js'; import type { PluginMetadataWithPaths } from '../metadata/types.js'; import type { PluginStore } from './types.js'; /** * Builds a set of fullyQualifiedNames for all enabled plugins in a definition. * * @param pluginStore The plugin store containing all available plugins * @param enabledPlugins The enabled plugin definitions from the project definition * @returns Set of fullyQualifiedNames for enabled plugins */ export declare function buildEnabledPluginFqnSet(pluginStore: PluginStore, enabledPlugins: BasePluginDefinition[]): Set; /** * Validates that the plugin dependency graph has no circular dependencies. * * Uses topological sort to detect cycles. Dependencies referencing plugins * not in `availablePlugins` are silently skipped (they may be uninstalled). * * @throws ToposortCyclicalDependencyError if a circular dependency is detected */ export declare function validatePluginDependencyGraph(availablePlugins: PluginStore['availablePlugins']): void; export interface ResolvedPluginDependency { metadata: PluginMetadataWithPaths; optional: boolean; } /** * Resolves a plugin's declared dependencies to their metadata objects. * * @param pluginStore The plugin store containing all available plugins * @param pluginKey The key of the plugin whose dependencies to resolve * @returns Array of resolved dependencies with metadata and optional flag */ export declare function getPluginDependencies(pluginStore: PluginStore, pluginKey: string): ResolvedPluginDependency[]; /** * Returns the required (non-optional) plugin dependencies that are not currently enabled. * * @param pluginStore The plugin store containing all available plugins * @param pluginKey The key of the plugin to check * @param enabledPluginFqns Set of fullyQualifiedNames for currently enabled plugins * @returns Array of unmet required dependencies with metadata */ export declare function getUnmetPluginDependencies(pluginStore: PluginStore, pluginKey: string, enabledPluginFqns: Set): PluginMetadataWithPaths[]; //# sourceMappingURL=validate-plugin-dependencies.d.ts.map