import React from 'react';
export interface MultiLanguageName {
    original: string;
    'zh-CN': string;
    'zh-HK': string;
    'ja': string;
    'pt': string;
    en: string;
    [key: string]: string;
}
declare type WalletPassType = 'rechargeable' | 'point' | 'voucher' | 'discount';
export interface WalletMetadata {
    name: MultiLanguageName;
    welcomeText?: string | MultiLanguageName;
    customerName?: string;
    coverImage?: string;
    icon?: string;
    showcaseWalletPassNew?: Array<{
        type: WalletPassType;
        custom_title?: string | MultiLanguageName;
        display?: 0 | 1;
    }>;
}
export interface Shop {
    id: number;
    name: string;
    default_url: string;
}
export interface Wallet {
    id: string | null;
    shop_id: string | null;
    shop?: Shop;
    status: string | null;
    name: MultiLanguageName;
    valid_for: {
        type: string;
        unit?: string;
        unit_type?: string;
        custom_date?: string;
    };
    metadata: WalletMetadata;
    created_at: string | null;
}
export interface WalletPass {
    id: string | null;
    shop_id: string | null;
    code: string;
    status: string | null;
    wallet_id: string | null;
    customer_id: string | null;
    expired_at: string | null;
    created_at: string;
    shop: Shop;
    wallet: Wallet;
    icon?: string;
    isLogin?: boolean;
    showIcon?: boolean;
}
export interface WalletBalance {
    gift_card_balance: number;
    point_card_balance: number;
    voucher_count: number;
    discount_card_count: number;
}
export interface WalletCardItem {
    type: WalletPassType;
    custom_title?: string | MultiLanguageName;
    display: 0 | 1;
    value?: number;
}
export interface State {
    list: WalletPass[];
    balance: WalletBalance | null;
    loading: boolean;
    error: Error | null;
    authError?: boolean;
    hasAttempted: boolean;
    isLoggedIn?: boolean;
}
export interface Action {
    type: string;
    payload: Partial<State>;
}
export interface Balance {
    gift_card_balance: number;
    point_card_balance: number;
    voucher_count: number;
    discount_card_count: number;
}
export interface IWallList {
    tag?: string;
    sales_status?: string;
    machine_search?: string;
    createdDate?: string;
    limit_status?: string;
    relation_id?: string;
    relation_type?: string;
    customer_id?: string;
    sort?: string;
    order_by?: string;
    used_status?: string;
    num?: number;
    skip?: number;
}
export interface WalletListProps {
    globalState?: {
        platform?: 'pc' | 'h5' | 'ipad';
        mode?: 'dark' | 'light';
        cardStyle?: 'normal' | 'full';
        codeType?: 'barCode' | 'qrCode';
        codeDirection?: 'bottom' | 'top';
        shopName?: boolean;
        showWalletName?: boolean;
        showShopName?: boolean;
        cardNo?: string;
        showCardNo?: boolean;
        showCode?: boolean;
        points?: boolean;
        balance?: boolean;
        coupon?: boolean;
        pointsValue?: number;
        balanceValue?: number;
        couponValue?: number;
        symbol?: string;
        showIcon?: boolean;
        iconImg?: string;
        customBackgroundImage?: string;
        walletName?: string;
    };
}
export interface WalletCardProps {
    platform?: 'pc' | 'h5' | 'ipad';
    mode?: 'dark' | 'light';
    cardStyle?: 'normal' | 'full';
    codeType?: 'barCode' | 'qrCode';
    codeDirection?: 'bottom' | 'top';
    shopName?: boolean;
    showIcon?: boolean;
    iconImg?: string;
    showWalletName?: boolean;
    showShopName?: boolean;
    cardNo?: string;
    showCardNo?: boolean;
    showCode?: boolean;
    points?: boolean;
    balance?: boolean;
    coupon?: boolean;
    pointsValue?: number;
    balanceValue?: number;
    couponValue?: number;
    isLogin?: boolean;
    items: WalletCardItem[];
}
export interface DivProps extends React.HTMLAttributes<HTMLDivElement> {
    children?: React.ReactNode;
}
export interface WalletListContextType {
    state: State;
    dispatch: React.Dispatch<Action>;
}
export declare const DEFAULT_CARD_CONFIG: {
    readonly mode: "light";
    readonly cardStyle: "normal";
    readonly codeDirection: "bottom";
    readonly showShopName: true;
    readonly showWalletName: true;
    readonly showIcon: true;
    readonly iconImg: "";
    readonly showCardNo: true;
    readonly showCode: true;
    readonly points: true;
    readonly balance: true;
    readonly coupon: true;
};
export interface CarouselSettings {
    className: string;
    arrows: boolean;
    infinite: boolean;
    slidesToShow: number;
    slidesToScroll: number;
    centerMode: boolean;
    centerPadding: string;
    autoplay: boolean;
    autoplaySpeed: number;
    dots: boolean;
    appendDots?: (dots: React.ReactNode) => React.ReactNode;
    responsive?: Array<{
        breakpoint: number;
        settings: {
            slidesToShow: number;
            slidesToScroll: number;
            centerPadding: string;
        };
    }>;
}
export {};
