export declare enum UserRole { ADMIN = "admin", USER = "user", MODERATOR = "moderator" } export interface AuthData { jwtToken: string; refreshToken: string; username: string; id: number | string; roles: string[]; } export interface AuthResponse { data: AuthData; message: string; success: boolean; } export interface User { id: number | string; email: string; name?: string; role: UserRole; roles: UserRole[]; username?: string; jwtToken?: string; refreshToken?: string; createdAt: Date; } export interface AuthState { user: User | null; session: AuthResponse | null; isAuthenticated: boolean; isLoading: boolean; } export interface LoginCredentials { email: string; password: string; rememberMe?: boolean; } export interface SignupData { email: string; password: string; name: string; role?: UserRole; } export interface OTPData { email: string; otp: string; } export interface GoogleLoginPayload { idToken: string; } export interface ResetPasswordData { token: string; newPassword: string; } export interface AuthContextType extends AuthState { login: (credentials: LoginCredentials) => Promise; loginWithGoogle: (payload?: GoogleLoginPayload) => Promise; loginWithOTP: (otpData: OTPData) => Promise; signup: (data: SignupData) => Promise; refreshSession: () => Promise; logout: () => Promise; sendOTP: (email: string) => Promise; resetPassword: (email: string) => Promise; completePasswordReset: (payload: ResetPasswordData) => Promise; hasRole: (role: UserRole) => boolean; hasAnyRole: (roles: UserRole[]) => boolean; } //# sourceMappingURL=auth.d.ts.map