/** * Pseudo-element (::before / ::after) content resolution. * * Extracted from DocumentCloner: the cloner creates surrogate * `` nodes carrying the pseudo's computed styles and * resolved content tokens (strings, url() images, attr(), counter(s), and * quotes) as children of the cloning element. The hide classes ensure the * surrogate itself is never painted; only its children are. */ import { CounterState } from '../css/types/functions/counter'; import { Context } from '../core/context'; export declare enum PseudoElementType { BEFORE = 0, AFTER = 1 } /** * Inject the stylesheet that hides pseudo-element surrogate containers. * Called on the cloned so the surrogates themselves never render. */ export declare const createPseudoHideStyles: (body: HTMLElement, cspNonce?: string) => void; /** * Resolves computed `content` of ::before/::after into surrogate DOM nodes. * * One instance per DocumentCloner: `quoteDepth` tracks open-quote/close-quote * pairing across the whole clone walk, shared with the cloner's counter state. */ export declare class PseudoContentResolver { private readonly context; private readonly counters; private quoteDepth; constructor(context: Context, counters: CounterState); resolvePseudoContent(node: Element, clone: Element, style: CSSStyleDeclaration, pseudoElt: PseudoElementType): HTMLElement | void; }