import type { VirtualResponse } from './virtual-content'; export type Resolution = { type: 'found'; filename: string; virtual: VirtualResponse | false; result: T; } | { type: 'not_found'; err: E; }; export type RequestAdapterCreate = (params: Init) => { initialState: InitialRequestState; adapter: RequestAdapter; } | undefined; export interface RequestAdapter { readonly debugType: string; resolve(request: ModuleRequest): Promise; notFoundResponse(request: ModuleRequest): Res | (() => Promise); virtualResponse(request: ModuleRequest, response: VirtualResponse): Res | (() => Promise); } export interface InitialRequestState { readonly specifier: string; readonly fromFile: string; readonly meta: Record | undefined; } export declare class ModuleRequest implements ModuleRequest { #private; static create(createAdapter: RequestAdapterCreate, params: Init): ModuleRequest | undefined; private constructor(); get specifier(): string; get fromFile(): string; get debugType(): string; get meta(): Record | undefined; get resolvedTo(): Res | (() => Promise) | undefined; alias(newSpecifier: string): this; rehome(newFromFile: string): this; virtualize(virtualResponse: VirtualResponse): this; withMeta(meta: Record | undefined): this; notFound(): this; resolveTo(res: Res | (() => Promise)): this; defaultResolve(): Promise; clone(): this; } export declare function extractResolution(res: Res | (() => Promise)): Promise;