import { Assembler } from './assembler'; import { TemplateError } from './errors'; import { Arguments, FormatterCall, FAST_NULL, Operator, Reference, Root } from './instructions'; export interface CodeBuilderResult { assembler: Assembler; root: Root; errors: TemplateError[]; } export declare class CodeBuilder { private assembler; constructor(); /** * Finish building and return the assembler. */ get(): CodeBuilderResult; alternatesWith(): CodeBuilder; atom(opaque: any): CodeBuilder; bindvar(name: string, variables: any[], formatters?: any[]): CodeBuilder; comment(text: string, multiline?: number | boolean): CodeBuilder; end(): CodeBuilder; eof(): CodeBuilder; ifinst(operators: Operator[], variables: Reference[]): CodeBuilder; inject(name: string, path: string): CodeBuilder; macro(name: string): CodeBuilder; metaLeft(): CodeBuilder; metaRight(): CodeBuilder; newline(): CodeBuilder; or(name?: string, args?: Arguments | FAST_NULL): CodeBuilder; predicate(name: string, args?: Arguments | FAST_NULL): CodeBuilder; repeated(name: Reference): CodeBuilder; section(name: Reference): CodeBuilder; space(): CodeBuilder; struct(opaque: any): CodeBuilder; tab(): CodeBuilder; text(text: string): CodeBuilder; variable(variables: Reference[], formatters: FormatterCall[]): CodeBuilder; }