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; } }