import { ECRClient } from '../aws/ecr';
export interface BuildContainerImageOptions {
    context: string;
    dockerfile?: string;
    repository: string;
    region?: string;
    profile?: string;
    platform?: 'linux/amd64' | 'linux/arm64';
}
export interface BuiltContainerImage {
    repository: string;
    tag: string;
    imageUri: string;
    digest: string;
    digestUri: string;
    contextSha256: string;
}
export interface ContainerImageDependencies {
    ecr: Pick<ECRClient, 'describeRepositories' | 'createRepository' | 'putLifecyclePolicy' | 'getAuthorizationToken' | 'describeImages'>;
    run: (command: string, args: string[], options?: {
        cwd?: string;
        env?: NodeJS.ProcessEnv;
        stdio?: 'ignore' | 'inherit';
    }) => void;
}
export declare function hashContainerContext(context: string): string;
export declare function createContainerImageDependencies(options: Pick<BuildContainerImageOptions, 'region' | 'profile'>): ContainerImageDependencies;
export declare function buildAndPushContainerImage(options: BuildContainerImageOptions, injected?: ContainerImageDependencies): Promise<BuiltContainerImage>;
