import Service from "../../service";
import Client from "../../client";
import { CreateMerchantUserRequest, CreateUserResponse, ListMerchantUsersResponse, UpdateMerchantUserRequest, User } from "../../typings/management/models";
import { IRequest } from "../../typings/requestOptions";
export declare class UsersMerchantLevelApi extends Service {
    private readonly API_BASEPATH;
    private baseUrl;
    constructor(client: Client);
    /**
    * @summary Create a new user
    * @param merchantId {@link string } Unique identifier of the merchant.
    * @param createMerchantUserRequest {@link CreateMerchantUserRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link CreateUserResponse }
    */
    createNewUser(merchantId: string, createMerchantUserRequest: CreateMerchantUserRequest, requestOptions?: IRequest.Options): Promise<CreateUserResponse>;
    /**
    * @summary Get user details
    * @param merchantId {@link string } Unique identifier of the merchant.
    * @param userId {@link string } Unique identifier of the user.
    * @param requestOptions {@link IRequest.Options }
    * @return {@link User }
    */
    getUserDetails(merchantId: string, userId: string, requestOptions?: IRequest.Options): Promise<User>;
    /**
    * @summary Get a list of users
    * @param merchantId {@link string } Unique identifier of the merchant.
    * @param requestOptions {@link IRequest.Options }
    * @param pageNumber {@link number } The number of the page to fetch.
    * @param pageSize {@link number } The number of items to have on a page. Maximum value is **100**. The default is **10** items on a page.
    * @param username {@link string } The partial or complete username to select all users that match.
    * @return {@link ListMerchantUsersResponse }
    */
    listUsers(merchantId: string, pageNumber?: number, pageSize?: number, username?: string, requestOptions?: IRequest.Options): Promise<ListMerchantUsersResponse>;
    /**
    * @summary Update a user
    * @param merchantId {@link string } Unique identifier of the merchant.
    * @param userId {@link string } Unique identifier of the user.
    * @param updateMerchantUserRequest {@link UpdateMerchantUserRequest }
    * @param requestOptions {@link IRequest.Options }
    * @return {@link User }
    */
    updateUser(merchantId: string, userId: string, updateMerchantUserRequest: UpdateMerchantUserRequest, requestOptions?: IRequest.Options): Promise<User>;
}
