import * as P from 'parsimmon'; import { TemplateName } from './util'; export declare type NodeTypes = { 'Attribute': Attribute; 'Call': Call; 'DelCall': DelCall; 'Interpolation': Interpolation; 'LetStatement': LetStatement; 'Literal': Literal; 'OtherCmd': OtherCmd; 'MapLiteral': MapLiteral; 'MapItem': MapItem; 'StringLiteral': StringLiteral; 'NumberLiteral': NumberLiteral; 'BooleanLiteral': BooleanLiteral; 'OtherExpression': OtherExpression; 'Param': Param; 'ParamDeclaration': ParamDeclaration; 'Program': Program; 'Reference': Reference; 'Ternary': Ternary; 'FunctionCall': FunctionCall; 'SoyDoc': SoyDoc; 'Template': Template; 'DelTemplate': DelTemplate; 'Other': OtherCmd; }; export declare type NodeType = keyof NodeTypes; export declare type Cmd = Call | Interpolation | LetStatement | Literal | OtherCmd; export declare type Body = Array; export declare type Expression = MapLiteral | StringLiteral | NumberLiteral | BooleanLiteral | OtherExpression | Reference | Ternary | FunctionCall; export interface Node { body?: Body; mark: Mark; type: NodeType; } export interface Mark { start: P.Index; end: P.Index; } export interface Program extends Node { body: Array