/**
 * Status of the Checkout
 */
export declare type CheckoutStatus = "open" | "close" | "error" | "confirmed";
/**
 * The Checkout provider
 */
export declare type Provider = "selfdecode" | "lta";
/**
 * Payment gateway provider for payment
 */
export declare type PaymentGateway = "chargebee" | "stripe" | "paypal";
/**
 * Payment gateway provider for payment
 */
export declare type SpecialOfferType = "UpSell" | "Order Bump";
/**
 * Special offer interface for the API server.
 */
export interface APISpecialOffer {
    id: string;
    name: string;
    product_id: string;
    product_slug: string;
    price: number;
    description: string;
    image: string | null;
    offer_type: SpecialOfferType;
    priority: number;
}
/**
 * Special offer interface for the Redux store.
 */
export interface StoreSpecialOffer {
    id: string;
    name: string;
    productId: string;
    productSlug: string;
    price: number;
    description: string;
    image: string | null;
    offerType: SpecialOfferType;
    priority: number;
}
/**
 * A checkout item (product)
 */
export interface CheckoutItem {
    id?: string;
    product: string;
    product_name?: string;
    product_slug?: string;
    discount?: string;
    quantity: number;
    order_id?: string;
    profile_id?: string;
    checkout?: string;
    total?: number;
    special_offer?: APISpecialOffer | null;
}
/**
 * An extra item to charge in the checkout.
 */
export interface CheckoutExtra {
    id?: string;
    description: string;
    price: number;
    quantity: number;
}
/**
 * The Checkout interface for the Redux store.
 */
export interface StoreCheckout {
    id: string;
    userId?: string;
    invoice?: string;
    items: Array<CheckoutItem>;
    extras: Array<CheckoutExtra>;
    status?: CheckoutStatus;
    provider: Provider;
    paymentGateway: PaymentGateway;
    total?: number;
    totalWithoutDiscount?: number;
    totalDiscount?: number;
    totalProrated?: number;
    totalShipping?: number;
    specialOffers?: Array<StoreSpecialOffer>;
    discount?: string;
    subscriptionId?: string;
}
/**
 * The Checkout interface for the API server.
 */
export interface APICheckout {
    id?: string;
    user_id?: string;
    items: Array<CheckoutItem>;
    extras: Array<CheckoutExtra>;
    status?: CheckoutStatus;
    provider: Provider;
    payment_gateway: PaymentGateway;
    invoice?: string;
    total?: number;
    total_without_discount?: number;
    total_discount?: number;
    total_prorated?: number;
    total_shipping?: number;
    special_offers?: Array<APISpecialOffer>;
    discount?: string;
    subscription_id?: string;
}
