import { IComGithubFluxcdImageReflectorControllerApiV1ReflectionPolicy } from "./ReflectionPolicy.js";
import { IComGithubFluxcdImageReflectorControllerApiV1TagFilter } from "./TagFilter.js";
import { IComGithubFluxcdPkgApisMetaNamespacedObjectReference } from "../../github.com/fluxcd/pkg/apis/meta/NamespacedObjectReference.js";
import { IComGithubFluxcdImageReflectorControllerApiV1ImagePolicyChoice } from "./ImagePolicyChoice.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * ImagePolicySpec defines the parameters for calculating the
 * ImagePolicy.
 */
export interface IImagePolicySpec {
    /**
     * DigestReflectionPolicy governs the setting of the `.status.latestRef.digest` field.
     *
     * Never: The digest field will always be set to the empty string.
     *
     * IfNotPresent: The digest field will be set to the digest of the elected
     * latest image if the field is empty and the image did not change.
     *
     * Always: The digest field will always be set to the digest of the elected
     * latest image.
     *
     * Default: Never.
     */
    "digestReflectionPolicy"?: IComGithubFluxcdImageReflectorControllerApiV1ReflectionPolicy;
    /**
     * FilterTags enables filtering for only a subset of tags based on a set of
     * rules. If no rules are provided, all the tags from the repository will be
     * ordered and compared.
     */
    "filterTags"?: IComGithubFluxcdImageReflectorControllerApiV1TagFilter;
    /**
     * ImageRepositoryRef points at the object specifying the image
     * being scanned
     */
    "imageRepositoryRef": IComGithubFluxcdPkgApisMetaNamespacedObjectReference;
    "interval"?: string;
    /**
     * Policy gives the particulars of the policy to be followed in
     * selecting the most recent image
     */
    "policy": IComGithubFluxcdImageReflectorControllerApiV1ImagePolicyChoice;
    /**
     * This flag tells the controller to suspend subsequent policy reconciliations.
     * It does not apply to already started reconciliations. Defaults to false.
     */
    "suspend"?: boolean;
}
/**
 * ImagePolicySpec defines the parameters for calculating the
 * ImagePolicy.
 */
export declare class ImagePolicySpec extends Model<IImagePolicySpec> implements IImagePolicySpec {
    "digestReflectionPolicy"?: IComGithubFluxcdImageReflectorControllerApiV1ReflectionPolicy;
    "filterTags"?: IComGithubFluxcdImageReflectorControllerApiV1TagFilter;
    "imageRepositoryRef": IComGithubFluxcdPkgApisMetaNamespacedObjectReference;
    "interval"?: string;
    "policy": IComGithubFluxcdImageReflectorControllerApiV1ImagePolicyChoice;
    "suspend"?: boolean;
    constructor(data?: ModelData<IImagePolicySpec>);
}
export type { IImagePolicySpec as IComGithubFluxcdImageReflectorControllerApiV1ImagePolicySpec, ImagePolicySpec as ComGithubFluxcdImageReflectorControllerApiV1ImagePolicySpec };
