import { Dictionary } from "../common"; import * as Specification from "../specification"; import { SyntaxTree } from "./parser"; export declare class Compiler { private _scope; private _constants; private _statements; private _moduleResolver; private _lastIndex; private _fieldTypeRegistry; constructor(); prepareFieldTypeRegistry(): void; prepareConstants(): void; resolveFunction(name: string, args: Specification.Expression[], kwargs: { [name: string]: Specification.Expression; }): [SyntaxTree.FileBlockFunction, Specification.Expression[]]; loadFile(file: SyntaxTree.File): void; getDefaultValueForType(type: string): number | number[]; compileFunctionToMark(globals: SyntaxTree.FileBlockGlobal[], block: SyntaxTree.FileBlockFunction): Specification.Mark; addStatement(statement: Specification.Statement): void; addStatements(statements: Specification.Statement[]): void; captureStatements(callback: () => void): Specification.Statement[]; compileExpression(expression: SyntaxTree.Expression): Specification.Expression; compileStandaloneExpression(expression: SyntaxTree.Expression, variables: Dictionary): Specification.Expression; compileStatements(statements: SyntaxTree.StatementStatements): void; compileStatement(statement: SyntaxTree.Statement): void; } export declare function compileTree(file: SyntaxTree.File): Specification.Marks; export declare function compileExpression(expr: SyntaxTree.Expression, variables: Dictionary): Specification.Expression; export declare function compileString(content: string): Specification.Marks;