export declare type NDef = { type: 'def'; name: string; expr: Node; mut: boolean; attr: Map; }; export declare type NAssign = { type: 'assign'; name: string; expr: Node; }; export declare type NPropAssign = { type: 'propAssign'; obj: string; path: string[]; expr: Node; }; export declare type NIndexAssign = { type: 'indexAssign'; arr: string; i: Node; expr: Node; }; export declare type NInc = { type: 'inc'; name: string; expr: Node; }; export declare type NDec = { type: 'dec'; name: string; expr: Node; }; export declare type NCall = { type: 'call'; name: string; args: Node[]; }; export declare type NReturn = { type: 'return'; expr: Node; }; export declare type NIf = { type: 'if'; cond: Node; then: Node; elseif: { cond: Node; then: Node; }[]; else: Node; }; export declare type NFor = { type: 'for'; var?: string; from?: Node; to?: Node; times?: Node; for: Node; }; export declare type NForOf = { type: 'forOf'; var: string; items: Node; for: Node; }; export declare type NVar = { type: 'var'; name: string; }; export declare type NNull = { type: 'null'; }; export declare type NBool = { type: 'bool'; value: boolean; }; export declare type NNum = { type: 'num'; value: number; }; export declare type NStr = { type: 'str'; value: string; }; export declare type NArr = { type: 'arr'; value: Node[]; }; export declare type NFn = { type: 'fn'; args: string[]; children: Node[]; }; export declare type NObj = { type: 'obj'; value: Map; }; export declare type NProp = { type: 'prop'; obj: string; path: string[]; }; export declare type NPropCall = { type: 'propCall'; obj: string; path: string[]; args: Node[]; }; export declare type NIndex = { type: 'index'; arr: string; i: Node; }; export declare type NBlock = { type: 'block'; statements: Node[]; }; export declare type NTmpl = { type: 'tmpl'; tmpl: (string | Node)[]; }; export declare type NNs = { type: 'ns'; name: string; members: Node[]; }; export declare type NMatch = { type: 'match'; about: Node; qs: { q: Node; a: Node; }[]; default?: Node; }; export declare type NMeta = { type: 'meta'; name: string | null; value: Node; }; export declare type Node = NDef | NAssign | NPropAssign | NIndexAssign | NInc | NDec | NCall | NReturn | NIf | NFor | NForOf | NVar | NNull | NBool | NNum | NStr | NArr | NFn | NObj | NProp | NPropCall | NIndex | NBlock | NTmpl | NMatch | NNs | NMeta;