/**
 * @example
 *     {
 *         pid: "pid"
 *     }
 */
export interface RedeemVoucherRequest {
    /** Loyalty Program ID */
    pid: string;
    /** Unique identifier for the attributed reward */
    attributedRewardId?: string;
    /** Redemption code for the reward */
    code?: string;
    /** Unique identifier for the contact */
    contactId?: number;
    /** Identifier for the loyalty subscription */
    loyaltySubscriptionId?: string;
    /** Additional metadata associated with the redeem request */
    meta?: Record<string, unknown>;
    /** Order details for the redemption */
    order?: RedeemVoucherRequest.Order;
    /** Unique identifier for the reward */
    rewardId?: string;
    /** Time to live in seconds for the redemption request */
    ttl?: number;
}
export declare namespace RedeemVoucherRequest {
    interface Order {
        /** Total amount of the order */
        amount?: number | undefined;
        /** Billing information for the order */
        billing?: Order.Billing | undefined;
        /** Unique identifier for the contact */
        contact_id?: number | undefined;
        /** List of coupon codes applied to the order */
        coupons?: string[] | undefined;
        /** Timestamp when the order was created */
        createdAt?: string | undefined;
        /** Email address associated with the order */
        email?: string | undefined;
        /** Unique identifier for the order */
        id?: string | undefined;
        /** Additional identifiers for the order */
        identifiers?: Order.Identifiers | undefined;
        /** List of products in the order */
        products?: Order.Products.Item[] | undefined;
        /** Current status of the order */
        status?: string | undefined;
        /** Identifier for the store where the order was placed */
        storeId?: string | undefined;
        /** Timestamp when the order was last updated */
        updatedAt?: string | undefined;
    }
    namespace Order {
        interface Billing {
            /** Address of the user */
            address?: string | undefined;
            /** City of the user */
            city?: string | undefined;
            /** Country code of the user */
            countryCode?: string | undefined;
            /** Payment method opted by the user */
            paymentMethod?: string | undefined;
            /** Phone number of the user */
            phone?: number | undefined;
            /** Postal Code of user's location */
            postCode?: number | undefined;
            /** Region where user resides */
            region?: string | undefined;
        }
        interface Identifiers {
            /** External identifier for the order */
            ext_id?: string | undefined;
            /** Identifier for the loyalty subscription */
            loyalty_subscription_id?: string | undefined;
        }
        type Products = Products.Item[];
        namespace Products {
            interface Item {
                /** List of categories the product belongs to */
                category?: string[] | undefined;
                /** Price of the product */
                price?: number | undefined;
                /** Unique identifier for the product */
                productId?: string | undefined;
                /** Quantity of the product */
                quantity?: number | undefined;
                /** Identifier for the product variant */
                variantId?: string | undefined;
            }
        }
    }
}
