@accounts/client
Version:
Fullstack authentication and accounts-management
24 lines (23 loc) • 1.28 kB
TypeScript
import { type LoginResult, type ImpersonationUserIdentity, type ImpersonationResult, type CreateUser, type User, type CreateUserResult } from '@accounts/types';
import { type AccountsClient } from './accounts-client';
export interface TransportInterface {
client: AccountsClient;
createUser(user: CreateUser): Promise<CreateUserResult>;
authenticateWithService(service: string, authenticateParams: {
[key: string]: string | object;
}): Promise<boolean>;
loginWithService(service: string, authenticateParams: {
[key: string]: string | object;
}): Promise<LoginResult>;
logout(): Promise<void>;
getUser(): Promise<User>;
refreshTokens(accessToken: string, refreshToken: string): Promise<LoginResult>;
verifyEmail(token: string): Promise<void>;
sendResetPasswordEmail(email: string): Promise<void>;
sendVerificationEmail(email: string): Promise<void>;
resetPassword(token: string, newPassword: string): Promise<LoginResult | null>;
addEmail(newEmail: string): Promise<void>;
changePassword(oldPassword: string, newPassword: string): Promise<void>;
impersonate(token: string, impersonated: ImpersonationUserIdentity): Promise<ImpersonationResult>;
requestMagicLinkEmail(email: string): Promise<void>;
}