export type ModuleFormat = 'builtin' | 'commonjs' | 'dynamic' | 'json' | 'module' | 'wasm' ; export type Source = string | SharedArrayBuffer | Uint8Array ; export interface ResolveContext { parentURL ? : string ; } export interface ResolveResponse { url : string ; format ? : string ; } export type ResolveHook = ( specifier : string , context : ResolveContext , defaultResolve : ResolveHook ) => Promise < ResolveResponse > ; export interface TransformContext { url : string ; format : string ; } export interface TransformResponse { source : Source ; } export type TransformSourceHook = ( source : Source , context : TransformContext , defaultTransformSource : TransformSourceHook ) => Promise < TransformResponse > ; export interface DynamicInstantiateResponse { exports : string [ ] ; execute : ( module : { [ key ] : { set ( value ) : void ; } ; } ) => void ; } export interface GetFormatResponse { format : ModuleFormat ; } export type GetFormatHook = ( url : string , context : never , defaultGetFormat : GetFormatHook ) => Promise < GetFormatResponse > ; export interface GetSourceContext { format : string ; } export interface GetSourceResponse { source : Source ; } export type GetSourceHook = ( url : string , context : GetSourceContext , defaultGetSource : GetSourceHook ) => Promise < GetSourceResponse > ;