import { FrontMatter, Plugin, PluginContext, TagConfigs } from './Plugin.js'; import type { NodeProcessorConfig } from '../html/NodeProcessor.js'; import type { PageAssets } from '../Page/PageConfig.js'; import { NodeOrText } from '../utils/node.js'; export declare class PluginManager { static tagConfig: Record; config: NodeProcessorConfig; plugins: Record; pluginsRaw: string[]; pluginsContextRaw: PluginContext; htmlBeautifyOptions: Record; constructor(config: NodeProcessorConfig, plugins: string[], pluginsContext: PluginContext); _setup(): void; /** * Load all plugins of the site */ _collectPlugins(): void; /** * Loads a plugin * @param plugin name of the plugin * @param isDefault whether the plugin is a default plugin */ _loadPlugin(plugin: string, isDefault: boolean): void; /** * Retrieves the correct plugin path for a plugin name that exists either in (in decreasing priority): * - the MarkBind project's 'plugins' folder * - the current folder (__dirname) * - the 'default' subdirectory under the current folder * - one of the environment's valid node_modules folders, as loaded by node's require(...) method * @param projectRootPath root of the MarkBind project * @param pluginName name of the plugin */ static _getPluginPath(projectRootPath: string, pluginName: string): string; /** * Collects the tag configuration of the site's plugins, and injects them into the parsers. */ _collectPluginTagConfigs(): void; /** * Run the beforeSiteGenerate hooks */ beforeSiteGenerate(): void; /** * Run getLinks and getScripts hooks */ collectPluginPageNjkAssets(frontmatter: FrontMatter, content: string, pageAsset: PageAssets): void; postRender(frontmatter: FrontMatter, content: string): string; processNode(node: NodeOrText): void; postProcessNode(node: NodeOrText): void; } //# sourceMappingURL=PluginManager.d.ts.map