@kitten-science/kitten-analysts
Version:
30 lines • 1.5 kB
TypeScript
import type { KGNetSavePersisted } from "@kitten-science/kitten-scientists/types/index.js";
import type { AnyFunction } from "@oliversalzburg/js-utils/core.js";
import { Histogram } from "prom-client";
import { type RawData, WebSocket, WebSocketServer } from "ws";
import type { KittenAnalystsMessage, KittenAnalystsMessageId } from "../KittenAnalysts.js";
interface RemoteConnection {
ws: WebSocket;
isAlive: boolean;
}
export declare class KittensGameRemote {
#private;
location: string;
port: number;
pendingRequests: Map<string, {
resolve: AnyFunction;
reject: AnyFunction;
}>;
printProtocolMessages: boolean;
saveStore: Map<string, KGNetSavePersisted>;
sockets: Set<RemoteConnection>;
wss: WebSocketServer;
ks_iterate_duration: Histogram<"guid" | "client_type" | "location" | "manager">;
constructor(saveStore: Map<string, KGNetSavePersisted>, port?: number, printProtocolMessages?: boolean);
closeAll(): void;
handleMessage(socket: WebSocket, data: RawData): void;
sendMessage<TMessage extends KittenAnalystsMessageId>(message: Omit<KittenAnalystsMessage<TMessage>, "client_type" | "location" | "guid">): Promise<Array<KittenAnalystsMessage<TMessage> | null>>;
toHeadless<TMessage extends KittenAnalystsMessageId>(message: Omit<KittenAnalystsMessage<TMessage>, "client_type" | "location" | "guid">): Promise<KittenAnalystsMessage<TMessage> | null>;
}
export {};
//# sourceMappingURL=KittensGameRemote.d.ts.map