import { DocumentNode, ExpressionNode, FunctionNode, HeapReferenceNode, FloatNumberNode, TernaryExpressionNode, BinaryExpressionNode, BinaryOperator, UnaryExpressionNode, UnaryOperator, ParametersNode, BlockNode, HeapPointer, VariableDeclaration, VariableReference, IntNumberNode } from './nodes';
export declare function heap(position: number): HeapReferenceNode;
export declare function number(floatingNumber: number): FloatNumberNode;
export declare function intNumber(floatingNumber: number): IntNumberNode;
export declare function assign(target: HeapReferenceNode | HeapPointer, rhs: ExpressionNode): BinaryExpressionNode;
export declare function krnonecker(i: ExpressionNode, j: ExpressionNode): BinaryExpressionNode;
export declare function assignMul(target: HeapReferenceNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function assignSum(target: HeapReferenceNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function assignSub(target: HeapReferenceNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function assignDiv(target: HeapReferenceNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function sum(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function max(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function gt(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function gte(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function lt(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function lte(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function equal(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function pow(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function sub(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function mul(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function div(lhs: ExpressionNode, rhs: ExpressionNode): BinaryExpressionNode;
export declare function exp(rhs: ExpressionNode): UnaryExpressionNode;
export declare function sign(rhs: ExpressionNode): UnaryExpressionNode;
export declare function ln(rhs: ExpressionNode): UnaryExpressionNode;
export declare function sqrt(rhs: ExpressionNode): UnaryExpressionNode;
export declare function neg(rhs: ExpressionNode): UnaryExpressionNode;
export declare function abs(rhs: ExpressionNode): UnaryExpressionNode;
export declare function rand(rhs: ExpressionNode): UnaryExpressionNode;
export declare function conditional(condition: any, truePart: any, falsePart: any): TernaryExpressionNode;
export declare function binaryOp(lhs: ExpressionNode, op: BinaryOperator, rhs: ExpressionNode): BinaryExpressionNode;
export declare function unaryOp(op: UnaryOperator, rhs: ExpressionNode): UnaryExpressionNode;
export declare function func(name: string, ...parameters: string[]): FunctionNode;
export declare function params(...parameters: string[]): ParametersNode;
export declare function document(...args: ExpressionNode[]): DocumentNode;
export declare function pointer(ptr: ExpressionNode): HeapPointer;
export declare function floatVariable(name: string, value: number): VariableDeclaration;
export declare function integerVariable(name: string, value: number): VariableDeclaration;
export declare function block(...ops: ExpressionNode[]): BlockNode;
export declare function forLoop(variableName: string, from: number, to: number, fun: (loopc: VariableReference) => ExpressionNode): BlockNode;
