export interface CaptchaConfig {
    provider: 'recaptcha' | 'turnstile' | 'none';
    siteKey: string | null;
}
/**
 * Branding shown on the login screen. Mirrors `config.admin.branding` from the
 * sidebar so integrators only need to set it once. `logo` should be a URL or
 * data URL; pass `null` to opt out of any logo entirely.
 */
export interface LoginBrandingConfig {
    logo?: string | null;
    name?: string;
    tagline?: string;
}
export interface LoginProps {
    onLogin: (email: string, password: string, captchaToken?: string) => Promise<{
        success: boolean;
        error?: string;
        /** Set when the account has TOTP enabled — the password step succeeded but
         * a second factor is still required. */
        requiresTOTP?: boolean;
        /** Short-lived token tying the second-factor step to this password step. */
        mfaPendingToken?: string;
    }>;
    /**
     * Completes the second-factor step. Receives the `mfaPendingToken` from
     * `onLogin` plus the user's authenticator code (or a one-time backup code).
     * Required for accounts with MFA enabled; when omitted, the challenge screen
     * explains that MFA sign-in isn't wired up.
     */
    onVerifyTotp?: (mfaPendingToken: string, code: string) => Promise<{
        success: boolean;
        error?: string;
    }>;
    onNavigate?: (path: string) => void;
    oauthProviders?: string[];
    captchaConfig?: CaptchaConfig;
    /**
     * Custom branding for the login screen. Falls back to the bundled Actuate
     * Media wordmark + "Actuate CMS" headline when omitted.
     */
    branding?: LoginBrandingConfig;
}
export declare function Login({ onLogin, onVerifyTotp, onNavigate, oauthProviders, captchaConfig, branding, }: LoginProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Login.d.ts.map