import type { BuildConfigDocker } from ".";
import type { ComponentContext, ComponentContextWithBuild, DockerBuildJobDefinition } from "../types";
import type { CatladderJob } from "../types/jobs";
export declare const getDockerImageVariables: (context: ComponentContext) => {
    DOCKER_IMAGE_TAG: string;
    DOCKER_REGISTRY: string;
    DOCKER_IMAGE: import("..").StringOrBashExpression;
    DOCKER_CACHE_IMAGE: string;
} | {
    DOCKER_IMAGE_TAG: string;
    DOCKER_REGISTRY: string;
    DOCKER_CACHE_IMAGE: string;
    DOCKER_IMAGE_NAME: string;
    DOCKER_IMAGE: string;
};
/**
 * Weather the context requires a docker build
 */
export declare const requiresDockerBuild: (context: ComponentContext) => boolean;
export declare const getDockerBuildVariables: (context: ComponentContextWithBuild) => {
    DOCKER_IMAGE_TAG: string;
    DOCKER_REGISTRY: string;
    DOCKER_IMAGE: import("..").StringOrBashExpression;
    DOCKER_CACHE_IMAGE: string;
    APP_DIR: string;
    DOCKER_BUILD_CONTEXT: string;
    DOCKERFILE_ADDITIONS?: undefined;
    DOCKERFILE_ADDITIONS_END?: undefined;
} | {
    DOCKER_IMAGE_TAG: string;
    DOCKER_REGISTRY: string;
    DOCKER_CACHE_IMAGE: string;
    DOCKER_IMAGE_NAME: string;
    DOCKER_IMAGE: string;
    APP_DIR: string;
    DOCKER_BUILD_CONTEXT: string;
    DOCKERFILE_ADDITIONS?: undefined;
    DOCKERFILE_ADDITIONS_END?: undefined;
} | {
    DOCKER_IMAGE_TAG: string;
    DOCKER_REGISTRY: string;
    DOCKER_IMAGE: import("..").StringOrBashExpression;
    DOCKER_CACHE_IMAGE: string;
    APP_DIR: string;
    DOCKER_BUILD_CONTEXT: string;
    DOCKERFILE_ADDITIONS: string;
    DOCKERFILE_ADDITIONS_END: string;
} | {
    DOCKER_IMAGE_TAG: string;
    DOCKER_REGISTRY: string;
    DOCKER_CACHE_IMAGE: string;
    DOCKER_IMAGE_NAME: string;
    DOCKER_IMAGE: string;
    APP_DIR: string;
    DOCKER_BUILD_CONTEXT: string;
    DOCKERFILE_ADDITIONS: string;
    DOCKERFILE_ADDITIONS_END: string;
};
export declare const DOCKER_BUILD_JOB_NAME = "\uD83D\uDD28 docker";
export declare const getDockerJobBaseProps: () => Pick<CatladderJob, "image" | "services" | "variables" | "runnerVariables">;
export declare const createDockerBuildJobBase: (context: ComponentContextWithBuild, { script, cache, ...def }: DockerBuildJobDefinition) => CatladderJob;
export declare const gitlabDockerLogin: (context: ComponentContext) => string[];
export declare const getDockerBuildScriptWithBuiltInDockerFile: (context: ComponentContextWithBuild, defaultType?: BuildConfigDocker["type"]) => string[];
export declare const getDockerBuildDefaultScript: (context: ComponentContext, ensureDockerFileScript?: string | null) => string[];
export declare const hasDockerfile: (context: ComponentContext) => boolean;
