import { ApiObject, ApiObjectMetadata, GroupVersionKind } from 'cdk8s';
import { Construct } from 'constructs';
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmRelease
 */
export declare class HelmRelease extends ApiObject {
    /**
     * Returns the apiVersion and kind for "HelmRelease"
     */
    static readonly GVK: GroupVersionKind;
    /**
     * Renders a Kubernetes manifest for "HelmRelease".
     *
     * This can be used to inline resource manifests inside other objects (e.g. as templates).
     *
     * @param props initialization props
     */
    static manifest(props?: HelmReleaseProps): any;
    /**
     * Defines a "HelmRelease" API object
     * @param scope the scope in which to define this object
     * @param id a scope-local name for the object
     * @param props initialization props
     */
    constructor(scope: Construct, id: string, props?: HelmReleaseProps);
    /**
     * Renders the object to Kubernetes JSON.
     */
    toJson(): any;
}
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmRelease
 */
export interface HelmReleaseProps {
    /**
     * @schema HelmRelease#metadata
     */
    readonly metadata?: ApiObjectMetadata;
    /**
     * HelmReleaseSpec defines the desired state of a Helm release.
     *
     * @schema HelmRelease#spec
     */
    readonly spec?: HelmReleaseSpec;
}
/**
 * Converts an object of type 'HelmReleaseProps' to JSON representation.
 */
export declare function toJson_HelmReleaseProps(obj: HelmReleaseProps | undefined): Record<string, any> | undefined;
/**
 * HelmReleaseSpec defines the desired state of a Helm release.
 *
 * @schema HelmReleaseSpec
 */
export interface HelmReleaseSpec {
    /**
     * Chart defines the template of the v1.HelmChart that should be created
     * for this HelmRelease.
     *
     * @schema HelmReleaseSpec#chart
     */
    readonly chart?: HelmReleaseSpecChart;
    /**
     * ChartRef holds a reference to a source controller resource containing the
     * Helm chart artifact.
     *
     * @schema HelmReleaseSpec#chartRef
     */
    readonly chartRef?: HelmReleaseSpecChartRef;
    /**
     * DependsOn may contain a meta.NamespacedObjectReference slice with
     * references to HelmRelease resources that must be ready before this HelmRelease
     * can be reconciled.
     *
     * @schema HelmReleaseSpec#dependsOn
     */
    readonly dependsOn?: HelmReleaseSpecDependsOn[];
    /**
     * DriftDetection holds the configuration for detecting and handling
     * differences between the manifest in the Helm storage and the resources
     * currently existing in the cluster.
     *
     * @schema HelmReleaseSpec#driftDetection
     */
    readonly driftDetection?: HelmReleaseSpecDriftDetection;
    /**
     * Install holds the configuration for Helm install actions for this HelmRelease.
     *
     * @schema HelmReleaseSpec#install
     */
    readonly install?: HelmReleaseSpecInstall;
    /**
     * Interval at which to reconcile the Helm release.
     *
     * @schema HelmReleaseSpec#interval
     */
    readonly interval: string;
    /**
     * KubeConfig for reconciling the HelmRelease on a remote cluster.
     * When used in combination with HelmReleaseSpec.ServiceAccountName,
     * forces the controller to act on behalf of that Service Account at the
     * target cluster.
     * If the --default-service-account flag is set, its value will be used as
     * a controller level fallback for when HelmReleaseSpec.ServiceAccountName
     * is empty.
     *
     * @schema HelmReleaseSpec#kubeConfig
     */
    readonly kubeConfig?: HelmReleaseSpecKubeConfig;
    /**
     * MaxHistory is the number of revisions saved by Helm for this HelmRelease.
     * Use '0' for an unlimited number of revisions; defaults to '5'.
     *
     * @schema HelmReleaseSpec#maxHistory
     */
    readonly maxHistory?: number;
    /**
     * PersistentClient tells the controller to use a persistent Kubernetes
     * client for this release. When enabled, the client will be reused for the
     * duration of the reconciliation, instead of being created and destroyed
     * for each (step of a) Helm action.
     *
     * This can improve performance, but may cause issues with some Helm charts
     * that for example do create Custom Resource Definitions during installation
     * outside Helm's CRD lifecycle hooks, which are then not observed to be
     * available by e.g. post-install hooks.
     *
     * If not set, it defaults to true.
     *
     * @schema HelmReleaseSpec#persistentClient
     */
    readonly persistentClient?: boolean;
    /**
     * PostRenderers holds an array of Helm PostRenderers, which will be applied in order
     * of their definition.
     *
     * @schema HelmReleaseSpec#postRenderers
     */
    readonly postRenderers?: HelmReleaseSpecPostRenderers[];
    /**
     * ReleaseName used for the Helm release. Defaults to a composition of
     * '[TargetNamespace-]Name'.
     *
     * @default a composition of
     * @schema HelmReleaseSpec#releaseName
     */
    readonly releaseName?: string;
    /**
     * Rollback holds the configuration for Helm rollback actions for this HelmRelease.
     *
     * @schema HelmReleaseSpec#rollback
     */
    readonly rollback?: HelmReleaseSpecRollback;
    /**
     * The name of the Kubernetes service account to impersonate
     * when reconciling this HelmRelease.
     *
     * @schema HelmReleaseSpec#serviceAccountName
     */
    readonly serviceAccountName?: string;
    /**
     * StorageNamespace used for the Helm storage.
     * Defaults to the namespace of the HelmRelease.
     *
     * @default the namespace of the HelmRelease.
     * @schema HelmReleaseSpec#storageNamespace
     */
    readonly storageNamespace?: string;
    /**
     * Suspend tells the controller to suspend reconciliation for this HelmRelease,
     * it does not apply to already started reconciliations. Defaults to false.
     *
     * @default false.
     * @schema HelmReleaseSpec#suspend
     */
    readonly suspend?: boolean;
    /**
     * TargetNamespace to target when performing operations for the HelmRelease.
     * Defaults to the namespace of the HelmRelease.
     *
     * @default the namespace of the HelmRelease.
     * @schema HelmReleaseSpec#targetNamespace
     */
    readonly targetNamespace?: string;
    /**
     * Test holds the configuration for Helm test actions for this HelmRelease.
     *
     * @schema HelmReleaseSpec#test
     */
    readonly test?: HelmReleaseSpecTest;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like Jobs
     * for hooks) during the performance of a Helm action. Defaults to '5m0s'.
     *
     * @default 5m0s'.
     * @schema HelmReleaseSpec#timeout
     */
    readonly timeout?: string;
    /**
     * Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
     *
     * @schema HelmReleaseSpec#uninstall
     */
    readonly uninstall?: HelmReleaseSpecUninstall;
    /**
     * Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
     *
     * @schema HelmReleaseSpec#upgrade
     */
    readonly upgrade?: HelmReleaseSpecUpgrade;
    /**
     * Values holds the values for this Helm release.
     *
     * @schema HelmReleaseSpec#values
     */
    readonly values?: any;
    /**
     * ValuesFrom holds references to resources containing Helm values for this HelmRelease,
     * and information about how they should be merged.
     *
     * @schema HelmReleaseSpec#valuesFrom
     */
    readonly valuesFrom?: HelmReleaseSpecValuesFrom[];
}
/**
 * Converts an object of type 'HelmReleaseSpec' to JSON representation.
 */
export declare function toJson_HelmReleaseSpec(obj: HelmReleaseSpec | undefined): Record<string, any> | undefined;
/**
 * Chart defines the template of the v1.HelmChart that should be created
 * for this HelmRelease.
 *
 * @schema HelmReleaseSpecChart
 */
export interface HelmReleaseSpecChart {
    /**
     * ObjectMeta holds the template for metadata like labels and annotations.
     *
     * @schema HelmReleaseSpecChart#metadata
     */
    readonly metadata?: HelmReleaseSpecChartMetadata;
    /**
     * Spec holds the template for the v1.HelmChartSpec for this HelmRelease.
     *
     * @schema HelmReleaseSpecChart#spec
     */
    readonly spec: HelmReleaseSpecChartSpec;
}
/**
 * Converts an object of type 'HelmReleaseSpecChart' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecChart(obj: HelmReleaseSpecChart | undefined): Record<string, any> | undefined;
/**
 * ChartRef holds a reference to a source controller resource containing the
 * Helm chart artifact.
 *
 * @schema HelmReleaseSpecChartRef
 */
