import { AthenaAuthCapabilitiesResult, AthenaAuthCapabilitiesStatus } from '@xylex-group/athena/browser'; export type AuthUiCapabilitiesStatus = AthenaAuthCapabilitiesStatus; export type AuthUiCapabilitiesResult = AthenaAuthCapabilitiesResult & { /** * Optional 2FA slot. Unset when the SDK snapshot has no field. * Do not invent this from Better Auth plugin ids. */ twoFactor?: boolean | null; }; /** * Presentation fields AuthProvider understands. Explicit caller overrides win. * INV-P: unknown/partial never forces features off — only `status === "known"` * with an explicit false/true (or social list) drives enablement. */ export interface AuthPresentationFromCapabilities { emailAndPassword?: { confirmPassword?: boolean; enabled?: boolean; forgotPassword?: boolean; name?: boolean; requireEmailVerification?: boolean; }; organization?: boolean; passkey?: boolean; socialProviders?: string[]; /** Set only from known SDK capabilities or explicit provider overrides. */ twoFactor?: boolean; username?: boolean | { enabled?: boolean; }; } /** * Map INV-P capabilities into Auth UI presentation props. * Returns only fields that capabilities can authoritatively set. */ export declare function resolvePresentationFromCapabilities(caps: AuthUiCapabilitiesResult): AuthPresentationFromCapabilities; /** * Merge capability-driven defaults under explicit AthenaProviders overrides. * Undefined explicit fields inherit capability values; defined fields win. */ export declare function mergePresentationWithCapabilities(explicit: T, caps: AuthUiCapabilitiesResult): T;