import { type CaptchaConfig } from './views/Login.js';
export interface LoginRootProps {
    config?: any;
    /** Current session, if any. Authenticated visitors are sent to `adminPath`. */
    session?: any;
    /** Mount path of this login screen (default: '/securelogin'). */
    basePath?: string;
    /**
     * Where the admin app lives (default: '/admin'). Users are sent here after
     * signing in — and immediately, if they arrive already authenticated.
     */
    adminPath?: string;
    setupRequired?: boolean;
    onSetupComplete?: (data: {
        name: string;
        email: string;
        password: string;
    }) => Promise<{
        success: boolean;
        error?: string;
    }>;
    onLogin: (email: string, password: string, captchaToken?: string) => Promise<{
        success: boolean;
        error?: string;
        requiresTOTP?: boolean;
        mfaPendingToken?: string;
    }>;
    /** Completes the TOTP second-factor step for accounts with MFA enabled. */
    onVerifyTotp?: (mfaPendingToken: string, code: string) => Promise<{
        success: boolean;
        error?: string;
    }>;
    captchaConfig?: CaptchaConfig;
    /**
     * Called once a session exists (after login, or on arrival while already
     * signed in). Defaults to a full-page navigation to `adminPath` — the admin
     * app is a separate route mount, so a client-side route push can't reach it.
     */
    onAuthenticated?: (adminPath: string) => void;
}
/**
 * Standalone mount for the unauthenticated auth screens on split-login
 * installs: login (+ MFA), setup wizard, forgot/reset password. Pair it with
 * `<AdminRoot loginPath>` so the admin mount itself stops rendering a login
 * form for signed-out visitors.
 *
 * Routes under `basePath`:
 * - `/` — login (or the setup wizard while `setupRequired`)
 * - `/setup` — setup wizard (first-run; falls back to login once setup is done)
 * - `/forgot-password`, `/reset-password?token=…` — recovery flows; emailed
 *   reset/invite links point here when `config.admin.loginPath` is set.
 */
export declare function LoginRoot({ config, session, basePath, adminPath, setupRequired, onSetupComplete, onLogin, onVerifyTotp, captchaConfig, onAuthenticated, }: LoginRootProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=LoginRoot.d.ts.map