import { OAuthCallbackDto } from "../dto/oauthCallback.dto"; import { OAuthSignInDto } from "../dto/oauthSignIn.dto"; /** * @typeParam T - type of token * @typeParam C - type of callback query */ export interface OAuthProvider { getAuthEndpoint(state: string): Promise; getToken(query: C): Promise>; getUserInfo(token: OAuthToken, query: C): Promise; } export interface OAuthToken { accessToken: string; expiresIn?: number; refreshToken?: string; tokenType?: string; scope?: string; idToken?: string; rawToken: T; }