import { Area, Optional, Resource } from "../../common";
import { APIMarker, ResourceType, StoreMarker } from "./interfaces";
export declare class MarkerBase extends Resource {
    /**
     * The name of the marker.
     */
    name: string;
    /**
     * A text description of the marker.
     */
    description: string;
    /**
     * The list of ids of the markers similar or related to this marker.
     */
    relatedMarkers: string[] | null;
    /**
     * The list of ids of the organs/systems pertaining to this marker.
     */
    organs: string[];
    /**
     * The ids of the categories pertaining to this marker.
     */
    categories: string[] | null;
    /**
     * The ids of the conditions pertaining to this marker.
     */
    conditions: string[] | null;
    /**
     * The ids of the genes pertaining to this marker.
     */
    genes: string[] | null;
    /**
     * The ids of the symptoms pertaining to this marker.
     */
    symptoms: string[] | null;
    /**
     * The ids of the reports pertaining to this marker.
     */
    reports: string[] | null;
    /**
     * The list of ids of the units which can be use with this marker.
     */
    units: string[];
    /**
     * The ids of the reports pertaining to this marker.
     */
    synonyms: string[];
    /**
     * Does the markers requires user to input Menstrual phase.
     */
    needMenstrualPhase: boolean;
    /**
     * Does the markers requires user to input Time of day.
     */
    needTimeOfDay: boolean;
    /**
     * Does the markers requires user to input BMI.
     */
    needBmi: boolean;
    /**
     * Does the markers requires user to input Age.
     */
    needAge: boolean;
    /**
     * The type of the resource
     */
    resourceType: ResourceType;
    /**
     * The area of the marker.
     */
    area: Area[];
    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[], needMenstrualPhase: boolean, needTimeOfDay: boolean, needBmi: boolean, needAge: boolean, resourceType: ResourceType, 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<APIMarker, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The marker data from the API server.
     */
    deserializeAPI(data: APIMarker): void;
    /**
     * Serialize the marker into a format for storing in the Redux store.
     */
    serializeRedux(): StoreMarker;
}
