import { ImmutableCssNode, ImmutableHtmlNode } from './ImmutableNode'; import { ModificationDescription } from './ModificationDescription'; export interface TemplateModifier { /** * Start accumulate changes for HTML node passed to this method. * * @description * This method sets the HTML modifier to work with the specified HTML node, allowing further modifications on it. * * @summary Sets the HTML node for modification. * * @param node - The HTML node to modify. * @returns The HtmlNodeModifier instance for chaining. */ modifyHtml(node: ImmutableHtmlNode): HtmlNodeModifier; /** * Start accumulate changes for CSS node passed to this method. * * @description * This method sets the CSS modifier to work with the specified CSS node, enabling subsequent modifications to the node. * * @summary Sets the CSS node for modification. * * @param node - The CSS node to modify. * @returns The CssNodeModifier instance for chaining. */ modifyCss(node: ImmutableCssNode): CssNodeModifier; /** * Applies the accumulated modifications. * * @description * Executes all recorded actions and clears the actions list after application. * * @summary Applies all modifications made to HTML or CSS nodes. * * @param description - A description object providing additional context about the modifications being applied. */ apply(description: ModificationDescription): void; }