import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
import { UserIdService } from '../../auth/user-auth/facade/user-id.service';
import { Title, User } from '../../model/misc.model';
import { StateWithProcess } from '../../process/store/process-state';
import { StateWithUser } from '../store/user-state';
import { UserAccountFacadeTransitionalToken, UserProfileFacadeTransitionalToken } from '../user-transitional-tokens';
import * as i0 from "@angular/core";
export declare class UserService {
    protected store: Store<StateWithUser | StateWithProcess<void>>;
    protected userIdService: UserIdService;
    protected userAccountFacade?: UserAccountFacadeTransitionalToken;
    protected userProfileFacade?: UserProfileFacadeTransitionalToken;
    constructor(store: Store<StateWithUser | StateWithProcess<void>>, userIdService: UserIdService, userAccountFacade?: UserAccountFacadeTransitionalToken, userProfileFacade?: UserProfileFacadeTransitionalToken);
    /**
     * Returns a user.
     *
     * @deprecated since 3.2, use `UserAccountFacade.get()` from `@spartacus/user` package.
     */
    get(): Observable<User | undefined>;
    /**
     * Returns titles.
     *
     * @deprecated since 3.2, use `UserProfileFacade.getTitles()` from `@spartacus/user` package.
     */
    getTitles(): Observable<Title[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserService, [null, null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UserService>;
}
