export interface ClubOfferItem { id: string; productId: string; variantId: string; product: { name: string; description: string; }; variant: { name: string; description: string; imageUrl: string | null; grams: number; }; unitAmount: number; quantity: number; amount: number; adjustedAmount: number; } export interface ClubOfferSummary { currency: string; totalAmount: number; totalAdjustedAmount: number; items: ClubOfferItem[]; } export interface ClubOfferLineItem { id: string; quantity: number; price: { variant: { id: string; name: string; description: string | null; imageUrl: string | null; grams: number; product: { id: string; name: string; description: string; }; }; }; } export interface ClubOffer { id: string; titleTrans: { en: string; }; summaries: ClubOfferSummary[]; offerLineItems: ClubOfferLineItem[]; } export interface UseClubOffersOptions { /** * Whether to fetch club offers automatically on mount * @default true */ enabled?: boolean; /** * Return URL for payment */ returnUrl?: string; } export interface UseClubOffersResult { /** * Array of fetched club offers */ offers: ClubOffer[]; /** * Loading state */ isLoading: boolean; /** * Error state */ error: Error | null; /** * Refetch club offers */ refetch: () => Promise; /** * Get club offer by ID from the loaded offers */ getOffer: (offerId: string) => ClubOffer | undefined; /** * Get total value of all club offers */ getTotalValue: () => number; /** * Get total savings across all club offers */ getTotalSavings: () => number; /** * Clear error state */ clearError: () => void; /** * Pay for a club offer */ payOffer: (offerId: string, returnUrl?: string) => Promise; } export declare function useClubOffers(options?: UseClubOffersOptions): UseClubOffersResult;