'use client';

import { default as ErrorBoundary, ApiErrorBoundary, AuthErrorBoundary, ErrorBoundaryProps, FormErrorBoundary } from './error-boundary';
import { default as LoadingSpinner, LoadingButton, LoadingProvider, LoadingSpinnerProps } from './loading-spinner';
import { default as MagicLink, MagicLinkVerification } from './magic-link';
import { default as OAuthButtons, OAuthDivider } from './oauth-buttons';
import { default as RedirectHandler } from './redirect-handler';
export { LoadingSpinner, LoadingButton, LoadingProvider, useLoading, LoadingStates, type LoadingSpinnerProps, type LoadingButtonProps, } from './loading-spinner';
export { ErrorBoundary, AuthErrorBoundary, FormErrorBoundary, ApiErrorBoundary, withErrorBoundary, useAsyncError, type ErrorBoundaryProps, type ErrorFallbackProps, } from './error-boundary';
export { RedirectHandler, useRedirectHandler, type RedirectHandlerProps, } from './redirect-handler';
export { OAuthButtons, OAuthDivider, type OAuthButtonsProps, } from './oauth-buttons';
export { MagicLink, MagicLinkVerification, type MagicLinkProps, type MagicLinkVerificationProps, } from './magic-link';
export * from './verification';
/**
 * Collection of all common authentication components
 */
export declare const CommonAuthComponents: {
    readonly LoadingSpinner: typeof LoadingSpinner;
    readonly LoadingButton: typeof LoadingButton;
    readonly ErrorBoundary: typeof ErrorBoundary;
    readonly RedirectHandler: typeof RedirectHandler;
    readonly OAuthButtons: typeof OAuthButtons;
    readonly OAuthDivider: typeof OAuthDivider;
    readonly MagicLink: typeof MagicLink;
    readonly MagicLinkVerification: typeof MagicLinkVerification;
};
/**
 * Collection of loading-related components
 */
export declare const LoadingComponents: {
    readonly LoadingSpinner: typeof LoadingSpinner;
    readonly LoadingButton: typeof LoadingButton;
    readonly LoadingProvider: typeof LoadingProvider;
};
/**
 * Collection of error handling components
 */
export declare const ErrorComponents: {
    readonly ErrorBoundary: typeof ErrorBoundary;
    readonly AuthErrorBoundary: typeof AuthErrorBoundary;
    readonly FormErrorBoundary: typeof FormErrorBoundary;
    readonly ApiErrorBoundary: typeof ApiErrorBoundary;
};
/**
 * Collection of OAuth-related components
 */
export declare const OAuthComponents: {
    readonly OAuthButtons: typeof OAuthButtons;
    readonly OAuthDivider: typeof OAuthDivider;
};
/**
 * Collection of magic link components
 */
export declare const MagicLinkComponents: {
    readonly MagicLink: typeof MagicLink;
    readonly MagicLinkVerification: typeof MagicLinkVerification;
};
/**
 * Common authentication states
 */
export declare const AuthStates: {
    readonly LOADING: "loading";
    readonly SUCCESS: "success";
    readonly ERROR: "error";
    readonly IDLE: "idle";
    readonly PROCESSING: "processing";
    readonly VERIFYING: "verifying";
    readonly REDIRECTING: "redirecting";
};
/**
 * Authentication error types
 */
export declare const AuthErrorTypes: {
    readonly NETWORK_ERROR: "network_error";
    readonly AUTHENTICATION_ERROR: "authentication_error";
    readonly AUTHORIZATION_ERROR: "authorization_error";
    readonly VALIDATION_ERROR: "validation_error";
    readonly TIMEOUT_ERROR: "timeout_error";
    readonly UNKNOWN_ERROR: "unknown_error";
};
/**
 * Redirect types for authentication flows
 */
export declare const RedirectTypes: {
    readonly OAUTH: "oauth";
    readonly MAGIC_LINK: "magic-link";
    readonly INVITATION: "invitation";
    readonly VERIFICATION: "verification";
    readonly ERROR: "error";
};
/**
 * HOC to wrap components with loading state
 */
export declare function withLoading<P extends object>(Component: React.ComponentType<P>, loadingProps?: Partial<LoadingSpinnerProps>): {
    (props: P & {
        isLoading?: boolean;
    }): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
/**
 * HOC to wrap components with auth error boundary
 */
export declare function withAuthErrorBoundary<P extends object>(Component: React.ComponentType<P>, errorBoundaryProps?: Partial<ErrorBoundaryProps>): {
    (props: P): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
/**
 * Utility to determine if current page is an auth redirect
 */
export declare function isAuthRedirect(): boolean;
/**
 * Utility to extract auth parameters from URL
 */
export declare function getAuthParams(): Record<string, string>;
/**
 * Utility to clean auth parameters from URL
 */
export declare function cleanAuthParams(): void;
export default CommonAuthComponents;
//# sourceMappingURL=index.d.ts.map