import type { fluidPay } from "@fluid-app/fluid-pay-core";
import type { Step } from "./types";
interface UseBundleFormArgs {
    addresses: fluidPay.CustomerAddress[];
    paymentMethods: fluidPay.CustomerPaymentMethod[];
    defaultAddressId?: number | null;
    defaultPaymentMethodId?: number | null;
}
export interface BundleForm {
    step: Step;
    setStep: (s: Step) => void;
    selectedTokens: Set<string>;
    toggleToken: (token: string) => void;
    selectedYear: number;
    selectedMonth: number | null;
    selectedDay: number | null;
    setYear: (y: number) => void;
    setMonth: (m: number) => void;
    setDay: (d: number) => void;
    selectedAddressId: number | null;
    setSelectedAddressId: (id: number | null) => void;
    selectedPaymentMethodId: number | null;
    setSelectedPaymentMethodId: (id: number | null) => void;
    canProceedFromStep1: boolean;
    canProceedFromStep2: boolean;
    canProceedFromStep3: boolean;
    canProceedFromStep4: boolean;
    /** "YYYY-MM-DD" or null when month/day not yet selected. */
    formattedDate: string | null;
}
export declare function useBundleForm({ addresses, paymentMethods, defaultAddressId, defaultPaymentMethodId }: UseBundleFormArgs): BundleForm;
export {};
//# sourceMappingURL=use-bundle-form.d.ts.map