import type { JsTransformerConfig, JsTransformOptions } from '@expo/metro/metro-transform-worker'; import { type NoxcturnalMetroTransformAttempt } from './noxcturnal-transformer'; interface NoxcturnalFile { code: string; filename: string; inputFileSize: number; type: 'js/script' | 'js/module' | 'js/module/asset'; ast?: unknown; functionMap: unknown; inputSourceMap?: { mappings: string; names: string[]; originalCode: string; }; hasCjsExports?: boolean; } interface NoxcturnalContext { config: JsTransformerConfig; projectRoot: string; options: JsTransformOptions; } export interface NoxcturnalBabelState { hasNonDefaultBabelConfig: boolean; isDefaultExpoTransformer: boolean; } interface NoxcturnalWorkerHooks { completeFullTransform(file: File, context: Context, attempt: Extract): Promise; } export type NoxcturnalWorkerAttempt = { status: 'complete'; response: Response; } | { status: 'fallback'; }; export declare function isNoxcturnalTransformWorkerEnabled(config: JsTransformerConfig): boolean; export declare function tryTransformJSWithNoxcturnal(file: File, context: Context, state: NoxcturnalBabelState, hooks: NoxcturnalWorkerHooks): Promise>; export declare function getNoxcturnalCacheKeyFiles(): readonly string[]; export {};