import { IComGithubFluxcdHelmControllerApiV2beta1CRDsPolicy } from "./CRDsPolicy.js";
import { IComGithubFluxcdHelmControllerApiV2beta1UpgradeRemediation } from "./UpgradeRemediation.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * Upgrade holds the configuration for Helm upgrade actions for this
 * HelmRelease.
 */
export interface IUpgrade {
    /**
     * CleanupOnFail allows deletion of new resources created during the Helm
     * upgrade action when it fails.
     */
    "cleanupOnFail"?: boolean;
    /**
     * CRDs upgrade CRDs from the Helm Chart's crds directory according
     * to the CRD upgrade policy provided here. Valid values are `Skip`,
     * `Create` or `CreateReplace`. Default is `Skip` and if omitted
     * CRDs are neither installed nor upgraded.
     *
     * Skip: do neither install nor replace (update) any CRDs.
     *
     * Create: new CRDs are created, existing CRDs are neither updated nor deleted.
     *
     * CreateReplace: new CRDs are created, existing CRDs are updated (replaced)
     * but not deleted.
     *
     * By default, CRDs are not applied during Helm upgrade action. With this
     * option users can opt-in to CRD upgrade, which is not (yet) natively supported by Helm.
     * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
     */
    "crds"?: IComGithubFluxcdHelmControllerApiV2beta1CRDsPolicy;
    /**
     * DisableHooks prevents hooks from running during the Helm upgrade action.
     */
    "disableHooks"?: boolean;
    /**
     * DisableOpenAPIValidation prevents the Helm upgrade action from validating
     * rendered templates against the Kubernetes OpenAPI Schema.
     */
    "disableOpenAPIValidation"?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * upgrade has been performed.
     */
    "disableWait"?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * upgrade has been performed.
     */
    "disableWaitForJobs"?: boolean;
    /**
     * Force forces resource updates through a replacement strategy.
     */
    "force"?: boolean;
    /**
     * PreserveValues will make Helm reuse the last release's values and merge in
     * overrides from 'Values'. Setting this flag makes the HelmRelease
     * non-declarative.
     */
    "preserveValues"?: boolean;
    /**
     * Remediation holds the remediation configuration for when the Helm upgrade
     * action for the HelmRelease fails. The default is to not perform any action.
     */
    "remediation"?: IComGithubFluxcdHelmControllerApiV2beta1UpgradeRemediation;
    "timeout"?: string;
}
/**
 * Upgrade holds the configuration for Helm upgrade actions for this
 * HelmRelease.
 */
export declare class Upgrade extends Model<IUpgrade> implements IUpgrade {
    "cleanupOnFail"?: boolean;
    "crds"?: IComGithubFluxcdHelmControllerApiV2beta1CRDsPolicy;
    "disableHooks"?: boolean;
    "disableOpenAPIValidation"?: boolean;
    "disableWait"?: boolean;
    "disableWaitForJobs"?: boolean;
    "force"?: boolean;
    "preserveValues"?: boolean;
    "remediation"?: IComGithubFluxcdHelmControllerApiV2beta1UpgradeRemediation;
    "timeout"?: string;
    constructor(data?: ModelData<IUpgrade>);
}
export type { IUpgrade as IComGithubFluxcdHelmControllerApiV2beta1Upgrade, Upgrade as ComGithubFluxcdHelmControllerApiV2beta1Upgrade };
