import { User } from "../interfaces"; export type Provider = 'google' | 'facebook' | 'credentials' | 'apple' | 'email'; export type BaseProvider = { id: Provider; type: 'credentials' | 'email' | 'oauth'; }; type OauthAuthorization = { redirect_uri: string; state: string; }; type OauthToken = { redirect_uri: string; code: string; }; type OauthUserInfo = { access_token: string; }; export type OauthProvider = BaseProvider & OauthProviderOptions & { id: Provider; type: 'oauth'; base64?: boolean; token: (params: T) => string; userInfo: (params: T) => string; profile: (token: any) => User; authorization: (params: T) => string; redirect_uri: string; }; export type OauthProviderOptions = { clientId: string; clientSecret: string; }; export {};