///
import { esbuild } from "../deps.js";
import { MediaType } from "./deno.js";
export interface Loader {
resolve(specifier: URL): Promise;
loadEsm(specifier: URL): Promise;
packageIdFromNameInPackage?(name: string, parentPackageId: string): string;
nodeModulesDirForPackage?(npmPackageId?: string): Promise;
}
export type LoaderResolution = LoaderResolutionEsm | LoaderResolutionNpm | LoaderResolutionNode;
export interface LoaderResolutionEsm {
kind: "esm";
specifier: URL;
}
export interface LoaderResolutionNpm {
kind: "npm";
packageId: string;
packageName: string;
path: string;
}
export interface LoaderResolutionNode {
kind: "node";
path: string;
}
export declare function mediaTypeToLoader(mediaType: MediaType): esbuild.Loader;
export interface EsbuildResolution {
namespace: string;
path: string;
}
export declare function urlToEsbuildResolution(url: URL): EsbuildResolution;
export declare function esbuildResolutionToURL(specifier: EsbuildResolution): URL;
interface DenoConfig {
imports?: unknown;
scopes?: unknown;
lock?: boolean | string;
importMap?: string;
}
export declare function readDenoConfig(path: string): Promise;
export declare function mapContentType(specifier: URL, contentType: string | null): MediaType;
export interface NpmSpecifier {
name: string;
version: string | null;
path: string | null;
}
export declare function parseNpmSpecifier(specifier: URL): NpmSpecifier;
export {};