import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { User } from '../../models/user.model';
import { BearerResponse } from './_responses/bearer/bearer.response';
import { BaseHttpService } from './base-http.service';
import { Environment } from '../../interfaces/environment.interface';
import { CacheService } from '../../services/cache/cache.service';
export declare class UsersHttpService extends BaseHttpService {
    protected environment: Environment;
    constructor(http: HttpClient, cache: CacheService, environment: Environment);
    /**
     * POST /users/login
     *
     * Login an user
     */
    login(email: string, password: string): Observable<BearerResponse>;
    /**
     * POST /users/register
     *
     * Register a new user
     */
    register(email: string, password: string, class_id?: number): Observable<User>;
    /**
     * GET /users/profile
     *
     * Get current logged user profile
     */
    profile(): Observable<User>;
    /**
     * POST /users/search
     *
     * Search in users database
     */
    search(params: any, page?: number, perPage?: number): Observable<any>;
    /**
     * Assert that the selected email exists in the database.
     */
    emailExists(email: string): Observable<{
        exists: boolean;
    }>;
    /**
     * POST /users/points/{id}
     *
     * Add points to user
     */
    points(points: number, loggableType: 'module', loggableId: number, userId?: number): Observable<any>;
    /**
     * POST /users/forgot
     *
     * Forgot password API call
     */
    forgotPassword(email: string): Observable<any>;
    /**
     * POST /users/reset
     *
     * Reset password API call
     */
    resetPassword(token: string, password: string): Observable<any>;
}
