import { IComGithubFluxcdPkgApisAclAccessFrom } from "../../github.com/fluxcd/pkg/apis/acl/AccessFrom.js";
import { IComGithubFluxcdPkgApisMetaLocalObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/LocalObjectReference.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * HelmRepositorySpec specifies the required configuration to produce an
 * Artifact for a Helm repository index YAML.
 */
export interface IHelmRepositorySpec {
    /**
     * AccessFrom specifies an Access Control List for allowing cross-namespace
     * references to this object.
     * NOTE: Not implemented, provisional as of https://github.com/fluxcd/flux2/pull/2092
     */
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    /**
     * CertSecretRef can be given the name of a Secret containing
     * either or both of
     *
     * - a PEM-encoded client certificate (`tls.crt`) and private
     * key (`tls.key`);
     * - a PEM-encoded CA certificate (`ca.crt`)
     *
     * and whichever are supplied, will be used for connecting to the
     * registry. The client cert and key are useful if you are
     * authenticating with a certificate; the CA cert is useful if
     * you are using a self-signed server certificate. The Secret must
     * be of type `Opaque` or `kubernetes.io/tls`.
     *
     * It takes precedence over the values specified in the Secret referred
     * to by `.spec.secretRef`.
     */
    "certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * Insecure allows connecting to a non-TLS HTTP container registry.
     * This field is only taken into account if the .spec.type field is set to 'oci'.
     */
    "insecure"?: boolean;
    "interval"?: string;
    /**
     * PassCredentials allows the credentials from the SecretRef to be passed
     * on to a host that does not match the host as defined in URL.
     * This may be required if the host of the advertised chart URLs in the
     * index differ from the defined URL.
     * Enabling this should be done with caution, as it can potentially result
     * in credentials getting stolen in a MITM-attack.
     */
    "passCredentials"?: boolean;
    /**
     * Provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.
     * This field is optional, and only taken into account if the .spec.type field is set to 'oci'.
     * When not specified, defaults to 'generic'.
     */
    "provider"?: "generic" | "aws" | "azure" | "gcp";
    /**
     * SecretRef specifies the Secret containing authentication credentials
     * for the HelmRepository.
     * For HTTP/S basic auth the secret must contain 'username' and 'password'
     * fields.
     * Support for TLS auth using the 'certFile' and 'keyFile', and/or 'caFile'
     * keys is deprecated. Please use `.spec.certSecretRef` instead.
     */
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * Suspend tells the controller to suspend the reconciliation of this
     * HelmRepository.
     */
    "suspend"?: boolean;
    "timeout"?: string;
    /**
     * Type of the HelmRepository.
     * When this field is set to  "oci", the URL field value must be prefixed with "oci://".
     */
    "type"?: "default" | "oci";
    /**
     * URL of the Helm repository, a valid URL contains at least a protocol and
     * host.
     */
    "url": string;
}
/**
 * HelmRepositorySpec specifies the required configuration to produce an
 * Artifact for a Helm repository index YAML.
 */
export declare class HelmRepositorySpec extends Model<IHelmRepositorySpec> implements IHelmRepositorySpec {
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    "certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "insecure"?: boolean;
    "interval"?: string;
    "passCredentials"?: boolean;
    "provider"?: "generic" | "aws" | "azure" | "gcp";
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "suspend"?: boolean;
    "timeout"?: string;
    "type"?: "default" | "oci";
    "url": string;
    constructor(data?: ModelData<IHelmRepositorySpec>);
}
export type { IHelmRepositorySpec as IComGithubFluxcdSourceControllerApiV1HelmRepositorySpec, HelmRepositorySpec as ComGithubFluxcdSourceControllerApiV1HelmRepositorySpec };
