import { Optional, Resource } from "../../common";
import { Trait } from "../trait";
import { APIProfileTrait, GeneticVariant, StoreProfileTrait } from "./interfaces";
export declare class ProfileTrait extends Resource {
    profileId: string;
    traitId: string;
    numberOfSnp: number | null;
    score: number;
    profileReportId: string;
    scenarioId: string | null;
    traitScoreText: string | null;
    geneticVariants: GeneticVariant[];
    trait: Trait;
    userFeedback: boolean | string | null;
    personalizedRecommendation: string | null;
    personalizedText: string | null;
    scenarioPercentage: number | null;
    constructor(profileId: string, traitId: string, numberOfSnp: number | null, score: number, profileReportId: string, scenarioId: string | null, traitScoreText: string | null, geneticVariants: GeneticVariant[], trait: Trait, userFeedback: boolean | string | null, personalizedRecommendation: string | null, personalizedText: string | null, scenarioPercentage: number | null);
    /**
     * The name of the profile-trait resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the profile-trait resource.
     */
    static get serviceName(): string;
    /**
     * Convert the profile-trait into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APIProfileTrait, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The profile-trait data from the API server.
     */
    deserializeAPI(data: APIProfileTrait): void;
    /**
     * Serialize the profile-trait into a format for storing in the Redux store.
     */
    serializeRedux(): StoreProfileTrait;
    /**
     * Create a profile-trait from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The profile-trait object.
     */
    static apiFactory(data: APIProfileTrait): ProfileTrait;
    /**
     * Create a profile-trait from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The profile-trait object.
     */
    static reduxFactory(data: StoreProfileTrait): ProfileTrait;
}
