import type { IApp, IBuild, ICluster, IRelease, IUser, IWorkspace } from "../../entities";
import type { GenerateDeploymentResult } from "./generate-deployment";
export type DeployBuildV2Options = {
    /**
     * ### `REQUIRED`
     * Target deploy environment
     */
    env: string;
    /**
     * ### `REQUIRED`
     * The USER who process this request
     */
    owner: IUser;
    /**
     * ### `REQUIRED`
     * Workspace
     */
    workspace: IWorkspace;
    /**
     * App's exposed port
     */
    port?: number;
    /**
     * Select target cluster (by slug) to deploy
     */
    clusterSlug?: string;
    /**
     * Current version of the Diginext CLI
     */
    cliVersion?: string;
    /**
     * ### CAUTION
     * If `TRUE`, it will find and wipe out the current deployment, then deploy a new one!
     */
    shouldUseFreshDeploy?: boolean;
    /**
     * ### ONLY APPLY FOR DEPLOYING to PROD
     * Force roll out the release to "prod" deploy environment (skip the "prerelease" environment)
     * @default false
     * @deprecated
     */
    forceRollOut?: boolean;
    /**
     * ### WARNING
     * Skip checking deployed POD's ready status.
     * - The response status will always be SUCCESS even if the pod is unable to start up properly.
     * @default false
     */
    skipReadyCheck?: boolean;
    /**
     * ### WARNING
     * Skip watching the progress of deployment, let it run in background, won't return the deployment's status.
     * @default true
     */
    deployInBackground?: boolean;
    /**
     * Health check path
     * @default "/"
     */
    healthzPath?: string | null;
};
export type DeployBuildV2Result = {
    app: IApp;
    build: IBuild;
    release: IRelease;
    deployment: GenerateDeploymentResult;
    endpoint: string;
};
export declare class DeployBuildError extends Error {
    data: {
        build: IBuild;
        release: IRelease;
        cluster: ICluster;
    };
    constructor(data: {
        build: IBuild;
        release: IRelease;
        cluster: ICluster;
    }, message?: string);
}
export declare const processDeployBuildV2: (build: IBuild, release: IRelease, cluster: ICluster, options: DeployBuildV2Options) => Promise<{
    build: IBuild;
    release: IRelease;
    cluster: ICluster;
}>;
export declare const deployBuildV2: (build: IBuild, options: DeployBuildV2Options) => Promise<DeployBuildV2Result>;
export declare const deployWithBuildSlugV2: (buildSlug: string, options: DeployBuildV2Options) => Promise<DeployBuildV2Result>;
//# sourceMappingURL=deploy-build-v2.d.ts.map