streambird
Version:
Node.js library for the Streambird API
127 lines (126 loc) • 4.11 kB
TypeScript
import { AxiosInstance } from "axios";
import { Resource } from "../Resource";
export declare type CreateUserRequest = {
firstName?: string | null;
middleName?: string | null;
lastName?: string | null;
email?: string | null;
walletType?: string | null;
phoneNumber?: string | null;
requiresVerification: boolean;
includeUser?: boolean | false;
};
export declare type CreateUserResponse = {
userId: string | null;
status: string | null;
emailId: string | null;
phoneNumberId: string | null;
user: User | null;
};
export declare type User = {
userId: string | null;
firstName: string | null;
middleName: string | null;
lastName: string | null;
active: boolean | null;
updatedAt: number | null;
createdAt: number | null;
emailId: string | null;
phoneNumberId: string | null;
emails?: Array<UserEmailResponse> | null;
phoneNumbers?: Array<UserPhoneNumberResponse> | null;
wallets?: Array<UserWalletResponse> | null;
totps?: Array<UserTOTPAttribute> | null;
idpProviders?: Array<UserIDPProvider> | null;
};
export declare type UpdateUserRequest = {
firstName?: string | null;
middleName?: string | null;
lastName?: string | null;
emails?: Array<string>;
phoneNumbers?: Array<string>;
};
export declare type UpdateUserResponse = {
userId: string;
phoneNumbers: Array<UserPhoneNumberResponse>;
emails: Array<UserEmailResponse>;
user: User;
};
export declare type UserEmailResponse = {
id: string;
verified: boolean;
email: string;
updatedAt: number;
createdAt: number;
};
export declare type UserPhoneNumberResponse = {
id: string;
verified: boolean;
phoneNumber: string;
updatedAt: number;
createdAt: number;
};
export declare type UserWalletResponse = {
id: string;
userId: string;
publicAddress: string;
walletType: string;
isDefault: boolean;
updatedAt: number;
createdAt: number;
};
export declare type UserTOTPAttribute = {
id: string;
userId: string;
verified: boolean;
updatedAt: number;
createdAt: number;
};
export declare type UserIDPProvider = {
id: string;
provider: string;
providerSubject: string;
idpType: string;
methodId: string;
methodType: string;
updatedAt: number;
createdAt: number;
};
export declare type UserDeleteResponse = {
userId: string;
message: string;
};
export declare type SearchUserRequest = {
limit: number;
startingAfter?: string;
filters: SearchFilter;
};
export declare type SearchUserResponse = {
totalCount: number;
hasMore: boolean;
users: Array<User>;
};
export declare type SearchFilter = {
operator: 'AND' | 'OR';
fields: Array<SearchFilterField>;
};
export declare type SearchFilterField = {
field: 'user_id' | 'status' | 'full_name_match' | 'phone_number' | 'phone_number_id' | 'phone_number_match' | 'phone_number_verified' | 'email' | 'email_id' | 'email_verified' | 'email_match' | 'wallet_public_address' | 'wallet_id' | 'totp_id' | 'totp_verified' | 'idp_provider';
operator: 'eq' | 'between' | 'lt' | 'gt';
value?: any;
secondValue?: any;
values?: Array<any>;
};
export declare class Users extends Resource<never> {
constructor(axiosInstance: AxiosInstance);
create(userRequest: CreateUserRequest): Promise<CreateUserResponse>;
update(userId: string, options: UpdateUserRequest): Promise<UpdateUserResponse>;
get(userId: string): Promise<User>;
delete(userId: string): Promise<UserDeleteResponse>;
deleteEmail(emailId: string): Promise<UserDeleteResponse>;
deletePhoneNumber(phoneNumberId: string): Promise<UserDeleteResponse>;
deleteWallet(walletId: string): Promise<UserDeleteResponse>;
search(searchRequest: SearchUserRequest): Promise<SearchUserResponse>;
deleteWebAuthn(webauthnCredentialId: string): Promise<any>;
deleteTOTP(totpId: string): Promise<any>;
}