import { IIoK8sAutoscalerVerticalPodAutoscalerPkgApisAutoscalingK8sIoV1EvictionRequirement } from "./EvictionRequirement.js";
import { IIoK8sAutoscalerVerticalPodAutoscalerPkgApisAutoscalingK8sIoV1UpdateMode } from "./UpdateMode.js";
import { ModelData, Model } from "@kubernetes-models/base";
/**
 * PodUpdatePolicy describes the rules on how changes are applied to the pods.
 */
export interface IPodUpdatePolicy {
    /**
     * EvictionRequirements is a list of EvictionRequirements that need to
     * evaluate to true in order for a Pod to be evicted. If more than one
     * EvictionRequirement is specified, all of them need to be fulfilled to allow eviction.
     */
    "evictionRequirements"?: Array<IIoK8sAutoscalerVerticalPodAutoscalerPkgApisAutoscalingK8sIoV1EvictionRequirement>;
    /**
     * Minimal number of replicas which need to be alive for Updater to attempt
     * pod eviction (pending other checks like PDB). Only positive values are
     * allowed. Overrides global '--min-replicas' flag.
     */
    "minReplicas"?: number;
    /**
     * Controls when autoscaler applies changes to the pod resources.
     * The default is 'Recreate'.
     */
    "updateMode"?: IIoK8sAutoscalerVerticalPodAutoscalerPkgApisAutoscalingK8sIoV1UpdateMode;
}
/**
 * PodUpdatePolicy describes the rules on how changes are applied to the pods.
 */
export declare class PodUpdatePolicy extends Model<IPodUpdatePolicy> implements IPodUpdatePolicy {
    "evictionRequirements"?: Array<IIoK8sAutoscalerVerticalPodAutoscalerPkgApisAutoscalingK8sIoV1EvictionRequirement>;
    "minReplicas"?: number;
    "updateMode"?: IIoK8sAutoscalerVerticalPodAutoscalerPkgApisAutoscalingK8sIoV1UpdateMode;
    constructor(data?: ModelData<IPodUpdatePolicy>);
}
export type { IPodUpdatePolicy as IIoK8sAutoscalerVerticalPodAutoscalerPkgApisAutoscalingK8sIoV1PodUpdatePolicy, PodUpdatePolicy as IoK8sAutoscalerVerticalPodAutoscalerPkgApisAutoscalingK8sIoV1PodUpdatePolicy };
