import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { AssignRolesDto } from './dto/assign-roles.dto';
import type { Request } from 'express';
import { I18nContext } from 'nestjs-i18n';
import { RegisterDto } from './dto/register-user.dto';
import { ApproveUserDto } from './dto/approve-user.dto';
import { ChangePasswordDto } from './dto/change-password-user.dto';
export declare class UserController {
    private readonly users;
    constructor(users: UserService);
    register(dto: RegisterDto, tenant: any): Promise<{
        message: string;
    }>;
    findAll(req: Request, page?: number, limit?: number, search?: string): Promise<import("../../common/interfaces/pagination-result.interface").PaginationResult<import("./entities/user.entity").User>>;
    findOne(id: number): Promise<Omit<import("./entities/user.entity").User, "password">>;
    create(req: Request, dto: CreateUserDto, tenant: any, i18n: I18nContext): Promise<any>;
    update(id: number, dto: UpdateUserDto): Promise<Omit<import("./entities/user.entity").User, "password">>;
    bulkDelete(ids: (number | string)[]): Promise<{
        success: boolean;
        deletedCount: number;
        ids: (string | number)[];
    }>;
    remove(id: number): Promise<{
        message: string;
    }>;
    assignRoles(id: number, dto: AssignRolesDto): Promise<import("./entities/user.entity").User>;
    approveUser(dto: ApproveUserDto): Promise<{
        message: string;
    }>;
    changePassword(req: any, dto: ChangePasswordDto): Promise<{
        message: string;
    }>;
}
