import type { SerializerConfigT } from '@expo/metro/metro-config'; import type { MixedOutput, Module, ReadOnlyGraph } from '@expo/metro/metro/DeltaBundler/types'; import type { ExpoSerializerOptions } from '../fork/baseJSBundle'; import type { SerialAsset } from '../serializerAssets'; import type { ChunkingImplementation, SerializeChunkOptions } from './chunkingStrategy'; export declare function getBaseUrlOption(...args: Parameters): string; export declare function getPlatformOption(...args: Parameters): string | null; export declare class Chunk { name: string; entries: Set>; graph: ReadOnlyGraph; options: ExpoSerializerOptions; private readonly strategy; isAsync: boolean; isVendor: boolean; isEntry: boolean; deps: Set; preModules: Set; requiredChunks: Set; /** Whether this chunk owns an isolated module registry and must retain all of its dependencies. * @remarks * When a chunk is sealed, its `deps` and `preModules` shouldn't be altered, and it doesn't qualify * for bundle/chunk splitting. This is the case for web workers, which must form a "closed" and * self-sufficient entry bundle. */ sealed: boolean; constructor(name: string, entries: Set>, graph: ReadOnlyGraph, options: ExpoSerializerOptions, strategy: ChunkingImplementation, isAsync?: boolean, isVendor?: boolean, isEntry?: boolean); seal(): void; private getPlatform; getFilename(src: string): string; getStableChunkSource(serializerConfig: Partial): string; private serializeToCodeWithTemplates; hasAbsolutePath(absolutePath: string): boolean; private _asyncTargets?; getAsyncChunkTargets(chunksByPath: Map): Set; private getAdjustedSourceMapUrl; private serializeToCode; private boolishTransformOption; serializeToAssetsAsync(serializerConfig: Partial, chunksByPath: Map, filenamesByChunk: Map, { includeSourceMaps, unstable_beforeAssetSerializationPlugins }: SerializeChunkOptions): Promise; private supportsBytecode; isHermesEnabled(): boolean; } export declare function getSortedModules(modules: Module[], { createModuleId, }: { createModuleId: (path: string) => number; }): readonly Module[];