import { IObjectMeta } from "@soft-stech/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@soft-stech/base";
/**
 * ClusterRegistration is used internally by Fleet and should not be used directly.
 */
export interface IClusterRegistration {
    /**
     * APIVersion defines the versioned schema of this representation of an object.
     * Servers should convert recognized schemas to the latest internal value, and
     * may reject unrecognized values.
     * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
     */
    "apiVersion": "fleet.cattle.io/v1alpha1";
    /**
     * Kind is a string value representing the REST resource this object represents.
     * Servers may infer this from the endpoint the client submits requests to.
     * Cannot be updated.
     * In CamelCase.
     * More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
     */
    "kind": "ClusterRegistration";
    "metadata"?: IObjectMeta;
    "spec"?: {
        /**
         * ClientID is a unique string that will identify the cluster. The
         * agent either uses the configured ID or the kubeSystem.UID.
         */
        "clientID"?: string;
        /**
         * ClientRandom is a random string that the agent generates. When
         * fleet-controller grants a registration, it creates a registration
         * secret with this string in the name.
         */
        "clientRandom"?: string;
        /**
         * ClusterLabels are copied to the cluster resource during the registration.
         */
        "clusterLabels"?: Record<string, string>;
    };
    "status"?: {
        /**
         * ClusterName is only set after the registration is being processed by
         * fleet-controller.
         */
        "clusterName"?: string;
        /**
         * Granted is set to true, if the request service account is present
         * and its token secret exists. This happens directly before creating
         * the registration secret, roles and rolebindings.
         */
        "granted"?: boolean;
    };
}
/**
 * ClusterRegistration is used internally by Fleet and should not be used directly.
 */
export declare class ClusterRegistration extends Model<IClusterRegistration> implements IClusterRegistration {
    "apiVersion": IClusterRegistration["apiVersion"];
    "kind": IClusterRegistration["kind"];
    "metadata"?: IClusterRegistration["metadata"];
    "spec"?: IClusterRegistration["spec"];
    "status"?: IClusterRegistration["status"];
    static apiVersion: IClusterRegistration["apiVersion"];
    static kind: IClusterRegistration["kind"];
    static is: import("@soft-stech/base").TypeMetaGuard<IClusterRegistration>;
    constructor(data?: ModelData<IClusterRegistration>);
}
