import type { IRelease, IUser, IWorkspace } from "../../../entities";
import type { KubeIngress } from "../../../interfaces";
import { WebhookService } from "../../../services";
import type { DeploymentReadinessChecker } from "./deploy-checker";
export declare function prepareReleaseData(releaseId: string, onUpdate?: (msg?: string) => void): Promise<IRelease>;
export declare function setupWebhookService(owner: IUser, workspace: IWorkspace, releaseId: string): Promise<{
    webhookSvc: WebhookService;
    webhook: import("../../../entities").IWebhook;
}>;
export declare function authenticateCluster(clusterSlug: string, owner: IUser, workspace: IWorkspace, onUpdate?: (msg?: string) => void): Promise<import("../../../entities").ICluster>;
export declare function checkDeploymentReadiness(readinessChecker: DeploymentReadinessChecker, requiredReplicas: number): Promise<boolean>;
export declare function handleRolloutFailure(releaseId: string, buildId: string, webhookSvc: WebhookService, errorMessage: string): Promise<{
    error: string;
    data: {
        releaseId: string;
        buildId: string;
    };
}>;
export declare function finalizeReleaseAndBuild(releaseId: string, buildId: string, projectSlug: string, appSlug: string, env: string, owner: IUser): Promise<void>;
export declare function retrieveContainerLogs(namespace: string, appVersion: string, context: string, isNewDeploymentReady: boolean): Promise<string>;
export declare function checkContainerLogsForErrors(containerLogs: string): boolean;
export declare function checkDomainConflict(ingress: KubeIngress, namespace: string, context: string, onUpdate?: (msg: string) => void): Promise<boolean>;
export declare function updateProjectAndAppMetadata(releaseData: IRelease, buildId: string, owner: IUser): Promise<{
    project: import("../../../entities").IProject;
    app: import("../../../entities").IApp;
    build: import("../../../entities").IBuild;
}>;
//# sourceMappingURL=deploy-helper.d.ts.map