import { CartItem } from '../Cart/types';
export declare enum OrderHooks {
    OnOrderCreate = "order:onOrderCreate",
    OnOrderUpdate = "order:onOrderUpdate",
    OnOrderCancel = "order:onOrderCancel",
    OnOrderStatusChange = "order:onOrderStatusChange"
}
export interface OrderState {
}
/**
 * 订单信息
 */
export interface CommitOrderParams {
    url?: string;
    query: {
        cartItems: CartItem[];
        type: 'virtual' | 'appointment_booking';
        platform?: 'pc' | 'h5';
        extraData?: Record<string, any>;
    };
}
/**
 * 支付项数据
 */
export interface PaymentItemData {
    /** 当前支付项的唯一 ID */
    uuid: string;
    /** 当前支付方式付出去多少钱 */
    amount: string;
    /** 支付类型代码 */
    code: string;
    /** 支付类型id */
    id: number;
    /** 支付类型名称 */
    name: string;
    /** 支付类型 */
    type: string;
    /** 是否已同步到后端 */
    isSynced?: boolean;
}
/**
 * Checkout 专用订单创建参数
 */
export interface CheckoutOrderParams {
    type: 'virtual' | 'appointment_booking';
    platform: 'PC' | 'H5';
    sales_channel?: string;
    order_sales_channel?: string;
    bookings?: any[];
    shop_note?: string;
    schedule_date?: string;
    is_deposit?: number;
    relation_products?: any[];
    relation_forms?: any[];
    payments?: PaymentItemData[];
    customer_id?: string;
    /** 小票数据标记，当有支付项时设置为1 */
    small_ticket_data_flag?: number;
    [key: string]: any;
}
/**
 * 订单模块 API
 */
export interface OrderModuleAPI {
    /**
     * 创建订单
     * @param params 订单信息
     * @returns 订单信息
     */
    createOrder: (params: CommitOrderParams['query']) => any;
    /**
     * 检查购物车提交订单前是否符合条件
     */
    checkBeforeSubmitOrder: (params: {
        cartItems: CartItem[];
        type: 'holder' | 'account';
    }) => boolean;
    /**
     * 提交订单
     * @param params 订单信息
     */
    submitOrder: (params: CommitOrderParams) => Promise<void>;
    /**
     * Checkout 专用：创建订单到后端
     * @param params 订单参数
     * @returns 后端返回的订单数据
     */
    createOrderByCheckout: (params: CheckoutOrderParams) => Promise<any>;
}
