export interface EmailPasswordConfig { minPasswordLength: number; requireEmailVerification: boolean; requirePasswordResetEmailVerification: boolean; revokeSessionsOnPasswordReset: boolean; } export interface ProviderEmailPassword { enabled: boolean; config: EmailPasswordConfig; } export interface GoogleProviderConfig { clientId: string; clientSecret: string; } export interface ProviderGoogle { enabled: boolean; config: GoogleProviderConfig; } export interface AuthConfig { disableSignUp: boolean; enableAnonymous: boolean; providerEmailPassword: ProviderEmailPassword; providerGoogle: ProviderGoogle; } export interface AuthConfigResponse { data: AuthConfig; } export interface OAuthProviderDescriptor { id: string; enabled: boolean; config: TConfig; } export interface NormalizedAuthConfig { emailPassword: ProviderEmailPassword; oauthProviders: OAuthProviderDescriptor[]; disableSignUp: boolean; enableAnonymous: boolean; } export interface OAuthRedirectOptions { /** * OAuth 登录/绑定成功后的回调地址 */ success?: string; /** * 首次注册成功时的回调地址 */ newUser?: string; /** * OAuth 流程错误时的回调地址 */ error?: string; } export interface RedirectOptions { /** * 三方登录/绑定的回调配置 */ oauth?: OAuthRedirectOptions; /** * 密码登录成功后的回调地址 */ emailPassword?: string; /** * 需要发送验证邮件时的回调地址(注册、登录需要验证、改邮箱等场景) */ emailVerification?: string; /** * 匿名/临时账号登录成功后的回调地址 */ anonymous?: string; } export interface EdgesparkGlobalPayload { config: AuthConfig; version?: string; lastFetchedAt?: string; } export interface InitOptions { baseUrl?: string; /** * 覆盖 better-auth 客户端内部 fetch 的 credentials,默认 "include" 兼容 OAuth / Cookie。 */ fetchCredentials?: RequestCredentials; } export interface RenderOptions { labels?: Partial; onLogin?: (payload: any) => void; onError?: (error: unknown) => void; /** * 托管 UI 使用的回调地址配置(优先级高于构造函数传入的 redirects) */ redirects?: RedirectOptions; }