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";
/**
 * ImageRepositorySpec defines the parameters for scanning an image
 * repository, e.g., `fluxcd/flux`.
 */
export interface IImageRepositorySpec {
    /**
     * AccessFrom defines an ACL for allowing cross-namespace references
     * to the ImageRepository object based on the caller's namespace labels.
     */
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    /**
     * CertSecretRef can be given the name of a secret containing
     * either or both of
     *
     *  - a PEM-encoded client certificate (`certFile`) and private
     *  key (`keyFile`);
     *  - a PEM-encoded CA certificate (`caFile`)
     *
     *  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.
     */
    "certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * ExclusionList is a list of regex strings used to exclude certain tags
     * from being stored in the database.
     */
    "exclusionList"?: Array<string>;
    /**
     * Image is the name of the image repository
     */
    "image": string;
    "interval": string;
    /**
     * SecretRef can be given the name of a secret containing
     * credentials to use for the image registry. The secret should be
     * created with `kubectl create secret docker-registry`, or the
     * equivalent.
     */
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    /**
     * ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate
     * the image pull if the service account has attached pull secrets.
     */
    "serviceAccountName"?: string;
    /**
     * This flag tells the controller to suspend subsequent image scans.
     * It does not apply to already started scans. Defaults to false.
     */
    "suspend"?: boolean;
    "timeout"?: string;
}
/**
 * ImageRepositorySpec defines the parameters for scanning an image
 * repository, e.g., `fluxcd/flux`.
 */
export declare class ImageRepositorySpec extends Model<IImageRepositorySpec> implements IImageRepositorySpec {
    "accessFrom"?: IComGithubFluxcdPkgApisAclAccessFrom;
    "certSecretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "exclusionList"?: Array<string>;
    "image": string;
    "interval": string;
    "secretRef"?: IComGithubFluxcdPkgApisMetaLocalObjectReference;
    "serviceAccountName"?: string;
    "suspend"?: boolean;
    "timeout"?: string;
    constructor(data?: ModelData<IImageRepositorySpec>);
}
export type { IImageRepositorySpec as IComGithubFluxcdImageReflectorControllerApiV1beta1ImageRepositorySpec, ImageRepositorySpec as ComGithubFluxcdImageReflectorControllerApiV1beta1ImageRepositorySpec };
