import { AdminUserAuthorizationResult, IWebSocketClient } from "../types/Back.js";
import { AdminUser } from "../types/Common.js";
export class WebSocketClient implements IWebSocketClient {
id: string;
clientId?: string;
lastPing: number;
topics: Set;
adminUser: AdminUser;
authorize: () => Promise;
send: (message: string) => void;
close: () => void;
onMessage: (handler: (message: string) => void) => void;
onClose: (handler: () => void) => void;
constructor({ id, clientId, authorize, send, close, onMessage, onClose, adminUser }) {
this.id = id;
this.clientId = clientId;
this.authorize = authorize;
this.send = send;
this.close = close;
this.onMessage = onMessage;
this.onClose = onClose;
this.lastPing = Date.now();
this.topics = new Set();
this.adminUser = adminUser;
}
}