import { Timestamp } from '../firestore/Timestamp'; export interface User { uid: string; email: string | null; emailVerified: boolean; name: string | null; photoURL: string | null; phoneNumber: string | null; disabled: boolean; createdAt: Timestamp | string; updatedAt: Timestamp | string; lastLoginAt: Timestamp | string; } export interface AuthSession { accessToken: string; refreshToken: string; accessTokenExpiresAt: number; refreshTokenExpiresAt: number; user: User; } export interface IdTokenResult { token: string; expirationTime: string; authTime: string; issuedAtTime: string; signInProvider: string | null; claims: Record; } export interface UserProfileUpdate { name?: string | null; photoURL?: string | null; } export interface IAuthPersistence { getSession(): Promise; saveSession(session: AuthSession): Promise; clearSession(): Promise; } export type AuthStateCallback = (user: User | null) => void;