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;