import type { CacheAdapter, RegistryAdapter, RemoteArtifactRegistry } from '../registry/types.js'; import { type ArtifactStoreSource } from './artifact-store.js'; import type { RefurbishSources, TarballSource } from './refurbish.js'; export type ArtifactCacheFamily = 'npm' | 'yarn-berry'; export type ArtifactCacheSpecifier = ArtifactCacheFamily | `${ArtifactCacheFamily}:${string}`; export type ArtifactSourceList = readonly (string | RemoteArtifactRegistry)[]; export type ArtifactSourcesInput = RefurbishSources | TarballSource | ArtifactSourceList; export type NormalizedArtifactSource = Readonly<{ kind: 'cache'; family: ArtifactCacheFamily; cache: CacheAdapter; }> | Readonly<{ kind: 'remote'; registry: RegistryAdapter; }>; export interface NormalizedArtifactSources { readonly refurbish: RefurbishSources; readonly entries: readonly NormalizedArtifactSource[]; readonly caches: readonly CacheAdapter[]; readonly remotes: readonly RegistryAdapter[]; readonly store?: ArtifactStoreSource; } export declare function normalizeArtifactSources(source: ArtifactSourcesInput, context?: Readonly<{ workspaceRoot?: string; store?: ArtifactStoreSource; }>): NormalizedArtifactSources;