import { Optional } from "../../common";
import { MarkerRange } from "../marker-range";
import { APINumericRange, RangeField, StoreNumericRange } from "./interfaces";
export declare class NumericRange extends MarkerRange {
    /**
     * Object that defines this interval.
     */
    numericRange: RangeField;
    /**
     * Indicates if the range should be displayed as a titer.
     */
    titer: boolean;
    constructor(rangeCategoryId: string, rangeConditionId: string | null, numericRange: RangeField, titer: boolean, markerId: string, healthEffectsTitle: string | null, healthEffectsText: string | null, suggestions: string | null, tags: string[] | null, recommendations: string[]);
    /**
     * The name of the numeric range resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the numeric range resource.
     */
    static get serviceName(): string;
    /**
     * Convert the numeric range into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APINumericRange, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The numeric range data from the API server.
     */
    deserializeAPI(data: APINumericRange): void;
    /**
     * Serialize the numeric range into a format for storing in the Redux store.
     */
    serializeRedux(): StoreNumericRange;
    /**
     * Create a numeric range from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The numeric range object.
     */
    static apiFactory(data: APINumericRange): NumericRange;
    /**
     * Create a numeric range from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The numeric range object.
     */
    static reduxFactory(data: StoreNumericRange): NumericRange;
}
