import type { NodeProcessorConfig } from '../html/NodeProcessor.js'; import { NodeOrText } from '../utils/node.js'; import '../patches/htmlparser2.js'; export type PluginContext = Record; export type FrontMatter = Record; type TagConfigAttributes = { name: string; isRelative: boolean; isSourceFile: boolean; }; export type TagConfigs = { isSpecial?: boolean; attributes?: TagConfigAttributes[]; isCustomElement?: boolean; }; /** * Wrapper class around a loaded plugin module */ export declare class Plugin { pluginName: string; plugin: { beforeSiteGenerate: (...args: any[]) => any; getLinks: (pluginContext?: PluginContext, frontmatter?: FrontMatter, content?: string) => string[]; getScripts: (pluginContext?: PluginContext, frontmatter?: FrontMatter, content?: string) => string[]; postRender: (pluginContext: PluginContext, frontmatter: FrontMatter, content: string) => string; processNode: (pluginContext: PluginContext, node: NodeOrText, config?: NodeProcessorConfig) => string; postProcessNode: (pluginContext: PluginContext, node: NodeOrText, config?: NodeProcessorConfig) => string; tagConfig: Record; }; pluginOptions: PluginContext; pluginAbsolutePath: string; pluginAssetOutputPath: string; constructor(pluginName: string, pluginPath: string, pluginOptions: PluginContext, siteOutputPath: string); executeBeforeSiteGenerate(): void; /** * Resolves a resource specified as an attribute in a html asset tag * (eg. '