import BaseController from "../controllers/BaseController";
import type { IUser } from "../entities";
import { UserDto } from "../entities";
import { IDeleteQueryParams, IGetQueryParams, IPostQueryParams } from "../interfaces";
import { UserJoinWorkspaceParams, UserService } from "../services/UserService";
export default class UserController extends BaseController<IUser> {
    service: UserService;
    constructor();
    /**
     * List of users
     */
    read(queryParams?: IGetQueryParams): Promise<import("../interfaces").ResponseData>;
    profile(queryParams?: IGetQueryParams): Promise<import("../interfaces").ResponseData>;
    create(body: UserDto, queryParams?: IPostQueryParams): Promise<import("../interfaces").ResponseData>;
    update(body: UserDto, queryParams?: IPostQueryParams): Promise<import("../interfaces").ResponseData>;
    delete(queryParams?: IDeleteQueryParams): Promise<import("../interfaces").ResponseData>;
    assignRole(body: {
        roleId: string;
        userId: string;
    }): Promise<import("../interfaces").ResponseData>;
    joinWorkspace(body: UserJoinWorkspaceParams): Promise<import("../interfaces").ResponseData>;
    /**
     * Update user's access permissions
     * @param body - Example: `{ userId: "000", resource: { "projects": "1,2,3,4", "apps": "4,5,6" } }`
     * @returns
     */
    updateAccessPermissions(body: {
        /**
         * User slug
         */
        userSlug: string;
        /**
         * Resource data:
         * - "name": `projects`, `apps`, `clusters`, `databases`, `database_backups`, `gits`, `frameworks`, `container_registries`
         * - "value": List of resource IDs in string, separated by commas without spacing. For example: `123,456,789`
         * @example { projects: "1,2,3", apps: "5,6,7" }
         */
        resource: {
            [name: string]: string;
        };
    }): Promise<import("../interfaces").ResponseData>;
}
//# sourceMappingURL=UserController.d.ts.map