import { AnyNodeDictEntry, ASTCommentNode, ASTNode, InfixOperator, KindNode, LocationRange, NamedNodeLambda, TypeOperator, UnaryOperator } from "./types.js"; export declare function nodeCall(fn: ASTNode, args: ASTNode[], location: LocationRange): KindNode<"Call">; export declare function makeInfixChain(head: ASTNode, tail: [InfixOperator, ASTNode][], location: LocationRange): ASTNode; export declare function nodeInfixCall(op: InfixOperator, arg1: ASTNode, arg2: ASTNode, location: LocationRange): KindNode<"InfixCall">; export declare function makeInfixTypeChain(head: ASTNode, tail: [TypeOperator, ASTNode][], location: LocationRange): ASTNode; export declare function nodeInfixUnitType(op: TypeOperator, arg1: ASTNode, arg2: ASTNode, location: LocationRange): KindNode<"InfixUnitType">; export declare function nodeExponentialUnitType(base: ASTNode, exponent: ASTNode, location: LocationRange): KindNode<"ExponentialUnitType">; export declare function nodeUnaryCall(op: UnaryOperator, arg: ASTNode, location: LocationRange): KindNode<"UnaryCall">; export declare function nodePipe(leftArg: ASTNode, fn: ASTNode, rightArgs: ASTNode[], location: LocationRange): KindNode<"Pipe">; export declare function nodeDotLookup(arg: ASTNode, key: string, location: LocationRange): KindNode<"DotLookup">; export declare function nodeBracketLookup(arg: ASTNode, key: ASTNode, location: LocationRange): KindNode<"BracketLookup">; export declare function nodeArray(elements: ASTNode[], location: LocationRange): KindNode<"Array">; export declare function nodeDict(elements: AnyNodeDictEntry[], location: LocationRange): KindNode<"Dict">; export declare function nodeUnitValue(value: ASTNode, unit: string, location: LocationRange): KindNode<"UnitValue">; export declare function nodeBlock(statements: ASTNode[], result: ASTNode, location: LocationRange): KindNode<"Block">; export declare function nodeProgram(imports: ASTNode[], statements: ASTNode[], result: ASTNode | null, location: LocationRange): KindNode<"Program">; export declare function nodeImport(path: KindNode<"String">, variable: KindNode<"Identifier">, location: LocationRange): KindNode<"Import">; export declare function nodeTypeSignature(body: ASTNode, location: LocationRange): KindNode<"UnitTypeSignature">; export declare function nodeBoolean(value: boolean, location: LocationRange): KindNode<"Boolean">; export declare function nodeFloat(args: Omit, "kind" | "location">, location: LocationRange): KindNode<"Float">; export declare function nodeIdentifier(value: string, location: LocationRange): KindNode<"Identifier">; export declare function nodeLambdaParameter(variable: ASTNode, annotation: ASTNode | null, unitTypeSignature: ASTNode | null, location: LocationRange): KindNode<"LambdaParameter">; export declare function nodeKeyValue(key: ASTNode, value: ASTNode, location: LocationRange): KindNode<"KeyValue">; export declare function nodeLambda(args: ASTNode[], body: ASTNode, location: LocationRange, name: ASTNode | undefined, returnUnitType: ASTNode | null): KindNode<"Lambda">; export declare function nodeLetStatement(decorators: ASTNode[], _variable: ASTNode, unitTypeSignature: ASTNode | null, _value: ASTNode, exported: boolean, location: LocationRange): KindNode<"LetStatement">; export declare function nodeDefunStatement(decorators: ASTNode[], variable: ASTNode, value: NamedNodeLambda, exported: boolean, location: LocationRange): KindNode<"DefunStatement">; export declare function nodeDecorator(name: ASTNode, args: ASTNode[], location: LocationRange): KindNode<"Decorator">; export declare function nodeString(value: string, location: LocationRange): KindNode<"String">; export declare function nodeTernary(condition: ASTNode, trueExpression: ASTNode, falseExpression: ASTNode, syntax: KindNode<"Ternary">["syntax"], location: LocationRange): KindNode<"Ternary">; export declare function lineComment(text: string, location: LocationRange): ASTCommentNode; export declare function blockComment(text: string, location: LocationRange): ASTCommentNode; export declare function parseEscapeSequence(char: string[], location: LocationRange, error: (e: any, l: LocationRange) => void): any; export declare function nodeUnitNameFromIdentifier(identifier: ASTNode, location: LocationRange): KindNode<"UnitName">; //# sourceMappingURL=peggyHelpers.d.ts.map