import WebSocket from 'ws';
import { INotificationGateway } from '../../application/ports/notification-gateway';
import { ILogger } from '../../application/ports/logger';
/**
 * WebSocket implementation of the notification gateway.
 *
 * Responsibilities:
 *   - Accept raw WebSocket connections.
 *   - Wait for an `identify` message containing a deviceId.
 *   - Maintain a map of connected deviceIds to sockets.
 *   - Deliver JSON messages to connected devices.
 *
 * This class does NOT decide which devices should receive a message or what
 * the message content should be; that belongs to the application layer.
 */
export declare class WebSocketNotificationGateway implements INotificationGateway {
    private readonly logger;
    private readonly sockets;
    constructor(logger: ILogger);
    handleConnection(socket: WebSocket): void;
    sendToDevice(deviceId: string, message: unknown): void;
    isDeviceConnected(deviceId: string): boolean;
    private registerSocket;
    private removeSocket;
    private findDeviceIdBySocket;
    private sendRaw;
}
//# sourceMappingURL=websocket-gateway.d.ts.map