export interface CreateRefreshTokenData {
  userId: string
  tokenHash: string
  expiresAt: Date
}

export interface ValidRefreshToken {
  id: string
  userId: string
}

export interface IRefreshTokenRepository {
  create(data: CreateRefreshTokenData): Promise<void>
  findValidByHash(tokenHash: string): Promise<ValidRefreshToken | null>
  revoke(id: string): Promise<void>
  revokeAllForUser(userId: string): Promise<void>
  deleteExpired(): Promise<void>
}
