import { Optional, Resource } from "../../common";
import { APISnp, StoreSnp } from "./interfaces";
export declare class Snp extends Resource {
    /**
     * The rsid of the snp.
     */
    rsid: string;
    /**
     * The name of the snp.
     */
    name: string;
    /**
     * The code of the snp.
     */
    code: string;
    /**
     * The list of related gene codes.
     */
    geneCodes: string[];
    /**
     * The snp description.
     */
    description: string;
    significance: string[];
    /**
     * The snp importance magnitude.
     */
    importance: number;
    /**
     * List of risk alleles for snp.
     */
    riskAlleles: string[];
    /**
     * Person who reviewed information about this snp
     */
    reviewer: string | null;
    constructor(rsid: string, name: string, code: string, geneCodes: string[], description: string, significance: string[], importance: number, riskAlleles: string[], reviewer: string | null);
    /**
     * The name of the snp resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the snp resource.
     */
    static get serviceName(): string;
    /**
     * Convert the snp into a JSON serializable object for the API server.
     */
    serializeAPI(): Optional<APISnp, "id">;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The snp data from the API server.
     */
    deserializeAPI(data: APISnp): void;
    /**
     * Serialize the snp into a format for storing in the Redux store.
     */
    serializeRedux(): StoreSnp;
    /**
     * Create a snp from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The snp object.
     */
    static apiFactory(data: APISnp): Snp;
    /**
     * Create a snp from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The snp object.
     */
    static reduxFactory(data: StoreSnp): Snp;
}
