import type { GiftingControllerProps, GiftingInteractiveIslandProps, PublicGiftingOffersResponse } from './gifting.interactive';
export type GiftingPurchaseNotice = Readonly<{
    kind: 'success' | 'cancelled';
    message: string;
}> | null;
export type GiftingClientState = Readonly<{
    offers: PublicGiftingOffersResponse | null;
    submittingOfferId: string | null;
    errorMessage: string | null;
    purchaseNotice: GiftingPurchaseNotice;
}>;
type GiftingClientAction = Readonly<{
    type: 'offersLoaded';
    offers: PublicGiftingOffersResponse;
}> | Readonly<{
    type: 'offersFailed';
    message: string;
}> | Readonly<{
    type: 'checkoutStarted';
    offerId: string;
}> | Readonly<{
    type: 'checkoutFailed';
    message: string;
}> | Readonly<{
    type: 'purchaseNoticeResolved';
    notice: GiftingPurchaseNotice;
}>;
export type GiftingCheckoutInput = Readonly<{
    offerId: string;
    purchaserName: string | null;
    purchaserEmail: string;
    recipientName: string | null;
    recipientEmail: string;
    message: string | null;
    amountCents: number | null;
    sendOnDate: string | null;
    successUrl: string;
    cancelUrl: string;
}>;
export declare function createInitialGiftingClientState(initialOffers: PublicGiftingOffersResponse | null): GiftingClientState;
export declare function giftingClientReducer(state: GiftingClientState, action: GiftingClientAction): GiftingClientState;
export declare function resolveGiftingPurchaseNotice(search: string, defaultSuccessMessage: string): GiftingPurchaseNotice;
export declare function toGiftingControllerProps(props: GiftingInteractiveIslandProps): GiftingControllerProps;
export declare function buildGiftingCheckoutReturnUrl(currentHref: string, kind: 'success' | 'cancelled'): string;
export declare function hasPublicGiftingOffers(offers: PublicGiftingOffersResponse | null): boolean;
export declare function buildGiftingCheckoutInput(formData: FormData, input: Readonly<{
    offerId: string;
    kind: 'gift_card' | 'voucher';
    successUrl: string;
    cancelUrl: string;
}>): GiftingCheckoutInput;
export {};
