import { Resource } from "../../common";
import { SubscriptionType } from "../../payments";
import { APIDNAKit, DnaKitStage, StoreDNAKit } from "./interfaces";
export declare class DNAKit extends Resource {
    /**
     * The status of the item. "Shipped", "Received", etc.
     */
    stage: DnaKitStage;
    /**
     * True if the file is newly analysed.
     */
    isNew: boolean;
    /**
     * The id of the file associated with this kit.
     */
    fileId: string;
    /**
     * The id of the package associated with this kit.
     */
    package: string;
    /**
     * The sample id provided by supplier (kit barcode).
     */
    sampleId: string;
    /**
     * The id of the profile associated with this kit.
     */
    profile: string | null;
    /**
     * The id of the user associated with the kit.
     */
    userId: string | null;
    /**
     * The id of the user associated with the kit.
     */
    subscriptionType: SubscriptionType | null;
    constructor(stage: DnaKitStage, is_new: boolean, file_id: string, packageId: string, sampleId: string, profileId: string | null, userId: string | null, subscriptionType: SubscriptionType | null);
    /**
     * The name of the DNAKit resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the DNAKit resource.
     */
    static get serviceName(): string;
    /**
     * Convert the DNAKit into a JSON serializable object for the API server.
     */
    serializeAPI(): APIDNAKit;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The dnaKit data from the API server.
     */
    deserializeAPI(data: APIDNAKit): void;
    /**
     * Serialize the dnaKit into a format for storing in the Redux store.
     */
    serializeRedux(): StoreDNAKit;
    /**
     * Create a dnaKit from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The DNAKit object.
     */
    static apiFactory(data: APIDNAKit): DNAKit;
    /**
     * Create a dnaKit from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The DNAKit object.
     */
    static reduxFactory(data: StoreDNAKit): DNAKit;
    /**
     * Additional action to update the dna kit.
     * It's a custom method because the lookup in the backend is sample_id
     */
    updateDNAKit(): Promise<void>;
}
