import { ItemType, LabItem } from "../lab-item";
import { APILabTest, StoreLabTest } from "./interfaces";
export declare class LabTest extends LabItem {
    /**
     * Is the test sold individually or only as part of a panel or home kit?
     */
    soldIndividually: boolean;
    /**
     * Can the test be taken in a lab?
     */
    doneInLab: boolean;
    /**
     * Can the test be done at home?
     */
    doneAtHome: boolean;
    constructor(supplier: string, supplier_item_number: string, description: string, name: string, price: number, preparations: string, sample_report: string, text: string, collection_methods: string[], categories: string[], item_type: ItemType, done_in_lab: boolean, done_at_home: boolean, video: string, soldIndividually: boolean);
    /**
     * The name of the LabTest resource on the API server.
     */
    static get resourceName(): string;
    /**
     * Convert the LabTest into a JSON serializable object for the API server.
     */
    serializeAPI(): APILabTest;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The LabTest data from the API server.
     */
    deserializeAPI(data: APILabTest): void;
    /**
     * Serialize the LabTest into a format for storing in the Redux store.
     */
    serializeRedux(): StoreLabTest;
    /**
     * Create a lab test from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The LabTest object.
     */
    static apiFactory(data: APILabTest): LabTest;
    /**
     * Create a lab item from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The LabTest object.
     */
    static reduxFactory(data: StoreLabTest): LabTest;
}
