import { Observable } from 'rxjs';
import { Params, ResourceProvider } from '../resource-provider.service';
import { ConfigurationService } from '../../configuration/configuration.service';
import { MessageResource } from '../interface/message-resource';
import { Authority } from '../interface/authority';
import { Preferences } from '../interface/preferences';
import { Page } from '../interface/page';
import { GroupsInterface } from '../interface/group';
import { AbstractResourceService } from '../abstract-endpoint/abstract-resource.service';
import { UserResource } from '../interface/user-resource';
import * as i0 from "@angular/core";
export declare class UserResourceService extends AbstractResourceService {
    constructor(provider: ResourceProvider, configService: ConfigurationService);
    /**
     * Assign authority to the user
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/users/{id}/authority/assign
     */
    assignAuthority(userId: string, body: object, realmId?: string, params?: Params): Observable<MessageResource>;
    /**
     * Assign role to the user
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/users/{id}/role/assign
     */
    assignRoles(userId: string, realmId: string, body: object, params?: Params): Observable<MessageResource>;
    /**
     * Get all authorities of the system
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/users/authority
     */
    getAllAuthorities(): Observable<Array<Authority>>;
    /**
     * Get all users
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/user
     */
    getAll(params?: Params): Observable<Page<UserResource>>;
    /**
     * Get all users with specified roles
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/users/role
     */
    getAllWithRole(body: object, params?: Params): Observable<Array<UserResource>>;
    /**
     * Get logged user
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/users/me
     */
    getLoggedUser(params?: Params): Observable<UserResource>;
    /**
     * Get logged user
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/users/me
     */
    getPublicLoggedUser(params?: Params): Observable<UserResource>;
    /**
     * Get user by id
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/users/{id}
     */
    getUser(userId: string, realmId?: string, params?: Params): Observable<UserResource>;
    /**
     * Get user's preferences
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/users/preferences
     */
    getPreferences(params?: Params): Observable<Preferences>;
    /**
     * Set user's preferences
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/users/preferences
     */
    setPreferences(body: object, params?: Params): Observable<MessageResource>;
    /**
     * Get user's preferences
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/users/preferences
     */
    getPublicPreferences(params?: Params): Observable<Preferences>;
    /**
     * Set user's preferences
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/users/preferences
     */
    setPublicPreferences(body: object, params?: Params): Observable<MessageResource>;
    /**
     * Generic user search
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/users/search
     */
    search(body: object, params?: Params): Observable<Page<UserResource>>;
    /**
     * Update user
     *
     * **Request Type:** POST
     *
     * **Request URL:** {{baseUrl}}/api/users/{id}
     */
    updateUser(userId: string, body: object, realmId?: string, params?: Params): Observable<UserResource>;
    /**
     * get all groups
     *
     * **Request Type:** GET
     *
     * **Request URL:** {{baseUrl}}/api/group/all
     */
    getAllGroups(params?: Params): Observable<GroupsInterface>;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserResourceService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UserResourceService>;
}
