export type RefreshToken = {
  /**
   * 外部認証サービスの識別子
   */
  userId: string;
  /**
   * 半角スペース区切りのRoleを表現する文字列(ex. "author admin")
   */
  role: string;
  /**
   * アカウントの階層情報（1~5までの半角数字）
   */
  tier: number;
};

export type AccessToken = {
  /**
   * 外部認証サービスの識別子
   */
  userId: string;
  /**
   * 半角スペース区切りのRoleを表現する文字列(ex. "author admin")
   */
  role: string;
  /**
   * アカウントの階層情報（1~5までの半角数字）
   */
  tier: number;
};

export type IDToken = {
  emails: string[];
  nonce?: string | undefined;
  sub: string; // AzureAD B2C ID
  exp: number; // 有効期限
  iat: number; // 発行日時
};

export type B2cMetadata = {
  issuer: string;
};

export type JwkSignKey = {
  kid: string;
  nbf: number;
  use: string;
  kty: string;
  e: string;
  n: string;
};

export type Aadb2cUser = {
  displayName: string;
  mail: string;
};
