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; role: string[]; } & DefaultSession["user"]; accessToken: string; refreshToken: string; rocketChatToken: string | null; rocketChatUserId: string | null; error?: string; } interface JWT { accessToken: string; refreshToken: string; accessTokenExpires: number; first_name: string; last_name: string; username: string; role: string[]; rocketChatToken: string | null; rocketChatUserId: string | null; error?: string; } interface User extends DefaultUser { id: string; first_name: string; last_name: string; username: string; email: string; 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 { accessToken: string; refreshToken: string; accessTokenExpires: number; first_name: string; last_name: string; username: string; role: string[]; rocketChatToken: string; rocketChatUserId: string; error?: string; } }