import { IIoK8sApimachineryPkgApisMetaV1LabelSelector } from "@kubernetes-models/apimachinery/apis/meta/v1/LabelSelector";
import { IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService } from "./TemplateService.js";
import { IIoK8sApiCoreV1PodTemplateSpec } from "kubernetes-models/v1/PodTemplateSpec";
import { ModelData, Model } from "@kubernetes-models/base";
export interface ITemplateSpec {
    /**
     * Minimum number of seconds for which a newly created pod should be ready
     * without any of its container crashing, for it to be considered available.
     * Defaults to 0 (pod will be considered available as soon as it is ready)
     */
    "minReadySeconds"?: number;
    /**
     * Name of the template used to identity replicaset running for this experiment
     */
    "name": string;
    /**
     * Number of desired pods. This is a pointer to distinguish between explicit
     * zero and not specified. Defaults to 1.
     */
    "replicas"?: number;
    /**
     * Label selector for pods. Existing ReplicaSets whose pods are
     * selected by this will be the ones affected by this experiment.
     * It must match the pod template's labels. Each selector must be unique to the other selectors in the other templates
     */
    "selector": IIoK8sApimachineryPkgApisMetaV1LabelSelector;
    /**
     * TemplateService describes how a service should be generated for template
     */
    "service"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService;
    /**
     * Template describes the pods that will be created.
     */
    "template": IIoK8sApiCoreV1PodTemplateSpec;
}
export declare class TemplateSpec extends Model<ITemplateSpec> implements ITemplateSpec {
    "minReadySeconds"?: number;
    "name": string;
    "replicas"?: number;
    "selector": IIoK8sApimachineryPkgApisMetaV1LabelSelector;
    "service"?: IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateService;
    "template": IIoK8sApiCoreV1PodTemplateSpec;
    constructor(data?: ModelData<ITemplateSpec>);
}
export type { ITemplateSpec as IComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateSpec, TemplateSpec as ComGithubArgoprojArgoRolloutsPkgApisRolloutsV1alpha1TemplateSpec };
