import { OnGatewayConnection, OnGatewayDisconnect } from '@nestjs/websockets';
import { Server, Socket } from 'socket.io';
import { OnModuleInit } from '@nestjs/common';
import { InquiryNotificationsService } from './inquiry-notifications.service';
interface AuthenticatedSocket extends Socket {
    userId?: number;
}
export declare class InquiryNotificationsGateway implements OnGatewayConnection, OnGatewayDisconnect, OnModuleInit {
    private readonly notificationsService;
    server: Server;
    private readonly logger;
    private readonly userSockets;
    constructor(notificationsService: InquiryNotificationsService);
    onModuleInit(): void;
    handleConnection(socket: AuthenticatedSocket): void;
    handleDisconnect(socket: AuthenticatedSocket): void;
    handleGetUnreadCount(socket: AuthenticatedSocket): Promise<{
        count: number;
    }>;
    handleMarkRead(socket: AuthenticatedSocket, data: {
        id: number;
    }): Promise<{
        success: boolean;
    }>;
    handleMarkAllRead(socket: AuthenticatedSocket): Promise<{
        success: boolean;
    }>;
    handlePing(): {
        pong: number;
    };
    broadcastToUser(userId: number, event: string, data: any): void;
    broadcastToAll(event: string, data: any): void;
    broadcastToUsers(userIds: number[], event: string, data: any): void;
    getConnectedUsersCount(): number;
    isUserOnline(userId: number): boolean;
    private extractUserIdFromToken;
}
export {};
