import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
import { PasswordChangeRequest } from '@documment/mmp.core';
import { PasswordResetRequest } from '@documment/mmp.core';
import { RegistrationRequest } from '@documment/mmp.core';
import { UserAccountRequest } from '@documment/mmp.core';
import { User } from '@documment/mmp.core';
import { HttpRequester } from '../http/http-requester';
import { HttpResponseParser } from '../http/http-response-parser';
import { UserMapper } from '../mappers/user.mapper';
import { ApiOptions } from '../models/api-options.model';
import { ServiceResponder } from '../services/responders/service.responder';
import { UserPublisher } from '../../pubsub/publishers/data/user.publisher';
import { AuthPublisher } from '../../pubsub/publishers/session/auth.publisher';
export declare class UserService {
    private httpRequester;
    private responseParser;
    private userMapper;
    private userPublisher;
    private authPublisher;
    private serviceResponder;
    constructor(httpRequester: HttpRequester, responseParser: HttpResponseParser, userMapper: UserMapper, userPublisher: UserPublisher, authPublisher: AuthPublisher, serviceResponder: ServiceResponder);
    account(userId: number, params: UserAccountRequest, options?: ApiOptions): Observable<User>;
    me(options?: ApiOptions): Observable<User>;
    passwordChange(params: PasswordChangeRequest, options?: ApiOptions): Observable<User>;
    passwordReset(params: PasswordResetRequest, options?: ApiOptions): Observable<any>;
    register(params: RegistrationRequest, options?: ApiOptions): Observable<User>;
    user(userId: number, options?: ApiOptions): Observable<User>;
}
