1declare module 'metro-babel-transformer' { 2 import type { FBSourceFunctionMap } from 'metro-source-map'; 3 import type { Ast, PluginItem, BabelFileMetadata } from '@babel/core'; 4 5 export type CustomTransformOptions = { 6 [key: string]: unknown; 7 __proto__: null; 8 }; 9 10 export type TransformProfile = 'default' | 'hermes-stable' | 'hermes-canary'; 11 12 export type BabelTransformerOptions = { 13 customTransformOptions?: CustomTransformOptions; 14 dev: boolean; 15 disableFlowStripTypesTransform?: boolean; 16 enableBabelRCLookup?: boolean; 17 enableBabelRuntime: boolean; 18 experimentalImportSupport?: boolean; 19 hot: boolean; 20 inlineRequires: boolean; 21 minify: boolean; 22 unstable_disableES6Transforms?: boolean; 23 platform: ?string; 24 projectRoot: string; 25 publicPath: string; 26 extendsBabelConfigPath?: string; 27 hermesParser?: boolean; 28 }; 29 30 export type BabelTransformerArgs = { 31 filename: string; 32 options: BabelTransformerOptions; 33 plugins?: PluginItem[]; 34 src: string; 35 }; 36 37 export type BabelTransformer = { 38 transform: (args: BabelTransformerArgs) => { 39 ast: Ast; 40 metadata?: BabelFileMetadata; 41 code?: string | null; 42 functionMap?: FBSourceFunctionMap | null; 43 }; 44 getCacheKey?: () => string; 45 }; 46} 47