import { Area, Optional } from "../../common";
import { MarkerBase } from "../marker-base";
import { APINumericMarker, StoreNumericMarker } from "./interfaces";
export declare class NumericMarker extends MarkerBase {
    /**
     * The id of the base unit of this marker (used for unit conversion).
     */
    baseUnitId: string;
    constructor(name: string, description: string, relatedMarkers: string[] | null, organs: string[], categories: string[] | null, conditions: string[] | null, genes: string[] | null, symptoms: string[] | null, reports: string[] | null, units: string[], synonyms: string[], baseUnitId: string, needMenstrualPhase: boolean, needTimeOfDay: boolean, needBmi: boolean, needAge: boolean, area: Area[]);
    /**
     * The name of the marker resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the marker resource.
     */
    static get serviceName(): string;
    /**
     * Convert the marker into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APINumericMarker, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The marker data from the API server.
     */
    deserializeAPI(data: APINumericMarker): void;
    /**
     * Serialize the marker into a format for storing in the Redux store.
     */
    serializeRedux(): StoreNumericMarker;
    /**
     * Create a marker from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The marker object.
     */
    static apiFactory(data: APINumericMarker): NumericMarker;
    /**
     * Create a marker from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The marker object.
     */
    static reduxFactory(data: StoreNumericMarker): NumericMarker;
}
