import type { SchemaParserContext } from '#src/parser/types.js'; import type { PluginStore } from '#src/plugins/imports/types.js'; import type { PluginMetadataWithPaths } from '#src/plugins/index.js'; import type { BasePluginDefinition, ProjectDefinition } from '#src/schema/index.js'; import type { ProjectDefinitionContainer } from '../project-definition-container.js'; declare function byKey(projectDefinition: ProjectDefinition, key: string): BasePluginDefinition | undefined; declare function byKeyOrThrow(projectDefinition: ProjectDefinition, id: string): BasePluginDefinition; declare function configByKey(projectDefinition: ProjectDefinition, key: string): unknown; declare function configByKeyOrThrow(projectDefinition: ProjectDefinition, key: string): unknown; declare function setPluginConfig(projectDefinition: ProjectDefinition, plugin: PluginMetadataWithPaths, pluginConfig: unknown, definitionContainer: ProjectDefinitionContainer): void; /** * Disables a plugin and all plugins that it manages recursively. * * @param projectDefinition The project definition to disable the plugin in * @param pluginKey The ID of the plugin to disable * @param context The schema parser context to use */ declare function disablePlugin(projectDefinition: ProjectDefinition, pluginKey: string, context: SchemaParserContext): void; /** * Finds all enabled plugins that transitively depend on the given plugin * via required (non-optional) dependencies. * * Uses BFS to discover the full transitive closure: if A requires B and * B requires C, disabling C returns both B and A. * * @param projectDefinition The project definition to check * @param pluginKey The key of the plugin being considered for disabling * @param pluginStore The plugin store containing available plugin metadata * @returns Array of metadata for plugins that transitively depend on the given plugin */ declare function getDependentPlugins(projectDefinition: ProjectDefinition, pluginKey: string, pluginStore: PluginStore): PluginMetadataWithPaths[]; export declare const PluginUtils: { byKey: typeof byKey; byKeyOrThrow: typeof byKeyOrThrow; configByKey: typeof configByKey; setPluginConfig: typeof setPluginConfig; configByKeyOrThrow: typeof configByKeyOrThrow; disablePlugin: typeof disablePlugin; getDependentPlugins: typeof getDependentPlugins; }; export {}; //# sourceMappingURL=plugin-utils.d.ts.map