import { ReactNode } from 'react';
import { ButtonProps } from '../Button';
import React from 'react';
import { ISignUpFields } from '../Form/SignUpForm';
import { ISignInFields } from '../Form/SignInForm';
export interface ButtonLoginProps extends ButtonProps {
    /**
     * If provided, it will overwrite the default text
     * @default "Sign In"
     * @optional
     */
    children?: ReactNode;
    /**
     * If provided, the reason will be displayed on the login prompt
     * @optional
     */
    reason?: string;
    /**
     *
     */
    /**
     * A function that is called when the sign up form is submitted
     * @param formData
     * @returns void
     */
    onSignUp: (formData: ISignUpFields) => void;
    /**
     * A function that is called when the sign In form is submitted
     * @param formData
     * @returns void
     */
    onSignIn: (formData: ISignInFields) => void;
    /**
     * An error message to be displayed if the form has an error
     * on submission
     */
    errorMessage?: React.ReactNode;
    /**
     * If true, a close button will be displayed on the popup
     * @default false
     * @optional
     */
    showCloseButton?: boolean;
}
/**
 * A button that will open a login prompt
 */
export declare const ButtonLogin: React.FC<ButtonLoginProps>;
export declare const AuthenticatePopup: React.FC<{
    onSignUp: (formData: ISignUpFields) => void;
    onSignIn: (formData: ISignInFields) => void;
    errorMessage?: React.ReactNode;
    reason?: string;
    popup: 'signIn' | 'signUp';
    showCloseButton?: boolean;
}>;
