import { type BunRuntimeResolveResult } from '@pnpm/engine.runtime.bun-resolver'; import { type DenoRuntimeResolveResult } from '@pnpm/engine.runtime.deno-resolver'; import { type NodeRuntimeResolveResult } from '@pnpm/engine.runtime.node-resolver'; import type { FetchFromRegistry, GetAuthHeader } from '@pnpm/fetching.types'; import { type CustomResolver } from '@pnpm/hooks.types'; import { type GitResolveResult } from '@pnpm/resolving.git-resolver'; import { type LocalResolveResult } from '@pnpm/resolving.local-resolver'; import { createDefaultPackageMetaCache, type CreateNpmResolutionVerifierOptions, type JsrResolveResult, type NamedRegistryResolveResult, type NpmResolveResult, type PackageMeta, type PackageMetaCache, type ResolverFactoryOptions, type WorkspaceResolveResult } from '@pnpm/resolving.npm-resolver'; import type { LatestInfo, LatestQuery, ResolutionVerifier, ResolveFunction, ResolveOptions, ResolveResult, WantedDependency } from '@pnpm/resolving.resolver-base'; import { type TarballResolveResult } from '@pnpm/resolving.tarball-resolver'; import type { RegistryConfig } from '@pnpm/types'; export { createDefaultPackageMetaCache, }; export type { PackageMeta, PackageMetaCache, ResolveFunction, ResolverFactoryOptions, }; export interface CustomResolverResolveResult extends ResolveResult { resolvedVia: 'custom-resolver'; } export type DefaultResolveResult = NpmResolveResult | JsrResolveResult | NamedRegistryResolveResult | GitResolveResult | LocalResolveResult | TarballResolveResult | WorkspaceResolveResult | NodeRuntimeResolveResult | DenoRuntimeResolveResult | BunRuntimeResolveResult | CustomResolverResolveResult; export type DefaultResolver = (wantedDependency: WantedDependency, opts: ResolveOptions) => Promise; export type ResolveLatestDispatcher = (query: LatestQuery, opts: ResolveOptions) => Promise; export declare function createResolver(fetchFromRegistry: FetchFromRegistry, getAuthHeader: GetAuthHeader, pnpmOpts: ResolverFactoryOptions & { nodeDownloadMirrors?: Record; customResolvers?: CustomResolver[]; }): { resolve: DefaultResolver; resolveLatest: ResolveLatestDispatcher; clearCache: () => void; }; export type ResolutionVerifierFactoryOptions = Pick & Pick & { configByUri?: Record; }; /** * Companion to {@link createResolver}. Collects the resolver-specific * verifier factories (today: npm) into a list. The npm verifier is * always present — it enforces the tarball-URL binding regardless of * policy configuration — so the list is non-empty. * * Future protocols (jsr, git, attestation, etc.) plug in here by pushing * their own `ResolutionVerifier` onto the list. Each verifier handles * its own protocol short-circuit inside `verify` (returns `{ ok: true }` * for resolutions outside its scope), so dispatch happens naturally at * the install side — no combinator needed. */ export declare function createResolutionVerifiers(fetchFromRegistry: FetchFromRegistry, opts: ResolutionVerifierFactoryOptions): ResolutionVerifier[];