type PlanTagType = import('@/defines').PlanTagType;
type PayOrderStatus = import('@/defines').PayOrderStatus;
type PayUrlShowType = import('@/defines').PayUrlShowType;

declare namespace API {
    type Plan = {
        channelItemId?: string;
        title?: string;
        subTitle?: string;
        introduce?: string;
        orgPrice?: number;
        price?: number;
        tag?: string;
        tagType?: PlanTagType;
        currency?: number;
        recommend?: boolean;
        isDefault?: boolean;
        sort?: number;
        deviceLimit?: number;
        isSubscribe?: boolean;
        subscribeType?: number;
        subscribePeriodValue?: number;
        payoutType?: string;
        payoutData?: string;
    };

    type PlanList = {
        total: number;
        list: Plan[];
    };

    type PayTypeItem = {
        payType: string;
        name: string;
        icon: string;
    };

    type PayTypeListResp = {
        payTypeList: PayTypeItem[];
    };

    type UserPayOrder = {
        id: number;
        userId: number;
        productCode: string;
        orderId: string;
        amount: number;
        settleAmount: number;
        currency: string;
        currencyAmount: number;
        orderType: number;
        planOrderType: number;
        payType: string;
        platform: string;
        snNo: string;
        payUrl: string;
        showType: PayUrlShowType;
        paidAddress: string;
        ip: string;
        remark: string;
        state: string;
        stateDesc: string;
        status: number;
        createTime: number;
        updateTime: number;
    };

    type PayOrderReq = {
        orderType: number;
        payType: string;
        channelItemId: string;
    };

    type PayOrderResp = {
        userPayOrder: UserPayOrder;
    };

    type PayOrderStatusReq = {
        orderId: string;
    };

    type PayOrderStatusResp = {
        orderState: PayOrderStatus;
    };
}
