import { Optional, Resource } from "../../common";
import { APIRangeCategory, Color, StoreRangeCategory } from "./interfaces";
export declare class RangeCategory extends Resource {
    /**
     * Name of the risk (e.g Critical, OK, Optimal).
     */
    name: string;
    /**
     * Number corresponding to a color to show the user.
     */
    color: Color | null;
    /**
     * Range category description.
     */
    description: string | null;
    constructor(name: string, color: Color | null, description: string | null);
    /**
     * The name of the range category resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the range category resource.
     */
    static get serviceName(): string;
    /**
     * Convert the range category into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APIRangeCategory, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The range category data from the API server.
     */
    deserializeAPI(data: APIRangeCategory): void;
    /**
     * Serialize the range category into a format for storing in the Redux store.
     */
    serializeRedux(): StoreRangeCategory;
    /**
     * Create a range category from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The range category object.
     */
    static apiFactory(data: APIRangeCategory): RangeCategory;
    /**
     * Create a range category from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The range category object.
     */
    static reduxFactory(data: StoreRangeCategory): RangeCategory;
}
