import NextAuth, { DefaultSession, DefaultUser } from "next-auth"; declare module "next-auth" { interface Session { user: { id: string; first_name: string; last_name: string; username: string; email?: string | null; role: string[]; } & DefaultSession["user"]; accessToken: string; refreshToken?: string; error?: string; } interface JWT { sub?: string; accessToken: string; refreshToken?: string; accessTokenExpires: number; first_name: string; last_name: string; username: string; role: string[]; error?: string; } interface User extends DefaultUser { id: string; first_name: string; last_name: string; username: string; email?: string | null; role: string[]; } interface Profile { sub: string; email_verified: boolean; name?: string | null; preferred_username?: string | null; given_name?: string | null; family_name?: string | null; email?: string | null; groups?: string[]; } } declare module "next-auth/jwt" { interface JWT { sub?: string; accessToken: string; refreshToken?: string; accessTokenExpires: number; first_name: string; last_name: string; username: string; role: string[]; error?: string; } }