///
///
import Koa from "koa";
import http from "http";
import { Worker } from "../worker";
import { Logger } from "../logger";
export interface GameListingJson {
IP: number;
Port: number;
GameId: number;
HostName: string;
PlayerCount: number;
Age: number;
MapId: number;
NumImpostors: number;
MaxPlayers: number;
Platform: number;
HostPlatformName: string;
Language: number;
}
export interface MatchmakerTokenPayload {
Content: {
Puid: string;
ClientVersion: number;
ExpiresAt: string;
};
Hash: string;
}
export declare class Matchmaker {
protected readonly worker: Worker;
logger: Logger;
httpServer?: http.Server;
privateKey: Buffer;
constructor(worker: Worker);
get port(): number;
getRandomWorkerPort(): number;
generateMatchmakerToken(puid: string, clientVersion: number): string;
verifyMatchmakerToken(token: string): true | Error;
verifyRequest(ctx: Koa.Context): boolean;
protected createKoaServer(): Koa;
listen(): void;
destroy(): void;
restart(): void;
}