import { Optional } from "../../common";
import { BaseRecommendation, ContextType } from "../../common/base-recommendation";
import { APIReportRecommendation, RecommendationType, StoreReportRecommendation, TimePeriodUnit } from "./interfaces";
export declare class ReportRecommendation extends BaseRecommendation {
    /**
     * The report the reportRecommendation is used in.
     */
    reportId: string;
    /**
     * The summary sentence about the reportRecommendation.
     */
    sentence: string;
    /**
     * Generic text explaining the usefulness of the reportRecommendation.
     */
    genericText: string;
    /**
     * Related marker id
     */
    relatedMarkerId: string | null;
    constructor(name: string, slug: string, reportId: string, recommendationType: RecommendationType, context: ContextType, isAvoidanceRecommendation: boolean, isTreatment: boolean, isPrevention: boolean, sentence: string, genericText: string, defaultFrequencyValue: number | null, defaultFrequencyUnit: TimePeriodUnit | null, defaultDurationValue: number | null, defaultDurationUnit: TimePeriodUnit | null, illustration: string | null, conflictingSlugs: string[], relatedMarkerId: string | null);
    /**
     * The name of the resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the reportRecommendation resource.
     */
    static get serviceName(): string;
    /**
     * Convert the reportRecommendation into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APIReportRecommendation, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The reportRecommendation data from the API server.
     */
    deserializeAPI(data: APIReportRecommendation): void;
    /**
     * Serialize the reportRecommendation into a format for storing in the Redux store.
     */
    serializeRedux(): StoreReportRecommendation;
    /**
     * Create a reportRecommendation from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The reportRecommendation object.
     */
    static apiFactory(data: APIReportRecommendation): ReportRecommendation;
    /**
     * Create a reportRecommendation from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The reportRecommendation object.
     */
    static reduxFactory(data: StoreReportRecommendation): ReportRecommendation;
}
