import * as ts from "typescript"; import * as lua from "../../LuaAST"; import { TransformationContext } from "../context"; export type OneToManyVisitorResult = T | T[] | undefined; export declare function unwrapVisitorResult(result: OneToManyVisitorResult): T[]; export declare function createSelfIdentifier(tsOriginal?: ts.Node): lua.Identifier; export declare function createExportsIdentifier(): lua.Identifier; export declare function addToNumericExpression(expression: lua.Expression, change: number): lua.Expression; export declare function getNumberLiteralValue(expression?: lua.Expression): number | undefined; export declare function createUnpackCall(context: TransformationContext, expression: lua.Expression, tsOriginal?: ts.Node): lua.Expression; export declare function createBoundedUnpackCall(context: TransformationContext, expression: lua.Expression, maxUnpackItem: number, tsOriginal?: ts.Node): lua.Expression; export declare function isUnpackCall(node: lua.Node): boolean; export declare function wrapInTable(...expressions: lua.Expression[]): lua.TableExpression; export declare function wrapInToStringForConcat(expression: lua.Expression): lua.Expression; export declare function createHoistableVariableDeclarationStatement(context: TransformationContext, identifier: lua.Identifier, initializer?: lua.Expression, tsOriginal?: ts.Node): lua.AssignmentStatement | lua.VariableDeclarationStatement; export declare function createLocalOrExportedOrGlobalDeclaration(context: TransformationContext, lhs: lua.Identifier | lua.Identifier[], rhs?: lua.Expression | lua.Expression[], tsOriginal?: ts.Node, overrideExportScope?: ts.SourceFile | ts.ModuleDeclaration): lua.Statement[]; export declare const createNaN: (tsOriginal?: ts.Node) => lua.BinaryExpression;