import { Optional, Resource } from "../../common";
import { APIProfileSufferingTrait, StoreProfileSufferingTrait } from "./interfaces";
export declare class ProfileSufferingTrait extends Resource {
    /**
     * The profile the profile-suffering-trait belongs to.
     */
    profileId: string;
    /**
     * The trait the profile-suffering-trait belongs to.
     */
    traitId: string;
    /**
     * Whether the profile is suffering from the trait.
     */
    isSuffering: boolean | null;
    /**
     * Feedback timestamp.
     */
    timestamp: number;
    /**
     * Id of the related feedback choice.
     */
    feedbackChoiceId: string | null;
    constructor(profileId: string, traitId: string, isSuffering: boolean | null, timestamp: number, feedbackChoiceId: string | null);
    /**
     * The name of the profile-suffering-trait resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the profile-suffering-trait resource.
     */
    static get serviceName(): string;
    /**
     * Convert the profile-trait into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APIProfileSufferingTrait, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The profile-suffering-trait data from the API server.
     */
    deserializeAPI(data: APIProfileSufferingTrait): void;
    /**
     * Serialize the profile-suffering-trait into a format for storing in the Redux store.
     */
    serializeRedux(): StoreProfileSufferingTrait;
    /**
     * Create a profile-suffering-trait from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The profile-trait object.
     */
    static apiFactory(data: APIProfileSufferingTrait): ProfileSufferingTrait;
    /**
     * Create a profile-suffering-trait from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The profile-suffering-trait object.
     */
    static reduxFactory(data: StoreProfileSufferingTrait): ProfileSufferingTrait;
}