export interface HelmReleaseSpecChartRef {
    /**
     * APIVersion of the referent.
     *
     * @schema HelmReleaseSpecChartRef#apiVersion
     */
    readonly apiVersion?: string;
    /**
     * Kind of the referent.
     *
     * @schema HelmReleaseSpecChartRef#kind
     */
    readonly kind: HelmReleaseSpecChartRefKind;
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseSpecChartRef#name
     */
    readonly name: string;
    /**
     * Namespace of the referent, defaults to the namespace of the Kubernetes
     * resource object that contains the reference.
     *
     * @schema HelmReleaseSpecChartRef#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecChartRef' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecChartRef(obj: HelmReleaseSpecChartRef | undefined): Record<string, any> | undefined;
/**
 * NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any
 * namespace.
 *
 * @schema HelmReleaseSpecDependsOn
 */
export interface HelmReleaseSpecDependsOn {
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseSpecDependsOn#name
     */
    readonly name: string;
    /**
     * Namespace of the referent, when not specified it acts as LocalObjectReference.
     *
     * @schema HelmReleaseSpecDependsOn#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecDependsOn' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecDependsOn(obj: HelmReleaseSpecDependsOn | undefined): Record<string, any> | undefined;
/**
 * DriftDetection holds the configuration for detecting and handling
 * differences between the manifest in the Helm storage and the resources
 * currently existing in the cluster.
 *
 * @schema HelmReleaseSpecDriftDetection
 */
export interface HelmReleaseSpecDriftDetection {
    /**
     * Ignore contains a list of rules for specifying which changes to ignore
     * during diffing.
     *
     * @schema HelmReleaseSpecDriftDetection#ignore
     */
    readonly ignore?: HelmReleaseSpecDriftDetectionIgnore[];
    /**
     * Mode defines how differences should be handled between the Helm manifest
     * and the manifest currently applied to the cluster.
     * If not explicitly set, it defaults to DiffModeDisabled.
     *
     * @schema HelmReleaseSpecDriftDetection#mode
     */
    readonly mode?: HelmReleaseSpecDriftDetectionMode;
}
/**
 * Converts an object of type 'HelmReleaseSpecDriftDetection' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecDriftDetection(obj: HelmReleaseSpecDriftDetection | undefined): Record<string, any> | undefined;
/**
 * Install holds the configuration for Helm install actions for this HelmRelease.
 *
 * @schema HelmReleaseSpecInstall
 */
export interface HelmReleaseSpecInstall {
    /**
     * 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 `Create` and if omitted
     * CRDs are installed but not updated.
     *
     * 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 applied (installed) during Helm install action.
     * With this option users can opt in to CRD replace existing CRDs on Helm
     * install actions, which is not (yet) natively supported by Helm.
     * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
     *
     * @default Create` and if omitted
     * @schema HelmReleaseSpecInstall#crds
     */
    readonly crds?: HelmReleaseSpecInstallCrds;
    /**
     * CreateNamespace tells the Helm install action to create the
     * HelmReleaseSpec.TargetNamespace if it does not exist yet.
     * On uninstall, the namespace will not be garbage collected.
     *
     * @schema HelmReleaseSpecInstall#createNamespace
     */
    readonly createNamespace?: boolean;
    /**
     * DisableHooks prevents hooks from running during the Helm install action.
     *
     * @schema HelmReleaseSpecInstall#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableOpenAPIValidation prevents the Helm install action from validating
     * rendered templates against the Kubernetes OpenAPI Schema.
     *
     * @schema HelmReleaseSpecInstall#disableOpenAPIValidation
     */
    readonly disableOpenApiValidation?: boolean;
    /**
     * DisableSchemaValidation prevents the Helm install action from validating
     * the values against the JSON Schema.
     *
     * @schema HelmReleaseSpecInstall#disableSchemaValidation
     */
    readonly disableSchemaValidation?: boolean;
    /**
     * DisableTakeOwnership disables taking ownership of existing resources
     * during the Helm install action. Defaults to false.
     *
     * @default false.
     * @schema HelmReleaseSpecInstall#disableTakeOwnership
     */
    readonly disableTakeOwnership?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * install has been performed.
     *
     * @schema HelmReleaseSpecInstall#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * install has been performed.
     *
     * @schema HelmReleaseSpecInstall#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Remediation holds the remediation configuration for when the Helm install
     * action for the HelmRelease fails. The default is to not perform any action.
     *
     * @schema HelmReleaseSpecInstall#remediation
     */
    readonly remediation?: HelmReleaseSpecInstallRemediation;
    /**
     * Replace tells the Helm install action to re-use the 'ReleaseName', but only
     * if that name is a deleted release which remains in the history.
     *
     * @schema HelmReleaseSpecInstall#replace
     */
    readonly replace?: boolean;
    /**
     * SkipCRDs tells the Helm install action to not install any CRDs. By default,
     * CRDs are installed if not already present.
     *
     * Deprecated use CRD policy (`crds`) attribute with value `Skip` instead.
     *
     * @schema HelmReleaseSpecInstall#skipCRDs
     */
    readonly skipCrDs?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm install action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseSpecInstall#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecInstall' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecInstall(obj: HelmReleaseSpecInstall | undefined): Record<string, any> | undefined;
/**
 * KubeConfig for reconciling the HelmRelease on a remote cluster.
 * When used in combination with HelmReleaseSpec.ServiceAccountName,
 * forces the controller to act on behalf of that Service Account at the
 * target cluster.
 * If the --default-service-account flag is set, its value will be used as
 * a controller level fallback for when HelmReleaseSpec.ServiceAccountName
 * is empty.
 *
 * @schema HelmReleaseSpecKubeConfig
 */
export interface HelmReleaseSpecKubeConfig {
    /**
     * SecretRef holds the name of a secret that contains a key with
     * the kubeconfig file as the value. If no key is set, the key will default
     * to 'value'.
     * It is recommended that the kubeconfig is self-contained, and the secret
     * is regularly updated if credentials such as a cloud-access-token expire.
     * Cloud specific `cmd-path` auth helpers will not function without adding
     * binaries and credentials to the Pod that is responsible for reconciling
     * Kubernetes resources.
     *
     * @schema HelmReleaseSpecKubeConfig#secretRef
     */
    readonly secretRef: HelmReleaseSpecKubeConfigSecretRef;
}
/**
 * Converts an object of type 'HelmReleaseSpecKubeConfig' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecKubeConfig(obj: HelmReleaseSpecKubeConfig | undefined): Record<string, any> | undefined;
/**
 * PostRenderer contains a Helm PostRenderer specification.
 *
 * @schema HelmReleaseSpecPostRenderers
 */
export interface HelmReleaseSpecPostRenderers {
    /**
     * Kustomization to apply as PostRenderer.
     *
     * @schema HelmReleaseSpecPostRenderers#kustomize
     */
    readonly kustomize?: HelmReleaseSpecPostRenderersKustomize;
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderers' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecPostRenderers(obj: HelmReleaseSpecPostRenderers | undefined): Record<string, any> | undefined;
/**
 * Rollback holds the configuration for Helm rollback actions for this HelmRelease.
 *
 * @schema HelmReleaseSpecRollback
 */
export interface HelmReleaseSpecRollback {
    /**
     * CleanupOnFail allows deletion of new resources created during the Helm
     * rollback action when it fails.
     *
     * @schema HelmReleaseSpecRollback#cleanupOnFail
     */
    readonly cleanupOnFail?: boolean;
    /**
     * DisableHooks prevents hooks from running during the Helm rollback action.
     *
     * @schema HelmReleaseSpecRollback#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * rollback has been performed.
     *
     * @schema HelmReleaseSpecRollback#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * rollback has been performed.
     *
     * @schema HelmReleaseSpecRollback#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Force forces resource updates through a replacement strategy.
     *
     * @schema HelmReleaseSpecRollback#force
     */
    readonly force?: boolean;
    /**
     * Recreate performs pod restarts for the resource if applicable.
     *
     * @schema HelmReleaseSpecRollback#recreate
     */
    readonly recreate?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm rollback action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseSpecRollback#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecRollback' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecRollback(obj: HelmReleaseSpecRollback | undefined): Record<string, any> | undefined;
/**
 * Test holds the configuration for Helm test actions for this HelmRelease.
 *
 * @schema HelmReleaseSpecTest
 */
export interface HelmReleaseSpecTest {
    /**
     * Enable enables Helm test actions for this HelmRelease after an Helm install
     * or upgrade action has been performed.
     *
     * @schema HelmReleaseSpecTest#enable
     */
    readonly enable?: boolean;
    /**
     * Filters is a list of tests to run or exclude from running.
     *
     * @schema HelmReleaseSpecTest#filters
     */
    readonly filters?: HelmReleaseSpecTestFilters[];
    /**
     * IgnoreFailures tells the controller to skip remediation when the Helm tests
     * are run but fail. Can be overwritten for tests run after install or upgrade
     * actions in 'Install.IgnoreTestFailures' and 'Upgrade.IgnoreTestFailures'.
     *
     * @schema HelmReleaseSpecTest#ignoreFailures
     */
    readonly ignoreFailures?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation during
     * the performance of a Helm test action. Defaults to 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseSpecTest#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecTest' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecTest(obj: HelmReleaseSpecTest | undefined): Record<string, any> | undefined;
/**
 * Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
 *
 * @schema HelmReleaseSpecUninstall
 */
export interface HelmReleaseSpecUninstall {
    /**
     * DeletionPropagation specifies the deletion propagation policy when
     * a Helm uninstall is performed.
     *
     * @schema HelmReleaseSpecUninstall#deletionPropagation
     */
    readonly deletionPropagation?: HelmReleaseSpecUninstallDeletionPropagation;
    /**
     * DisableHooks prevents hooks from running during the Helm rollback action.
     *
     * @schema HelmReleaseSpecUninstall#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableWait disables waiting for all the resources to be deleted after
     * a Helm uninstall is performed.
     *
     * @schema HelmReleaseSpecUninstall#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * KeepHistory tells Helm to remove all associated resources and mark the
     * release as deleted, but retain the release history.
     *
     * @schema HelmReleaseSpecUninstall#keepHistory
     */
    readonly keepHistory?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm uninstall action. Defaults
     * to 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseSpecUninstall#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecUninstall' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecUninstall(obj: HelmReleaseSpecUninstall | undefined): Record<string, any> | undefined;
/**
 * Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
 *
 * @schema HelmReleaseSpecUpgrade
 */
export interface HelmReleaseSpecUpgrade {
    /**
     * CleanupOnFail allows deletion of new resources created during the Helm
     * upgrade action when it fails.
     *
     * @schema HelmReleaseSpecUpgrade#cleanupOnFail
     */
    readonly 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.
     *
     * @default Skip` and if omitted
     * @schema HelmReleaseSpecUpgrade#crds
     */
    readonly crds?: HelmReleaseSpecUpgradeCrds;
    /**
     * DisableHooks prevents hooks from running during the Helm upgrade action.
     *
     * @schema HelmReleaseSpecUpgrade#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableOpenAPIValidation prevents the Helm upgrade action from validating
     * rendered templates against the Kubernetes OpenAPI Schema.
     *
     * @schema HelmReleaseSpecUpgrade#disableOpenAPIValidation
     */
    readonly disableOpenApiValidation?: boolean;
    /**
     * DisableSchemaValidation prevents the Helm upgrade action from validating
     * the values against the JSON Schema.
     *
     * @schema HelmReleaseSpecUpgrade#disableSchemaValidation
     */
    readonly disableSchemaValidation?: boolean;
    /**
     * DisableTakeOwnership disables taking ownership of existing resources
     * during the Helm upgrade action. Defaults to false.
     *
     * @default false.
     * @schema HelmReleaseSpecUpgrade#disableTakeOwnership
     */
    readonly disableTakeOwnership?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * upgrade has been performed.
     *
     * @schema HelmReleaseSpecUpgrade#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * upgrade has been performed.
     *
     * @schema HelmReleaseSpecUpgrade#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Force forces resource updates through a replacement strategy.
     *
     * @schema HelmReleaseSpecUpgrade#force
     */
    readonly 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.
     *
     * @schema HelmReleaseSpecUpgrade#preserveValues
     */
    readonly 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.
     *
     * @schema HelmReleaseSpecUpgrade#remediation
     */
    readonly remediation?: HelmReleaseSpecUpgradeRemediation;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm upgrade action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseSpecUpgrade#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecUpgrade' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecUpgrade(obj: HelmReleaseSpecUpgrade | undefined): Record<string, any> | undefined;
/**
 * ValuesReference contains a reference to a resource containing Helm values,
 * and optionally the key they can be found at.
 *
 * @schema HelmReleaseSpecValuesFrom
 */
export interface HelmReleaseSpecValuesFrom {
    /**
     * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
     *
     * @schema HelmReleaseSpecValuesFrom#kind
     */
    readonly kind: HelmReleaseSpecValuesFromKind;
    /**
     * Name of the values referent. Should reside in the same namespace as the
     * referring resource.
     *
     * @schema HelmReleaseSpecValuesFrom#name
     */
    readonly name: string;
    /**
     * Optional marks this ValuesReference as optional. When set, a not found error
     * for the values reference is ignored, but any ValuesKey, TargetPath or
     * transient error will still result in a reconciliation failure.
     *
     * @schema HelmReleaseSpecValuesFrom#optional
     */
    readonly optional?: boolean;
    /**
     * TargetPath is the YAML dot notation path the value should be merged at. When
     * set, the ValuesKey is expected to be a single flat value. Defaults to 'None',
     * which results in the values getting merged at the root.
     *
     * @default None',
     * @schema HelmReleaseSpecValuesFrom#targetPath
     */
    readonly targetPath?: string;
    /**
     * ValuesKey is the data key where the values.yaml or a specific value can be
     * found at. Defaults to 'values.yaml'.
     *
     * @default values.yaml'.
     * @schema HelmReleaseSpecValuesFrom#valuesKey
     */
    readonly valuesKey?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecValuesFrom' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecValuesFrom(obj: HelmReleaseSpecValuesFrom | undefined): Record<string, any> | undefined;
/**
 * ObjectMeta holds the template for metadata like labels and annotations.
 *
 * @schema HelmReleaseSpecChartMetadata
 */
export interface HelmReleaseSpecChartMetadata {
    /**
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     *
     * @schema HelmReleaseSpecChartMetadata#annotations
     */
    readonly annotations?: {
        [key: string]: string;
    };
    /**
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     *
     * @schema HelmReleaseSpecChartMetadata#labels
     */
    readonly labels?: {
        [key: string]: string;
    };
}
/**
 * Converts an object of type 'HelmReleaseSpecChartMetadata' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecChartMetadata(obj: HelmReleaseSpecChartMetadata | undefined): Record<string, any> | undefined;
/**
 * Spec holds the template for the v1.HelmChartSpec for this HelmRelease.
 *
 * @schema HelmReleaseSpecChartSpec
 */
export interface HelmReleaseSpecChartSpec {
    /**
     * The name or path the Helm chart is available at in the SourceRef.
     *
     * @schema HelmReleaseSpecChartSpec#chart
     */
    readonly chart: string;
    /**
     * IgnoreMissingValuesFiles controls whether to silently ignore missing values files rather than failing.
     *
     * @schema HelmReleaseSpecChartSpec#ignoreMissingValuesFiles
     */
    readonly ignoreMissingValuesFiles?: boolean;
    /**
     * Interval at which to check the v1.Source for updates. Defaults to
     * 'HelmReleaseSpec.Interval'.
     *
     * @default HelmReleaseSpec.Interval'.
     * @schema HelmReleaseSpecChartSpec#interval
     */
    readonly interval?: string;
    /**
     * Determines what enables the creation of a new artifact. Valid values are
     * ('ChartVersion', 'Revision').
     * See the documentation of the values for an explanation on their behavior.
     * Defaults to ChartVersion when omitted.
     *
     * @default ChartVersion when omitted.
     * @schema HelmReleaseSpecChartSpec#reconcileStrategy
     */
    readonly reconcileStrategy?: HelmReleaseSpecChartSpecReconcileStrategy;
    /**
     * The name and namespace of the v1.Source the chart is available at.
     *
     * @schema HelmReleaseSpecChartSpec#sourceRef
     */
    readonly sourceRef: HelmReleaseSpecChartSpecSourceRef;
    /**
     * Alternative list of values files to use as the chart values (values.yaml
     * is not included by default), expected to be a relative path in the SourceRef.
     * Values files are merged in the order of this list with the last file overriding
     * the first. Ignored when omitted.
     *
     * @schema HelmReleaseSpecChartSpec#valuesFiles
     */
    readonly valuesFiles?: string[];
    /**
     * Verify contains the secret name containing the trusted public keys
     * used to verify the signature and specifies which provider to use to check
     * whether OCI image is authentic.
     * This field is only supported for OCI sources.
     * Chart dependencies, which are not bundled in the umbrella chart artifact,
     * are not verified.
     *
     * @schema HelmReleaseSpecChartSpec#verify
     */
    readonly verify?: HelmReleaseSpecChartSpecVerify;
    /**
     * Version semver expression, ignored for charts from v1.GitRepository and
     * v1beta2.Bucket sources. Defaults to latest when omitted.
     *
     * @default latest when omitted.
     * @schema HelmReleaseSpecChartSpec#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecChartSpec' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecChartSpec(obj: HelmReleaseSpecChartSpec | undefined): Record<string, any> | undefined;
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseSpecChartRefKind
 */
export declare enum HelmReleaseSpecChartRefKind {
    /** OCIRepository */
    OCI_REPOSITORY = "OCIRepository",
    /** HelmChart */
    HELM_CHART = "HelmChart"
}
/**
 * IgnoreRule defines a rule to selectively disregard specific changes during
 * the drift detection process.
 *
 * @schema HelmReleaseSpecDriftDetectionIgnore
 */
export interface HelmReleaseSpecDriftDetectionIgnore {
    /**
     * Paths is a list of JSON Pointer (RFC 6901) paths to be excluded from
     * consideration in a Kubernetes object.
     *
     * @schema HelmReleaseSpecDriftDetectionIgnore#paths
     */
    readonly paths: string[];
    /**
     * Target is a selector for specifying Kubernetes objects to which this
     * rule applies.
     * If Target is not set, the Paths will be ignored for all Kubernetes
     * objects within the manifest of the Helm release.
     *
     * @schema HelmReleaseSpecDriftDetectionIgnore#target
     */
    readonly target?: HelmReleaseSpecDriftDetectionIgnoreTarget;
}
/**
 * Converts an object of type 'HelmReleaseSpecDriftDetectionIgnore' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecDriftDetectionIgnore(obj: HelmReleaseSpecDriftDetectionIgnore | undefined): Record<string, any> | undefined;
/**
 * Mode defines how differences should be handled between the Helm manifest
 * and the manifest currently applied to the cluster.
 * If not explicitly set, it defaults to DiffModeDisabled.
 *
 * @schema HelmReleaseSpecDriftDetectionMode
 */
export declare enum HelmReleaseSpecDriftDetectionMode {
    /** enabled */
    ENABLED = "enabled",
    /** warn */
    WARN = "warn",
    /** disabled */
    DISABLED = "disabled"
}
/**
 * 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 `Create` and if omitted
 * CRDs are installed but not updated.
 *
 * 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 applied (installed) during Helm install action.
 * With this option users can opt in to CRD replace existing CRDs on Helm
 * install actions, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Create` and if omitted
 * @schema HelmReleaseSpecInstallCrds
 */
export declare enum HelmReleaseSpecInstallCrds {
    /** Skip */
    SKIP = "Skip",
    /** Create */
    CREATE = "Create",
    /** CreateReplace */
    CREATE_REPLACE = "CreateReplace"
}
/**
 * Remediation holds the remediation configuration for when the Helm install
 * action for the HelmRelease fails. The default is to not perform any action.
 *
 * @schema HelmReleaseSpecInstallRemediation
 */
export interface HelmReleaseSpecInstallRemediation {
    /**
     * IgnoreTestFailures tells the controller to skip remediation when the Helm
     * tests are run after an install action but fail. Defaults to
     * 'Test.IgnoreFailures'.
     *
     * @default Test.IgnoreFailures'.
     * @schema HelmReleaseSpecInstallRemediation#ignoreTestFailures
     */
    readonly ignoreTestFailures?: boolean;
    /**
     * RemediateLastFailure tells the controller to remediate the last failure, when
     * no retries remain. Defaults to 'false'.
     *
     * @default false'.
     * @schema HelmReleaseSpecInstallRemediation#remediateLastFailure
     */
    readonly remediateLastFailure?: boolean;
    /**
     * Retries is the number of retries that should be attempted on failures before
     * bailing. Remediation, using an uninstall, is performed between each attempt.
     * Defaults to '0', a negative integer equals to unlimited retries.
     *
     * @default 0', a negative integer equals to unlimited retries.
     * @schema HelmReleaseSpecInstallRemediation#retries
     */
    readonly retries?: number;
}
/**
 * Converts an object of type 'HelmReleaseSpecInstallRemediation' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecInstallRemediation(obj: HelmReleaseSpecInstallRemediation | undefined): Record<string, any> | undefined;
/**
 * SecretRef holds the name of a secret that contains a key with
 * the kubeconfig file as the value. If no key is set, the key will default
 * to 'value'.
 * It is recommended that the kubeconfig is self-contained, and the secret
 * is regularly updated if credentials such as a cloud-access-token expire.
 * Cloud specific `cmd-path` auth helpers will not function without adding
 * binaries and credentials to the Pod that is responsible for reconciling
 * Kubernetes resources.
 *
 * @schema HelmReleaseSpecKubeConfigSecretRef
 */
export interface HelmReleaseSpecKubeConfigSecretRef {
    /**
     * Key in the Secret, when not specified an implementation-specific default key is used.
     *
     * @schema HelmReleaseSpecKubeConfigSecretRef#key
     */
    readonly key?: string;
    /**
     * Name of the Secret.
     *
     * @schema HelmReleaseSpecKubeConfigSecretRef#name
     */
    readonly name: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecKubeConfigSecretRef' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecKubeConfigSecretRef(obj: HelmReleaseSpecKubeConfigSecretRef | undefined): Record<string, any> | undefined;
/**
 * Kustomization to apply as PostRenderer.
 *
 * @schema HelmReleaseSpecPostRenderersKustomize
 */
export interface HelmReleaseSpecPostRenderersKustomize {
    /**
     * Images is a list of (image name, new name, new tag or digest)
     * for changing image names, tags or digests. This can also be achieved with a
     * patch, but this operator is simpler to specify.
     *
     * @schema HelmReleaseSpecPostRenderersKustomize#images
     */
    readonly images?: HelmReleaseSpecPostRenderersKustomizeImages[];
    /**
     * Strategic merge and JSON patches, defined as inline YAML objects,
     * capable of targeting objects based on kind, label and annotation selectors.
     *
     * @schema HelmReleaseSpecPostRenderersKustomize#patches
     */
    readonly patches?: HelmReleaseSpecPostRenderersKustomizePatches[];
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderersKustomize' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecPostRenderersKustomize(obj: HelmReleaseSpecPostRenderersKustomize | undefined): Record<string, any> | undefined;
/**
 * Filter holds the configuration for individual Helm test filters.
 *
 * @schema HelmReleaseSpecTestFilters
 */
export interface HelmReleaseSpecTestFilters {
    /**
     * Exclude specifies whether the named test should be excluded.
     *
     * @schema HelmReleaseSpecTestFilters#exclude
     */
    readonly exclude?: boolean;
    /**
     * Name is the name of the test.
     *
     * @schema HelmReleaseSpecTestFilters#name
     */
    readonly name: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecTestFilters' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecTestFilters(obj: HelmReleaseSpecTestFilters | undefined): Record<string, any> | undefined;
/**
 * DeletionPropagation specifies the deletion propagation policy when
 * a Helm uninstall is performed.
 *
 * @schema HelmReleaseSpecUninstallDeletionPropagation
 */
export declare enum HelmReleaseSpecUninstallDeletionPropagation {
    /** background */
    BACKGROUND = "background",
    /** foreground */
    FOREGROUND = "foreground",
    /** orphan */
    ORPHAN = "orphan"
}
/**
 * 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.
 *
 * @default Skip` and if omitted
 * @schema HelmReleaseSpecUpgradeCrds
 */
export declare enum HelmReleaseSpecUpgradeCrds {
    /** Skip */
    SKIP = "Skip",
    /** Create */
    CREATE = "Create",
    /** CreateReplace */
    CREATE_REPLACE = "CreateReplace"
}
/**
 * Remediation holds the remediation configuration for when the Helm upgrade
 * action for the HelmRelease fails. The default is to not perform any action.
 *
 * @schema HelmReleaseSpecUpgradeRemediation
 */
export interface HelmReleaseSpecUpgradeRemediation {
    /**
     * IgnoreTestFailures tells the controller to skip remediation when the Helm
     * tests are run after an upgrade action but fail.
     * Defaults to 'Test.IgnoreFailures'.
     *
     * @default Test.IgnoreFailures'.
     * @schema HelmReleaseSpecUpgradeRemediation#ignoreTestFailures
     */
    readonly ignoreTestFailures?: boolean;
    /**
     * RemediateLastFailure tells the controller to remediate the last failure, when
     * no retries remain. Defaults to 'false' unless 'Retries' is greater than 0.
     *
     * @default false' unless 'Retries' is greater than 0.
     * @schema HelmReleaseSpecUpgradeRemediation#remediateLastFailure
     */
    readonly remediateLastFailure?: boolean;
    /**
     * Retries is the number of retries that should be attempted on failures before
     * bailing. Remediation, using 'Strategy', is performed between each attempt.
     * Defaults to '0', a negative integer equals to unlimited retries.
     *
     * @default 0', a negative integer equals to unlimited retries.
     * @schema HelmReleaseSpecUpgradeRemediation#retries
     */
    readonly retries?: number;
    /**
     * Strategy to use for failure remediation. Defaults to 'rollback'.
     *
     * @default rollback'.
     * @schema HelmReleaseSpecUpgradeRemediation#strategy
     */
    readonly strategy?: HelmReleaseSpecUpgradeRemediationStrategy;
}
/**
 * Converts an object of type 'HelmReleaseSpecUpgradeRemediation' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecUpgradeRemediation(obj: HelmReleaseSpecUpgradeRemediation | undefined): Record<string, any> | undefined;
/**
 * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
 *
 * @schema HelmReleaseSpecValuesFromKind
 */
export declare enum HelmReleaseSpecValuesFromKind {
    /** Secret */
    SECRET = "Secret",
    /** ConfigMap */
    CONFIG_MAP = "ConfigMap"
}
/**
 * Determines what enables the creation of a new artifact. Valid values are
 * ('ChartVersion', 'Revision').
 * See the documentation of the values for an explanation on their behavior.
 * Defaults to ChartVersion when omitted.
 *
 * @default ChartVersion when omitted.
 * @schema HelmReleaseSpecChartSpecReconcileStrategy
 */
export declare enum HelmReleaseSpecChartSpecReconcileStrategy {
    /** ChartVersion */
    CHART_VERSION = "ChartVersion",
    /** Revision */
    REVISION = "Revision"
}
/**
 * The name and namespace of the v1.Source the chart is available at.
 *
 * @schema HelmReleaseSpecChartSpecSourceRef
 */
export interface HelmReleaseSpecChartSpecSourceRef {
    /**
     * APIVersion of the referent.
     *
     * @schema HelmReleaseSpecChartSpecSourceRef#apiVersion
     */
    readonly apiVersion?: string;
    /**
     * Kind of the referent.
     *
     * @schema HelmReleaseSpecChartSpecSourceRef#kind
     */
    readonly kind: HelmReleaseSpecChartSpecSourceRefKind;
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseSpecChartSpecSourceRef#name
     */
    readonly name: string;
    /**
     * Namespace of the referent.
     *
     * @schema HelmReleaseSpecChartSpecSourceRef#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecChartSpecSourceRef' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecChartSpecSourceRef(obj: HelmReleaseSpecChartSpecSourceRef | undefined): Record<string, any> | undefined;
/**
 * Verify contains the secret name containing the trusted public keys
 * used to verify the signature and specifies which provider to use to check
 * whether OCI image is authentic.
 * This field is only supported for OCI sources.
 * Chart dependencies, which are not bundled in the umbrella chart artifact,
 * are not verified.
 *
 * @schema HelmReleaseSpecChartSpecVerify
 */
export interface HelmReleaseSpecChartSpecVerify {
    /**
     * Provider specifies the technology used to sign the OCI Helm chart.
     *
     * @schema HelmReleaseSpecChartSpecVerify#provider
     */
    readonly provider: HelmReleaseSpecChartSpecVerifyProvider;
    /**
     * SecretRef specifies the Kubernetes Secret containing the
     * trusted public keys.
     *
     * @schema HelmReleaseSpecChartSpecVerify#secretRef
     */
    readonly secretRef?: HelmReleaseSpecChartSpecVerifySecretRef;
}
/**
 * Converts an object of type 'HelmReleaseSpecChartSpecVerify' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecChartSpecVerify(obj: HelmReleaseSpecChartSpecVerify | undefined): Record<string, any> | undefined;
/**
 * Target is a selector for specifying Kubernetes objects to which this
 * rule applies.
 * If Target is not set, the Paths will be ignored for all Kubernetes
 * objects within the manifest of the Helm release.
 *
 * @schema HelmReleaseSpecDriftDetectionIgnoreTarget
 */
export interface HelmReleaseSpecDriftDetectionIgnoreTarget {
    /**
     * AnnotationSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource annotations.
     *
     * @schema HelmReleaseSpecDriftDetectionIgnoreTarget#annotationSelector
     */
    readonly annotationSelector?: string;
    /**
     * Group is the API group to select resources from.
     * Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseSpecDriftDetectionIgnoreTarget#group
     */
    readonly group?: string;
    /**
     * Kind of the API Group to select resources from.
     * Together with Group and Version it is capable of unambiguously
     * identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseSpecDriftDetectionIgnoreTarget#kind
     */
    readonly kind?: string;
    /**
     * LabelSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource labels.
     *
     * @schema HelmReleaseSpecDriftDetectionIgnoreTarget#labelSelector
     */
    readonly labelSelector?: string;
    /**
     * Name to match resources with.
     *
     * @schema HelmReleaseSpecDriftDetectionIgnoreTarget#name
     */
    readonly name?: string;
    /**
     * Namespace to select resources from.
     *
     * @schema HelmReleaseSpecDriftDetectionIgnoreTarget#namespace
     */
    readonly namespace?: string;
    /**
     * Version of the API Group to select resources from.
     * Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseSpecDriftDetectionIgnoreTarget#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecDriftDetectionIgnoreTarget' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecDriftDetectionIgnoreTarget(obj: HelmReleaseSpecDriftDetectionIgnoreTarget | undefined): Record<string, any> | undefined;
/**
 * Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag.
 *
 * @schema HelmReleaseSpecPostRenderersKustomizeImages
 */
export interface HelmReleaseSpecPostRenderersKustomizeImages {
    /**
     * Digest is the value used to replace the original image tag.
     * If digest is present NewTag value is ignored.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizeImages#digest
     */
    readonly digest?: string;
    /**
     * Name is a tag-less image name.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizeImages#name
     */
    readonly name: string;
    /**
     * NewName is the value used to replace the original name.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizeImages#newName
     */
    readonly newName?: string;
    /**
     * NewTag is the value used to replace the original tag.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizeImages#newTag
     */
    readonly newTag?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderersKustomizeImages' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecPostRenderersKustomizeImages(obj: HelmReleaseSpecPostRenderersKustomizeImages | undefined): Record<string, any> | undefined;
/**
 * Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should
 * be applied to.
 *
 * @schema HelmReleaseSpecPostRenderersKustomizePatches
 */
export interface HelmReleaseSpecPostRenderersKustomizePatches {
    /**
     * Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with
     * an array of operation objects.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatches#patch
     */
    readonly patch: string;
    /**
     * Target points to the resources that the patch document should be applied to.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatches#target
     */
    readonly target?: HelmReleaseSpecPostRenderersKustomizePatchesTarget;
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderersKustomizePatches' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecPostRenderersKustomizePatches(obj: HelmReleaseSpecPostRenderersKustomizePatches | undefined): Record<string, any> | undefined;
/**
 * Strategy to use for failure remediation. Defaults to 'rollback'.
 *
 * @default rollback'.
 * @schema HelmReleaseSpecUpgradeRemediationStrategy
 */
export declare enum HelmReleaseSpecUpgradeRemediationStrategy {
    /** rollback */
    ROLLBACK = "rollback",
    /** uninstall */
    UNINSTALL = "uninstall"
}
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseSpecChartSpecSourceRefKind
 */
export declare enum HelmReleaseSpecChartSpecSourceRefKind {
    /** HelmRepository */
    HELM_REPOSITORY = "HelmRepository",
    /** GitRepository */
    GIT_REPOSITORY = "GitRepository",
    /** Bucket */
    BUCKET = "Bucket"
}
/**
 * Provider specifies the technology used to sign the OCI Helm chart.
 *
 * @schema HelmReleaseSpecChartSpecVerifyProvider
 */
export declare enum HelmReleaseSpecChartSpecVerifyProvider {
    /** cosign */
    COSIGN = "cosign",
    /** notation */
    NOTATION = "notation"
}
/**
 * SecretRef specifies the Kubernetes Secret containing the
 * trusted public keys.
 *
 * @schema HelmReleaseSpecChartSpecVerifySecretRef
 */
export interface HelmReleaseSpecChartSpecVerifySecretRef {
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseSpecChartSpecVerifySecretRef#name
     */
    readonly name: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecChartSpecVerifySecretRef' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecChartSpecVerifySecretRef(obj: HelmReleaseSpecChartSpecVerifySecretRef | undefined): Record<string, any> | undefined;
/**
 * Target points to the resources that the patch document should be applied to.
 *
 * @schema HelmReleaseSpecPostRenderersKustomizePatchesTarget
 */
export interface HelmReleaseSpecPostRenderersKustomizePatchesTarget {
    /**
     * AnnotationSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource annotations.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatchesTarget#annotationSelector
     */
    readonly annotationSelector?: string;
    /**
     * Group is the API group to select resources from.
     * Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatchesTarget#group
     */
    readonly group?: string;
    /**
     * Kind of the API Group to select resources from.
     * Together with Group and Version it is capable of unambiguously
     * identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatchesTarget#kind
     */
    readonly kind?: string;
    /**
     * LabelSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource labels.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatchesTarget#labelSelector
     */
    readonly labelSelector?: string;
    /**
     * Name to match resources with.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatchesTarget#name
     */
    readonly name?: string;
    /**
     * Namespace to select resources from.
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatchesTarget#namespace
     */
    readonly namespace?: string;
    /**
     * Version of the API Group to select resources from.
     * Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseSpecPostRenderersKustomizePatchesTarget#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseSpecPostRenderersKustomizePatchesTarget' to JSON representation.
 */
export declare function toJson_HelmReleaseSpecPostRenderersKustomizePatchesTarget(obj: HelmReleaseSpecPostRenderersKustomizePatchesTarget | undefined): Record<string, any> | undefined;
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmReleaseV2Beta1
 */
export declare class HelmReleaseV2Beta1 extends ApiObject {
    /**
     * Returns the apiVersion and kind for "HelmReleaseV2Beta1"
     */
    static readonly GVK: GroupVersionKind;
    /**
     * Renders a Kubernetes manifest for "HelmReleaseV2Beta1".
     *
     * This can be used to inline resource manifests inside other objects (e.g. as templates).
     *
     * @param props initialization props
     */
    static manifest(props?: HelmReleaseV2Beta1Props): any;
    /**
     * Defines a "HelmReleaseV2Beta1" API object
     * @param scope the scope in which to define this object
     * @param id a scope-local name for the object
     * @param props initialization props
     */
    constructor(scope: Construct, id: string, props?: HelmReleaseV2Beta1Props);
    /**
     * Renders the object to Kubernetes JSON.
     */
    toJson(): any;
}
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmReleaseV2Beta1
 */
export interface HelmReleaseV2Beta1Props {
    /**
     * @schema HelmReleaseV2Beta1#metadata
     */
    readonly metadata?: ApiObjectMetadata;
    /**
     * HelmReleaseSpec defines the desired state of a Helm release.
     *
     * @schema HelmReleaseV2Beta1#spec
     */
    readonly spec?: HelmReleaseV2Beta1Spec;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1Props' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1Props(obj: HelmReleaseV2Beta1Props | undefined): Record<string, any> | undefined;
/**
 * HelmReleaseSpec defines the desired state of a Helm release.
 *
 * @schema HelmReleaseV2Beta1Spec
 */
export interface HelmReleaseV2Beta1Spec {
    /**
     * Chart defines the template of the v1beta2.HelmChart that should be created
     * for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta1Spec#chart
     */
    readonly chart: HelmReleaseV2Beta1SpecChart;
    /**
     * ChartRef holds a reference to a source controller resource containing the
     * Helm chart artifact.
     *
     * Note: this field is provisional to the v2 API, and not actively used
     * by v2beta1 HelmReleases.
     *
     * @schema HelmReleaseV2Beta1Spec#chartRef
     */
    readonly chartRef?: HelmReleaseV2Beta1SpecChartRef;
    /**
     * DependsOn may contain a meta.NamespacedObjectReference slice with
     * references to HelmRelease resources that must be ready before this HelmRelease
     * can be reconciled.
     *
     * @schema HelmReleaseV2Beta1Spec#dependsOn
     */
    readonly dependsOn?: HelmReleaseV2Beta1SpecDependsOn[];
    /**
     * DriftDetection holds the configuration for detecting and handling
     * differences between the manifest in the Helm storage and the resources
     * currently existing in the cluster.
     *
     * Note: this field is provisional to the v2beta2 API, and not actively used
     * by v2beta1 HelmReleases.
     *
     * @schema HelmReleaseV2Beta1Spec#driftDetection
     */
    readonly driftDetection?: HelmReleaseV2Beta1SpecDriftDetection;
    /**
     * Install holds the configuration for Helm install actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta1Spec#install
     */
    readonly install?: HelmReleaseV2Beta1SpecInstall;
    /**
     * Interval at which to reconcile the Helm release.
     * This interval is approximate and may be subject to jitter to ensure
     * efficient use of resources.
     *
     * @schema HelmReleaseV2Beta1Spec#interval
     */
    readonly interval: string;
    /**
     * KubeConfig for reconciling the HelmRelease on a remote cluster.
     * When used in combination with HelmReleaseSpec.ServiceAccountName,
     * forces the controller to act on behalf of that Service Account at the
     * target cluster.
     * If the --default-service-account flag is set, its value will be used as
     * a controller level fallback for when HelmReleaseSpec.ServiceAccountName
     * is empty.
     *
     * @schema HelmReleaseV2Beta1Spec#kubeConfig
     */
    readonly kubeConfig?: HelmReleaseV2Beta1SpecKubeConfig;
    /**
     * MaxHistory is the number of revisions saved by Helm for this HelmRelease.
     * Use '0' for an unlimited number of revisions; defaults to '10'.
     *
     * @schema HelmReleaseV2Beta1Spec#maxHistory
     */
    readonly maxHistory?: number;
    /**
     * PersistentClient tells the controller to use a persistent Kubernetes
     * client for this release. When enabled, the client will be reused for the
     * duration of the reconciliation, instead of being created and destroyed
     * for each (step of a) Helm action.
     *
     * This can improve performance, but may cause issues with some Helm charts
     * that for example do create Custom Resource Definitions during installation
     * outside Helm's CRD lifecycle hooks, which are then not observed to be
     * available by e.g. post-install hooks.
     *
     * If not set, it defaults to true.
     *
     * @schema HelmReleaseV2Beta1Spec#persistentClient
     */
    readonly persistentClient?: boolean;
    /**
     * PostRenderers holds an array of Helm PostRenderers, which will be applied in order
     * of their definition.
     *
     * @schema HelmReleaseV2Beta1Spec#postRenderers
     */
    readonly postRenderers?: HelmReleaseV2Beta1SpecPostRenderers[];
    /**
     * ReleaseName used for the Helm release. Defaults to a composition of
     * '[TargetNamespace-]Name'.
     *
     * @default a composition of
     * @schema HelmReleaseV2Beta1Spec#releaseName
     */
    readonly releaseName?: string;
    /**
     * Rollback holds the configuration for Helm rollback actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta1Spec#rollback
     */
    readonly rollback?: HelmReleaseV2Beta1SpecRollback;
    /**
     * The name of the Kubernetes service account to impersonate
     * when reconciling this HelmRelease.
     *
     * @schema HelmReleaseV2Beta1Spec#serviceAccountName
     */
    readonly serviceAccountName?: string;
    /**
     * StorageNamespace used for the Helm storage.
     * Defaults to the namespace of the HelmRelease.
     *
     * @default the namespace of the HelmRelease.
     * @schema HelmReleaseV2Beta1Spec#storageNamespace
     */
    readonly storageNamespace?: string;
    /**
     * Suspend tells the controller to suspend reconciliation for this HelmRelease,
     * it does not apply to already started reconciliations. Defaults to false.
     *
     * @default false.
     * @schema HelmReleaseV2Beta1Spec#suspend
     */
    readonly suspend?: boolean;
    /**
     * TargetNamespace to target when performing operations for the HelmRelease.
     * Defaults to the namespace of the HelmRelease.
     *
     * @default the namespace of the HelmRelease.
     * @schema HelmReleaseV2Beta1Spec#targetNamespace
     */
    readonly targetNamespace?: string;
    /**
     * Test holds the configuration for Helm test actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta1Spec#test
     */
    readonly test?: HelmReleaseV2Beta1SpecTest;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like Jobs
     * for hooks) during the performance of a Helm action. Defaults to '5m0s'.
     *
     * @default 5m0s'.
     * @schema HelmReleaseV2Beta1Spec#timeout
     */
    readonly timeout?: string;
    /**
     * Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta1Spec#uninstall
     */
    readonly uninstall?: HelmReleaseV2Beta1SpecUninstall;
    /**
     * Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta1Spec#upgrade
     */
    readonly upgrade?: HelmReleaseV2Beta1SpecUpgrade;
    /**
     * Values holds the values for this Helm release.
     *
     * @schema HelmReleaseV2Beta1Spec#values
     */
    readonly values?: any;
    /**
     * ValuesFrom holds references to resources containing Helm values for this HelmRelease,
     * and information about how they should be merged.
     *
     * @schema HelmReleaseV2Beta1Spec#valuesFrom
     */
    readonly valuesFrom?: HelmReleaseV2Beta1SpecValuesFrom[];
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1Spec' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1Spec(obj: HelmReleaseV2Beta1Spec | undefined): Record<string, any> | undefined;
/**
 * Chart defines the template of the v1beta2.HelmChart that should be created
 * for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta1SpecChart
 */
export interface HelmReleaseV2Beta1SpecChart {
    /**
     * ObjectMeta holds the template for metadata like labels and annotations.
     *
     * @schema HelmReleaseV2Beta1SpecChart#metadata
     */
    readonly metadata?: HelmReleaseV2Beta1SpecChartMetadata;
    /**
     * Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta1SpecChart#spec
     */
    readonly spec: HelmReleaseV2Beta1SpecChartSpec;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChart' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecChart(obj: HelmReleaseV2Beta1SpecChart | undefined): Record<string, any> | undefined;
/**
 * ChartRef holds a reference to a source controller resource containing the
 * Helm chart artifact.
 *
 * Note: this field is provisional to the v2 API, and not actively used
 * by v2beta1 HelmReleases.
 *
 * @schema HelmReleaseV2Beta1SpecChartRef
 */
export interface HelmReleaseV2Beta1SpecChartRef {
    /**
     * APIVersion of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecChartRef#apiVersion
     */
    readonly apiVersion?: string;
    /**
     * Kind of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecChartRef#kind
     */
    readonly kind: HelmReleaseV2Beta1SpecChartRefKind;
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecChartRef#name
     */
    readonly name: string;
    /**
     * Namespace of the referent, defaults to the namespace of the Kubernetes
     * resource object that contains the reference.
     *
     * @schema HelmReleaseV2Beta1SpecChartRef#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartRef' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecChartRef(obj: HelmReleaseV2Beta1SpecChartRef | undefined): Record<string, any> | undefined;
/**
 * NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any
 * namespace.
 *
 * @schema HelmReleaseV2Beta1SpecDependsOn
 */
export interface HelmReleaseV2Beta1SpecDependsOn {
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecDependsOn#name
     */
    readonly name: string;
    /**
     * Namespace of the referent, when not specified it acts as LocalObjectReference.
     *
     * @schema HelmReleaseV2Beta1SpecDependsOn#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecDependsOn' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecDependsOn(obj: HelmReleaseV2Beta1SpecDependsOn | undefined): Record<string, any> | undefined;
/**
 * DriftDetection holds the configuration for detecting and handling
 * differences between the manifest in the Helm storage and the resources
 * currently existing in the cluster.
 *
 * Note: this field is provisional to the v2beta2 API, and not actively used
 * by v2beta1 HelmReleases.
 *
 * @schema HelmReleaseV2Beta1SpecDriftDetection
 */
export interface HelmReleaseV2Beta1SpecDriftDetection {
    /**
     * Ignore contains a list of rules for specifying which changes to ignore
     * during diffing.
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetection#ignore
     */
    readonly ignore?: HelmReleaseV2Beta1SpecDriftDetectionIgnore[];
    /**
     * Mode defines how differences should be handled between the Helm manifest
     * and the manifest currently applied to the cluster.
     * If not explicitly set, it defaults to DiffModeDisabled.
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetection#mode
     */
    readonly mode?: HelmReleaseV2Beta1SpecDriftDetectionMode;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecDriftDetection' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecDriftDetection(obj: HelmReleaseV2Beta1SpecDriftDetection | undefined): Record<string, any> | undefined;
/**
 * Install holds the configuration for Helm install actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta1SpecInstall
 */
export interface HelmReleaseV2Beta1SpecInstall {
    /**
     * 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 `Create` and if omitted
     * CRDs are installed but not updated.
     *
     * 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 applied (installed) during Helm install action.
     * With this option users can opt-in to CRD replace existing CRDs on Helm
     * install actions, which is not (yet) natively supported by Helm.
     * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
     *
     * @default Create` and if omitted
     * @schema HelmReleaseV2Beta1SpecInstall#crds
     */
    readonly crds?: HelmReleaseV2Beta1SpecInstallCrds;
    /**
     * CreateNamespace tells the Helm install action to create the
     * HelmReleaseSpec.TargetNamespace if it does not exist yet.
     * On uninstall, the namespace will not be garbage collected.
     *
     * @schema HelmReleaseV2Beta1SpecInstall#createNamespace
     */
    readonly createNamespace?: boolean;
    /**
     * DisableHooks prevents hooks from running during the Helm install action.
     *
     * @schema HelmReleaseV2Beta1SpecInstall#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableOpenAPIValidation prevents the Helm install action from validating
     * rendered templates against the Kubernetes OpenAPI Schema.
     *
     * @schema HelmReleaseV2Beta1SpecInstall#disableOpenAPIValidation
     */
    readonly disableOpenApiValidation?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * install has been performed.
     *
     * @schema HelmReleaseV2Beta1SpecInstall#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * install has been performed.
     *
     * @schema HelmReleaseV2Beta1SpecInstall#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Remediation holds the remediation configuration for when the Helm install
     * action for the HelmRelease fails. The default is to not perform any action.
     *
     * @schema HelmReleaseV2Beta1SpecInstall#remediation
     */
    readonly remediation?: HelmReleaseV2Beta1SpecInstallRemediation;
    /**
     * Replace tells the Helm install action to re-use the 'ReleaseName', but only
     * if that name is a deleted release which remains in the history.
     *
     * @schema HelmReleaseV2Beta1SpecInstall#replace
     */
    readonly replace?: boolean;
    /**
     * SkipCRDs tells the Helm install action to not install any CRDs. By default,
     * CRDs are installed if not already present.
     *
     * Deprecated use CRD policy (`crds`) attribute with value `Skip` instead.
     *
     * @schema HelmReleaseV2Beta1SpecInstall#skipCRDs
     */
    readonly skipCrDs?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm install action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta1SpecInstall#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecInstall' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecInstall(obj: HelmReleaseV2Beta1SpecInstall | undefined): Record<string, any> | undefined;
/**
 * KubeConfig for reconciling the HelmRelease on a remote cluster.
 * When used in combination with HelmReleaseSpec.ServiceAccountName,
 * forces the controller to act on behalf of that Service Account at the
 * target cluster.
 * If the --default-service-account flag is set, its value will be used as
 * a controller level fallback for when HelmReleaseSpec.ServiceAccountName
 * is empty.
 *
 * @schema HelmReleaseV2Beta1SpecKubeConfig
 */
export interface HelmReleaseV2Beta1SpecKubeConfig {
    /**
     * SecretRef holds the name of a secret that contains a key with
     * the kubeconfig file as the value. If no key is set, the key will default
     * to 'value'.
     * It is recommended that the kubeconfig is self-contained, and the secret
     * is regularly updated if credentials such as a cloud-access-token expire.
     * Cloud specific `cmd-path` auth helpers will not function without adding
     * binaries and credentials to the Pod that is responsible for reconciling
     * Kubernetes resources.
     *
     * @schema HelmReleaseV2Beta1SpecKubeConfig#secretRef
     */
    readonly secretRef: HelmReleaseV2Beta1SpecKubeConfigSecretRef;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecKubeConfig' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecKubeConfig(obj: HelmReleaseV2Beta1SpecKubeConfig | undefined): Record<string, any> | undefined;
/**
 * PostRenderer contains a Helm PostRenderer specification.
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderers
 */
export interface HelmReleaseV2Beta1SpecPostRenderers {
    /**
     * Kustomization to apply as PostRenderer.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderers#kustomize
     */
    readonly kustomize?: HelmReleaseV2Beta1SpecPostRenderersKustomize;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderers' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecPostRenderers(obj: HelmReleaseV2Beta1SpecPostRenderers | undefined): Record<string, any> | undefined;
/**
 * Rollback holds the configuration for Helm rollback actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta1SpecRollback
 */
export interface HelmReleaseV2Beta1SpecRollback {
    /**
     * CleanupOnFail allows deletion of new resources created during the Helm
     * rollback action when it fails.
     *
     * @schema HelmReleaseV2Beta1SpecRollback#cleanupOnFail
     */
    readonly cleanupOnFail?: boolean;
    /**
     * DisableHooks prevents hooks from running during the Helm rollback action.
     *
     * @schema HelmReleaseV2Beta1SpecRollback#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * rollback has been performed.
     *
     * @schema HelmReleaseV2Beta1SpecRollback#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * rollback has been performed.
     *
     * @schema HelmReleaseV2Beta1SpecRollback#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Force forces resource updates through a replacement strategy.
     *
     * @schema HelmReleaseV2Beta1SpecRollback#force
     */
    readonly force?: boolean;
    /**
     * Recreate performs pod restarts for the resource if applicable.
     *
     * @schema HelmReleaseV2Beta1SpecRollback#recreate
     */
    readonly recreate?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm rollback action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta1SpecRollback#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecRollback' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecRollback(obj: HelmReleaseV2Beta1SpecRollback | undefined): Record<string, any> | undefined;
/**
 * Test holds the configuration for Helm test actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta1SpecTest
 */
export interface HelmReleaseV2Beta1SpecTest {
    /**
     * Enable enables Helm test actions for this HelmRelease after an Helm install
     * or upgrade action has been performed.
     *
     * @schema HelmReleaseV2Beta1SpecTest#enable
     */
    readonly enable?: boolean;
    /**
     * IgnoreFailures tells the controller to skip remediation when the Helm tests
     * are run but fail. Can be overwritten for tests run after install or upgrade
     * actions in 'Install.IgnoreTestFailures' and 'Upgrade.IgnoreTestFailures'.
     *
     * @schema HelmReleaseV2Beta1SpecTest#ignoreFailures
     */
    readonly ignoreFailures?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation during
     * the performance of a Helm test action. Defaults to 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta1SpecTest#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecTest' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecTest(obj: HelmReleaseV2Beta1SpecTest | undefined): Record<string, any> | undefined;
/**
 * Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta1SpecUninstall
 */
export interface HelmReleaseV2Beta1SpecUninstall {
    /**
     * DeletionPropagation specifies the deletion propagation policy when
     * a Helm uninstall is performed.
     *
     * @schema HelmReleaseV2Beta1SpecUninstall#deletionPropagation
     */
    readonly deletionPropagation?: HelmReleaseV2Beta1SpecUninstallDeletionPropagation;
    /**
     * DisableHooks prevents hooks from running during the Helm rollback action.
     *
     * @schema HelmReleaseV2Beta1SpecUninstall#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableWait disables waiting for all the resources to be deleted after
     * a Helm uninstall is performed.
     *
     * @schema HelmReleaseV2Beta1SpecUninstall#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * KeepHistory tells Helm to remove all associated resources and mark the
     * release as deleted, but retain the release history.
     *
     * @schema HelmReleaseV2Beta1SpecUninstall#keepHistory
     */
    readonly keepHistory?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm uninstall action. Defaults
     * to 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta1SpecUninstall#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecUninstall' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecUninstall(obj: HelmReleaseV2Beta1SpecUninstall | undefined): Record<string, any> | undefined;
/**
 * Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta1SpecUpgrade
 */
export interface HelmReleaseV2Beta1SpecUpgrade {
    /**
     * CleanupOnFail allows deletion of new resources created during the Helm
     * upgrade action when it fails.
     *
     * @schema HelmReleaseV2Beta1SpecUpgrade#cleanupOnFail
     */
    readonly 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.
     *
     * @default Skip` and if omitted
     * @schema HelmReleaseV2Beta1SpecUpgrade#crds
     */
    readonly crds?: HelmReleaseV2Beta1SpecUpgradeCrds;
    /**
     * DisableHooks prevents hooks from running during the Helm upgrade action.
     *
     * @schema HelmReleaseV2Beta1SpecUpgrade#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableOpenAPIValidation prevents the Helm upgrade action from validating
     * rendered templates against the Kubernetes OpenAPI Schema.
     *
     * @schema HelmReleaseV2Beta1SpecUpgrade#disableOpenAPIValidation
     */
    readonly disableOpenApiValidation?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * upgrade has been performed.
     *
     * @schema HelmReleaseV2Beta1SpecUpgrade#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * upgrade has been performed.
     *
     * @schema HelmReleaseV2Beta1SpecUpgrade#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Force forces resource updates through a replacement strategy.
     *
     * @schema HelmReleaseV2Beta1SpecUpgrade#force
     */
    readonly 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.
     *
     * @schema HelmReleaseV2Beta1SpecUpgrade#preserveValues
     */
    readonly 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.
     *
     * @schema HelmReleaseV2Beta1SpecUpgrade#remediation
     */
    readonly remediation?: HelmReleaseV2Beta1SpecUpgradeRemediation;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm upgrade action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta1SpecUpgrade#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecUpgrade' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecUpgrade(obj: HelmReleaseV2Beta1SpecUpgrade | undefined): Record<string, any> | undefined;
/**
 * ValuesReference contains a reference to a resource containing Helm values,
 * and optionally the key they can be found at.
 *
 * @schema HelmReleaseV2Beta1SpecValuesFrom
 */
export interface HelmReleaseV2Beta1SpecValuesFrom {
    /**
     * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
     *
     * @schema HelmReleaseV2Beta1SpecValuesFrom#kind
     */
    readonly kind: HelmReleaseV2Beta1SpecValuesFromKind;
    /**
     * Name of the values referent. Should reside in the same namespace as the
     * referring resource.
     *
     * @schema HelmReleaseV2Beta1SpecValuesFrom#name
     */
    readonly name: string;
    /**
     * Optional marks this ValuesReference as optional. When set, a not found error
     * for the values reference is ignored, but any ValuesKey, TargetPath or
     * transient error will still result in a reconciliation failure.
     *
     * @schema HelmReleaseV2Beta1SpecValuesFrom#optional
     */
    readonly optional?: boolean;
    /**
     * TargetPath is the YAML dot notation path the value should be merged at. When
     * set, the ValuesKey is expected to be a single flat value. Defaults to 'None',
     * which results in the values getting merged at the root.
     *
     * @default None',
     * @schema HelmReleaseV2Beta1SpecValuesFrom#targetPath
     */
    readonly targetPath?: string;
    /**
     * ValuesKey is the data key where the values.yaml or a specific value can be
     * found at. Defaults to 'values.yaml'.
     * When set, must be a valid Data Key, consisting of alphanumeric characters,
     * '-', '_' or '.'.
     *
     * @default values.yaml'.
     * @schema HelmReleaseV2Beta1SpecValuesFrom#valuesKey
     */
    readonly valuesKey?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecValuesFrom' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecValuesFrom(obj: HelmReleaseV2Beta1SpecValuesFrom | undefined): Record<string, any> | undefined;
/**
 * ObjectMeta holds the template for metadata like labels and annotations.
 *
 * @schema HelmReleaseV2Beta1SpecChartMetadata
 */
export interface HelmReleaseV2Beta1SpecChartMetadata {
    /**
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     *
     * @schema HelmReleaseV2Beta1SpecChartMetadata#annotations
     */
    readonly annotations?: {
        [key: string]: string;
    };
    /**
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     *
     * @schema HelmReleaseV2Beta1SpecChartMetadata#labels
     */
    readonly labels?: {
        [key: string]: string;
    };
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartMetadata' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecChartMetadata(obj: HelmReleaseV2Beta1SpecChartMetadata | undefined): Record<string, any> | undefined;
/**
 * Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta1SpecChartSpec
 */
export interface HelmReleaseV2Beta1SpecChartSpec {
    /**
     * The name or path the Helm chart is available at in the SourceRef.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpec#chart
     */
    readonly chart: string;
    /**
     * Interval at which to check the v1beta2.Source for updates. Defaults to
     * 'HelmReleaseSpec.Interval'.
     *
     * @default HelmReleaseSpec.Interval'.
     * @schema HelmReleaseV2Beta1SpecChartSpec#interval
     */
    readonly interval?: string;
    /**
     * Determines what enables the creation of a new artifact. Valid values are
     * ('ChartVersion', 'Revision').
     * See the documentation of the values for an explanation on their behavior.
     * Defaults to ChartVersion when omitted.
     *
     * @default ChartVersion when omitted.
     * @schema HelmReleaseV2Beta1SpecChartSpec#reconcileStrategy
     */
    readonly reconcileStrategy?: HelmReleaseV2Beta1SpecChartSpecReconcileStrategy;
    /**
     * The name and namespace of the v1beta2.Source the chart is available at.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpec#sourceRef
     */
    readonly sourceRef: HelmReleaseV2Beta1SpecChartSpecSourceRef;
    /**
     * Alternative values file to use as the default chart values, expected to
     * be a relative path in the SourceRef. Deprecated in favor of ValuesFiles,
     * for backwards compatibility the file defined here is merged before the
     * ValuesFiles items. Ignored when omitted.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpec#valuesFile
     */
    readonly valuesFile?: string;
    /**
     * Alternative list of values files to use as the chart values (values.yaml
     * is not included by default), expected to be a relative path in the SourceRef.
     * Values files are merged in the order of this list with the last file overriding
     * the first. Ignored when omitted.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpec#valuesFiles
     */
    readonly valuesFiles?: string[];
    /**
     * Verify contains the secret name containing the trusted public keys
     * used to verify the signature and specifies which provider to use to check
     * whether OCI image is authentic.
     * This field is only supported for OCI sources.
     * Chart dependencies, which are not bundled in the umbrella chart artifact, are not verified.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpec#verify
     */
    readonly verify?: HelmReleaseV2Beta1SpecChartSpecVerify;
    /**
     * Version semver expression, ignored for charts from v1beta2.GitRepository and
     * v1beta2.Bucket sources. Defaults to latest when omitted.
     *
     * @default latest when omitted.
     * @schema HelmReleaseV2Beta1SpecChartSpec#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartSpec' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecChartSpec(obj: HelmReleaseV2Beta1SpecChartSpec | undefined): Record<string, any> | undefined;
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseV2Beta1SpecChartRefKind
 */
export declare enum HelmReleaseV2Beta1SpecChartRefKind {
    /** OCIRepository */
    OCI_REPOSITORY = "OCIRepository",
    /** HelmChart */
    HELM_CHART = "HelmChart"
}
/**
 * IgnoreRule defines a rule to selectively disregard specific changes during
 * the drift detection process.
 *
 * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnore
 */
export interface HelmReleaseV2Beta1SpecDriftDetectionIgnore {
    /**
     * Paths is a list of JSON Pointer (RFC 6901) paths to be excluded from
     * consideration in a Kubernetes object.
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnore#paths
     */
    readonly paths: string[];
    /**
     * Target is a selector for specifying Kubernetes objects to which this
     * rule applies.
     * If Target is not set, the Paths will be ignored for all Kubernetes
     * objects within the manifest of the Helm release.
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnore#target
     */
    readonly target?: HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecDriftDetectionIgnore' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnore(obj: HelmReleaseV2Beta1SpecDriftDetectionIgnore | undefined): Record<string, any> | undefined;
/**
 * Mode defines how differences should be handled between the Helm manifest
 * and the manifest currently applied to the cluster.
 * If not explicitly set, it defaults to DiffModeDisabled.
 *
 * @schema HelmReleaseV2Beta1SpecDriftDetectionMode
 */
export declare enum HelmReleaseV2Beta1SpecDriftDetectionMode {
    /** enabled */
    ENABLED = "enabled",
    /** warn */
    WARN = "warn",
    /** disabled */
    DISABLED = "disabled"
}
/**
 * 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 `Create` and if omitted
 * CRDs are installed but not updated.
 *
 * 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 applied (installed) during Helm install action.
 * With this option users can opt-in to CRD replace existing CRDs on Helm
 * install actions, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Create` and if omitted
 * @schema HelmReleaseV2Beta1SpecInstallCrds
 */
export declare enum HelmReleaseV2Beta1SpecInstallCrds {
    /** Skip */
    SKIP = "Skip",
    /** Create */
    CREATE = "Create",
    /** CreateReplace */
    CREATE_REPLACE = "CreateReplace"
}
/**
 * Remediation holds the remediation configuration for when the Helm install
 * action for the HelmRelease fails. The default is to not perform any action.
 *
 * @schema HelmReleaseV2Beta1SpecInstallRemediation
 */
export interface HelmReleaseV2Beta1SpecInstallRemediation {
    /**
     * IgnoreTestFailures tells the controller to skip remediation when the Helm
     * tests are run after an install action but fail. Defaults to
     * 'Test.IgnoreFailures'.
     *
     * @default Test.IgnoreFailures'.
     * @schema HelmReleaseV2Beta1SpecInstallRemediation#ignoreTestFailures
     */
    readonly ignoreTestFailures?: boolean;
    /**
     * RemediateLastFailure tells the controller to remediate the last failure, when
     * no retries remain. Defaults to 'false'.
     *
     * @default false'.
     * @schema HelmReleaseV2Beta1SpecInstallRemediation#remediateLastFailure
     */
    readonly remediateLastFailure?: boolean;
    /**
     * Retries is the number of retries that should be attempted on failures before
     * bailing. Remediation, using an uninstall, is performed between each attempt.
     * Defaults to '0', a negative integer equals to unlimited retries.
     *
     * @default 0', a negative integer equals to unlimited retries.
     * @schema HelmReleaseV2Beta1SpecInstallRemediation#retries
     */
    readonly retries?: number;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecInstallRemediation' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecInstallRemediation(obj: HelmReleaseV2Beta1SpecInstallRemediation | undefined): Record<string, any> | undefined;
/**
 * SecretRef holds the name of a secret that contains a key with
 * the kubeconfig file as the value. If no key is set, the key will default
 * to 'value'.
 * It is recommended that the kubeconfig is self-contained, and the secret
 * is regularly updated if credentials such as a cloud-access-token expire.
 * Cloud specific `cmd-path` auth helpers will not function without adding
 * binaries and credentials to the Pod that is responsible for reconciling
 * Kubernetes resources.
 *
 * @schema HelmReleaseV2Beta1SpecKubeConfigSecretRef
 */
export interface HelmReleaseV2Beta1SpecKubeConfigSecretRef {
    /**
     * Key in the Secret, when not specified an implementation-specific default key is used.
     *
     * @schema HelmReleaseV2Beta1SpecKubeConfigSecretRef#key
     */
    readonly key?: string;
    /**
     * Name of the Secret.
     *
     * @schema HelmReleaseV2Beta1SpecKubeConfigSecretRef#name
     */
    readonly name: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecKubeConfigSecretRef' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecKubeConfigSecretRef(obj: HelmReleaseV2Beta1SpecKubeConfigSecretRef | undefined): Record<string, any> | undefined;
/**
 * Kustomization to apply as PostRenderer.
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomize
 */
export interface HelmReleaseV2Beta1SpecPostRenderersKustomize {
    /**
     * Images is a list of (image name, new name, new tag or digest)
     * for changing image names, tags or digests. This can also be achieved with a
     * patch, but this operator is simpler to specify.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomize#images
     */
    readonly images?: HelmReleaseV2Beta1SpecPostRenderersKustomizeImages[];
    /**
     * Strategic merge and JSON patches, defined as inline YAML objects,
     * capable of targeting objects based on kind, label and annotation selectors.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomize#patches
     */
    readonly patches?: HelmReleaseV2Beta1SpecPostRenderersKustomizePatches[];
    /**
     * JSON 6902 patches, defined as inline YAML objects.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomize#patchesJson6902
     */
    readonly patchesJson6902?: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902[];
    /**
     * Strategic merge patches, defined as inline YAML objects.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomize#patchesStrategicMerge
     */
    readonly patchesStrategicMerge?: any[];
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomize' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomize(obj: HelmReleaseV2Beta1SpecPostRenderersKustomize | undefined): Record<string, any> | undefined;
/**
 * DeletionPropagation specifies the deletion propagation policy when
 * a Helm uninstall is performed.
 *
 * @schema HelmReleaseV2Beta1SpecUninstallDeletionPropagation
 */
export declare enum HelmReleaseV2Beta1SpecUninstallDeletionPropagation {
    /** background */
    BACKGROUND = "background",
    /** foreground */
    FOREGROUND = "foreground",
    /** orphan */
    ORPHAN = "orphan"
}
/**
 * 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.
 *
 * @default Skip` and if omitted
 * @schema HelmReleaseV2Beta1SpecUpgradeCrds
 */
export declare enum HelmReleaseV2Beta1SpecUpgradeCrds {
    /** Skip */
    SKIP = "Skip",
    /** Create */
    CREATE = "Create",
    /** CreateReplace */
    CREATE_REPLACE = "CreateReplace"
}
/**
 * Remediation holds the remediation configuration for when the Helm upgrade
 * action for the HelmRelease fails. The default is to not perform any action.
 *
 * @schema HelmReleaseV2Beta1SpecUpgradeRemediation
 */
export interface HelmReleaseV2Beta1SpecUpgradeRemediation {
    /**
     * IgnoreTestFailures tells the controller to skip remediation when the Helm
     * tests are run after an upgrade action but fail.
     * Defaults to 'Test.IgnoreFailures'.
     *
     * @default Test.IgnoreFailures'.
     * @schema HelmReleaseV2Beta1SpecUpgradeRemediation#ignoreTestFailures
     */
    readonly ignoreTestFailures?: boolean;
    /**
     * RemediateLastFailure tells the controller to remediate the last failure, when
     * no retries remain. Defaults to 'false' unless 'Retries' is greater than 0.
     *
     * @default false' unless 'Retries' is greater than 0.
     * @schema HelmReleaseV2Beta1SpecUpgradeRemediation#remediateLastFailure
     */
    readonly remediateLastFailure?: boolean;
    /**
     * Retries is the number of retries that should be attempted on failures before
     * bailing. Remediation, using 'Strategy', is performed between each attempt.
     * Defaults to '0', a negative integer equals to unlimited retries.
     *
     * @default 0', a negative integer equals to unlimited retries.
     * @schema HelmReleaseV2Beta1SpecUpgradeRemediation#retries
     */
    readonly retries?: number;
    /**
     * Strategy to use for failure remediation. Defaults to 'rollback'.
     *
     * @default rollback'.
     * @schema HelmReleaseV2Beta1SpecUpgradeRemediation#strategy
     */
    readonly strategy?: HelmReleaseV2Beta1SpecUpgradeRemediationStrategy;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecUpgradeRemediation' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecUpgradeRemediation(obj: HelmReleaseV2Beta1SpecUpgradeRemediation | undefined): Record<string, any> | undefined;
/**
 * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
 *
 * @schema HelmReleaseV2Beta1SpecValuesFromKind
 */
export declare enum HelmReleaseV2Beta1SpecValuesFromKind {
    /** Secret */
    SECRET = "Secret",
    /** ConfigMap */
    CONFIG_MAP = "ConfigMap"
}
/**
 * Determines what enables the creation of a new artifact. Valid values are
 * ('ChartVersion', 'Revision').
 * See the documentation of the values for an explanation on their behavior.
 * Defaults to ChartVersion when omitted.
 *
 * @default ChartVersion when omitted.
 * @schema HelmReleaseV2Beta1SpecChartSpecReconcileStrategy
 */
export declare enum HelmReleaseV2Beta1SpecChartSpecReconcileStrategy {
    /** ChartVersion */
    CHART_VERSION = "ChartVersion",
    /** Revision */
    REVISION = "Revision"
}
/**
 * The name and namespace of the v1beta2.Source the chart is available at.
 *
 * @schema HelmReleaseV2Beta1SpecChartSpecSourceRef
 */
export interface HelmReleaseV2Beta1SpecChartSpecSourceRef {
    /**
     * APIVersion of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpecSourceRef#apiVersion
     */
    readonly apiVersion?: string;
    /**
     * Kind of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpecSourceRef#kind
     */
    readonly kind: HelmReleaseV2Beta1SpecChartSpecSourceRefKind;
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpecSourceRef#name
     */
    readonly name: string;
    /**
     * Namespace of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpecSourceRef#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartSpecSourceRef' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecChartSpecSourceRef(obj: HelmReleaseV2Beta1SpecChartSpecSourceRef | undefined): Record<string, any> | undefined;
/**
 * Verify contains the secret name containing the trusted public keys
 * used to verify the signature and specifies which provider to use to check
 * whether OCI image is authentic.
 * This field is only supported for OCI sources.
 * Chart dependencies, which are not bundled in the umbrella chart artifact, are not verified.
 *
 * @schema HelmReleaseV2Beta1SpecChartSpecVerify
 */
export interface HelmReleaseV2Beta1SpecChartSpecVerify {
    /**
     * Provider specifies the technology used to sign the OCI Helm chart.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpecVerify#provider
     */
    readonly provider: HelmReleaseV2Beta1SpecChartSpecVerifyProvider;
    /**
     * SecretRef specifies the Kubernetes Secret containing the
     * trusted public keys.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpecVerify#secretRef
     */
    readonly secretRef?: HelmReleaseV2Beta1SpecChartSpecVerifySecretRef;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartSpecVerify' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecChartSpecVerify(obj: HelmReleaseV2Beta1SpecChartSpecVerify | undefined): Record<string, any> | undefined;
/**
 * Target is a selector for specifying Kubernetes objects to which this
 * rule applies.
 * If Target is not set, the Paths will be ignored for all Kubernetes
 * objects within the manifest of the Helm release.
 *
 * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget
 */
export interface HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget {
    /**
     * AnnotationSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource annotations.
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget#annotationSelector
     */
    readonly annotationSelector?: string;
    /**
     * Group is the API group to select resources from.
     * Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget#group
     */
    readonly group?: string;
    /**
     * Kind of the API Group to select resources from.
     * Together with Group and Version it is capable of unambiguously
     * identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget#kind
     */
    readonly kind?: string;
    /**
     * LabelSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource labels.
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget#labelSelector
     */
    readonly labelSelector?: string;
    /**
     * Name to match resources with.
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget#name
     */
    readonly name?: string;
    /**
     * Namespace to select resources from.
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget#namespace
     */
    readonly namespace?: string;
    /**
     * Version of the API Group to select resources from.
     * Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget(obj: HelmReleaseV2Beta1SpecDriftDetectionIgnoreTarget | undefined): Record<string, any> | undefined;
/**
 * Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag.
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizeImages
 */
export interface HelmReleaseV2Beta1SpecPostRenderersKustomizeImages {
    /**
     * Digest is the value used to replace the original image tag.
     * If digest is present NewTag value is ignored.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizeImages#digest
     */
    readonly digest?: string;
    /**
     * Name is a tag-less image name.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizeImages#name
     */
    readonly name: string;
    /**
     * NewName is the value used to replace the original name.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizeImages#newName
     */
    readonly newName?: string;
    /**
     * NewTag is the value used to replace the original tag.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizeImages#newTag
     */
    readonly newTag?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizeImages' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizeImages(obj: HelmReleaseV2Beta1SpecPostRenderersKustomizeImages | undefined): Record<string, any> | undefined;
/**
 * Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should
 * be applied to.
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatches
 */
export interface HelmReleaseV2Beta1SpecPostRenderersKustomizePatches {
    /**
     * Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with
     * an array of operation objects.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatches#patch
     */
    readonly patch: string;
    /**
     * Target points to the resources that the patch document should be applied to.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatches#target
     */
    readonly target?: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatches' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatches(obj: HelmReleaseV2Beta1SpecPostRenderersKustomizePatches | undefined): Record<string, any> | undefined;
/**
 * JSON6902Patch contains a JSON6902 patch and the target the patch should be applied to.
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902
 */
export interface HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902 {
    /**
     * Patch contains the JSON6902 patch document with an array of operation objects.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902#patch
     */
    readonly patch: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch[];
    /**
     * Target points to the resources that the patch document should be applied to.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902#target
     */
    readonly target: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902(obj: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902 | undefined): Record<string, any> | undefined;
/**
 * Strategy to use for failure remediation. Defaults to 'rollback'.
 *
 * @default rollback'.
 * @schema HelmReleaseV2Beta1SpecUpgradeRemediationStrategy
 */
export declare enum HelmReleaseV2Beta1SpecUpgradeRemediationStrategy {
    /** rollback */
    ROLLBACK = "rollback",
    /** uninstall */
    UNINSTALL = "uninstall"
}
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseV2Beta1SpecChartSpecSourceRefKind
 */
export declare enum HelmReleaseV2Beta1SpecChartSpecSourceRefKind {
    /** HelmRepository */
    HELM_REPOSITORY = "HelmRepository",
    /** GitRepository */
    GIT_REPOSITORY = "GitRepository",
    /** Bucket */
    BUCKET = "Bucket"
}
/**
 * Provider specifies the technology used to sign the OCI Helm chart.
 *
 * @schema HelmReleaseV2Beta1SpecChartSpecVerifyProvider
 */
export declare enum HelmReleaseV2Beta1SpecChartSpecVerifyProvider {
    /** cosign */
    COSIGN = "cosign"
}
/**
 * SecretRef specifies the Kubernetes Secret containing the
 * trusted public keys.
 *
 * @schema HelmReleaseV2Beta1SpecChartSpecVerifySecretRef
 */
export interface HelmReleaseV2Beta1SpecChartSpecVerifySecretRef {
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseV2Beta1SpecChartSpecVerifySecretRef#name
     */
    readonly name: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecChartSpecVerifySecretRef' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecChartSpecVerifySecretRef(obj: HelmReleaseV2Beta1SpecChartSpecVerifySecretRef | undefined): Record<string, any> | undefined;
/**
 * Target points to the resources that the patch document should be applied to.
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget
 */
export interface HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget {
    /**
     * AnnotationSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource annotations.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget#annotationSelector
     */
    readonly annotationSelector?: string;
    /**
     * Group is the API group to select resources from.
     * Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget#group
     */
    readonly group?: string;
    /**
     * Kind of the API Group to select resources from.
     * Together with Group and Version it is capable of unambiguously
     * identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget#kind
     */
    readonly kind?: string;
    /**
     * LabelSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource labels.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget#labelSelector
     */
    readonly labelSelector?: string;
    /**
     * Name to match resources with.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget#name
     */
    readonly name?: string;
    /**
     * Namespace to select resources from.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget#namespace
     */
    readonly namespace?: string;
    /**
     * Version of the API Group to select resources from.
     * Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget(obj: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesTarget | undefined): Record<string, any> | undefined;
/**
 * JSON6902 is a JSON6902 operation object.
 * https://datatracker.ietf.org/doc/html/rfc6902#section-4
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch
 */
export interface HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch {
    /**
     * From contains a JSON-pointer value that references a location within the target document where the operation is
     * performed. The meaning of the value depends on the value of Op, and is NOT taken into account by all operations.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch#from
     */
    readonly from?: string;
    /**
     * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace", "move", "copy", or
     * "test".
     * https://datatracker.ietf.org/doc/html/rfc6902#section-4
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch#op
     */
    readonly op: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp;
    /**
     * Path contains the JSON-pointer value that references a location within the target document where the operation
     * is performed. The meaning of the value depends on the value of Op.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch#path
     */
    readonly path: string;
    /**
     * Value contains a valid JSON structure. The meaning of the value depends on the value of Op, and is NOT taken into
     * account by all operations.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch#value
     */
    readonly value?: any;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch(obj: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Patch | undefined): Record<string, any> | undefined;
/**
 * Target points to the resources that the patch document should be applied to.
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target
 */
export interface HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target {
    /**
     * AnnotationSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource annotations.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target#annotationSelector
     */
    readonly annotationSelector?: string;
    /**
     * Group is the API group to select resources from.
     * Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target#group
     */
    readonly group?: string;
    /**
     * Kind of the API Group to select resources from.
     * Together with Group and Version it is capable of unambiguously
     * identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target#kind
     */
    readonly kind?: string;
    /**
     * LabelSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource labels.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target#labelSelector
     */
    readonly labelSelector?: string;
    /**
     * Name to match resources with.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target#name
     */
    readonly name?: string;
    /**
     * Namespace to select resources from.
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target#namespace
     */
    readonly namespace?: string;
    /**
     * Version of the API Group to select resources from.
     * Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target(obj: HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902Target | undefined): Record<string, any> | undefined;
/**
 * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace", "move", "copy", or
 * "test".
 * https://datatracker.ietf.org/doc/html/rfc6902#section-4
 *
 * @schema HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp
 */
export declare enum HelmReleaseV2Beta1SpecPostRenderersKustomizePatchesJson6902PatchOp {
    /** test */
    TEST = "test",
    /** remove */
    REMOVE = "remove",
    /** add */
    ADD = "add",
    /** replace */
    REPLACE = "replace",
    /** move */
    MOVE = "move",
    /** copy */
    COPY = "copy"
}
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmReleaseV2Beta2
 */
export declare class HelmReleaseV2Beta2 extends ApiObject {
    /**
     * Returns the apiVersion and kind for "HelmReleaseV2Beta2"
     */
    static readonly GVK: GroupVersionKind;
    /**
     * Renders a Kubernetes manifest for "HelmReleaseV2Beta2".
     *
     * This can be used to inline resource manifests inside other objects (e.g. as templates).
     *
     * @param props initialization props
     */
    static manifest(props?: HelmReleaseV2Beta2Props): any;
    /**
     * Defines a "HelmReleaseV2Beta2" API object
     * @param scope the scope in which to define this object
     * @param id a scope-local name for the object
     * @param props initialization props
     */
    constructor(scope: Construct, id: string, props?: HelmReleaseV2Beta2Props);
    /**
     * Renders the object to Kubernetes JSON.
     */
    toJson(): any;
}
/**
 * HelmRelease is the Schema for the helmreleases API
 *
 * @schema HelmReleaseV2Beta2
 */
export interface HelmReleaseV2Beta2Props {
    /**
     * @schema HelmReleaseV2Beta2#metadata
     */
    readonly metadata?: ApiObjectMetadata;
    /**
     * HelmReleaseSpec defines the desired state of a Helm release.
     *
     * @schema HelmReleaseV2Beta2#spec
     */
    readonly spec?: HelmReleaseV2Beta2Spec;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2Props' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2Props(obj: HelmReleaseV2Beta2Props | undefined): Record<string, any> | undefined;
/**
 * HelmReleaseSpec defines the desired state of a Helm release.
 *
 * @schema HelmReleaseV2Beta2Spec
 */
export interface HelmReleaseV2Beta2Spec {
    /**
     * Chart defines the template of the v1beta2.HelmChart that should be created
     * for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta2Spec#chart
     */
    readonly chart?: HelmReleaseV2Beta2SpecChart;
    /**
     * ChartRef holds a reference to a source controller resource containing the
     * Helm chart artifact.
     *
     * Note: this field is provisional to the v2 API, and not actively used
     * by v2beta2 HelmReleases.
     *
     * @schema HelmReleaseV2Beta2Spec#chartRef
     */
    readonly chartRef?: HelmReleaseV2Beta2SpecChartRef;
    /**
     * DependsOn may contain a meta.NamespacedObjectReference slice with
     * references to HelmRelease resources that must be ready before this HelmRelease
     * can be reconciled.
     *
     * @schema HelmReleaseV2Beta2Spec#dependsOn
     */
    readonly dependsOn?: HelmReleaseV2Beta2SpecDependsOn[];
    /**
     * DriftDetection holds the configuration for detecting and handling
     * differences between the manifest in the Helm storage and the resources
     * currently existing in the cluster.
     *
     * @schema HelmReleaseV2Beta2Spec#driftDetection
     */
    readonly driftDetection?: HelmReleaseV2Beta2SpecDriftDetection;
    /**
     * Install holds the configuration for Helm install actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta2Spec#install
     */
    readonly install?: HelmReleaseV2Beta2SpecInstall;
    /**
     * Interval at which to reconcile the Helm release.
     *
     * @schema HelmReleaseV2Beta2Spec#interval
     */
    readonly interval: string;
    /**
     * KubeConfig for reconciling the HelmRelease on a remote cluster.
     * When used in combination with HelmReleaseSpec.ServiceAccountName,
     * forces the controller to act on behalf of that Service Account at the
     * target cluster.
     * If the --default-service-account flag is set, its value will be used as
     * a controller level fallback for when HelmReleaseSpec.ServiceAccountName
     * is empty.
     *
     * @schema HelmReleaseV2Beta2Spec#kubeConfig
     */
    readonly kubeConfig?: HelmReleaseV2Beta2SpecKubeConfig;
    /**
     * MaxHistory is the number of revisions saved by Helm for this HelmRelease.
     * Use '0' for an unlimited number of revisions; defaults to '5'.
     *
     * @schema HelmReleaseV2Beta2Spec#maxHistory
     */
    readonly maxHistory?: number;
    /**
     * PersistentClient tells the controller to use a persistent Kubernetes
     * client for this release. When enabled, the client will be reused for the
     * duration of the reconciliation, instead of being created and destroyed
     * for each (step of a) Helm action.
     *
     * This can improve performance, but may cause issues with some Helm charts
     * that for example do create Custom Resource Definitions during installation
     * outside Helm's CRD lifecycle hooks, which are then not observed to be
     * available by e.g. post-install hooks.
     *
     * If not set, it defaults to true.
     *
     * @schema HelmReleaseV2Beta2Spec#persistentClient
     */
    readonly persistentClient?: boolean;
    /**
     * PostRenderers holds an array of Helm PostRenderers, which will be applied in order
     * of their definition.
     *
     * @schema HelmReleaseV2Beta2Spec#postRenderers
     */
    readonly postRenderers?: HelmReleaseV2Beta2SpecPostRenderers[];
    /**
     * ReleaseName used for the Helm release. Defaults to a composition of
     * '[TargetNamespace-]Name'.
     *
     * @default a composition of
     * @schema HelmReleaseV2Beta2Spec#releaseName
     */
    readonly releaseName?: string;
    /**
     * Rollback holds the configuration for Helm rollback actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta2Spec#rollback
     */
    readonly rollback?: HelmReleaseV2Beta2SpecRollback;
    /**
     * The name of the Kubernetes service account to impersonate
     * when reconciling this HelmRelease.
     *
     * @schema HelmReleaseV2Beta2Spec#serviceAccountName
     */
    readonly serviceAccountName?: string;
    /**
     * StorageNamespace used for the Helm storage.
     * Defaults to the namespace of the HelmRelease.
     *
     * @default the namespace of the HelmRelease.
     * @schema HelmReleaseV2Beta2Spec#storageNamespace
     */
    readonly storageNamespace?: string;
    /**
     * Suspend tells the controller to suspend reconciliation for this HelmRelease,
     * it does not apply to already started reconciliations. Defaults to false.
     *
     * @default false.
     * @schema HelmReleaseV2Beta2Spec#suspend
     */
    readonly suspend?: boolean;
    /**
     * TargetNamespace to target when performing operations for the HelmRelease.
     * Defaults to the namespace of the HelmRelease.
     *
     * @default the namespace of the HelmRelease.
     * @schema HelmReleaseV2Beta2Spec#targetNamespace
     */
    readonly targetNamespace?: string;
    /**
     * Test holds the configuration for Helm test actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta2Spec#test
     */
    readonly test?: HelmReleaseV2Beta2SpecTest;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like Jobs
     * for hooks) during the performance of a Helm action. Defaults to '5m0s'.
     *
     * @default 5m0s'.
     * @schema HelmReleaseV2Beta2Spec#timeout
     */
    readonly timeout?: string;
    /**
     * Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta2Spec#uninstall
     */
    readonly uninstall?: HelmReleaseV2Beta2SpecUninstall;
    /**
     * Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta2Spec#upgrade
     */
    readonly upgrade?: HelmReleaseV2Beta2SpecUpgrade;
    /**
     * Values holds the values for this Helm release.
     *
     * @schema HelmReleaseV2Beta2Spec#values
     */
    readonly values?: any;
    /**
     * ValuesFrom holds references to resources containing Helm values for this HelmRelease,
     * and information about how they should be merged.
     *
     * @schema HelmReleaseV2Beta2Spec#valuesFrom
     */
    readonly valuesFrom?: HelmReleaseV2Beta2SpecValuesFrom[];
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2Spec' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2Spec(obj: HelmReleaseV2Beta2Spec | undefined): Record<string, any> | undefined;
/**
 * Chart defines the template of the v1beta2.HelmChart that should be created
 * for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta2SpecChart
 */
export interface HelmReleaseV2Beta2SpecChart {
    /**
     * ObjectMeta holds the template for metadata like labels and annotations.
     *
     * @schema HelmReleaseV2Beta2SpecChart#metadata
     */
    readonly metadata?: HelmReleaseV2Beta2SpecChartMetadata;
    /**
     * Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease.
     *
     * @schema HelmReleaseV2Beta2SpecChart#spec
     */
    readonly spec: HelmReleaseV2Beta2SpecChartSpec;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChart' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecChart(obj: HelmReleaseV2Beta2SpecChart | undefined): Record<string, any> | undefined;
/**
 * ChartRef holds a reference to a source controller resource containing the
 * Helm chart artifact.
 *
 * Note: this field is provisional to the v2 API, and not actively used
 * by v2beta2 HelmReleases.
 *
 * @schema HelmReleaseV2Beta2SpecChartRef
 */
export interface HelmReleaseV2Beta2SpecChartRef {
    /**
     * APIVersion of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecChartRef#apiVersion
     */
    readonly apiVersion?: string;
    /**
     * Kind of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecChartRef#kind
     */
    readonly kind: HelmReleaseV2Beta2SpecChartRefKind;
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecChartRef#name
     */
    readonly name: string;
    /**
     * Namespace of the referent, defaults to the namespace of the Kubernetes
     * resource object that contains the reference.
     *
     * @schema HelmReleaseV2Beta2SpecChartRef#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartRef' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecChartRef(obj: HelmReleaseV2Beta2SpecChartRef | undefined): Record<string, any> | undefined;
/**
 * NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any
 * namespace.
 *
 * @schema HelmReleaseV2Beta2SpecDependsOn
 */
export interface HelmReleaseV2Beta2SpecDependsOn {
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecDependsOn#name
     */
    readonly name: string;
    /**
     * Namespace of the referent, when not specified it acts as LocalObjectReference.
     *
     * @schema HelmReleaseV2Beta2SpecDependsOn#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecDependsOn' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecDependsOn(obj: HelmReleaseV2Beta2SpecDependsOn | undefined): Record<string, any> | undefined;
/**
 * DriftDetection holds the configuration for detecting and handling
 * differences between the manifest in the Helm storage and the resources
 * currently existing in the cluster.
 *
 * @schema HelmReleaseV2Beta2SpecDriftDetection
 */
export interface HelmReleaseV2Beta2SpecDriftDetection {
    /**
     * Ignore contains a list of rules for specifying which changes to ignore
     * during diffing.
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetection#ignore
     */
    readonly ignore?: HelmReleaseV2Beta2SpecDriftDetectionIgnore[];
    /**
     * Mode defines how differences should be handled between the Helm manifest
     * and the manifest currently applied to the cluster.
     * If not explicitly set, it defaults to DiffModeDisabled.
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetection#mode
     */
    readonly mode?: HelmReleaseV2Beta2SpecDriftDetectionMode;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecDriftDetection' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecDriftDetection(obj: HelmReleaseV2Beta2SpecDriftDetection | undefined): Record<string, any> | undefined;
/**
 * Install holds the configuration for Helm install actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta2SpecInstall
 */
export interface HelmReleaseV2Beta2SpecInstall {
    /**
     * 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 `Create` and if omitted
     * CRDs are installed but not updated.
     *
     * 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 applied (installed) during Helm install action.
     * With this option users can opt in to CRD replace existing CRDs on Helm
     * install actions, which is not (yet) natively supported by Helm.
     * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
     *
     * @default Create` and if omitted
     * @schema HelmReleaseV2Beta2SpecInstall#crds
     */
    readonly crds?: HelmReleaseV2Beta2SpecInstallCrds;
    /**
     * CreateNamespace tells the Helm install action to create the
     * HelmReleaseSpec.TargetNamespace if it does not exist yet.
     * On uninstall, the namespace will not be garbage collected.
     *
     * @schema HelmReleaseV2Beta2SpecInstall#createNamespace
     */
    readonly createNamespace?: boolean;
    /**
     * DisableHooks prevents hooks from running during the Helm install action.
     *
     * @schema HelmReleaseV2Beta2SpecInstall#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableOpenAPIValidation prevents the Helm install action from validating
     * rendered templates against the Kubernetes OpenAPI Schema.
     *
     * @schema HelmReleaseV2Beta2SpecInstall#disableOpenAPIValidation
     */
    readonly disableOpenApiValidation?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * install has been performed.
     *
     * @schema HelmReleaseV2Beta2SpecInstall#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * install has been performed.
     *
     * @schema HelmReleaseV2Beta2SpecInstall#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Remediation holds the remediation configuration for when the Helm install
     * action for the HelmRelease fails. The default is to not perform any action.
     *
     * @schema HelmReleaseV2Beta2SpecInstall#remediation
     */
    readonly remediation?: HelmReleaseV2Beta2SpecInstallRemediation;
    /**
     * Replace tells the Helm install action to re-use the 'ReleaseName', but only
     * if that name is a deleted release which remains in the history.
     *
     * @schema HelmReleaseV2Beta2SpecInstall#replace
     */
    readonly replace?: boolean;
    /**
     * SkipCRDs tells the Helm install action to not install any CRDs. By default,
     * CRDs are installed if not already present.
     *
     * Deprecated use CRD policy (`crds`) attribute with value `Skip` instead.
     *
     * @schema HelmReleaseV2Beta2SpecInstall#skipCRDs
     */
    readonly skipCrDs?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm install action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta2SpecInstall#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecInstall' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecInstall(obj: HelmReleaseV2Beta2SpecInstall | undefined): Record<string, any> | undefined;
/**
 * KubeConfig for reconciling the HelmRelease on a remote cluster.
 * When used in combination with HelmReleaseSpec.ServiceAccountName,
 * forces the controller to act on behalf of that Service Account at the
 * target cluster.
 * If the --default-service-account flag is set, its value will be used as
 * a controller level fallback for when HelmReleaseSpec.ServiceAccountName
 * is empty.
 *
 * @schema HelmReleaseV2Beta2SpecKubeConfig
 */
export interface HelmReleaseV2Beta2SpecKubeConfig {
    /**
     * SecretRef holds the name of a secret that contains a key with
     * the kubeconfig file as the value. If no key is set, the key will default
     * to 'value'.
     * It is recommended that the kubeconfig is self-contained, and the secret
     * is regularly updated if credentials such as a cloud-access-token expire.
     * Cloud specific `cmd-path` auth helpers will not function without adding
     * binaries and credentials to the Pod that is responsible for reconciling
     * Kubernetes resources.
     *
     * @schema HelmReleaseV2Beta2SpecKubeConfig#secretRef
     */
    readonly secretRef: HelmReleaseV2Beta2SpecKubeConfigSecretRef;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecKubeConfig' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecKubeConfig(obj: HelmReleaseV2Beta2SpecKubeConfig | undefined): Record<string, any> | undefined;
/**
 * PostRenderer contains a Helm PostRenderer specification.
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderers
 */
export interface HelmReleaseV2Beta2SpecPostRenderers {
    /**
     * Kustomization to apply as PostRenderer.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderers#kustomize
     */
    readonly kustomize?: HelmReleaseV2Beta2SpecPostRenderersKustomize;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderers' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecPostRenderers(obj: HelmReleaseV2Beta2SpecPostRenderers | undefined): Record<string, any> | undefined;
/**
 * Rollback holds the configuration for Helm rollback actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta2SpecRollback
 */
export interface HelmReleaseV2Beta2SpecRollback {
    /**
     * CleanupOnFail allows deletion of new resources created during the Helm
     * rollback action when it fails.
     *
     * @schema HelmReleaseV2Beta2SpecRollback#cleanupOnFail
     */
    readonly cleanupOnFail?: boolean;
    /**
     * DisableHooks prevents hooks from running during the Helm rollback action.
     *
     * @schema HelmReleaseV2Beta2SpecRollback#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * rollback has been performed.
     *
     * @schema HelmReleaseV2Beta2SpecRollback#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * rollback has been performed.
     *
     * @schema HelmReleaseV2Beta2SpecRollback#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Force forces resource updates through a replacement strategy.
     *
     * @schema HelmReleaseV2Beta2SpecRollback#force
     */
    readonly force?: boolean;
    /**
     * Recreate performs pod restarts for the resource if applicable.
     *
     * @schema HelmReleaseV2Beta2SpecRollback#recreate
     */
    readonly recreate?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm rollback action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta2SpecRollback#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecRollback' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecRollback(obj: HelmReleaseV2Beta2SpecRollback | undefined): Record<string, any> | undefined;
/**
 * Test holds the configuration for Helm test actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta2SpecTest
 */
export interface HelmReleaseV2Beta2SpecTest {
    /**
     * Enable enables Helm test actions for this HelmRelease after an Helm install
     * or upgrade action has been performed.
     *
     * @schema HelmReleaseV2Beta2SpecTest#enable
     */
    readonly enable?: boolean;
    /**
     * Filters is a list of tests to run or exclude from running.
     *
     * @schema HelmReleaseV2Beta2SpecTest#filters
     */
    readonly filters?: HelmReleaseV2Beta2SpecTestFilters[];
    /**
     * IgnoreFailures tells the controller to skip remediation when the Helm tests
     * are run but fail. Can be overwritten for tests run after install or upgrade
     * actions in 'Install.IgnoreTestFailures' and 'Upgrade.IgnoreTestFailures'.
     *
     * @schema HelmReleaseV2Beta2SpecTest#ignoreFailures
     */
    readonly ignoreFailures?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation during
     * the performance of a Helm test action. Defaults to 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta2SpecTest#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecTest' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecTest(obj: HelmReleaseV2Beta2SpecTest | undefined): Record<string, any> | undefined;
/**
 * Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta2SpecUninstall
 */
export interface HelmReleaseV2Beta2SpecUninstall {
    /**
     * DeletionPropagation specifies the deletion propagation policy when
     * a Helm uninstall is performed.
     *
     * @schema HelmReleaseV2Beta2SpecUninstall#deletionPropagation
     */
    readonly deletionPropagation?: HelmReleaseV2Beta2SpecUninstallDeletionPropagation;
    /**
     * DisableHooks prevents hooks from running during the Helm rollback action.
     *
     * @schema HelmReleaseV2Beta2SpecUninstall#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableWait disables waiting for all the resources to be deleted after
     * a Helm uninstall is performed.
     *
     * @schema HelmReleaseV2Beta2SpecUninstall#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * KeepHistory tells Helm to remove all associated resources and mark the
     * release as deleted, but retain the release history.
     *
     * @schema HelmReleaseV2Beta2SpecUninstall#keepHistory
     */
    readonly keepHistory?: boolean;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm uninstall action. Defaults
     * to 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta2SpecUninstall#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecUninstall' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecUninstall(obj: HelmReleaseV2Beta2SpecUninstall | undefined): Record<string, any> | undefined;
/**
 * Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta2SpecUpgrade
 */
export interface HelmReleaseV2Beta2SpecUpgrade {
    /**
     * CleanupOnFail allows deletion of new resources created during the Helm
     * upgrade action when it fails.
     *
     * @schema HelmReleaseV2Beta2SpecUpgrade#cleanupOnFail
     */
    readonly 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.
     *
     * @default Skip` and if omitted
     * @schema HelmReleaseV2Beta2SpecUpgrade#crds
     */
    readonly crds?: HelmReleaseV2Beta2SpecUpgradeCrds;
    /**
     * DisableHooks prevents hooks from running during the Helm upgrade action.
     *
     * @schema HelmReleaseV2Beta2SpecUpgrade#disableHooks
     */
    readonly disableHooks?: boolean;
    /**
     * DisableOpenAPIValidation prevents the Helm upgrade action from validating
     * rendered templates against the Kubernetes OpenAPI Schema.
     *
     * @schema HelmReleaseV2Beta2SpecUpgrade#disableOpenAPIValidation
     */
    readonly disableOpenApiValidation?: boolean;
    /**
     * DisableWait disables the waiting for resources to be ready after a Helm
     * upgrade has been performed.
     *
     * @schema HelmReleaseV2Beta2SpecUpgrade#disableWait
     */
    readonly disableWait?: boolean;
    /**
     * DisableWaitForJobs disables waiting for jobs to complete after a Helm
     * upgrade has been performed.
     *
     * @schema HelmReleaseV2Beta2SpecUpgrade#disableWaitForJobs
     */
    readonly disableWaitForJobs?: boolean;
    /**
     * Force forces resource updates through a replacement strategy.
     *
     * @schema HelmReleaseV2Beta2SpecUpgrade#force
     */
    readonly 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.
     *
     * @schema HelmReleaseV2Beta2SpecUpgrade#preserveValues
     */
    readonly 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.
     *
     * @schema HelmReleaseV2Beta2SpecUpgrade#remediation
     */
    readonly remediation?: HelmReleaseV2Beta2SpecUpgradeRemediation;
    /**
     * Timeout is the time to wait for any individual Kubernetes operation (like
     * Jobs for hooks) during the performance of a Helm upgrade action. Defaults to
     * 'HelmReleaseSpec.Timeout'.
     *
     * @default HelmReleaseSpec.Timeout'.
     * @schema HelmReleaseV2Beta2SpecUpgrade#timeout
     */
    readonly timeout?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecUpgrade' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecUpgrade(obj: HelmReleaseV2Beta2SpecUpgrade | undefined): Record<string, any> | undefined;
/**
 * ValuesReference contains a reference to a resource containing Helm values,
 * and optionally the key they can be found at.
 *
 * @schema HelmReleaseV2Beta2SpecValuesFrom
 */
export interface HelmReleaseV2Beta2SpecValuesFrom {
    /**
     * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
     *
     * @schema HelmReleaseV2Beta2SpecValuesFrom#kind
     */
    readonly kind: HelmReleaseV2Beta2SpecValuesFromKind;
    /**
     * Name of the values referent. Should reside in the same namespace as the
     * referring resource.
     *
     * @schema HelmReleaseV2Beta2SpecValuesFrom#name
     */
    readonly name: string;
    /**
     * Optional marks this ValuesReference as optional. When set, a not found error
     * for the values reference is ignored, but any ValuesKey, TargetPath or
     * transient error will still result in a reconciliation failure.
     *
     * @schema HelmReleaseV2Beta2SpecValuesFrom#optional
     */
    readonly optional?: boolean;
    /**
     * TargetPath is the YAML dot notation path the value should be merged at. When
     * set, the ValuesKey is expected to be a single flat value. Defaults to 'None',
     * which results in the values getting merged at the root.
     *
     * @default None',
     * @schema HelmReleaseV2Beta2SpecValuesFrom#targetPath
     */
    readonly targetPath?: string;
    /**
     * ValuesKey is the data key where the values.yaml or a specific value can be
     * found at. Defaults to 'values.yaml'.
     *
     * @default values.yaml'.
     * @schema HelmReleaseV2Beta2SpecValuesFrom#valuesKey
     */
    readonly valuesKey?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecValuesFrom' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecValuesFrom(obj: HelmReleaseV2Beta2SpecValuesFrom | undefined): Record<string, any> | undefined;
/**
 * ObjectMeta holds the template for metadata like labels and annotations.
 *
 * @schema HelmReleaseV2Beta2SpecChartMetadata
 */
export interface HelmReleaseV2Beta2SpecChartMetadata {
    /**
     * Annotations is an unstructured key value map stored with a resource that may be
     * set by external tools to store and retrieve arbitrary metadata. They are not
     * queryable and should be preserved when modifying objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
     *
     * @schema HelmReleaseV2Beta2SpecChartMetadata#annotations
     */
    readonly annotations?: {
        [key: string]: string;
    };
    /**
     * Map of string keys and values that can be used to organize and categorize
     * (scope and select) objects.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
     *
     * @schema HelmReleaseV2Beta2SpecChartMetadata#labels
     */
    readonly labels?: {
        [key: string]: string;
    };
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartMetadata' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecChartMetadata(obj: HelmReleaseV2Beta2SpecChartMetadata | undefined): Record<string, any> | undefined;
/**
 * Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease.
 *
 * @schema HelmReleaseV2Beta2SpecChartSpec
 */
export interface HelmReleaseV2Beta2SpecChartSpec {
    /**
     * The name or path the Helm chart is available at in the SourceRef.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpec#chart
     */
    readonly chart: string;
    /**
     * IgnoreMissingValuesFiles controls whether to silently ignore missing values files rather than failing.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpec#ignoreMissingValuesFiles
     */
    readonly ignoreMissingValuesFiles?: boolean;
    /**
     * Interval at which to check the v1.Source for updates. Defaults to
     * 'HelmReleaseSpec.Interval'.
     *
     * @default HelmReleaseSpec.Interval'.
     * @schema HelmReleaseV2Beta2SpecChartSpec#interval
     */
    readonly interval?: string;
    /**
     * Determines what enables the creation of a new artifact. Valid values are
     * ('ChartVersion', 'Revision').
     * See the documentation of the values for an explanation on their behavior.
     * Defaults to ChartVersion when omitted.
     *
     * @default ChartVersion when omitted.
     * @schema HelmReleaseV2Beta2SpecChartSpec#reconcileStrategy
     */
    readonly reconcileStrategy?: HelmReleaseV2Beta2SpecChartSpecReconcileStrategy;
    /**
     * The name and namespace of the v1.Source the chart is available at.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpec#sourceRef
     */
    readonly sourceRef: HelmReleaseV2Beta2SpecChartSpecSourceRef;
    /**
     * Alternative values file to use as the default chart values, expected to
     * be a relative path in the SourceRef. Deprecated in favor of ValuesFiles,
     * for backwards compatibility the file defined here is merged before the
     * ValuesFiles items. Ignored when omitted.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpec#valuesFile
     */
    readonly valuesFile?: string;
    /**
     * Alternative list of values files to use as the chart values (values.yaml
     * is not included by default), expected to be a relative path in the SourceRef.
     * Values files are merged in the order of this list with the last file overriding
     * the first. Ignored when omitted.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpec#valuesFiles
     */
    readonly valuesFiles?: string[];
    /**
     * Verify contains the secret name containing the trusted public keys
     * used to verify the signature and specifies which provider to use to check
     * whether OCI image is authentic.
     * This field is only supported for OCI sources.
     * Chart dependencies, which are not bundled in the umbrella chart artifact,
     * are not verified.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpec#verify
     */
    readonly verify?: HelmReleaseV2Beta2SpecChartSpecVerify;
    /**
     * Version semver expression, ignored for charts from v1beta2.GitRepository and
     * v1beta2.Bucket sources. Defaults to latest when omitted.
     *
     * @default latest when omitted.
     * @schema HelmReleaseV2Beta2SpecChartSpec#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartSpec' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecChartSpec(obj: HelmReleaseV2Beta2SpecChartSpec | undefined): Record<string, any> | undefined;
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseV2Beta2SpecChartRefKind
 */
export declare enum HelmReleaseV2Beta2SpecChartRefKind {
    /** OCIRepository */
    OCI_REPOSITORY = "OCIRepository",
    /** HelmChart */
    HELM_CHART = "HelmChart"
}
/**
 * IgnoreRule defines a rule to selectively disregard specific changes during
 * the drift detection process.
 *
 * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnore
 */
export interface HelmReleaseV2Beta2SpecDriftDetectionIgnore {
    /**
     * Paths is a list of JSON Pointer (RFC 6901) paths to be excluded from
     * consideration in a Kubernetes object.
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnore#paths
     */
    readonly paths: string[];
    /**
     * Target is a selector for specifying Kubernetes objects to which this
     * rule applies.
     * If Target is not set, the Paths will be ignored for all Kubernetes
     * objects within the manifest of the Helm release.
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnore#target
     */
    readonly target?: HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecDriftDetectionIgnore' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnore(obj: HelmReleaseV2Beta2SpecDriftDetectionIgnore | undefined): Record<string, any> | undefined;
/**
 * Mode defines how differences should be handled between the Helm manifest
 * and the manifest currently applied to the cluster.
 * If not explicitly set, it defaults to DiffModeDisabled.
 *
 * @schema HelmReleaseV2Beta2SpecDriftDetectionMode
 */
export declare enum HelmReleaseV2Beta2SpecDriftDetectionMode {
    /** enabled */
    ENABLED = "enabled",
    /** warn */
    WARN = "warn",
    /** disabled */
    DISABLED = "disabled"
}
/**
 * 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 `Create` and if omitted
 * CRDs are installed but not updated.
 *
 * 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 applied (installed) during Helm install action.
 * With this option users can opt in to CRD replace existing CRDs on Helm
 * install actions, which is not (yet) natively supported by Helm.
 * https://helm.sh/docs/chart_best_practices/custom_resource_definitions.
 *
 * @default Create` and if omitted
 * @schema HelmReleaseV2Beta2SpecInstallCrds
 */
export declare enum HelmReleaseV2Beta2SpecInstallCrds {
    /** Skip */
    SKIP = "Skip",
    /** Create */
    CREATE = "Create",
    /** CreateReplace */
    CREATE_REPLACE = "CreateReplace"
}
/**
 * Remediation holds the remediation configuration for when the Helm install
 * action for the HelmRelease fails. The default is to not perform any action.
 *
 * @schema HelmReleaseV2Beta2SpecInstallRemediation
 */
export interface HelmReleaseV2Beta2SpecInstallRemediation {
    /**
     * IgnoreTestFailures tells the controller to skip remediation when the Helm
     * tests are run after an install action but fail. Defaults to
     * 'Test.IgnoreFailures'.
     *
     * @default Test.IgnoreFailures'.
     * @schema HelmReleaseV2Beta2SpecInstallRemediation#ignoreTestFailures
     */
    readonly ignoreTestFailures?: boolean;
    /**
     * RemediateLastFailure tells the controller to remediate the last failure, when
     * no retries remain. Defaults to 'false'.
     *
     * @default false'.
     * @schema HelmReleaseV2Beta2SpecInstallRemediation#remediateLastFailure
     */
    readonly remediateLastFailure?: boolean;
    /**
     * Retries is the number of retries that should be attempted on failures before
     * bailing. Remediation, using an uninstall, is performed between each attempt.
     * Defaults to '0', a negative integer equals to unlimited retries.
     *
     * @default 0', a negative integer equals to unlimited retries.
     * @schema HelmReleaseV2Beta2SpecInstallRemediation#retries
     */
    readonly retries?: number;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecInstallRemediation' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecInstallRemediation(obj: HelmReleaseV2Beta2SpecInstallRemediation | undefined): Record<string, any> | undefined;
/**
 * SecretRef holds the name of a secret that contains a key with
 * the kubeconfig file as the value. If no key is set, the key will default
 * to 'value'.
 * It is recommended that the kubeconfig is self-contained, and the secret
 * is regularly updated if credentials such as a cloud-access-token expire.
 * Cloud specific `cmd-path` auth helpers will not function without adding
 * binaries and credentials to the Pod that is responsible for reconciling
 * Kubernetes resources.
 *
 * @schema HelmReleaseV2Beta2SpecKubeConfigSecretRef
 */
export interface HelmReleaseV2Beta2SpecKubeConfigSecretRef {
    /**
     * Key in the Secret, when not specified an implementation-specific default key is used.
     *
     * @schema HelmReleaseV2Beta2SpecKubeConfigSecretRef#key
     */
    readonly key?: string;
    /**
     * Name of the Secret.
     *
     * @schema HelmReleaseV2Beta2SpecKubeConfigSecretRef#name
     */
    readonly name: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecKubeConfigSecretRef' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecKubeConfigSecretRef(obj: HelmReleaseV2Beta2SpecKubeConfigSecretRef | undefined): Record<string, any> | undefined;
/**
 * Kustomization to apply as PostRenderer.
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomize
 */
export interface HelmReleaseV2Beta2SpecPostRenderersKustomize {
    /**
     * Images is a list of (image name, new name, new tag or digest)
     * for changing image names, tags or digests. This can also be achieved with a
     * patch, but this operator is simpler to specify.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomize#images
     */
    readonly images?: HelmReleaseV2Beta2SpecPostRenderersKustomizeImages[];
    /**
     * Strategic merge and JSON patches, defined as inline YAML objects,
     * capable of targeting objects based on kind, label and annotation selectors.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomize#patches
     */
    readonly patches?: HelmReleaseV2Beta2SpecPostRenderersKustomizePatches[];
    /**
     * JSON 6902 patches, defined as inline YAML objects.
     * Deprecated: use Patches instead.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomize#patchesJson6902
     */
    readonly patchesJson6902?: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902[];
    /**
     * Strategic merge patches, defined as inline YAML objects.
     * Deprecated: use Patches instead.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomize#patchesStrategicMerge
     */
    readonly patchesStrategicMerge?: any[];
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomize' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomize(obj: HelmReleaseV2Beta2SpecPostRenderersKustomize | undefined): Record<string, any> | undefined;
/**
 * Filter holds the configuration for individual Helm test filters.
 *
 * @schema HelmReleaseV2Beta2SpecTestFilters
 */
export interface HelmReleaseV2Beta2SpecTestFilters {
    /**
     * Exclude specifies whether the named test should be excluded.
     *
     * @schema HelmReleaseV2Beta2SpecTestFilters#exclude
     */
    readonly exclude?: boolean;
    /**
     * Name is the name of the test.
     *
     * @schema HelmReleaseV2Beta2SpecTestFilters#name
     */
    readonly name: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecTestFilters' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecTestFilters(obj: HelmReleaseV2Beta2SpecTestFilters | undefined): Record<string, any> | undefined;
/**
 * DeletionPropagation specifies the deletion propagation policy when
 * a Helm uninstall is performed.
 *
 * @schema HelmReleaseV2Beta2SpecUninstallDeletionPropagation
 */
export declare enum HelmReleaseV2Beta2SpecUninstallDeletionPropagation {
    /** background */
    BACKGROUND = "background",
    /** foreground */
    FOREGROUND = "foreground",
    /** orphan */
    ORPHAN = "orphan"
}
/**
 * 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.
 *
 * @default Skip` and if omitted
 * @schema HelmReleaseV2Beta2SpecUpgradeCrds
 */
export declare enum HelmReleaseV2Beta2SpecUpgradeCrds {
    /** Skip */
    SKIP = "Skip",
    /** Create */
    CREATE = "Create",
    /** CreateReplace */
    CREATE_REPLACE = "CreateReplace"
}
/**
 * Remediation holds the remediation configuration for when the Helm upgrade
 * action for the HelmRelease fails. The default is to not perform any action.
 *
 * @schema HelmReleaseV2Beta2SpecUpgradeRemediation
 */
export interface HelmReleaseV2Beta2SpecUpgradeRemediation {
    /**
     * IgnoreTestFailures tells the controller to skip remediation when the Helm
     * tests are run after an upgrade action but fail.
     * Defaults to 'Test.IgnoreFailures'.
     *
     * @default Test.IgnoreFailures'.
     * @schema HelmReleaseV2Beta2SpecUpgradeRemediation#ignoreTestFailures
     */
    readonly ignoreTestFailures?: boolean;
    /**
     * RemediateLastFailure tells the controller to remediate the last failure, when
     * no retries remain. Defaults to 'false' unless 'Retries' is greater than 0.
     *
     * @default false' unless 'Retries' is greater than 0.
     * @schema HelmReleaseV2Beta2SpecUpgradeRemediation#remediateLastFailure
     */
    readonly remediateLastFailure?: boolean;
    /**
     * Retries is the number of retries that should be attempted on failures before
     * bailing. Remediation, using 'Strategy', is performed between each attempt.
     * Defaults to '0', a negative integer equals to unlimited retries.
     *
     * @default 0', a negative integer equals to unlimited retries.
     * @schema HelmReleaseV2Beta2SpecUpgradeRemediation#retries
     */
    readonly retries?: number;
    /**
     * Strategy to use for failure remediation. Defaults to 'rollback'.
     *
     * @default rollback'.
     * @schema HelmReleaseV2Beta2SpecUpgradeRemediation#strategy
     */
    readonly strategy?: HelmReleaseV2Beta2SpecUpgradeRemediationStrategy;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecUpgradeRemediation' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecUpgradeRemediation(obj: HelmReleaseV2Beta2SpecUpgradeRemediation | undefined): Record<string, any> | undefined;
/**
 * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
 *
 * @schema HelmReleaseV2Beta2SpecValuesFromKind
 */
export declare enum HelmReleaseV2Beta2SpecValuesFromKind {
    /** Secret */
    SECRET = "Secret",
    /** ConfigMap */
    CONFIG_MAP = "ConfigMap"
}
/**
 * Determines what enables the creation of a new artifact. Valid values are
 * ('ChartVersion', 'Revision').
 * See the documentation of the values for an explanation on their behavior.
 * Defaults to ChartVersion when omitted.
 *
 * @default ChartVersion when omitted.
 * @schema HelmReleaseV2Beta2SpecChartSpecReconcileStrategy
 */
export declare enum HelmReleaseV2Beta2SpecChartSpecReconcileStrategy {
    /** ChartVersion */
    CHART_VERSION = "ChartVersion",
    /** Revision */
    REVISION = "Revision"
}
/**
 * The name and namespace of the v1.Source the chart is available at.
 *
 * @schema HelmReleaseV2Beta2SpecChartSpecSourceRef
 */
export interface HelmReleaseV2Beta2SpecChartSpecSourceRef {
    /**
     * APIVersion of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpecSourceRef#apiVersion
     */
    readonly apiVersion?: string;
    /**
     * Kind of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpecSourceRef#kind
     */
    readonly kind: HelmReleaseV2Beta2SpecChartSpecSourceRefKind;
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpecSourceRef#name
     */
    readonly name: string;
    /**
     * Namespace of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpecSourceRef#namespace
     */
    readonly namespace?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartSpecSourceRef' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecChartSpecSourceRef(obj: HelmReleaseV2Beta2SpecChartSpecSourceRef | undefined): Record<string, any> | undefined;
/**
 * Verify contains the secret name containing the trusted public keys
 * used to verify the signature and specifies which provider to use to check
 * whether OCI image is authentic.
 * This field is only supported for OCI sources.
 * Chart dependencies, which are not bundled in the umbrella chart artifact,
 * are not verified.
 *
 * @schema HelmReleaseV2Beta2SpecChartSpecVerify
 */
export interface HelmReleaseV2Beta2SpecChartSpecVerify {
    /**
     * Provider specifies the technology used to sign the OCI Helm chart.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpecVerify#provider
     */
    readonly provider: HelmReleaseV2Beta2SpecChartSpecVerifyProvider;
    /**
     * SecretRef specifies the Kubernetes Secret containing the
     * trusted public keys.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpecVerify#secretRef
     */
    readonly secretRef?: HelmReleaseV2Beta2SpecChartSpecVerifySecretRef;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartSpecVerify' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecChartSpecVerify(obj: HelmReleaseV2Beta2SpecChartSpecVerify | undefined): Record<string, any> | undefined;
/**
 * Target is a selector for specifying Kubernetes objects to which this
 * rule applies.
 * If Target is not set, the Paths will be ignored for all Kubernetes
 * objects within the manifest of the Helm release.
 *
 * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget
 */
export interface HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget {
    /**
     * AnnotationSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource annotations.
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget#annotationSelector
     */
    readonly annotationSelector?: string;
    /**
     * Group is the API group to select resources from.
     * Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget#group
     */
    readonly group?: string;
    /**
     * Kind of the API Group to select resources from.
     * Together with Group and Version it is capable of unambiguously
     * identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget#kind
     */
    readonly kind?: string;
    /**
     * LabelSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource labels.
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget#labelSelector
     */
    readonly labelSelector?: string;
    /**
     * Name to match resources with.
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget#name
     */
    readonly name?: string;
    /**
     * Namespace to select resources from.
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget#namespace
     */
    readonly namespace?: string;
    /**
     * Version of the API Group to select resources from.
     * Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget(obj: HelmReleaseV2Beta2SpecDriftDetectionIgnoreTarget | undefined): Record<string, any> | undefined;
/**
 * Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag.
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizeImages
 */
export interface HelmReleaseV2Beta2SpecPostRenderersKustomizeImages {
    /**
     * Digest is the value used to replace the original image tag.
     * If digest is present NewTag value is ignored.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizeImages#digest
     */
    readonly digest?: string;
    /**
     * Name is a tag-less image name.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizeImages#name
     */
    readonly name: string;
    /**
     * NewName is the value used to replace the original name.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizeImages#newName
     */
    readonly newName?: string;
    /**
     * NewTag is the value used to replace the original tag.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizeImages#newTag
     */
    readonly newTag?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizeImages' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizeImages(obj: HelmReleaseV2Beta2SpecPostRenderersKustomizeImages | undefined): Record<string, any> | undefined;
/**
 * Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should
 * be applied to.
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatches
 */
export interface HelmReleaseV2Beta2SpecPostRenderersKustomizePatches {
    /**
     * Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with
     * an array of operation objects.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatches#patch
     */
    readonly patch: string;
    /**
     * Target points to the resources that the patch document should be applied to.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatches#target
     */
    readonly target?: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatches' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatches(obj: HelmReleaseV2Beta2SpecPostRenderersKustomizePatches | undefined): Record<string, any> | undefined;
/**
 * JSON6902Patch contains a JSON6902 patch and the target the patch should be applied to.
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902
 */
export interface HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902 {
    /**
     * Patch contains the JSON6902 patch document with an array of operation objects.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902#patch
     */
    readonly patch: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch[];
    /**
     * Target points to the resources that the patch document should be applied to.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902#target
     */
    readonly target: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902(obj: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902 | undefined): Record<string, any> | undefined;
/**
 * Strategy to use for failure remediation. Defaults to 'rollback'.
 *
 * @default rollback'.
 * @schema HelmReleaseV2Beta2SpecUpgradeRemediationStrategy
 */
export declare enum HelmReleaseV2Beta2SpecUpgradeRemediationStrategy {
    /** rollback */
    ROLLBACK = "rollback",
    /** uninstall */
    UNINSTALL = "uninstall"
}
/**
 * Kind of the referent.
 *
 * @schema HelmReleaseV2Beta2SpecChartSpecSourceRefKind
 */
export declare enum HelmReleaseV2Beta2SpecChartSpecSourceRefKind {
    /** HelmRepository */
    HELM_REPOSITORY = "HelmRepository",
    /** GitRepository */
    GIT_REPOSITORY = "GitRepository",
    /** Bucket */
    BUCKET = "Bucket"
}
/**
 * Provider specifies the technology used to sign the OCI Helm chart.
 *
 * @schema HelmReleaseV2Beta2SpecChartSpecVerifyProvider
 */
export declare enum HelmReleaseV2Beta2SpecChartSpecVerifyProvider {
    /** cosign */
    COSIGN = "cosign",
    /** notation */
    NOTATION = "notation"
}
/**
 * SecretRef specifies the Kubernetes Secret containing the
 * trusted public keys.
 *
 * @schema HelmReleaseV2Beta2SpecChartSpecVerifySecretRef
 */
export interface HelmReleaseV2Beta2SpecChartSpecVerifySecretRef {
    /**
     * Name of the referent.
     *
     * @schema HelmReleaseV2Beta2SpecChartSpecVerifySecretRef#name
     */
    readonly name: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecChartSpecVerifySecretRef' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecChartSpecVerifySecretRef(obj: HelmReleaseV2Beta2SpecChartSpecVerifySecretRef | undefined): Record<string, any> | undefined;
/**
 * Target points to the resources that the patch document should be applied to.
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget
 */
export interface HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget {
    /**
     * AnnotationSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource annotations.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget#annotationSelector
     */
    readonly annotationSelector?: string;
    /**
     * Group is the API group to select resources from.
     * Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget#group
     */
    readonly group?: string;
    /**
     * Kind of the API Group to select resources from.
     * Together with Group and Version it is capable of unambiguously
     * identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget#kind
     */
    readonly kind?: string;
    /**
     * LabelSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource labels.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget#labelSelector
     */
    readonly labelSelector?: string;
    /**
     * Name to match resources with.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget#name
     */
    readonly name?: string;
    /**
     * Namespace to select resources from.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget#namespace
     */
    readonly namespace?: string;
    /**
     * Version of the API Group to select resources from.
     * Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget(obj: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesTarget | undefined): Record<string, any> | undefined;
/**
 * JSON6902 is a JSON6902 operation object.
 * https://datatracker.ietf.org/doc/html/rfc6902#section-4
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch
 */
export interface HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch {
    /**
     * From contains a JSON-pointer value that references a location within the target document where the operation is
     * performed. The meaning of the value depends on the value of Op, and is NOT taken into account by all operations.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch#from
     */
    readonly from?: string;
    /**
     * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace", "move", "copy", or
     * "test".
     * https://datatracker.ietf.org/doc/html/rfc6902#section-4
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch#op
     */
    readonly op: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp;
    /**
     * Path contains the JSON-pointer value that references a location within the target document where the operation
     * is performed. The meaning of the value depends on the value of Op.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch#path
     */
    readonly path: string;
    /**
     * Value contains a valid JSON structure. The meaning of the value depends on the value of Op, and is NOT taken into
     * account by all operations.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch#value
     */
    readonly value?: any;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch(obj: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Patch | undefined): Record<string, any> | undefined;
/**
 * Target points to the resources that the patch document should be applied to.
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target
 */
export interface HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target {
    /**
     * AnnotationSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource annotations.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target#annotationSelector
     */
    readonly annotationSelector?: string;
    /**
     * Group is the API group to select resources from.
     * Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target#group
     */
    readonly group?: string;
    /**
     * Kind of the API Group to select resources from.
     * Together with Group and Version it is capable of unambiguously
     * identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target#kind
     */
    readonly kind?: string;
    /**
     * LabelSelector is a string that follows the label selection expression
     * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
     * It matches with the resource labels.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target#labelSelector
     */
    readonly labelSelector?: string;
    /**
     * Name to match resources with.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target#name
     */
    readonly name?: string;
    /**
     * Namespace to select resources from.
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target#namespace
     */
    readonly namespace?: string;
    /**
     * Version of the API Group to select resources from.
     * Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources.
     * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
     *
     * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target#version
     */
    readonly version?: string;
}
/**
 * Converts an object of type 'HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target' to JSON representation.
 */
export declare function toJson_HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target(obj: HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902Target | undefined): Record<string, any> | undefined;
/**
 * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace", "move", "copy", or
 * "test".
 * https://datatracker.ietf.org/doc/html/rfc6902#section-4
 *
 * @schema HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp
 */
export declare enum HelmReleaseV2Beta2SpecPostRenderersKustomizePatchesJson6902PatchOp {
    /** test */
    TEST = "test",
    /** remove */
    REMOVE = "remove",
    /** add */
    ADD = "add",
    /** replace */
    REPLACE = "replace",
    /** move */
    MOVE = "move",
    /** copy */
    COPY = "copy"
}
//# sourceMappingURL=helm.toolkit.fluxcd.io.d.ts.map