'use client';

import { BaseSignInProps, SignInCardProps, SignInFormProps, SignInModalProps } from './index';
export interface SignInProps extends BaseSignInProps {
    /**
     * Render mode
     */
    mode?: 'form' | 'modal' | 'card';
    /**
     * Modal-specific props (when mode is 'modal')
     */
    modalProps?: Partial<SignInModalProps>;
    /**
     * Card-specific props (when mode is 'card')
     */
    cardProps?: Partial<SignInCardProps>;
    /**
     * Form-specific props (when mode is 'form' or not specified)
     */
    formProps?: Partial<SignInFormProps>;
    /**
     * Auto-detect mode based on context
     */
    autoMode?: boolean;
    /**
     * Organization-specific sign-in flow
     */
    organizationFlow?: boolean;
    /**
     * Show organization selector
     */
    showOrganizationSelector?: boolean;
    /**
     * Pre-select organization from URL or context
     */
    autoSelectOrganization?: boolean;
}
/**
 * Universal Sign In component that can render in different modes
 *
 * @example Form mode (default)
 * ```tsx
 * <SignIn
 *   methods={['password', 'oauth']}
 *   organizationId="org_123"
 *   onSuccess={(result) => console.log('Signed in:', result)}
 * />
 * ```
 *
 * @example Modal mode
 * ```tsx
 * <SignIn
 *   mode="modal"
 *   isOpen={isModalOpen}
 *   onClose={() => setIsModalOpen(false)}
 *   organizationFlow
 *   onSuccess={(result) => console.log('Signed in:', result)}
 * />
 * ```
 *
 * @example Card mode with organization branding
 * ```tsx
 * <SignIn
 *   mode="card"
 *   centered
 *   organizationId="org_123"
 *   showBranding
 *   onSuccess={(result) => console.log('Signed in:', result)}
 * />
 * ```
 *
 * @example Auto-mode with organization flow
 * ```tsx
 * <SignIn
 *   autoMode
 *   organizationFlow
 *   autoSelectOrganization
 *   onSuccess={(result) => console.log('Signed in:', result)}
 * />
 * ```
 */
export declare function SignIn({ mode, modalProps, cardProps, formProps, autoMode, organizationFlow, showOrganizationSelector, autoSelectOrganization, ...baseProps }: SignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * Sign In Form (explicit form mode)
 */
export declare function SignInFormComponent(props: SignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * Sign In Modal (explicit modal mode)
 */
export declare function SignInModalComponent(props: SignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * Sign In Card (explicit card mode)
 */
export declare function SignInCardComponent(props: SignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * Organization Sign In - Focused on organization-user relationships
 */
export interface OrganizationSignInProps extends Omit<SignInProps, 'organizationFlow' | 'organizationId'> {
    /**
     * Organization ID (required)
     */
    organizationId: string;
    /**
     * Organization name for display
     */
    organizationName?: string;
    /**
     * Organization logo URL
     */
    organizationLogo?: string;
    /**
     * Allow users to switch organizations
     */
    allowOrganizationSwitching?: boolean;
    /**
     * Show organization member count or info
     */
    showOrganizationInfo?: boolean;
    /**
     * Custom organization welcome message
     */
    organizationWelcomeMessage?: string;
    /**
     * Organization-specific auth methods
     */
    organizationAuthMethods?: ('password' | 'oauth' | 'magic-link' | 'passkey' | 'sso')[];
}
export declare function OrganizationSignIn({ organizationId, organizationName, organizationLogo, allowOrganizationSwitching, showOrganizationInfo, organizationWelcomeMessage, organizationAuthMethods, title, subtitle, methods, ...props }: OrganizationSignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * Multi-Organization Sign In - Allows users to select from their organizations
 */
export interface MultiOrganizationSignInProps extends Omit<SignInProps, 'organizationId'> {
    /**
     * Available organizations for the user
     */
    organizations?: Array<{
        id: string;
        name: string;
        slug?: string;
        logoUrl?: string;
    }>;
    /**
     * Default organization to pre-select
     */
    defaultOrganizationId?: string;
    /**
     * Show organization logos in selector
     */
    showOrganizationLogos?: boolean;
    /**
     * Allow creating new organization
     */
    allowCreateOrganization?: boolean;
    /**
     * Callback when organization is selected
     */
    onOrganizationSelected?: (organizationId: string) => void;
}
export declare function MultiOrganizationSignIn({ organizations, defaultOrganizationId, showOrganizationLogos, allowCreateOrganization, onOrganizationSelected, ...props }: MultiOrganizationSignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * SSO Sign In - Focused on Single Sign-On flows
 */
export declare function SSOSignIn({ organizationId, ...props }: Omit<OrganizationSignInProps, 'organizationAuthMethods'>): import("react/jsx-runtime").JSX.Element;
/**
 * Passwordless Sign In - No password required
 */
export declare function PasswordlessSignIn(props: SignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * Secure Sign In - Enhanced security features
 */
export declare function SecureSignIn(props: SignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * Subdomain Sign In - Automatically detects organization from subdomain
 */
export declare function SubdomainSignIn(props: Omit<SignInProps, 'organizationId' | 'autoSelectOrganization'>): import("react/jsx-runtime").JSX.Element;
/**
 * URL-Based Sign In - Detects organization from URL parameters
 */
export declare function URLBasedSignIn(props: Omit<SignInProps, 'organizationId' | 'autoSelectOrganization'>): import("react/jsx-runtime").JSX.Element;
/**
 * Invitation-Based Sign In - For organization invitations
 */
export interface InvitationSignInProps extends Omit<SignInProps, 'organizationId'> {
    /**
     * Invitation token
     */
    invitationToken: string;
    /**
     * Organization name from invitation
     */
    organizationName?: string;
    /**
     * Inviter information
     */
    inviterInfo?: {
        name?: string;
        email?: string;
    };
    /**
     * Auto-create account if not exists
     */
    autoCreateAccount?: boolean;
}
export declare function InvitationSignIn({ invitationToken, organizationName, inviterInfo, autoCreateAccount, title, subtitle, onSuccess, ...props }: InvitationSignInProps): import("react/jsx-runtime").JSX.Element;
/**
 * Progressive Sign In - Adapts based on user context and organization
 */
export declare function ProgressiveSignIn({ onSuccess, ...props }: SignInProps): import("react/jsx-runtime").JSX.Element | null;
export default SignIn;
//# sourceMappingURL=sign-in.d.ts.map