import type { BuildConfig, SecretEnvVar } from "..";
import type { BashExpression } from "../bash/BashExpression";
import type { ComponentContext } from "../types/context";
import type { EnvironmentContext } from "../types/environmentContext";
import type { CatladderJob } from "../types/jobs";
import type { PartialDeep } from "../types/utils";
import type { DeployConfig, DeployConfigGeneric, DeployConfigType } from "./types";
export * from "./cloudRun";
export * from "./kubernetes";
export * from "./types";
export * from "./utils";
export type DeployTypeDefinition<D extends DeployConfig> = {
    jobs: (context: ComponentContext) => CatladderJob[];
    defaults: (envContext: EnvironmentContext<BuildConfig, D>) => PartialDeep<D>;
    additionalSecretKeys: (envContext: EnvironmentContext<BuildConfig, D>) => SecretEnvVar[];
    getAdditionalEnvVars: (envContext: EnvironmentContext<BuildConfig, D>) => Record<string, string | BashExpression | undefined | null>;
};
export type DeployTypes = {
    [T in DeployConfigType]: DeployTypeDefinition<DeployConfigGeneric<T>>;
};
export declare const DEPLOY_TYPES: DeployTypes;
