import { ParserBase } from './base'; import type { LiquidTagEnvelope } from './factories'; import type { LiquidStatement, LiquidRawTag, LiquidTag, LiquidBranch } from '../ast'; import type { LiquidLineContext, TagDefinitionBlock, TagDefinitionRaw, TagDefinitionHybrid, BranchName, Environment, Parser } from '../environment'; /** * Interface capturing what line-based parsing free functions need from * the DocumentParser. The parser class satisfies this contract, keeping * the coupling explicit and narrow. */ export interface LineParserDelegate extends ParserBase, Parser { readonly lineEnv: Environment; readonly lineParseHtml: boolean; readonly lineAllowUnclosedDocumentNode: boolean; } export declare function parseLiquidStatement(parser: LineParserDelegate, tagName: string, markupString: string, markupOffset: number, ctx: LiquidLineContext): LiquidStatement; export declare function parseLineBlockTag(parser: LineParserDelegate, def: TagDefinitionBlock, envelope: LiquidTagEnvelope, markupString: string, markupOffset: number, ctx: LiquidLineContext): LiquidTag; export declare function parseLineRawTag(parser: LineParserDelegate, _def: TagDefinitionRaw, envelope: LiquidTagEnvelope, ctx: LiquidLineContext): LiquidRawTag; export declare function parseLineHybridTag(parser: LineParserDelegate, def: TagDefinitionHybrid, envelope: LiquidTagEnvelope, markupString: string, markupOffset: number, ctx: LiquidLineContext): LiquidTag; export declare function parseLineBlockBody(parser: LineParserDelegate, parentName: string, ctx: LiquidLineContext): { children: LiquidStatement[]; endNameOffset: number; }; export declare function parseLineBranchedBody(parser: LineParserDelegate, parentName: string, def: TagDefinitionBlock, ctx: LiquidLineContext): { branches: LiquidBranch[]; endNameOffset: number; }; export declare function parseLineBranchMarkup(branchName: BranchName, envelope: LiquidTagEnvelope, source: string, tolerant?: boolean): unknown;