interface UsersService {
    acceptMobileAppTerms(): Promise<void>;
    acceptMobileAppTermsForUser(email: string): Promise<void>;
    activateUserWithToken(
        token: string,
        user: ActivateUserDTO,
    ): Promise<SavedUser>;
    changePassword(id: string, password: string): Promise<SavedUser>;
    changePasswordFromToken(
        token: string,
        email: string,
        password: string,
        confirmPassword: string,
        acceptedTerms: string,
    ): Promise<SavedUser>;
    checkForInactiveUserByToken(token: string): Promise<null | BaseUser>;
    create(entity: CreateUserDTO): Promise<SavedUser>;
    createHostFromSignup(entity: CreateHostFromSignupDTO): Promise<SavedUser>;
    delete(id: string): Promise<SavedUser>;
    findById(
        id: string,
        fields?: SelectQuery<BaseUser>[],
        listQueryOptions?: ListQueryOptions<BaseUser>,
    ): Promise<SavedUser>;
    findOne(
        query: Query<BaseUser>,
        fields?: SelectQuery<BaseUser>[],
    ): Promise<null | BaseUser>;
    findUserByToken(
        token: string,
        fields?: SelectQuery<BaseUser>[],
    ): Promise<SavedUser>;
    getHostMarketingEmailList(hostId: string): Promise<BaseListUser[]>;
    getTargetUserForImpersonation(targetUserId: string): Promise<SavedUser>;
    getUserByEmail(email: string): Promise<SavedUser>;
    list(
        query?: Query<BaseUser>,
        fields?: SelectQuery<BaseUser>[],
    ): Promise<BaseUser[]>;
    resetPassword(email: string): Promise<boolean>;
    resetPasswordAttempts(id: string): Promise<boolean>;
    undeleteUserById(id: string): Promise<SavedUser>;
    update(id: string, entity: PartialQuery<BaseUser>): Promise<SavedUser>;
}

Methods