import { Tree } from './parse'; export declare function setTextFormat(format: string): string; export declare function getTextFormat(): string; export type Pos = number; export declare enum NodeType { NodeText = 0, NodeAction = 1, NodeBool = 2, NodeChain = 3, NodeCommand = 4, NodeDot = 5, NodeElse = 6, NodeEnd = 7, NodeField = 8, NodeIdentifier = 9, NodeIf = 10, NodeList = 11, NodeNil = 12, NodeNumber = 13, NodePipe = 14, NodeRange = 15, NodeString = 16, NodeTemplate = 17, NodeVariable = 18, NodeWith = 19, NodeComment = 20, NodeBreak = 21, NodeContinue = 22 } export interface Node { Type(): NodeType; String(): string; Copy(): Node; Position(): Pos; tree(): Tree; writeTo(sb: StringBuilder): void; } export interface StringBuilder { WriteString(str: string): void; String(): string; } export declare class StringBuilderImpl implements StringBuilder { private parts; WriteString(str: string): void; String(): string; } export declare class TextNode implements Node { private nodeType; private pos; private tr; Text: Uint8Array; constructor(tr: Tree, pos: Pos, text: string); Type(): NodeType; String(): string; Position(): Pos; tree(): Tree; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class TemplateError extends Error { constructor(message: string); } export declare function errorf(format: string, ...args: any[]): never; export declare function sprintf(format: string, ...args: any[]): string; export declare class ListNode implements Node { private tr; Nodes: Node[]; private pos; constructor(pos: Pos); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; append(n: Node): void; String(): string; CopyList(): ListNode; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class ActionNode implements Node { private pos; private line; private tr; Pipe: Node; constructor(pos: Pos, line: number, pipe: Node); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; setPos(pos: Pos): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class PipeNode implements Node { private tr; Line: number; IsAssign: boolean; Decl: VariableNode[]; Cmds: CommandNode[]; private pos; constructor(pos: Pos, line: number); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; append(command: CommandNode): void; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class CommandNode implements Node { private tr; private pos; Args: Node[]; constructor(pos: Pos); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; append(arg: Node): void; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class CommentNode implements Node { private tr; private pos; Text: string; constructor(pos: Pos, text: string); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class VariableNode implements Node { private tr; private pos; Ident: string[]; constructor(pos: Pos, ident: string[]); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class IdentifierNode implements Node { private tr; private pos; Ident: string; constructor(ident: string); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; setPos(pos: Pos): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class DotNode implements Node { private tr; private pos; constructor(pos: Pos); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class NilNode implements Node { private pos; private tr; constructor(pos: Pos); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; setPos(pos: Pos): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class FieldNode implements Node { private pos; private tr; Ident: string[]; constructor(pos: Pos, ident: string[]); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; setPos(pos: Pos): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class ChainNode implements Node { private pos; private tr; Node: Node; Field: string[]; constructor(pos: Pos, node: Node); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; setPos(pos: Pos): this; String(): string; add(field: string): void; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class BoolNode implements Node { private tr; private pos; True: boolean; constructor(pos: Pos, value: boolean); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class NumberNode implements Node { private tr; private pos; IsInt: boolean; IsUint: boolean; IsFloat: boolean; IsComplex: boolean; Int64: number; Uint64: number; Float64: number; Complex128: { re: number; im: number; }; Text: string; constructor(tr: Tree, pos: Pos, text: string); Type(): NodeType; Position(): Pos; tree(): Tree; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; simplifyComplex(): void; } export declare class StringNode implements Node { private tr; private pos; Text: string; Quoted: string; constructor(pos: Pos, quoted: string, text: string); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class EndNode implements Node { private tr; private pos; constructor(pos: Pos); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class ElseNode implements Node { private tr; private pos; Line: number; constructor(pos: Pos, line: number); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class BreakNode implements Node { private tr; private pos; Line: number; constructor(pos: Pos, line: number); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class ContinueNode implements Node { private tr; private pos; Line: number; constructor(pos: Pos, line: number); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class BranchNode implements Node { protected nodeType: NodeType; protected tr: Tree; protected pos: Pos; Line: number; Pipe: PipeNode; List: ListNode; ElseList: ListNode | null; constructor(nodeType: NodeType, tr: Tree, pos: Pos, line: number, pipe: PipeNode, list: ListNode, elseList: ListNode | null); Type(): NodeType; Position(): Pos; tree(): Tree; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class IfNode extends BranchNode { constructor(tr: Tree, pos: Pos, line: number, pipe: PipeNode, list: ListNode, elseList: ListNode | null); Copy(): Node; } export declare class RangeNode extends BranchNode { constructor(tr: Tree, pos: Pos, line: number, pipe: PipeNode, list: ListNode, elseList: ListNode | null); Copy(): Node; } export declare class WithNode extends BranchNode { constructor(tr: Tree, pos: Pos, line: number, pipe: PipeNode, list: ListNode, elseList: ListNode | null); Copy(): Node; } export declare class TemplateNode implements Node { private tr; private pos; Line: number; Name: string; Pipe: PipeNode | null; constructor(pos: Pos, line: number, name: string, pipe: PipeNode | null); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; } export declare class DefineNode implements Node { private tr; private pos; Line: number; Name: string; Pipe: Node; constructor(pos: Pos, line: number, name: string, pipe: Node); Type(): NodeType; Position(): Pos; tree(): Tree; setTree(t: Tree): this; String(): string; Copy(): Node; writeTo(sb: StringBuilder): void; }