/**
 * Event Registration Hooks
 *
 * Custom hooks for portal authentication and eligibility checking.
 * Extracted from the main EventRegistrationClient for better separation of concerns.
 */
import { type EligibilityLookupState, type ExistingRegistrationLookupState } from './hooks.state';
export type PortalAuthState = 'checking' | 'authenticated' | 'unauthenticated';
export type PortalProfile = {
    email: string;
    name: string;
    phone: string;
};
export type UsePortalAuthResult = {
    /** Current authentication state */
    authState: PortalAuthState;
    /** Whether the user is authenticated */
    isAuthenticated: boolean;
    /** Whether auth check is in progress */
    isChecking: boolean;
    /** Portal profile data (only available when authenticated) */
    profile: PortalProfile | null;
    /** Logout function */
    logout: () => void;
};
/**
 * Hook for managing portal authentication state.
 *
 * Checks if the Block API client is configured for bearer auth and
 * fetches the portal profile if so.
 */
export declare function usePortalAuth(): UsePortalAuthResult;
export type UseEligibilityResult = {
    state: EligibilityLookupState;
    eligibility: EligibilityLookupState['eligibility'];
    isLoading: boolean;
    error: EligibilityLookupState['error'];
};
export declare function useEligibility(params: {
    enabled: boolean;
    occurrenceId: string;
    attendanceMode?: 'in_person' | 'online' | null;
    ticketTypeId: string | null;
    email: string;
    ticketsCount: number;
}): UseEligibilityResult;
export type UseExistingEventRegistrationResult = {
    state: ExistingRegistrationLookupState;
    registration: ExistingRegistrationLookupState['registration'];
    isLoading: boolean;
};
type UseExistingEventRegistrationParams = {
    isAuthenticated: boolean;
    occurrenceId: string;
};
export declare function useExistingEventRegistration({ isAuthenticated, occurrenceId, }: UseExistingEventRegistrationParams): UseExistingEventRegistrationResult;
export {};
