import * as ts from "typescript"; import { TransformationContext } from "../context"; export declare enum AnnotationKind { Extension = "extension", MetaExtension = "metaExtension", CustomConstructor = "customConstructor", CompileMembersOnly = "compileMembersOnly", NoResolution = "noResolution", PureAbstract = "pureAbstract", Phantom = "phantom", TupleReturn = "tupleReturn", LuaIterator = "luaIterator", LuaTable = "luaTable", NoSelf = "noSelf", NoSelfInFile = "noSelfInFile", VarArg = "varArg", ForRange = "forRange" } export interface Annotation { kind: AnnotationKind; args: string[]; } export declare type AnnotationsMap = Map; export declare function getSymbolAnnotations(symbol: ts.Symbol): AnnotationsMap; export declare function getTypeAnnotations(type: ts.Type): AnnotationsMap; export declare function getNodeAnnotations(node: ts.Node): AnnotationsMap; export declare function getFileAnnotations(sourceFile: ts.SourceFile): AnnotationsMap; export declare function getSignatureAnnotations(context: TransformationContext, signature: ts.Signature): AnnotationsMap; export declare function isTupleReturnCall(context: TransformationContext, node: ts.Node): boolean; export declare function isInTupleReturnFunction(context: TransformationContext, node: ts.Node): boolean; export declare function isLuaIteratorType(context: TransformationContext, node: ts.Node): boolean; export declare function isVarArgType(context: TransformationContext, node: ts.Node): boolean; export declare function isForRangeType(context: TransformationContext, node: ts.Node): boolean;