import { Resource } from "../../common";
import { StoreAnswer } from "../question";
import { APIDecodyRecommendation, StoreDecodyRecommendation } from "./interfaces";
export declare class DecodyRecommendation extends Resource {
    /**
     * Why this recommendation was hidden
     */
    reasonText: string;
    /**
     * Options that triggered this action
     */
    options: string[];
    /**
     * Whether the recommendation should be hidden or not.
     */
    hide: boolean;
    /**
     * Ids of the affected recommendations
     */
    recommendations: string[];
    /**
     * The user answers that occasioned this action
     */
    profileAnswers: StoreAnswer[];
    /**
     * Type of recommendation (lab or report)
     */
    resourceType: string;
    constructor(
    /**
     * Why this recommendation was hidden
     */
    reasonText: string, 
    /**
     * Options that triggered this action
     */
    options: string[], 
    /**
     * Whether the recommendation should be hidden or not.
     */
    hide: boolean, 
    /**
     * Ids of the affected recommendations
     */
    recommendations: string[], 
    /**
     * The user answers that occasioned this action
     */
    profileAnswers: StoreAnswer[], 
    /**
     * Type of recommendation (lab or report)
     */
    resourceType: string);
    /**
     * The name of the recommendation resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the recommendation resource.
     */
    static get serviceName(): string;
    /**
     * Convert the question into a JSON serializable object for the API server.
     */
    serializeAPI(): APIDecodyRecommendation;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The question data from the API server.
     */
    deserializeAPI(data: APIDecodyRecommendation): void;
    /**
     * Serialize the question into a format for storing in the Redux store.
     */
    serializeRedux(): StoreDecodyRecommendation;
    /**
     * Create a recommendation from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The recommendation object.
     */
    static apiFactory(data: APIDecodyRecommendation): DecodyRecommendation;
    /**
     * Create a recommendation from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The recommendation object.
     */
    static reduxFactory(data: StoreDecodyRecommendation): DecodyRecommendation;
}
