import { Optional, BaseRecommendation, ContextType } from "../../common";
import { APILabRecommendation, RecommendationType, StoreLabRecommendation, TimePeriodUnit } from "./interfaces";
export declare class LabRecommendation extends BaseRecommendation {
    /**
     * Lab recommendation summary text.
     */
    summary: string;
    /**
     * Lab recommendation description.
     */
    description: string;
    /**
     * Lab recommendation disclaimer.
     */
    disclaimer: string | null;
    /**
     * How it helps section title text.
     */
    howItHelpsTitle: string | null;
    /**
     * How it helps section text.
     */
    howItHelpsText: string | null;
    /**
     * Marker to which lab recommendation belongs to.
     */
    markerId: string;
    /**
     * Marker name to which lab recommendation belongs to.
     */
    markerName: string;
    constructor(name: string, slug: string, recommendationType: RecommendationType, isAvoidanceRecommendation: boolean, isTreatment: boolean, isPrevention: boolean, context: ContextType, summary: string, description: string, disclaimer: string | null, howItHelpsTitle: string | null, howItHelpsText: string | null, markerId: string, defaultFrequencyValue: number | null, defaultFrequencyUnit: TimePeriodUnit | null, defaultDurationValue: number | null, defaultDurationUnit: TimePeriodUnit | null, markerName: string, illustration: string | null, conflictingSlugs: string[]);
    /**
     * The name of the resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the lab recommendation resource.
     */
    static get serviceName(): string;
    /**
     * Convert the lab recommendation into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APILabRecommendation, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The marker recommendation data from the API server.
     */
    deserializeAPI(data: APILabRecommendation): void;
    /**
     * Serialize the lab recommendation into a format for storing in the Redux store.
     */
    serializeRedux(): StoreLabRecommendation;
    /**
     * Create a lab recommendation from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The lab recommendation object.
     */
    static apiFactory(data: APILabRecommendation): LabRecommendation;
    /**
     * Create a lab recommendation from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The lab recommendation object.
     */
    static reduxFactory(data: StoreLabRecommendation): LabRecommendation;
}
