import type { StringOrBashExpression } from "../bash/BashExpression";
import type { BuildConfig } from "../build";
import type { DeployConfig } from "../deploy";
import type { Config, EnvConfigWithComponent, EnvType } from "./config";
import type { PipelineType } from "./pipeline";
export type EnvironmentContext<B extends BuildConfig = BuildConfig, D extends DeployConfig = DeployConfig> = {
    envConfigRaw: EnvConfigWithComponent;
    buildConfigRaw: false | B;
    deployConfigRaw: false | D;
    env: string;
    envType: EnvType;
    componentName: string;
    fullName: StringOrBashExpression;
    /**
     * the environment slug without component name.
     */
    environmentSlugPrefix: StringOrBashExpression;
    /**
     * the review slug, if it is a review app, null otherwise
     */
    reviewSlug: StringOrBashExpression | null;
    /**
     * the full environment slug, including the componentName
     */
    environmentSlug: StringOrBashExpression;
    /**
     * the full catladder config
     */
    fullConfig: Config;
    pipelineType?: PipelineType;
};
