import { UserService } from './users.service';
import { UserResponseDto } from './dto/user-response.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { UserRole, UserStatus } from 'common/enum/UserRole.enum';
import { UserFilterDto } from './dto/user-filter.dto';
import { PaginatedResponseDto } from 'common/utils/paginated-response.dto';
export declare class UserController {
    private readonly userService;
    private readonly logger;
    constructor(userService: UserService);
    getAllUsers(page?: number, limit?: number): Promise<PaginatedResponseDto<UserResponseDto>>;
    getUsersByFilter(filter: UserFilterDto): Promise<PaginatedResponseDto<UserResponseDto>>;
    getUsersByRole(role: UserRole, page?: number, limit?: number): Promise<PaginatedResponseDto<UserResponseDto>>;
    getUsersByClientId(clientId: string, page?: number, limit?: number): Promise<PaginatedResponseDto<UserResponseDto>>;
    getLinkedUsersToClient(clientId: string, page?: number, limit?: number): Promise<PaginatedResponseDto<UserResponseDto>>;
    getUsersByStatus(status: UserStatus, page?: number, limit?: number): Promise<PaginatedResponseDto<UserResponseDto>>;
    getTotalUserCount(): Promise<{
        count: number;
    }>;
    getUserCountByRole(role: UserRole): Promise<{
        role: string;
        count: number;
    }>;
    getUserByEmail(email: string): Promise<UserResponseDto>;
    getUserById(id: number): Promise<UserResponseDto>;
    updateUser(id: number, updateUserDto: UpdateUserDto): Promise<UserResponseDto>;
    deleteUser(id: number): Promise<void>;
}
