import type { UserRole } from '../entities/user'

export interface AccessTokenPayload {
  userId: string
  role: UserRole
}

export interface ITokenService {
  generateAccessToken(payload: AccessTokenPayload): string
  verifyAccessToken(token: string): AccessTokenPayload
  generateOpaqueToken(): string
  hashToken(token: string): string
  refreshTokenTtlMs(): number
}
