import type { LiquidHtmlNode } from '../ast';
export declare enum ChildFilterMode {
/** Syntactic auto-skip: merge adjacent TextNodes, trim whitespace at boundaries, drop empty. */
Syntactic = 0,
/** Merge adjacent TextNodes, preserve all whitespace content. */
Preserve = 1,
/** Merge, then strip whitespace-only TextNodes from first/last positions only. */
StripEdges = 2
}
export declare function filterChildren(mode: ChildFilterMode, children: LiquidHtmlNode[], source: string): LiquidHtmlNode[];
export declare function mergeAdjacentTextNodes(nodes: LiquidHtmlNode[], source: string): LiquidHtmlNode[];
/**
* Merge adjacent text nodes then trim whitespace from text node boundaries
* adjacent to non-text nodes. Used for raw tag bodies and branch children
* where surrounding whitespace around Liquid tags should be dropped.
*/
export declare function mergeAdjacentTextNodesTrimmed(nodes: LiquidHtmlNode[], source: string): LiquidHtmlNode[];
/**
* Merge adjacent text nodes then strip whitespace-only text nodes from the
* edges. Used at the document root and tag children where meaningful text
* content (including its whitespace) should be preserved, but whitespace-only
* edge nodes from template indentation should be dropped.
*/
export declare function mergeAdjacentTextNodesStripEdges(nodes: LiquidHtmlNode[], source: string): LiquidHtmlNode[];
export declare function compoundNamesMatch(a: LiquidHtmlNode[], b: LiquidHtmlNode[]): boolean;