import * as ts from "typescript"; import * as lua from "../../LuaAST"; import { TransformationContext } from "../context"; export declare 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 createExpressionPlusOne(expression: lua.Expression): lua.Expression; export declare function createImmediatelyInvokedFunctionExpression(statements: lua.Statement[], result: lua.Expression | lua.Expression[], tsOriginal?: ts.Node): lua.CallExpression; export declare function createUnpackCall(context: TransformationContext, expression: lua.Expression, tsOriginal?: ts.Node): lua.Expression; 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[];