import type { ContainerConfig, ContainerRuntimeInfo, ResolveResult } from "../types.js"; import type { ContainerClient } from "../client.js"; /** sha256 digest format used everywhere a digest is declared or stored. */ export declare const DIGEST_RE: RegExp; /** * Functions the resolver calls into. Injected so tests can stub * without touching the real runtime. Production callers bind these to * the live implementations in `src/containers.ts`. */ export interface ResolveDeps { qualifyImage(image: string, runtime: ContainerRuntimeInfo): string; imageExists(runtime: ContainerRuntimeInfo, image: string, client?: ContainerClient): Promise; pullImage(runtime: ContainerRuntimeInfo, image: string, onProgress?: (msg: string) => void, client?: ContainerClient): Promise; getRepoDigest(runtime: ContainerRuntimeInfo, image: string, client?: ContainerClient): Promise; getImageDigest(runtime: ContainerRuntimeInfo, imageOrContainer: string, client?: ContainerClient): Promise; } /** * Decide the effective image reference for a `ContainerConfig`, pull * it if absent, and return the resolved manifest digest for the * consumer manifest record. * * Three paths: * 1. `digest` set and valid: pull `image@digest` if absent. * `resolvedDigest` is the declared digest; `source: "declared"`. * 2. `digest` unset: pull `image:tag` if absent, then read the * RepoDigest. If the image has no RepoDigests (locally-built), * synthesize a `local:` identity so the manifest still * has a stable per-host key. `source: "resolved-from-tag"`. * 3. `digest` set but malformed: throw synchronously before any * runtime call. */ export declare function resolveImage(runtime: ContainerRuntimeInfo, config: Pick, deps: ResolveDeps, onProgress?: (msg: string) => void): Promise; //# sourceMappingURL=resolver.d.ts.map