/// /// import type Log from '@expo/bunyan'; import { ExpoConfig } from '@expo/config'; import type { LoadOptions } from '@expo/metro-config'; import type { Server as ConnectServer } from 'connect'; import http from 'http'; import type Metro from 'metro'; import LogReporter from './LogReporter'; import { createDevServerMiddleware } from './middleware/devServerMiddleware'; export declare type MetroDevServerOptions = LoadOptions & { logger: Log; quiet?: boolean; unversioned?: boolean; }; export declare type BundleOptions = { entryPoint: string; platform: 'android' | 'ios' | 'web'; dev?: boolean; minify?: boolean; sourceMapUrl?: string; }; export declare type BundleAssetWithFileHashes = Metro.AssetData & { fileHashes: string[]; }; export declare type BundleOutput = { code: string; map: string; hermesBytecodeBundle?: Uint8Array; hermesSourcemap?: string; assets: readonly BundleAssetWithFileHashes[]; }; export declare type MessageSocket = { broadcast: (method: string, params?: Record | undefined) => void; }; export declare function runMetroDevServerAsync(projectRoot: string, options: MetroDevServerOptions): Promise<{ server: http.Server; middleware: any; messageSocket: MessageSocket; }>; export declare function bundleAsync(projectRoot: string, expoConfig: ExpoConfig, options: MetroDevServerOptions, bundles: BundleOptions[]): Promise; /** * Attach the inspector proxy to a development server. * Inspector proxy is used for viewing the JS context in a browser. * This must be attached after the server is listening. * Attaching consists of pushing custom middleware and appending WebSockets to the server. * * * @param projectRoot * @param props.server dev server to add WebSockets to * @param props.middleware dev server middleware to add extra middleware to */ export declare function attachInspectorProxy(projectRoot: string, { server, middleware }: { server: http.Server; middleware: ConnectServer; }): { inspectorProxy: any; }; export { LogReporter, createDevServerMiddleware }; export * from './middlwareMutations'; export * from './JsInspector';