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;
}