import { UserService } from '../services/user.service';
import { CreateUserDto } from '../dtos/create-user.dto';
import { UpdateUserDto } from '../dtos/update-user.dto';
import { MutateUserRolesDto } from '../dtos/mutate-user-roles.dto';
import { MutateUserRolesBulkDto } from '../dtos/mutate-user-roles-list.dto';
import { ActiveUserData } from '../interfaces/active-user-data.interface';
import { SolidRequestContextDto } from '../dtos/solid-request-context.dto';
import { UpdateUserProfileDto } from '../dtos/update-user-profile.dto';
export declare class UserController {
    private readonly service;
    constructor(service: UserService);
    create(createDto: CreateUserDto, files: Array<Express.Multer.File>, solidRequestContext: SolidRequestContextDto): Promise<import("..").User>;
    insertMany(createDtos: CreateUserDto[], filesArray: Express.Multer.File[][], solidRequestContext: SolidRequestContextDto): Promise<import("..").User[]>;
    update(id: number, updateDto: UpdateUserDto, files: Array<Express.Multer.File>, solidRequestContext: SolidRequestContextDto): Promise<import("..").User>;
    updateUser(id: number, updateDto: any, files: Array<Express.Multer.File>, solidRequestContext: SolidRequestContextDto): Promise<void>;
    partialUpdate(id: number, updateDto: UpdateUserDto, files: Array<Express.Multer.File>, solidRequestContext: SolidRequestContextDto): Promise<import("..").User>;
    findMany(query: any, solidRequestContext: SolidRequestContextDto): Promise<{
        meta: {
            totalRecords: number;
        };
        groupMeta: any[];
        groupRecords: any[];
        records?: undefined;
    } | {
        meta: {
            totalRecords: number;
            currentPage: number;
            nextPage: number;
            prevPage: number;
            totalPages: number;
            perPage: number;
        };
        records: import("..").User[];
        groupMeta?: undefined;
        groupRecords?: undefined;
    }>;
    checkIfPermissionExists(query: any, activeUser: ActiveUserData): Promise<string[]>;
    findOne(id: string, query: any, solidRequestContext: SolidRequestContextDto): Promise<import("..").User>;
    deleteMany(ids: number[], solidRequestContext: SolidRequestContextDto): Promise<any>;
    delete(id: number, solidRequestContext: SolidRequestContextDto): Promise<import("..").User>;
    addRoleToUser(mutateUserRoles: MutateUserRolesDto): Promise<import("..").User>;
    addRolesToUser(mutateUserRolesBulk: MutateUserRolesBulkDto): Promise<import("..").User>;
    removeRoleFromUser(userEmail: string, roleName: string): Promise<import("..").User>;
    updateOwnProfile(updateDto: UpdateUserProfileDto, files: Array<Express.Multer.File>, solidRequestContext: SolidRequestContextDto, user: ActiveUserData): Promise<import("..").User>;
}
//# sourceMappingURL=user.controller.d.ts.map