1aef260d6SEvan Bacondeclare module 'metro/src/shared/output/bundle' { 2aef260d6SEvan Bacon export function build( 3aef260d6SEvan Bacon arg0: Server, 4aef260d6SEvan Bacon arg1: RequestOptions 5aef260d6SEvan Bacon ): Promise<{ 6aef260d6SEvan Bacon code: string; 7aef260d6SEvan Bacon map: string; 8aef260d6SEvan Bacon }>; 9aef260d6SEvan Bacon export function save( 10aef260d6SEvan Bacon arg0: { 11aef260d6SEvan Bacon code: string; 12aef260d6SEvan Bacon map: string; 13aef260d6SEvan Bacon }, 14aef260d6SEvan Bacon arg1: OutputOptions, 15da5824c9SKudo Chien arg2: (...args: string[]) => void 16aef260d6SEvan Bacon ): Promise<unknown>; 17aef260d6SEvan Bacon} 1833643b60SEvan Bacon 1933643b60SEvan Bacondeclare module 'metro/src/HmrServer' { 2033643b60SEvan Bacon export class MetroHmrServer { 2133643b60SEvan Bacon constructor(...args: any[]); 2233643b60SEvan Bacon } 2333643b60SEvan Bacon 2433643b60SEvan Bacon module.exports = MetroHmrServer; 2533643b60SEvan Bacon} 2633643b60SEvan Bacon 279b2597baSEvan Bacondeclare module 'metro/src/ModuleGraph/worker/collectDependencies' { 289b2597baSEvan Bacon export type AllowOptionalDependenciesWithOptions = { 299b2597baSEvan Bacon exclude: string[]; 309b2597baSEvan Bacon }; 319b2597baSEvan Bacon 329b2597baSEvan Bacon export type DynamicRequiresBehavior = 'throwAtRuntime' | 'reject'; 339b2597baSEvan Bacon 349b2597baSEvan Bacon export type AllowOptionalDependencies = boolean | AllowOptionalDependenciesWithOptions; 359b2597baSEvan Bacon} 369b2597baSEvan Bacon 379b2597baSEvan Bacondeclare module 'metro/src/DeltaBundler/types.flow' { 389b2597baSEvan Bacon export type AllowOptionalDependenciesWithOptions = { 399b2597baSEvan Bacon exclude: string[]; 409b2597baSEvan Bacon }; 419b2597baSEvan Bacon 429b2597baSEvan Bacon export type AllowOptionalDependencies = boolean | AllowOptionalDependenciesWithOptions; 439b2597baSEvan Bacon} 449b2597baSEvan Bacondeclare module 'metro/src/DeltaBundler' { 459b2597baSEvan Bacon export type AsyncDependencyType = 'async' | 'prefetch'; 469b2597baSEvan Bacon export type TransformResultDependency = { 479b2597baSEvan Bacon /** 489b2597baSEvan Bacon * The literal name provided to a require or import call. For example 'foo' in 499b2597baSEvan Bacon * case of `require('foo')`. 509b2597baSEvan Bacon */ 519b2597baSEvan Bacon name: string; 529b2597baSEvan Bacon 539b2597baSEvan Bacon /** 549b2597baSEvan Bacon * Extra data returned by the dependency extractor. 559b2597baSEvan Bacon */ 569b2597baSEvan Bacon data: { 579b2597baSEvan Bacon /** 589b2597baSEvan Bacon * A locally unique key for this dependency within the current module. 599b2597baSEvan Bacon */ 609b2597baSEvan Bacon key: string; 619b2597baSEvan Bacon /** 629b2597baSEvan Bacon * If not null, this dependency is due to a dynamic `import()` or `__prefetchImport()` call. 639b2597baSEvan Bacon */ 649b2597baSEvan Bacon asyncType: AsyncDependencyType | null; 659b2597baSEvan Bacon /** 669b2597baSEvan Bacon * The condition for splitting on this dependency edge. 679b2597baSEvan Bacon */ 689b2597baSEvan Bacon splitCondition?: { 699b2597baSEvan Bacon mobileConfigName: string; 709b2597baSEvan Bacon }; 719b2597baSEvan Bacon /** 729b2597baSEvan Bacon * The dependency is enclosed in a try/catch block. 739b2597baSEvan Bacon */ 749b2597baSEvan Bacon isOptional?: boolean; 759b2597baSEvan Bacon 769b2597baSEvan Bacon locs: $ReadOnlyArray<BabelSourceLocation>; 779b2597baSEvan Bacon 789b2597baSEvan Bacon /** Context for requiring a collection of modules. */ 799b2597baSEvan Bacon contextParams?: RequireContextParams; 809b2597baSEvan Bacon }; 819b2597baSEvan Bacon }; 829b2597baSEvan Bacon} 839b2597baSEvan Bacon 849b2597baSEvan Bacondeclare module 'metro/src/lib/countLines' { 859b2597baSEvan Bacon const countLines = (string: string) => number; 869b2597baSEvan Bacon 879b2597baSEvan Bacon module.exports = countLines; 889b2597baSEvan Bacon export default countLines; 899b2597baSEvan Bacon} 909b2597baSEvan Bacon 9133643b60SEvan Bacondeclare module 'metro/src/lib/createWebsocketServer' { 9233643b60SEvan Bacon export function createWebsocketServer<TClient extends object>({ 9333643b60SEvan Bacon websocketServer, 9433643b60SEvan Bacon }: HMROptions<TClient>): typeof import('ws').Server; 9533643b60SEvan Bacon 9633643b60SEvan Bacon module.exports = createWebsocketServer; 9733643b60SEvan Bacon} 989b2597baSEvan Bacon 99*1f98cdd7SEvan Bacondeclare module 'metro/src/DeltaBundler/Serializers/getAssets' { 100*1f98cdd7SEvan Bacon import { ConfigT } from 'metro-config'; 101*1f98cdd7SEvan Bacon 102*1f98cdd7SEvan Bacon function getMetroAssets( 103*1f98cdd7SEvan Bacon dependencies: ReadOnlyDependencies, 104*1f98cdd7SEvan Bacon options: { 105*1f98cdd7SEvan Bacon processModuleFilter: ConfigT['serializer']['processModuleFilter']; 106*1f98cdd7SEvan Bacon assetPlugins: ConfigT['transformer']['assetPlugins']; 107*1f98cdd7SEvan Bacon platform: string; 108*1f98cdd7SEvan Bacon projectRoot: string; 109*1f98cdd7SEvan Bacon publicPath: string; 110*1f98cdd7SEvan Bacon } 111*1f98cdd7SEvan Bacon ); 112*1f98cdd7SEvan Bacon 113*1f98cdd7SEvan Bacon export default getMetroAssets; 114*1f98cdd7SEvan Bacon} 115*1f98cdd7SEvan Bacon 1169b2597baSEvan Bacondeclare module 'metro/src/lib/splitBundleOptions' { 117da5824c9SKudo Chien import type { SplitBundleOptions } from 'metro/src/shared/types'; 1189b2597baSEvan Bacon 1199b2597baSEvan Bacon function splitBundleOptions(options: BundleOptions): SplitBundleOptions; 1209b2597baSEvan Bacon 1219b2597baSEvan Bacon export default splitBundleOptions; 1229b2597baSEvan Bacon} 1239b2597baSEvan Bacon 1249b2597baSEvan Bacondeclare module 'metro/src/DeltaBundler/Serializers/helpers/js' { 1259b2597baSEvan Bacon import type { JsOutput } from 'metro-transform-worker'; 1269b2597baSEvan Bacon import type { MixedOutput, Module } from 'metro'; 1279b2597baSEvan Bacon 1289b2597baSEvan Bacon export function getJsOutput( 1299b2597baSEvan Bacon module: readonly { 1309b2597baSEvan Bacon output: readonly MixedOutput[]; 1319b2597baSEvan Bacon path?: string; 1329b2597baSEvan Bacon } 1339b2597baSEvan Bacon ): JsOutput; 1349b2597baSEvan Bacon 1359b2597baSEvan Bacon export function isJsModule(module: Module<unknown>): boolean; 1369b2597baSEvan Bacon} 1379b2597baSEvan Bacon 1389b2597baSEvan Bacondeclare module 'metro/src/Assets' { 1399b2597baSEvan Bacon export type AssetInfo = { 1409b2597baSEvan Bacon files: string[]; 1419b2597baSEvan Bacon hash: string; 1429b2597baSEvan Bacon name: string; 1439b2597baSEvan Bacon scales: number[]; 1449b2597baSEvan Bacon type: string; 1459b2597baSEvan Bacon }; 1469b2597baSEvan Bacon 1479b2597baSEvan Bacon export type AssetDataWithoutFiles = { 1489b2597baSEvan Bacon __packager_asset: boolean; 1499b2597baSEvan Bacon fileSystemLocation: string; 1509b2597baSEvan Bacon hash: string; 1519b2597baSEvan Bacon height: number | null; 1529b2597baSEvan Bacon httpServerLocation: string; 1539b2597baSEvan Bacon name: string; 1549b2597baSEvan Bacon scales: number[]; 1559b2597baSEvan Bacon type: string; 1569b2597baSEvan Bacon width: number | null; 1579b2597baSEvan Bacon }; 1589b2597baSEvan Bacon 1599b2597baSEvan Bacon export type AssetDataFiltered = { 1609b2597baSEvan Bacon __packager_asset: boolean; 1619b2597baSEvan Bacon hash: string; 1629b2597baSEvan Bacon height: number | null; 1639b2597baSEvan Bacon httpServerLocation: string; 1649b2597baSEvan Bacon name: string; 1659b2597baSEvan Bacon scales: number[]; 1669b2597baSEvan Bacon type: string; 1679b2597baSEvan Bacon width: number | null; 1689b2597baSEvan Bacon }; 1699b2597baSEvan Bacon 170da5824c9SKudo Chien export type AssetData = AssetDataWithoutFiles & { files: string[] }; 1719b2597baSEvan Bacon 1729b2597baSEvan Bacon export type AssetDataPlugin = (assetData: AssetData) => AssetData | Promise<AssetData>; 1739b2597baSEvan Bacon 1749b2597baSEvan Bacon export async function getAsset( 1759b2597baSEvan Bacon relativePath: string, 1769b2597baSEvan Bacon projectRoot: string, 1779b2597baSEvan Bacon watchFolders: readonly string[], 1789b2597baSEvan Bacon platform: string | null | undefined, 1799b2597baSEvan Bacon assetExts: readonly string[] 1809b2597baSEvan Bacon ): Promise<Buffer>; 1819b2597baSEvan Bacon 1829b2597baSEvan Bacon async function getAssetData( 1839b2597baSEvan Bacon assetPath: string, 1849b2597baSEvan Bacon localPath: string, 1859b2597baSEvan Bacon assetDataPlugins: readonly string[], 1869b2597baSEvan Bacon platform: string | null | undefined, 1879b2597baSEvan Bacon publicPath: string 1889b2597baSEvan Bacon ): Promise<AssetData>; 1899b2597baSEvan Bacon} 1909b2597baSEvan Bacon 191aef260d6SEvan Bacondeclare module 'metro' { 192da5824c9SKudo Chien export * from 'metro/src/index.d'; 193aef260d6SEvan Bacon 194da5824c9SKudo Chien // Exports `Server` from 'metro' since TypeScript re-exporting doesn't work for default exports. 195da5824c9SKudo Chien // https://github.com/facebook/metro/blob/40f9f068109f27ccd80f45f861501a8839f36d85/packages/metro/types/index.d.ts#L14 196da5824c9SKudo Chien // https://github.com/facebook/metro/blob/40f9f068109f27ccd80f45f861501a8839f36d85/packages/metro/types/Server.d.ts#L89 197da5824c9SKudo Chien export { default as Server } from 'metro/src/Server'; 198aef260d6SEvan Bacon 199da5824c9SKudo Chien // Exports `createConnectMiddleware` from 'metro' as a typo fix. 200da5824c9SKudo Chien // https://github.com/facebook/metro/blob/40f9f068109f27ccd80f45f861501a8839f36d85/packages/metro/types/index.d.ts#L129 201da5824c9SKudo Chien // https://github.com/facebook/metro/blob/40f9f068109f27ccd80f45f861501a8839f36d85/packages/metro/src/index.flow.js#L199 202da5824c9SKudo Chien export { createConnectMiddleWare as createConnectMiddleware } from 'metro/src/index.d'; 203aef260d6SEvan Bacon} 2046a750d06SEvan Bacon 2056a750d06SEvan Bacondeclare module 'metro/src/DeltaBundler/Serializers/baseJSBundle' { 206453a056bSEvan Bacon import { ReadOnlyGraph, MixedOutput, Module, Graph, SerializerOptions } from 'metro'; 2076a750d06SEvan Bacon 2086a750d06SEvan Bacon type ModuleMap = readonly [number, string][]; 2096a750d06SEvan Bacon 2106a750d06SEvan Bacon type Bundle = { 2116a750d06SEvan Bacon readonly modules: ModuleMap; 2126a750d06SEvan Bacon readonly post: string; 2136a750d06SEvan Bacon readonly pre: string; 2146a750d06SEvan Bacon }; 2156a750d06SEvan Bacon 2166a750d06SEvan Bacon export default function baseJSBundle( 2176a750d06SEvan Bacon entryPoint: string, 218453a056bSEvan Bacon preModules: readonly Module<MixedOutput>[], 219453a056bSEvan Bacon graph: ReadOnlyGraph, 2206a750d06SEvan Bacon options: SerializerOptions 2216a750d06SEvan Bacon ): Bundle; 2226a750d06SEvan Bacon} 2236a750d06SEvan Bacon 2246a750d06SEvan Bacondeclare module 'metro/src/lib/bundleToString' { 2256a750d06SEvan Bacon type ModuleMap = readonly [number, string][]; 2266a750d06SEvan Bacon 2276a750d06SEvan Bacon type Bundle = { 2286a750d06SEvan Bacon readonly modules: ModuleMap; 2296a750d06SEvan Bacon readonly post: string; 2306a750d06SEvan Bacon readonly pre: string; 2316a750d06SEvan Bacon }; 2326a750d06SEvan Bacon 2336a750d06SEvan Bacon type BundleMetadata = { 2346a750d06SEvan Bacon readonly pre: number; 2356a750d06SEvan Bacon readonly post: number; 2366a750d06SEvan Bacon readonly modules: readonly [number, number][]; 2376a750d06SEvan Bacon }; 2386a750d06SEvan Bacon 2396a750d06SEvan Bacon export default function bundleToString(bundle: Bundle): { 2406a750d06SEvan Bacon readonly code: string; 2416a750d06SEvan Bacon readonly metadata: BundleMetadata; 2426a750d06SEvan Bacon }; 2436a750d06SEvan Bacon} 244da5824c9SKudo Chien 245da5824c9SKudo Chiendeclare module 'metro/src/IncrementalBundler' { 246da5824c9SKudo Chien import type OriginalIncrementalBundler from 'metro/src/IncrementalBundler.d'; 247da5824c9SKudo Chien 248da5824c9SKudo Chien // Overrides the `IncrementalBundler.getDependencies` returned type for inconsistent 249da5824c9SKudo Chien // ReadOnlyDependencies<void> <-> ReadOnlyDependencies<> type. 250da5824c9SKudo Chien // https://github.com/facebook/metro/blob/40f9f068109f27ccd80f45f861501a8839f36d85/packages/metro/src/IncrementalBundler.js#L159 251da5824c9SKudo Chien // https://github.com/facebook/metro/blob/40f9f068109f27ccd80f45f861501a8839f36d85/packages/metro/types/IncrementalBundler.d.ts#L66 252da5824c9SKudo Chien export default class IncrementalBundler extends OriginalIncrementalBundler { 253da5824c9SKudo Chien getDependencies( 254da5824c9SKudo Chien entryFiles: readonly string[], 255da5824c9SKudo Chien transformOptions: TransformInputOptions, 256da5824c9SKudo Chien resolverOptions: ResolverInputOptions, 257da5824c9SKudo Chien otherOptions?: OtherOptions 258da5824c9SKudo Chien ): Promise<ReadOnlyDependencies>; 259da5824c9SKudo Chien } 260da5824c9SKudo Chien} 261