import { Options, SucraseContext, Transform } from "../index"; import { ClassInfo } from "../util/getClassInfo"; export default class RootTransformer { private transformers; private nameManager; private tokens; private generatedVariables; private isImportsTransformEnabled; private isReactHotLoaderTransformEnabled; constructor(sucraseContext: SucraseContext, transforms: Array, enableLegacyBabel5ModuleInterop: boolean, options: Options); transform(): string; processBalancedCode(): void; processToken(): void; /** * Skip past a class with a name and return that name. */ processNamedClass(): string; processClass(): void; /** * We want to just handle class fields in all contexts, since TypeScript supports them. Later, * when some JS implementations support class fields, this should be made optional. */ processClassBody(classInfo: ClassInfo, className: string | null): void; makeConstructorInitCode(constructorInitializerStatements: Array, instanceInitializerNames: Array, className: string): string; /** * Normally it's ok to simply remove type tokens, but we need to be more careful when dealing with * arrow function return types since they can confuse the parser. In that case, we want to move * the close-paren to the same line as the arrow. * * See https://github.com/alangpierce/sucrase/issues/391 for more details. */ processPossibleArrowParamEnd(): boolean; processPossibleTypeRange(): boolean; }