import type { EligibilityData, PaymentSelection, RegistrationStep } from './types';
export type SelectionSource = 'auto' | 'manual';
export type RegistrationFlowState = {
    step: RegistrationStep;
    ticketsCount: number;
    isAuthenticated: boolean;
    eligibility: EligibilityData | null;
    passOptOut: boolean;
    paymentSelection: PaymentSelection;
    selectionSource: SelectionSource;
};
export type RegistrationFlowAction = {
    type: 'set-step';
    step: RegistrationStep;
} | {
    type: 'set-tickets-count';
    ticketsCount: number;
} | {
    type: 'set-authenticated';
    isAuthenticated: boolean;
} | {
    type: 'eligibility-updated';
    eligibility: EligibilityData | null;
} | {
    type: 'set-manual-payment-selection';
    selection: PaymentSelection;
} | {
    type: 'use-card-instead-of-pass';
} | {
    type: 'event-changed';
    hasPreSelectedContext: boolean;
} | {
    type: 'reset';
    hasPreSelectedContext: boolean;
};
export declare function createInitialRegistrationFlowState(hasPreSelectedContext: boolean): RegistrationFlowState;
export declare function registrationFlowReducer(state: RegistrationFlowState, action: RegistrationFlowAction): RegistrationFlowState;
export declare function isEntitlementSelection(selection: PaymentSelection): boolean;
export declare function requiresPaymentStep(params: {
    eventRequiresPayment: boolean;
    paymentSelection: PaymentSelection;
}): boolean;
