import { IIoK8sApimachineryPkgApisMetaV1ObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { IIoK8sApiResourceV1DeviceClassSpec } from "./DeviceClassSpec.js";
import { ModelData, TypeMeta, Model } from "@kubernetes-models/base";
/**
 * DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.
 */
export interface IDeviceClass extends TypeMeta {
    "apiVersion": "resource.k8s.io/v1";
    "kind": "DeviceClass";
    /**
     * Standard object metadata
     */
    "metadata"?: IIoK8sApimachineryPkgApisMetaV1ObjectMeta;
    /**
     * Spec defines what can be allocated and how to configure it.
     *
     * This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.
     *
     * Changing the spec automatically increments the metadata.generation number.
     */
    "spec": IIoK8sApiResourceV1DeviceClassSpec;
}
/**
 * DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.
 */
export declare class DeviceClass extends Model<IDeviceClass> implements IDeviceClass {
    "apiVersion": IDeviceClass["apiVersion"];
    "kind": IDeviceClass["kind"];
    "metadata"?: IIoK8sApimachineryPkgApisMetaV1ObjectMeta;
    "spec": IIoK8sApiResourceV1DeviceClassSpec;
    static apiVersion: IDeviceClass["apiVersion"];
    static kind: IDeviceClass["kind"];
    static is: import("@kubernetes-models/base").TypeMetaGuard<IDeviceClass>;
    constructor(data?: ModelData<IDeviceClass>);
}
export type { IDeviceClass as IIoK8sApiResourceV1DeviceClass, DeviceClass as IoK8sApiResourceV1DeviceClass };
