import type { BlockApiClient } from '../../api';
import type { FormData, Guest, RegistrationResult, RegistrationStep, PaymentSelection } from './types';
import type { PaymentMethod } from '../../api/types';
import type { RegistrationTarget } from './registrationDerivations';
export declare function useEventRegistrationSubmit(options: {
    api: BlockApiClient;
    registrationTarget: RegistrationTarget | null;
    selectedAttendanceMode: 'in_person' | 'online' | null;
    selectedTicketTypeId: string | null;
    ticketsCount: number;
    formData: FormData;
    altchaSolution: string | null;
    requireGuestDetails: boolean;
    guests: Guest[];
    discountCode: string;
    claimToken: string | null;
    setPendingAttendeeId: (id: string) => void;
    setStep: (step: RegistrationStep) => void;
    setRegistrationResult: (result: RegistrationResult) => void;
    setErrorMessage: (message: string) => void;
}): (method: PaymentMethod, passId?: string, membershipId?: string, selection?: PaymentSelection) => Promise<void>;
