'use client';

import { default as React } from 'react';
export interface SignInButtonProps {
    /**
     * Button text
     */
    children?: React.ReactNode;
    /**
     * Button variant
     */
    variant?: 'solid' | 'bordered' | 'light' | 'flat' | 'faded' | 'shadow' | 'ghost';
    /**
     * Button color
     */
    color?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger';
    /**
     * Button size
     */
    size?: 'sm' | 'md' | 'lg';
    /**
     * Full width button
     */
    fullWidth?: boolean;
    /**
     * Button icon
     */
    startContent?: React.ReactNode;
    endContent?: React.ReactNode;
    /**
     * Custom className
     */
    className?: string;
    /**
     * Modal mode - opens sign-in in modal instead of navigation
     */
    modalMode?: boolean;
    /**
     * Props to pass to the sign-in modal
     */
    modalProps?: {
        methods?: ('password' | 'oauth' | 'magic-link' | 'passkey' | 'sso')[];
        email?: string;
        organizationId?: string;
        redirectUrl?: string;
        title?: string;
        subtitle?: string;
        size?: 'sm' | 'md' | 'lg';
        showBranding?: boolean;
        modalSize?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
        backdrop?: 'opaque' | 'blur' | 'transparent';
        placement?: 'auto' | 'top' | 'center' | 'bottom';
    };
    /**
     * Navigation URL (when not in modal mode)
     */
    href?: string;
    /**
     * Custom onClick handler
     */
    onClick?: () => void;
    /**
     * Success callback
     */
    onSuccess?: (result: any) => void;
    /**
     * Error callback
     */
    onError?: (error: Error) => void;
    /**
     * Disabled state
     */
    disabled?: boolean;
    /**
     * Loading state
     */
    loading?: boolean;
    /**
     * Show different states based on auth status
     */
    showAuthenticatedState?: boolean;
    /**
     * Icon mode - show only icon
     */
    iconOnly?: boolean;
    /**
     * Redirect after sign-in
     */
    redirectAfterSignIn?: string;
    /**
     * Auto-redirect based on user type
     */
    autoRedirect?: boolean;
}
export declare function SignInButton({ children, variant, color, size, fullWidth, startContent, endContent, className, modalMode, modalProps, href, onClick, onSuccess, onError, disabled, loading, showAuthenticatedState, iconOnly, redirectAfterSignIn, autoRedirect, }: SignInButtonProps): import("react/jsx-runtime").JSX.Element;
/**
 * Primary Sign In Button
 */
export declare function PrimarySignInButton(props: Omit<SignInButtonProps, 'variant' | 'color'>): import("react/jsx-runtime").JSX.Element;
/**
 * Secondary Sign In Button
 */
export declare function SecondarySignInButton(props: Omit<SignInButtonProps, 'variant' | 'color'>): import("react/jsx-runtime").JSX.Element;
/**
 * Ghost Sign In Button
 */
export declare function GhostSignInButton(props: Omit<SignInButtonProps, 'variant'>): import("react/jsx-runtime").JSX.Element;
/**
 * Icon-only Sign In Button
 */
export declare function IconSignInButton(props: Omit<SignInButtonProps, 'iconOnly'>): import("react/jsx-runtime").JSX.Element;
/**
 * Sign In Button that always opens in modal
 */
export declare function ModalSignInButton(props: Omit<SignInButtonProps, 'modalMode'>): import("react/jsx-runtime").JSX.Element;
/**
 * Navigation Sign In Button (for nav bars)
 */
export declare function NavSignInButton({ className, ...props }: SignInButtonProps): import("react/jsx-runtime").JSX.Element;
/**
 * Header Sign In Button (for headers)
 */
export declare function HeaderSignInButton({ className, ...props }: SignInButtonProps): import("react/jsx-runtime").JSX.Element;
/**
 * Hero Sign In Button (for landing pages)
 */
export declare function HeroSignInButton({ size, className, ...props }: SignInButtonProps): import("react/jsx-runtime").JSX.Element;
/**
 * Quick Access Sign In Button (floating action)
 */
export declare function QuickSignInButton({ className, ...props }: SignInButtonProps): import("react/jsx-runtime").JSX.Element;
export declare function SecureSignInButton({ children, startContent, className, ...props }: SignInButtonProps): import("react/jsx-runtime").JSX.Element;
export interface OrganizationSignInButtonProps extends SignInButtonProps {
    /**
     * Organization ID
     */
    organizationId: string;
    /**
     * Organization name (for display)
     */
    organizationName?: string;
    /**
     * Organization logo
     */
    organizationLogo?: string;
}
export declare function OrganizationSignInButton({ organizationId, organizationName, organizationLogo, children, startContent, modalProps, ...props }: OrganizationSignInButtonProps): import("react/jsx-runtime").JSX.Element;
export default SignInButton;
//# sourceMappingURL=sign-in-button.d.ts.map