import { OystehrClientRequest, UserDeleteParams, UserGetParams, UserGetResponse, UserInviteParams, UserInviteResponse, UserListResponse, UserListV2Params, UserListV2Response, UserMeResponse, UserResetMfaParams, UserUpdateParams, UserUpdateResponse } from '../..';
import { SDKResource } from '../../client/client';
import { OystehrConfig } from '../../config';
export declare class User extends SDKResource {
    #private;
    constructor(config: OystehrConfig);
    /**
     * Get your own User details. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Fetch details about the calling User. This endpoint has no access policy requirements, it is available to all authenticated Users.
     */
    me(request?: OystehrClientRequest): Promise<UserMeResponse>;
    /**
     * Get the User with the provided ID. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Access Policy Action: `App:GetUser`
     * Access Policy Resource: `App:User`
     */
    get(params: UserGetParams, request?: OystehrClientRequest): Promise<UserGetResponse>;
    /**
     * Update the User with the provided ID. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Access Policy Action: `App:UpdateUser`
     * Access Policy Resource: `App:User`
     */
    update(params: UserUpdateParams, request?: OystehrClientRequest): Promise<UserUpdateResponse>;
    /**
     * Delete the User with the provided ID. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Access Policy Action: `App:DeleteUser`
     * Access Policy Resource: `App:User`
     */
    delete(params: UserDeleteParams, request?: OystehrClientRequest): Promise<void>;
    /**
     * Reset MFA for the User with the provided ID. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Access Policy Action: `App:ResetUserMFA`
     * Access Policy Resource: `App:User`
     */
    resetMfa(params: UserResetMfaParams, request?: OystehrClientRequest): Promise<void>;
    /**
     * Invite a User to the Project. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Access Policy Action: `App:CreateUser`
     * Access Policy Resource: `App:User`
     */
    invite(params: UserInviteParams, request?: OystehrClientRequest): Promise<UserInviteResponse>;
    /**
     * DEPRECATED. Please use [v2/list](https://api-reference.oystehr.com/reference/get_user-v2-list) instead.
     *
     * Get all Users in the Project. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Access Policy Action: `App:ListAllUsers`
     * Access Policy Resource: `App:User`
     */
    list(request?: OystehrClientRequest): Promise<UserListResponse>;
    /**
     * Get Users in the Project with pagination, sort, sort order and filtering. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Access Policy Action: `Project:ListAllUsers`
     * Access Policy Resource: `Project:Settings`
     */
    listV2(params: UserListV2Params, request?: OystehrClientRequest): Promise<UserListV2Response>;
    /**
     * Get Users in the Project with pagination, sort, sort order and filtering. [Users](https://docs.oystehr.com/oystehr/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) you configure for securing the apps you build on top of Oystehr.
     *
     * Access Policy Action: `Project:ListAllUsers`
     * Access Policy Resource: `Project:Settings`
     */
    listV2(request?: OystehrClientRequest): Promise<UserListV2Response>;
}
