import { Item } from "../item";
import { APILabItem, ItemType, StoreLabItem } from "./interfaces";
export declare class LabItem extends Item {
    preparations: string;
    sampleReport: string;
    text: string;
    collectionMethods: string[];
    categories: string[];
    itemType: ItemType;
    video: string;
    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, video: string);
    /**
     * The name of the LabItem resource on the API server.
     */
    static get resourceName(): string;
    /**
     * Convert the LabItem into a JSON serializable object for the API server.
     */
    serializeAPI(): APILabItem;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The LabItem data from the API server.
     */
    deserializeAPI(data: APILabItem): void;
    /**
     * Serialize the LabItem into a format for storing in the Redux store.
     */
    serializeRedux(): StoreLabItem;
    /**
     * Create a lab item from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The LabItem object.
     */
    static apiFactory(data: APILabItem): LabItem;
    /**
     * Create a lab item from the Redux store data.
     *
     * @param data Data from the api server.
     *
     * @returns The LabItem object.
     */
    static reduxFactory(data: StoreLabItem): LabItem;
}
