/*!
 * Copyright 2025 WPPConnect Team
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { MsgKey } from '../whatsapp';
/**
 * Order item information
 */
export interface OrderItem {
    id: string;
    name: string;
    amount: number;
    quantity: number;
    isCustomItem?: boolean;
    isQuantitySet?: boolean;
}
/**
 * Order information structure
 */
export interface OrderInfo {
    items: OrderItem[];
    totalAmount: number;
    subtotal: number;
    tax?: number;
    shipping?: number;
    discount?: number;
    currency: string;
}
/**
 * Options for updating an order status
 */
export interface UpdateOrderOptions {
    /** The message ID or message key of the order message */
    msgId: string | MsgKey;
    /** The new order status */
    orderStatus: OrderStatus;
    /** Optional note to include with the status update */
    orderNote?: string;
    /** The decimal offset for amount values (default: 2 for cents) */
    offset?: number;
    /** Reference ID for the order */
    referenceId?: string;
    /** Optional payment status update */
    paymentStatus?: PaymentStatus;
    /** Optional payment method */
    paymentMethod?: string;
}
/**
 * Order status values from WhatsApp's OrderStatus enum
 * Based on WAWebOrderStatus module
 */
export declare enum OrderStatus {
    /** Order is pending confirmation */
    Pending = "pending",
    /** Order is being processed */
    Processing = "processing",
    /** Order has been partially shipped */
    PartiallyShipped = "partially_shipped",
    /** Order has been shipped */
    Shipped = "shipped",
    /** Order is complete */
    Complete = "completed",
    /** Order has been canceled */
    Canceled = "canceled",
    /** Payment has been requested */
    PaymentRequested = "payment_requested",
    /** Order is being prepared for shipping */
    PreparingToShip = "preparing_to_ship",
    /** Order has been delivered */
    Delivered = "delivered",
    /** Order has been confirmed */
    Confirmed = "confirmed",
    /** Order delivery is delayed */
    Delayed = "delayed",
    /** Order has failed */
    Failed = "failed",
    /** Order is out for delivery */
    OutForDelivery = "out_for_delivery",
    /** Order has been refunded */
    Refunded = "refunded"
}
/**
 * Payment status values from WhatsApp's OrderPaymentStatus enum
 * Based on WAWebOrderPaymentStatus module
 */
export declare enum PaymentStatus {
    /** Payment is pending */
    Pending = "pending",
    /** Payment has been captured/completed */
    Captured = "captured",
    /** Payment has failed */
    Failed = "failed",
    /** Payment has been canceled */
    Canceled = "canceled"
}
/**
 * Order message status from Message$OrderMessage$OrderStatus protobuf enum
 * This controls the UI state (whether "Accept Order" button is shown)
 * Based on WAWebProtobufsE2E.pb.Message$OrderMessage$OrderStatus
 */
export declare enum OrderMessageStatus {
    /** Initial order inquiry state - shows "Accept Order" button */
    INQUIRY = 1,
    /** Order accepted by merchant - hides "Accept Order" button */
    ACCEPTED = 2,
    /** Order declined by merchant */
    DECLINED = 3
}
