import * as React from 'react';
import React__default, { FC } from 'react';
import { a as ThirdPartyAuthTextsTypes, P as PositionType, L as LoginFormTextsTypes, D as DirectionType, b as RegisterFormTextsTypes, N as NewPasswordTextsTypes, c as ResetPasswordTextsTypes } from '../../textTypes-DXLtO2fL.js';

type AuthButtonsType = {
    texts?: ThirdPartyAuthTextsTypes;
    viaMetamask?: boolean;
    viaNafath?: boolean;
    viaGoogle?: boolean;
    viaTwitter?: boolean;
    viaGithub?: boolean;
    viaMicrosoft?: boolean;
    viaEmail?: boolean;
    viaPhone?: boolean;
    viaApple?: boolean;
    isMetamaskLoading?: boolean;
    isNafathLoading?: boolean;
    isGoogleLoading?: boolean;
    isGithubLoading?: boolean;
    isTwitterLoading?: boolean;
    isMicrosoftLoading?: boolean;
    isEmailLoading?: boolean;
    isPhoneLoading?: boolean;
    isAppleLoading?: boolean;
    handleMetamask?: () => void;
    handleNafath?: () => void;
    handleGoogle?: () => void;
    handleTwitter?: () => void;
    handleApple?: () => void;
    handleMicrosoft?: () => void;
    handleGithub?: () => void;
    handleEmail?: () => void;
    handlePhone?: () => void;
};
declare const AuthButtons: React__default.FC<AuthButtonsType>;

type LabelProps = {
    hint?: React.ReactNode;
    hintSide?: PositionType;
    htmlFor?: string;
    required?: boolean;
};

type PhoneInputProps = {
    preferredCountry?: {
        label: string;
    };
    helperText?: any;
    label?: string;
    labelProps?: LabelProps;
    placeholder?: string;
    handleChange?: (value: string) => void;
    inputProps?: React__default.InputHTMLAttributes<HTMLInputElement>;
    countryCodes?: {
        label: string;
    }[];
};

type LoginFormTypes = {
    /** Object containing text labels used throughout the form. */
    texts?: LoginFormTextsTypes;
    /** If true, only logos are displayed in third-party auth buttons.*/
    logosOnly?: boolean;
    /** Direction of text and UI elements, either left-to-right or right-to-left.   */
    direction?: DirectionType;
    /** If true, an error alert is displayed at the top of the form.   */
    showError?: boolean;
    /** Callback function triggered when the error alert is dismissed. */
    onErrorDismissed?: () => void;
    /** Title text of error alert.*/
    errorTitle?: string;
    /** Description text of error alert.   */
    errorText?: string;
    /** Login identifier type user will use to log in.   */
    loginType?: "email" | "username" | "phone" | "link";
    /** If true, the reset password option is hidden.   */
    withResetPassword?: boolean;
    /** If true, the register option is hidden.   */
    allowRegister?: boolean;
    /** If true, a loading spinner is displayed within the main form submit button.   */
    isLoading?: boolean;
    /** If true, a loading spinner is displayed within the Google login button.   */
    isGoogleLoading?: boolean;
    /** If true, a loading spinner is displayed within the Twitter login button.   */
    isTwitterLoading?: boolean;
    /** If true, a loading spinner is displayed within the Github login button.   */
    isGithubLoading?: boolean;
    /** If true, Google login option is displayed.   */
    viaGoogle?: boolean;
    /** If true, Github login option is displayed.   */
    viaGithub?: boolean;
    /** If true, Twitter login option is displayed.   */
    viaTwitter?: boolean;
    /** Function to handle form submission.   */
    onLogin: (e: any) => void;
    /** Function to route user to the register page.   */
    onRouteToRegister?: () => void;
    /** Function to handle forgotten password case.   */
    onForgotPassword?: () => void;
    /** Function to handle Google login.   */
    onGoogleLogin?: () => void;
    /** Function to handle Github login.   */
    onGithubLogin?: () => void;
    /** Function to handle Twitter login.   */
    onTwitterLogin?: () => void;
    /** Additional buttons to add under the login button */
    additionalButtons?: any;
    /** The minimum length of the password input field */
    minPasswordLength?: number;
    /** If true, the form is displayed without a card container styling.*/
    cardless?: boolean;
    /** Props to pass to the PhoneInput component */
    phoneInputProps?: PhoneInputProps;
};
declare const LoginForm: FC<LoginFormTypes>;

type SelectOptionProps = {
    value: any;
    label: any;
};

