import { Token } from './lexer.js'; import { ProgramNode } from './ast.js'; export declare class Parser { private tokens; private current; private source?; private filename?; private static readonly VOID_ELEMENTS; constructor(tokens: Token[], source?: string, filename?: string); /** * Validate JavaScript code for common mistakes */ private validate_javascript_code; parse(): ProgramNode; private parse_top_level; private parse_component_definition; private parse_content; private parse_expression; private parse_code_block; private parse_if_statement; private parse_for_statement; private static readonly JAVASCRIPT_RESERVED_WORDS; private parse_slot; private parse_tag; private parse_attributes; private parse_conditional_attribute; private parse_attribute_value; private check_closing_tag; private match; private check; private check_ahead; private check_sequence; private advance; private is_at_end; private peek; private peek_ahead; private previous; private current_token; private previous_token; /** * Create a SourceLocation from start and end tokens * Propagates loc field if available, falls back to old fields for compatibility */ private create_location; private consume; private validate_component_children; /** * Compile method for simplified API * Parses the template and returns component metadata and render function */ compile(): { name: string; tagName: string; defaultAttributes: Record; renderFunction: string; }; } //# sourceMappingURL=parser.d.ts.map