import { UpdateUserRequest } from '../../../models/admin/update-user-request';
import { User } from '../../../models/admin/user';
import { ApiResponseData } from '../../../models/api-response-data';
import { Endpoint } from '../../endpoint';
/**
 * An endpoint for working with Knora users.
 * @deprecated Use open API docs instead
 * @category Endpoint Admin
 */
export declare class UsersEndpointAdmin extends Endpoint {
    /**
     * Returns a list of all users.
     */
    getUsers(): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Gets a user by a property.
     *
     * @param property The name of the property by which the user is identified.
     * @param value The value of the property by which the user is identified.
     */
    getUser(property: 'iri' | 'email' | 'username', value: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Gets a user by IRI.
     *
     * @param iri The IRI of the user.
     */
    getUserByIri(iri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Gets a user by email address.
     *
     * @param email The email address of the user.
     */
    getUserByEmail(email: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Gets a user by username.
     *
     * @param username The username of the user.
     */
    getUserByUsername(username: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Gets a user's group memberships.
     *
     * @param iri The user's IRI.
     */
    getUserGroupMemberships(iri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Gets a user's project memberships.
     *
     * @param iri The IRI of the user.
     */
    getUserProjectMemberships(iri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Gets a user's project admin memberships.
     *
     * @param iri The user's IRI.
     */
    getUserProjectAdminMemberships(iri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Creates a user.
     *
     * @param user The user to be created.
     */
    createUser(user: User): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Updates an existing user's basic information.
     *
     * @param iri The IRI of the user to be updated.
     * @param userInfo The user information to be updated.
     */
    updateUserBasicInformation(iri: string, userInfo: UpdateUserRequest): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Updates a user's status.
     *
     * @param iri The user's IRI.
     * @param status The user's new status.
     */
    updateUserStatus(iri: string, status: boolean): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Updates a user's password.
     *
     * @param iri The IRI of the user to be updated.
     * @param requesterPassword The requesting user's current password.
     * @param newPassword The specified user's new password.
     */
    updateUserPassword(iri: string, requesterPassword: string, newPassword: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Adds a user to a group.
     *
     * @param userIri The IRI of the user.
     * @param groupIri The IRI of the group.
     */
    addUserToGroupMembership(userIri: string, groupIri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Removes a user from a project.
     *
     * @param userIri The IRI of the user.
     * @param groupIri The IRI of the group.
     */
    removeUserFromGroupMembership(userIri: string, groupIri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Adds a user to a project.
     *
     * @param userIri The user's IRI.
     * @param projectIri The project's IRI.
     */
    addUserToProjectMembership(userIri: string, projectIri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Removes a user from a project.
     *
     * @param userIri The user's IRI.
     * @param projectIri The project's IRI.
     */
    removeUserFromProjectMembership(userIri: string, projectIri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Makes a user a project administrator.
     *
     * @param userIri The IRI of the user.
     * @param projectIri The IRI of the project.
     */
    addUserToProjectAdminMembership(userIri: string, projectIri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Removes a user's project administrator status.
     *
     * @param userIri The IRI of the user.
     * @param projectIri The IRI of the project.
     */
    removeUserFromProjectAdminMembership(userIri: string, projectIri: string): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Updates a user's SystemAdmin membership.
     *
     * @param iri The IRI of the user to be updated.
     * @param systemAdmin True if the user should be a system admin
     */
    updateUserSystemAdminMembership(iri: string, systemAdmin: boolean): import("rxjs").Observable<ApiResponseData<any>>;
    /**
     * Deletes a user. This method does not actually delete a user, but sets the status to false.
     *
     * @param iri The IRI of the user to be deleted.
     */
    deleteUser(iri: string): import("rxjs").Observable<ApiResponseData<any>>;
}
//# sourceMappingURL=users-endpoint-admin.d.ts.map