import { OnGatewayConnection, OnGatewayDisconnect } from '@nestjs/websockets';
import { Server, Socket } from 'socket.io';
import { UserService } from '../user/user.service';
export declare class AppointmentsGateway implements OnGatewayConnection, OnGatewayDisconnect {
    private readonly userService;
    server: Server;
    constructor(userService: UserService);
    handleConnection(client: any): void;
    handleDisconnect(client: any): void;
    handleJoin(userId: number, client: Socket): void;
    emitNewAppointment(appointment: any): void;
    emitCalendarUpdate(update: any): void;
    emitCalendarUpdateExcept(update: any, excludeUserId?: number): Promise<void>;
    emitNewAppointmentToUsers(appointment: any, userIds: number[]): Promise<void>;
    emitConfirmedAppointmentToUser(appointmentId: number, userId: number): Promise<void>;
    emitDeletedAppointmentToUser(appointmentId: number, userId: number): Promise<void>;
    private filterVerifiedUsers;
    emitToUser(userId: number, event: string, data: any): void;
    emitToUserWithValidation(userId: number, event: string, data: any): Promise<void>;
    emitToAdmins(event: string, data: any): Promise<void>;
    emitToAdminsExcept(event: string, data: any, excludeAdminId?: number): Promise<void>;
    emitAppointmentCancelledToast(userId: number, data: any): Promise<void>;
    emitDismissAppointmentPopup(userId: number, data: any): Promise<void>;
}
