import { IComGithubFluxcdPkgApisMetaLocalObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/LocalObjectReference.js";
import { IComGithubFluxcdSourceControllerApiV1OCILayerSelector } from "./OCILayerSelector.js";
import { IComGithubFluxcdSourceControllerApiV1OCIRepositoryRef } from "./OCIRepositoryRef.js";
import { IComGithubFluxcdSourceControllerApiV1OCIRepositoryVerification } from "./OCIRepositoryVerification.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * OCIRepositorySpec defines the desired state of OCIRepository
 */
export interface IOCIRepositorySpec {
    /**
     * 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`.
     */
    "certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * Ignore overrides the set of excluded patterns in the .sourceignore format
     * (which is the same as .gitignore). If not provided, a default will be used,
     * consult the documentation for your version to find out what those are.
     */
    "ignore"?: string;
    /**
     * Insecure allows connecting to a non-TLS HTTP container registry.
     */
    "insecure"?: boolean;
    "interval": string;
    /**
     * LayerSelector specifies which layer should be extracted from the OCI artifact.
     * When not specified, the first layer found in the artifact is selected.
     */
    "layerSelector"?: IComGithubFluxcdSourceControllerApiV1OCILayerSelector;
    /**
     * The provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.
     * When not specified, defaults to 'generic'.
     */
    "provider"?: "generic" | "aws" | "azure" | "gcp";
    /**
     * ProxySecretRef specifies the Secret containing the proxy configuration
     * to use while communicating with the container registry.
     */
    "proxySecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * The OCI reference to pull and monitor for changes,
     * defaults to the latest tag.
     */
    "ref"?: IComGithubFluxcdSourceControllerApiV1OCIRepositoryRef;
    /**
     * SecretRef contains the secret name containing the registry login
     * credentials to resolve image metadata.
     * The secret must be of type kubernetes.io/dockerconfigjson.
     */
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate
     * the image pull if the service account has attached pull secrets. For more information:
     * https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account
     */
    "serviceAccountName"?: string;
    /**
     * This flag tells the controller to suspend the reconciliation of this source.
     */
    "suspend"?: boolean;
    "timeout"?: string;
    /**
     * URL is a reference to an OCI artifact repository hosted
     * on a remote container registry.
     */
    "url": 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.
     */
    "verify"?: IComGithubFluxcdSourceControllerApiV1OCIRepositoryVerification;
}
/**
 * OCIRepositorySpec defines the desired state of OCIRepository
 */
export declare class OCIRepositorySpec extends Model<IOCIRepositorySpec> implements IOCIRepositorySpec {
    "certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "ignore"?: string;
    "insecure"?: boolean;
    "interval": string;
    "layerSelector"?: IComGithubFluxcdSourceControllerApiV1OCILayerSelector;
    "provider"?: "generic" | "aws" | "azure" | "gcp";
    "proxySecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "ref"?: IComGithubFluxcdSourceControllerApiV1OCIRepositoryRef;
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "serviceAccountName"?: string;
    "suspend"?: boolean;
    "timeout"?: string;
    "url": string;
    "verify"?: IComGithubFluxcdSourceControllerApiV1OCIRepositoryVerification;
    constructor(data?: ModelData<IOCIRepositorySpec>);
}
export type { IOCIRepositorySpec as IComGithubFluxcdSourceControllerApiV1OCIRepositorySpec, OCIRepositorySpec as ComGithubFluxcdSourceControllerApiV1OCIRepositorySpec };
