import React, { ReactNode } from 'react';
import { WidgetAction } from '../reducer';
interface EmailLoginContextValue {
    /** Start the email OTP login flow */
    startEmailLogin: (email: string) => void;
    /** Submit the OTP code for verification */
    submitOTP: (otp: string) => void;
    /** Submit the TOTP code for MFA verification */
    submitMFA: (totp: string) => void;
    /** Lost device */
    lostDevice: () => void;
    /** Submit recovery code for verification */
    submitRecoveryCode: (recoveryCode: string) => void;
    /** Cancel the current login flow */
    cancelLogin: () => void;
    /** Retry device verification */
    retryDeviceVerification: () => void;
    /** Resend the email OTP */
    resendEmailOTP: () => void;
    /** Current email being used for login */
    email: string | null;
}
interface EmailLoginProviderProps {
    children: ReactNode;
    dispatch: React.Dispatch<WidgetAction>;
}
export declare function EmailLoginProvider({ children, dispatch }: EmailLoginProviderProps): React.JSX.Element;
/**
 * Hook to access the email login context
 * @throws Error if used outside of EmailLoginProvider
 */
export declare function useEmailLogin(): EmailLoginContextValue;
export {};
