import { AppleAuthHandler } from "../handlers/apple-auth.handler"; import { GoogleAuthHandler } from "../handlers/google-auth.handler"; import { XAuthHandler } from "../handlers/x-auth.handler"; import { LinkedInAuthHandler } from "../handlers/linkedin-auth.handler"; import { SnapChatAuthHandler } from "../handlers/snapchat-auth.handler"; export type AuthHandler = AppleAuthHandler | GoogleAuthHandler | XAuthHandler | LinkedInAuthHandler | SnapChatAuthHandler; export type AuthHandlerCredential = AppleSignInCredentials | GoogleSignInCredentials | XSignInCredentials | LinkedInSignInCredentials; export type BasicUserAuthRetrievedData = { sub: string; raw: any; }; export declare enum ThirdPartyType { Apple = "Apple", Google = "Google", X = "X", LinkedIn = "LinkedIn", SnapChat = "SnapChat" } export type GoogleSignInCredentials = { clientId: string; clientSecret: string; }; export type GoogleUserRetrievedData = BasicUserAuthRetrievedData & { firstName?: string; lastName?: string; avatar?: string; aud: string; email: string; emailVerified: boolean; }; export type AppleSignInCredentials = { privateKey: string; teamId: string; keyId: string; clientId: string; }; export type AppleSignInTokenResponse = { idToken: string; refreshToken: string; accessToken: string; tokenType: string; expiresIn: string; }; export type AppleUserRetrievedData = BasicUserAuthRetrievedData & { isPrivateEmail?: boolean; accessToken: string; refreshToken?: string; aud: string; email?: string; emailVerified?: boolean; }; export type XUserRetrievedData = BasicUserAuthRetrievedData & { name: string; username: string; accessToken: string; refreshToken?: string; }; export type XUserCodeExchangedData = { accessToken: string; refreshToken?: string; scope: string; }; export type XSignInCredentials = { clientId: string; clientSecret: string; redirectURI: string; }; export type LinkedInSignInCredentials = { clientId: string; clientSecret: string; redirectURI: string; }; export type LinkedInUserCodeExchangedData = { accessToken: string; refreshToken?: string; scope: string; idToken: string; tokenType: string; refreshTokenExpiresIn?: number; expiresIn: number; }; export type LinkedInUserRetrievedData = BasicUserAuthRetrievedData & { name?: string; firstName?: string; lastName?: string; avatar?: string; email?: string; emailVerified?: boolean; accessToken: string; }; export type SnapChatSignInCredentials = { clientId: string; clientSecret: string; redirectURI: string; }; export type SnapChatUserCodeExchangedData = { accessToken: string; refreshToken: string; scope: string; tokenType: string; expiresIn: number; }; export type SnapChatUserRetrievedData = BasicUserAuthRetrievedData & { avatar: string; displayName: string; accessToken: string; refreshToken: string; expiresIn: number; };