import React, { PropsWithChildren, ComponentType } from 'react';

type SocialLoginButtonProps = PropsWithChildren<{
    activeStyle?: {};
    align?: "left" | "right" | "center";
    className?: string;
    icon?: string | React.ComponentType<{
        size: string | number;
        color: string;
    }>;
    iconFormat?: (name: string) => string;
    iconSize?: string | number;
    iconColor?: string;
    onClick?: VoidFunction;
    onMouseEnter?: VoidFunction;
    onMouseLeave?: VoidFunction;
    preventActiveStyles?: boolean;
    size?: string;
    style?: {};
    text?: string;
    disabled?: boolean;
    type?: "button" | "submit" | "reset";
}>;

declare const FacebookLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const GoogleLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const GithubLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const TwitterLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const AmazonLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const InstagramLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const LinkedInLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const MicrosoftLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const BufferLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const TelegramLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const AppleLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const DiscordLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const OktaLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const SlackLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const YahooLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

type Config = {
    activeStyle?: {};
    icon?: string | ComponentType<{
        size: string | number;
        color: string;
    }>;
    style?: {};
    text?: string;
    type?: "button" | "submit" | "reset";
};
declare const createButton: (config?: Config) => (props: SocialLoginButtonProps) => React.JSX.Element;

declare const ZaloLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const TikTokLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const MetamaskLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const GitlabLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

declare const XLoginButton: (props: SocialLoginButtonProps) => React.JSX.Element;

export { AmazonLoginButton, AppleLoginButton, BufferLoginButton, DiscordLoginButton, FacebookLoginButton, GithubLoginButton, GitlabLoginButton, GoogleLoginButton, InstagramLoginButton, LinkedInLoginButton, MetamaskLoginButton, MicrosoftLoginButton, OktaLoginButton, SlackLoginButton, TelegramLoginButton, TikTokLoginButton, TwitterLoginButton, XLoginButton, YahooLoginButton, ZaloLoginButton, createButton };
