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; rocketChatUserId: string; error?: string; } interface JWT { accessToken: string; refreshToken: string; accessTokenExpires: number; first_name: string; last_name: string; username: string; role: string[]; rocketChatToken: string; rocketChatUserId: string; error?: string; } interface User extends DefaultUser { id: string; first_name: string; last_name: string; username: string; email: string; role: string[]; } interface Profile { given_name: string; family_name: string; preferred_username: string; realm_roles: 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; } }