import { IRequestOptions } from '../transporters'; import { ICredentials } from './credentials'; import { AbstractCredentialsRepo } from './repo/credentials'; export interface IOptions { endpoint: string; refreshToken?: string; /** * カスタム認証情報リポジトリ */ credentialsRepo?: AbstractCredentialsRepo; } export { IRequestOptions }; /** * リフレッシュトークン認証クライアント */ export declare class RefreshTokenClient { /** * アクセストークンの有効期限までの猶予時間初期値 */ static DEFAULT_SPARE_TIME_IN_MILLISECONDS: number; credentials: ICredentials; options: IOptions; constructor(options: IOptions); /** * トークンエンドポイントからアクセストークンを取得します。 */ getTokenWithFetch(): Promise; /** * 認証情報を手動でセットする */ setCredentials(credentials: ICredentials): void; /** * アクセストークンを更新する */ refreshAccessToken(): Promise; /** * 期限の切れていないアクセストークンを取得します。 * 必要であれば更新してから取得します。 */ getAccessToken(): Promise; /** * APIリクエストを投げる * 認証エラー(401,403)であれば自動的に一度だけアクセストークンをリフレッシュします。 */ request(options: IRequestOptions, expectedStatusCodes: number[]): Promise; /** * 認証情報が適切である前提でAPIリクエストを投げる */ private makeRequest; /** * 認証情報を更新する */ private refreshToken; }