type RegisterFormTypes = {
    /** Object containing text labels used throughout the form. */
    texts?: RegisterFormTextsTypes;
    /** Direction of text and layout, either 'rtl' (right-to-left) or 'ltr' (left-to-right). */
    direction?: DirectionType;
    /** Determines whether to display logos only or with text in the social media registration section. */
    logosOnly?: boolean;
    /** Enables registration via Google when set to true. */
    viaGoogle?: boolean;
    /** Enables registration via Github when set to true. */
    viaGithub?: boolean;
    /** Enables registration via Twitter when set to true. */
    viaTwitter?: boolean;
    /** Determines whether to show the referral code field. */
    showRefCode?: boolean;
    /** Determines whether to show the user source selection. */
    showUserSource?: boolean;
    /** Determines whether to show the terms acceptance checkbox. */
    showTermsOption?: boolean;
    /** Determines whether to show the newsletter subscription checkbox. */
    showNewsletterOption?: boolean;
    /** Callback function triggered on form submission. */
    onRegister: (e: any) => void;
    /** Callback function triggered to route to the login page. */
    onRouteToLogin?: () => void;
    /** Callback function triggered to handle registration via Google. */
    onGoogleRegister?: () => void;
    /** Callback function triggered to handle registration via Github. */
    onGithubRegister?: () => void;
    /** Callback function triggered to handle registration via Twitter. */
    onTwitterRegister?: () => void;
    /** Callback function triggered to route to the Terms of Service page. */
    onRouteToTOS?: () => void;
    /** Determines whether to show an error alert. */
    showError?: boolean;
    /** Callback function triggered when the error alert is dismissed. */
    onErrorDismissed?: () => void;
    /** Title for the error alert. */
    errorTitle?: any;
    /** Text for the error alert. */
    errorText?: any;
    /** Array containing the fields to be included in the form. */
    registerFields?: string[];
    /** Indicates whether the form submission is in progress. */
    isLoading?: boolean;
    /** If true, a loading spinner is displayed within the Google login button.   */
    isGoogleLoading?: boolean;
    /** If true, a loading spinner is displayed within the Twitter login button.   */
    isTwitterLoading?: boolean;
    /** If true, a loading spinner is displayed within the Github login button.   */
    isGithubLoading?: boolean;
    /** The options of "How did you learn about us?" select field.   */
    userReferenceOptions?: SelectOptionProps[];
    /** To add more custom buttons under the register button.   */
    additionalButtons?: any;
    /** To add more custom input fields   */
    additionalInputs?: any;
    /** To customize the username input field   */
    usernameOptions?: {
        label?: LabelProps;
    };
    classNames?: {
        root?: string;
        form?: string;
        card?: string;
    };
    /** The minimum length of the password input field */
    minPasswordLength?: number;
    /** If true, the form is displayed without a card container styling.*/
    cardless?: boolean;
};
declare const RegisterForm: FC<RegisterFormTypes>;

type AppLandingTextsTypes = ThirdPartyAuthTextsTypes & {
    newUserText?: string;
    createAccount?: string;
};
type AppLandingTypes = {
    texts?: AppLandingTextsTypes;
    viaGoogle?: boolean;
    viaTwitter?: boolean;
    viaGithub?: boolean;
    viaMicrosoft?: boolean;
    viaEmail?: boolean;
    viaPhone?: boolean;
    viaApple?: boolean;
    allowRegister?: boolean;
    size?: "small" | "normal" | "full";
    direction?: DirectionType;
    handleRouteToRegister?: () => void;
    handleGoogle?: () => void;
    handleTwitter?: () => void;
    handleApple?: () => void;
    handleMicrosoft?: () => void;
    handleGithub?: () => void;
    handleEmail?: () => void;
    handlePhone?: () => void;
};
declare const AppLanding: FC<AppLandingTypes>;

type CheckEmailBlocks = {
    handleResend?: () => void;
    texts?: {
        checkEmail: string;
        resendEmail: string;
        pleaseVerify: string;
    };
};
declare const CheckEmail: FC<CheckEmailBlocks>;

type NewPasswordTypes = {
    handleNewPassword: (e: any) => void;
    handleRouteToRegister: () => void;
    isLoading: boolean;
    direction?: DirectionType;
    allowRegister?: boolean;
    showSuccess: boolean;
    texts: NewPasswordTextsTypes;
    /** If true, an error alert is displayed at the top of the form.   */
    showError?: boolean;
    /** Title text of error alert.   */
    errorTitle?: string;
    /** Description text of error alert.   */
    errorText?: string;
};
declare const NewPasswordForm: FC<NewPasswordTypes>;

type ResetPasswordType = {
    handleResetPassword: (e: any) => void;
    handleRouteToRegister: () => void;
    sent: any;
    isLoading: boolean;
    headless?: boolean;
    allowRegister?: boolean;
    direction?: DirectionType;
    texts?: ResetPasswordTextsTypes;
    /** If true, an error alert is displayed at the top of the form.   */
    showError?: boolean;
    /** Title text of error alert.   */
    errorTitle?: string;
    /** Description text of error alert.   */
    errorText?: string;
};
declare const ResetPasswordForm: FC<ResetPasswordType>;

type TConfirmation = {
    texts?: {
        checkYourPhone?: string;
        weSentCode?: string;
        didntGetCode?: string;
        resendCode?: string;
        resendCodeTimer?: string;
        codeRequiredText?: string;
        codeTooShort?: string;
        confirm?: string;
        cancel?: string;
        seconds?: string;
    };
    showError?: any;
    errorTitle?: any;
    errorText?: any;
    phoneNumber?: string;
    confirmLoading?: boolean;
    handleConfirm?: any;
    handleResend?: any;
    codeLength?: number;
};
declare const CodeConfirmation: FC<TConfirmation>;

export { AppLanding, AuthButtons, CheckEmail, CodeConfirmation, LoginForm, NewPasswordForm, RegisterForm, ResetPasswordForm };
