/** * Gift / reward redemption — mappers and helpers. */ import type { ApiGiftOffer, ApiGiftOfferSummary, ApiRewardRedemption, GiftOffer, GiftOfferSummary, RedemptionStatus, RewardRedemption } from "./types/gift.js"; export declare function mapApiGiftOfferSummary(api: ApiGiftOfferSummary): GiftOfferSummary; export declare function mapApiRedemption(api: ApiRewardRedemption): RewardRedemption; export declare function getRedemptionStatusLabel(status: RedemptionStatus): string; /** * A redemption is "usable" when the customer can present its coupon code — * i.e. status is FULFILLED and not yet expired. */ export declare function isRedemptionUsable(redemption: { status: RedemptionStatus; expiresAt: string | null; }): boolean; /** * A redemption is "actionable" when the customer can self-fulfill it now. */ export declare function isRedemptionActionable(redemption: { status: RedemptionStatus; expiresAt: string | null; }): boolean; export declare function formatRedemptionExpiry(expiresAt: string | null, locale?: string): string | null; export declare function mapApiGiftOffer(api: ApiGiftOffer): GiftOffer; export interface AffordabilityResult { ok: boolean; missingPoints: number; missingStamps: number; } /** * Check whether a member can afford an offer right now. Returns positive * "missing" values when they're short, or zero when they have enough. */ export declare function canAffordOffer(offer: { points: number; stamps: number; }, membership: { loyaltyPoints?: number | null; stamps?: number | null; }): AffordabilityResult; //# sourceMappingURL=gifts.d.ts.map