/** * Registry-related implementations for `DockerCli`. * * `loginEcr` no longer shells `docker login` (its keychain credential-store * step is the deploy-blocking `-25299` failure on macOS). It establishes an * ephemeral, isolated `DOCKER_CONFIG` carrying the ECR token inline — see * `_loginEcr` and `ecrCredentialStore.ts`. `imageInspect` distinguishes * "image not found" (kind:inspect_failed * with `exists: false`) from other inspect failures by sniffing the * stderr tail for the literal `No such image:` substring docker emits. */ import type { DockerCliError } from "./dockerCliSchemas.js"; import { type DockerCliState, type EcrLoginArgs, type PullProgressEvent, type PullResult, type PushProgressEvent, type PushResult, type Result } from "./DockerCli.js"; export declare function _tag(state: DockerCliState, source: string, target: string): Promise>; export declare function _push(state: DockerCliState, image: string, onProgress?: (event: PushProgressEvent) => void): Promise>; export declare function _pull(state: DockerCliState, image: string, platform?: string, onProgress?: (event: PullProgressEvent) => void): Promise>; export declare function _imageInspect(state: DockerCliState, image: string): Promise>; /** * Establish an ephemeral, isolated ECR credential context instead of shelling * `docker login`. `docker login` would store the token via the configured * `credsStore` (the macOS osxkeychain helper), which fails to overwrite a * stale entry (`errSecDuplicateItem -25299`) and blocks every deploy. This * writes a deploy-scoped `DOCKER_CONFIG` carrying the token inline (no * credsStore, keychain never touched) and records it on the state so every * subsequent docker/buildx subprocess inherits it. `DockerCli.logoutEcr` * tears it down. See `ecrCredentialStore.ts` for the full rationale. */ export declare function _loginEcr(state: DockerCliState, args: EcrLoginArgs): Promise>;