import { Response } from 'express';
import { UserService } from './user.service';
import { User } from '../auth/user.entity';
import { UserFiltersDto } from './dto/user-filters.dto';
import { UpdateUserDto } from './dto/update-user.dto';
export declare class UserController {
    private readonly userService;
    constructor(userService: UserService);
    getAllTechnicians(user: User): Promise<User[]>;
    getAllTechniciansByEquipmentType(user: User, equipmentTypeId?: number): Promise<User[]>;
    getAllClients(filters: UserFiltersDto, res?: Response): Promise<User[]>;
    getUser(id: number, user: User): Promise<User>;
    addEquipmentTypeToUser(id: number, equipmentTypeId: number): Promise<User>;
    removeEquipmentTypeFromUser(id: number, equipmentTypeId: number): Promise<User>;
    updateUser(user: User, id: number, updateUserDto: UpdateUserDto): Promise<User>;
    uploadIdCard(user: User, id: number, files: {
        front?: Express.Multer.File[];
        back?: Express.Multer.File[];
    }): Promise<User>;
    getVerificationStatus(user: User, id: number, res?: Response): Promise<{
        id_verification_status: string;
    }>;
    updateVerificationStatus(user: User, id: number, body: {
        status: 'approved' | 'rejected';
    }): Promise<User>;
    getIdCardImage(user: User, id: number, side: 'front' | 'back', res: Response): Promise<void>;
    getProfileCompletionStatus(user: User, id: number, res?: Response): Promise<{
        isComplete: boolean;
        requirements: {
            idCardApproved: boolean;
            equipmentTypeSelected: boolean;
            addressProvided: boolean;
            areaAtendimientoConfigured: boolean;
        };
    }>;
    addAdminToTechnician(user: User, technicianId: number, adminId: number): Promise<{
        message: string;
    }>;
    removeAdminFromTechnician(user: User, technicianId: number, adminId: number): Promise<{
        message: string;
    }>;
    getTechnicianAdmins(user: User, technicianId: number): Promise<User[]>;
}
