import { BaseEntity } from "../interfaces/models/base-entity";
import { Cart } from "./cart";
import { Order } from "./order";
export declare enum DraftOrderStatus {
    OPEN = "open",
    COMPLETED = "completed"
}
export declare class DraftOrder extends BaseEntity {
    status: DraftOrderStatus;
    display_id: number;
    cart_id: string;
    cart: Cart;
    order_id: string;
    order: Order;
    canceled_at: Date;
    completed_at: Date;
    no_notification_order: boolean;
    metadata: Record<string, unknown>;
    idempotency_key: string;
    private beforeInsert;
}
/**
 * @schema DraftOrder
 * title: "DraftOrder"
 * description: "Represents a draft order"
 * type: object
 * properties:
 *   id:
 *     type: string
 *     description: The draft order's ID
 *     example: dorder_01G8TJFKBG38YYFQ035MSVG03C
 *   status:
 *     type: string
 *     description: The status of the draft order
 *     enum:
 *       - open
 *       - completed
 *     default: open
 *   display_id:
 *     type: string
 *     description: The draft order's display ID
 *     example: 2
 *   cart_id:
 *     type: string
 *     description: "The ID of the cart associated with the draft order."
 *     example: cart_01G8ZH853Y6TFXWPG5EYE81X63
 *   cart:
 *     description: A cart object. Available if the relation `cart` is expanded.
 *     type: object
 *   order_id:
 *     type: string
 *     description: "The ID of the order associated with the draft order."
 *     example: order_01G8TJSYT9M6AVS5N4EMNFS1EK
 *   order:
 *     description: An order object. Available if the relation `order` is expanded.
 *     type: object
 *   canceled_at:
 *     type: string
 *     description: The date the draft order was canceled at.
 *     format: date-time
 *   completed_at:
 *     type: string
 *     description: The date the draft order was completed at.
 *     format: date-time
 *   no_notification_order:
 *     type: boolean
 *     description: Whether to send the customer notifications regarding order updates.
 *     example: false
 *   idempotency_key:
 *     type: string
 *     description: Randomly generated key used to continue the completion of the cart associated with the draft order in case of failure.
 *     externalDocs:
 *       url: https://docs.medusajs.com/advanced/backend/payment/overview#idempotency-key
 *       description: Learn more how to use the idempotency key.
 *   created_at:
 *     type: string
 *     description: "The date with timezone at which the resource was created."
 *     format: date-time
 *   updated_at:
 *     type: string
 *     description: "The date with timezone at which the resource was updated."
 *     format: date-time
 *   deleted_at:
 *     type: string
 *     description: "The date with timezone at which the resource was deleted."
 *     format: date-time
 *   metadata:
 *     type: object
 *     description: An optional key-value map with additional details
 *     example: {car: "white"}
 */
