import { TokenStream } from '../classes/TokenStream'; import { Token } from '../classes/Lexer'; import { IfBlock, InlineIf, Statement, CodePosition, DecoratorCall } from '../types/Ast.type'; export interface IfBlockParserContext { parseStatement: (stream: TokenStream) => Statement | null; parseComment: (stream: TokenStream) => Statement | null; createCodePosition: (start: Token, end: Token) => CodePosition; } /** * Parse an if statement (either inline or block) * * @param stream - TokenStream positioned at the 'if' keyword * @param context - Context with helper methods * @param decorators - Optional decorators to attach to this if block * @returns Parsed IfBlock or InlineIf */ export declare function parseIf(stream: TokenStream, context: IfBlockParserContext, decorators?: DecoratorCall[]): IfBlock | InlineIf;