import { Optional, Resource } from "../../common";
import { APIMarkerRange, StoreMarkerRange } from "./interfaces";
export declare class MarkerRange extends Resource {
    /**
     * The id of the range category object to which this range corresponds.
     */
    rangeCategoryId: string;
    /**
     * The id of the range condition object to which this range corresponds.
     */
    rangeConditionId: string | null;
    /**
     * The id of the marker.
     */
    markerId: string;
    /**
     * The title of the health effects
     */
    healthEffectsTitle: string | null;
    /**
     * The text of the health effects
     */
    healthEffectsText: string | null;
    /**
     * Recommended lifestyle changes that someone should do to improve/maintain a
     * marker level that's within a range that points to this content
     */
    suggestions: string | null;
    /**
     * The ids of the tags associated with to this marker.
     */
    tags: string[] | null;
    /**
     * The ids of the recommendations associated with to this marker.
     */
    recommendations: string[];
    constructor(rangeCategoryId: string, rangeConditionId: string | null, markerId: string, healthEffectsTitle: string | null, healthEffectsText: string | null, suggestions: string | null, tags: string[] | null, recommendations: string[]);
    /**
     * The name of the marker range resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the marker range resource.
     */
    static get serviceName(): string;
    /**
     * Convert the marker range into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APIMarkerRange, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The marker range data from the API server.
     */
    deserializeAPI(data: APIMarkerRange): void;
    /**
     * Serialize the marker range into a format for storing in the Redux store.
     */
    serializeRedux(): StoreMarkerRange;
    /**
     * Create a marker range from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The marker range object.
     */
    static apiFactory(data: APIMarkerRange): MarkerRange;
    /**
     * Create a marker range from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The marker range object.
     */
    static reduxFactory(data: StoreMarkerRange): MarkerRange;
}
