export interface VipOffer { id: string; productId: string; variantId: string; } export interface VipPreviewResponse { savings: number; currency: string; selectedOffers: { productId: string; variantId: string; isSelected: boolean; }[]; savingsPct: number; } export interface UseVipOffersOptions { /** * Checkout session ID for VIP offers */ checkoutSessionId: string; /** * Array of VIP offer IDs to manage */ vipOfferIds: string[]; /** * Whether to automatically fetch VIP preview on mount * @default true */ autoPreview?: boolean; } export interface UseVipOffersResult { /** * Array of VIP offers */ vipOffers: VipOffer[]; /** * VIP preview data including savings and selected offers */ vipPreview: VipPreviewResponse | null; /** * Loading state for VIP preview */ isLoadingVipPreview: boolean; /** * Whether any VIP offers are currently selected */ hasVip: boolean; /** * Check if a specific VIP offer is selected */ isOfferSelected: (offer: VipOffer) => boolean; /** * Select all VIP offers */ selectVipOffers: () => Promise; /** * Cancel/deselect all VIP offers */ cancelVipOffers: () => Promise; /** * Refresh VIP preview data */ refreshVipPreview: () => Promise; /** * Error state */ error: Error | null; } export declare function useVipOffers(options: UseVipOffersOptions): UseVipOffersResult;