import type { Token } from './tokenizer'; import type { Position } from '../types'; import type { DocumentNode, YAMLFrontmatter, LiquidTagBaseCase, LiquidTagNamed, LiquidBranchUnnamed, LiquidBranchNamed, LiquidRawTag, TextNode, RawMarkup, LiquidVariable, LiquidVariableOutput, LiquidHtmlNode, LiquidNode, HtmlElement, HtmlVoidElement, HtmlSelfClosingElement, HtmlRawNode, HtmlComment, HtmlDoctype, HtmlDanglingMarkerClose, AttrDoubleQuoted, AttrSingleQuoted, AttrUnquoted, AttrEmpty, AttributeNode, ValueNode, CompoundNameSegment } from '../ast'; import { RawMarkupKinds } from '../ast'; export type LiquidOpenWhitespace = '-' | ''; export type LiquidCloseWhitespace = '-' | ''; export interface LiquidTagEnvelope { tagName: string; markupString: string; markupOffset: number; /** The end position of the markup in the source (exclusive). Aligned with markupOffset. */ markupEnd: number; whitespaceStart: LiquidOpenWhitespace; whitespaceEnd: LiquidCloseWhitespace; blockStartPosition: Position; source: string; } export declare function makeDocumentNode(children: LiquidHtmlNode[], source: string): DocumentNode; export declare function envelopeFromTokens(openToken: Token, closeToken: Token, source: string): LiquidTagEnvelope; export declare function makeLiquidTagBaseCase(envelope: LiquidTagEnvelope, children?: LiquidHtmlNode[], blockEndPosition?: Position, delimiterWhitespace?: { start: LiquidOpenWhitespace; end: LiquidCloseWhitespace; }, reason?: string, preserveMarkup?: boolean): LiquidTagBaseCase; export declare function makeLiquidTagNamed(envelope: LiquidTagEnvelope, markup: unknown, children?: LiquidHtmlNode[], blockEndPosition?: Position, delimiterWhitespace?: { start: LiquidOpenWhitespace; end: LiquidCloseWhitespace; }): LiquidTagNamed; export declare function makeLiquidBranchUnnamed(bodyStart: number, source: string): LiquidBranchUnnamed; export declare function makeLiquidBranchNamed(envelope: LiquidTagEnvelope, markup: unknown): LiquidBranchNamed; export declare function makeLiquidRawTag(envelope: LiquidTagEnvelope, body: RawMarkup, blockEndPosition: Position, delimiterWhitespace: { start: LiquidOpenWhitespace; end: LiquidCloseWhitespace; }): LiquidRawTag; export declare function makeLiquidVariableOutput(openToken: Token, closeToken: Token, markup: string | LiquidVariable, source: string): LiquidVariableOutput; export declare function makeTextNode(value: string, start: number, end: number, source: string): TextNode; export declare function makeRawMarkup(kind: RawMarkupKinds, value: string, nodes: (LiquidNode | TextNode)[], start: number, end: number, source: string): RawMarkup; export declare function makeYamlFrontmatter(body: string, start: number, end: number, source: string): YAMLFrontmatter; export declare function makeHtmlElement(name: CompoundNameSegment[], attributes: AttributeNode[], children: LiquidHtmlNode[], blockStartPosition: Position, blockEndPosition: Position, source: string): HtmlElement; export declare function makeHtmlVoidElement(name: string, attributes: AttributeNode[], blockStartPosition: Position, source: string): HtmlVoidElement; export declare function makeHtmlSelfClosingElement(name: CompoundNameSegment[], attributes: AttributeNode[], blockStartPosition: Position, source: string): HtmlSelfClosingElement; export declare function makeHtmlRawNode(name: string, attributes: AttributeNode[], body: RawMarkup, blockStartPosition: Position, blockEndPosition: Position, source: string): HtmlRawNode; export declare function makeHtmlComment(body: string, start: number, end: number, source: string): HtmlComment; export declare function makeHtmlDoctype(legacyDoctypeString: string | null, start: number, end: number, source: string): HtmlDoctype; export declare function makeAttrDoubleQuoted(name: CompoundNameSegment[], value: ValueNode[], attributePosition: Position, start: number, end: number, source: string): AttrDoubleQuoted; export declare function makeAttrSingleQuoted(name: CompoundNameSegment[], value: ValueNode[], attributePosition: Position, start: number, end: number, source: string): AttrSingleQuoted; export declare function makeAttrUnquoted(name: CompoundNameSegment[], value: ValueNode[], attributePosition: Position, start: number, end: number, source: string): AttrUnquoted; export declare function makeAttrEmpty(name: CompoundNameSegment[], start: number, end: number, source: string): AttrEmpty; export declare function makeHtmlDanglingMarkerClose(name: CompoundNameSegment[], start: number, end: number, source: string): HtmlDanglingMarkerClose;