import { Repository } from 'typeorm';
import { Appointment } from './entities/appointment.entity';
import { CreateAppointmentDto } from './dto/create-appointment.dto';
import { UpdateAppointmentDto } from './dto/update-appointment.dto';
import { AppointmentResponseDto } from './dto/appointment-response.dto';
import { UserService } from 'modules/user/users.service';
import { UserRole } from 'common/enum/UserRole.enum';
export declare class AppointmentService {
    private readonly appointmentRepository;
    private readonly userService;
    private readonly logger;
    constructor(appointmentRepository: Repository<Appointment>, userService: UserService);
    create(createAppointmentDto: CreateAppointmentDto): Promise<AppointmentResponseDto>;
    findAll(): Promise<AppointmentResponseDto[]>;
    findByUserId(userId: number): Promise<AppointmentResponseDto[]>;
    findOne(id: number, userId: number, role: UserRole): Promise<AppointmentResponseDto>;
    update(id: number, userId: number, role: UserRole, updateAppointmentDto: UpdateAppointmentDto): Promise<AppointmentResponseDto>;
    remove(id: number, userId: number, role: UserRole): Promise<{
        success: boolean;
        message: string;
    }>;
    private isAuthorized;
    private findConflictingAppointments;
    getAvailableTimeSlots(date: Date): Promise<string[]>;
}
