import type { ArkmeAuthSnapshot, ArkmeClientConfig } from '../types.js'; import { type ArkmeLoginMode, type ArkmeLoginProps } from './ArkmeLogin.js'; import { type ArkmeAuthStoreSnapshot } from './auth-store.js'; import { type ArkmeLoginTranslate } from './arkme-login-locales.js'; export type ArkmeAuthView = 'checking' | 'login' | 'content'; export interface ArkmeAuthFlowOptions { initialAuth?: ArkmeAuthSnapshot | undefined; /** Web login is a dismissible dialog, so phone binding must remain inside that dialog. */ retainWebLoginDialogOnBindingRequired?: boolean; } export interface ArkmeAuthFlowController { auth: ArkmeAuthSnapshot | undefined; authView: ArkmeAuthView; authenticated: boolean; busy: boolean; error: string; loginProps: ArkmeLoginProps; phoneBindingRequired: boolean; retry(): void; storeSnapshot: ArkmeAuthStoreSnapshot; } export declare function arkmeAuthView(auth: ArkmeAuthSnapshot | undefined): ArkmeAuthView; export declare function arkmeLoginNeedsPhoneBinding(auth: ArkmeAuthSnapshot | undefined): boolean; export declare function arkmeConfiguredLoginMode(selected: ArkmeLoginMode | undefined, config: Pick | undefined): ArkmeLoginMode; export declare function arkmeShouldBeginWechat(auth: ArkmeAuthSnapshot | undefined, authView: ArkmeAuthView, loginMode: ArkmeLoginMode, agreed: boolean, qr: string, qrRequestStarted: boolean): boolean; export declare function arkmeShouldBeginQrLogin(auth: ArkmeAuthSnapshot | undefined, authView: ArkmeAuthView, loginMode: ArkmeLoginMode, agreed: boolean, qr: string, qrRequestStarted: boolean, jiwoScanLoginEnabled: boolean): boolean; export declare function arkmeWechatRequestStartedAfterAuthStatus(current: boolean, status: ArkmeAuthSnapshot['status'] | undefined): boolean; export declare function ArkmeAuthChecking({ error, busy, onRetry, t, statusText, }: { error: string; busy: boolean; onRetry(): void; t?: ArkmeLoginTranslate; statusText?: string; }): import("react").JSX.Element; export declare function ArkmeAuthFlowContent({ flow }: { flow: ArkmeAuthFlowController; }): import("react").JSX.Element | null; /** Restore the active QR after a transient Web login dialog is closed and reopened. */ export declare function arkmePendingWechatQrDataUrl(auth: ArkmeAuthSnapshot | undefined): string; export declare function useArkmeAuthFlow(options?: ArkmeAuthFlowOptions, t?: ArkmeLoginTranslate): ArkmeAuthFlowController; //# sourceMappingURL=arkme-auth-flow.d.ts.map