import { Optional, Resource } from "../../common";
import { ReportRecommendation } from "../report-recommendation";
import { APIProfileRecommendation, StoreProfileRecommendation } from "./interfaces";
export declare class ProfileRecommendation extends Resource {
    profileReportId: string;
    recommendationId: string;
    recommendation: ReportRecommendation;
    userHidden: boolean;
    isRelevant: boolean;
    totalScore: number;
    effect: number;
    evidence: number;
    wasUseful: boolean | null;
    constructor(profileReportId: string, recommendationId: string, recommendation: ReportRecommendation, userHidden: boolean, isRelevant: boolean, totalScore: number, effect: number, evidence: number, wasUseful: boolean | null);
    /**
     * The name of the profile-recommendation resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the profile-recommendation resource.
     */
    static get serviceName(): string;
    /**
     * Convert the profile-recommendation into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APIProfileRecommendation, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The profile-recommendation data from the API server.
     */
    deserializeAPI(data: APIProfileRecommendation): void;
    /**
     * Serialize the profile-recommendation into a format for storing in the Redux store.
     */
    serializeRedux(): StoreProfileRecommendation;
    /**
     * Create a profile-recommendation from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The profile-recommendation object.
     */
    static apiFactory(data: APIProfileRecommendation): ProfileRecommendation;
    /**
     * Create a profile-recommendation from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The profile-recommendation object.
     */
    static reduxFactory(data: StoreProfileRecommendation): ProfileRecommendation;
    /**
     * Set userHidden to false to all profile recommendations.
     *
     * @param profileReportId Id of the profile report.
     */
    static resetHiddenRecommendations(profileReportId: string): Promise<string[]>;
}
