export type HostingProvider = 'github' | 'gitlab' | 'bitbucket'; export type ResolutionCanonical = { type: 'registry'; bind?: string; } | { type: 'tarball'; url: string; hostingProvider?: HostingProvider; bind?: string; } | { type: 'git'; url: string; sha: string; hostingProvider?: HostingProvider; } | { type: 'directory'; path: string; } | { type: 'unknown'; raw: string; }; export interface ParseOptions { sourceKind?: 'yarn-berry-locator' | 'yarn-classic-resolved' | 'npm-resolved' | 'pnpm-tarball'; name?: string; registry?: string; } export declare const DEFAULT_NPM_REGISTRY = "https://registry.npmjs.org"; export declare function stripRegistrySha1Fragment(url: string): string; export declare function parse(raw: string, options?: ParseOptions): ResolutionCanonical; export declare function registryTarballUrl(name: string, version: string, registry: string): string; export declare function isCanonical(value: unknown): value is ResolutionCanonical; export declare function isUnknown(can: ResolutionCanonical): can is { type: 'unknown'; raw: string; }; export declare function sourceDiscriminatorOf(resolution: ResolutionCanonical): string | undefined; export interface YarnBerryStringifyHints { name: string; version: string; preferGithubCodeload?: boolean; } export declare function stringifyForYarnBerry(can: ResolutionCanonical, hints: YarnBerryStringifyHints): string; export interface YarnClassicStringifyHints { sha1Fragment?: string; } export declare function stringifyForYarnClassic(can: ResolutionCanonical, hints?: YarnClassicStringifyHints): string | undefined; export declare function isYarnBerryLocator(s: string): boolean; export declare function stringifyForNpm(can: ResolutionCanonical): string | undefined; export interface PnpmStringifyOutput { tarball?: string; directory?: string; extra?: Record; } export declare function stringifyForPnpm(can: ResolutionCanonical): PnpmStringifyOutput | undefined;