import { Resource } from "../../common";
import { APIVitaminLabsOrderRequest, APIVitaminLabsOrderResponse, StoreVitaminLabsOrder } from "./interfaces";
export declare class VitaminLabsOrder extends Resource {
    /**
     * Id of he order
     */
    orderId: string;
    /**
     * Profile attached to the order.
     */
    profileId: string;
    /**
     * The user the order belongs to.
     */
    userId: string;
    /**
     * Order Status
     */
    status: "subscribed" | "cancelled";
    date?: string;
    subscriptionDate: string;
    cancellationDate: string | null;
    /**
     * First name of the person placing the order.
     */
    firstName: string;
    /**
     * Last name of the person placing the order.
     *
     */
    lastName: string;
    formula: Record<string, unknown>;
    eventType?: APIVitaminLabsOrderRequest["event_type"];
    constructor(orderId: string, profileId: string, userId: string, status: "subscribed" | "cancelled", subscriptionDate: string, cancellationDate: string | null, firstName: string, lastName: string, formula: Record<string, unknown>, date?: string, event_type?: APIVitaminLabsOrderRequest["event_type"]);
    /**
     * The name of the lab-shop-order resource on the API server.
     */
    static get resourceName(): string;
    /**
     * The name of the service containing the order resource.
     */
    static get serviceName(): string;
    /**
     * Convert the vitamin-labs-order into a JSON serializable object for the API
     * server.
     */
    serializeAPI(): APIVitaminLabsOrderRequest;
    /**
     * Deserialize the data from the API server.
     *
     * @param data The vitamin-labs-order data from the API server.
     */
    deserializeAPI(data: APIVitaminLabsOrderResponse): void;
    /**
     * Create a order from the API server data.
     *
     * @param data Data from the api server.
     *
     * @returns The lab-shop-order object.
     */
    static apiFactory(data: APIVitaminLabsOrderResponse): VitaminLabsOrder;
    /**
     * Serialize the order into a format for storing in the Redux store.
     */
    serializeRedux(): StoreVitaminLabsOrder;
}
