import { Client, Session, Socket, } from "@heroiclabs/nakama-js"; import { ApiMatch, ApiLeaderboardRecordList, // @ts-ignore } from "@heroiclabs/nakama-js/dist/api.gen" import { GameMetadata, MatchDataMessage, } from './models' export interface NakamaContextType { client: Client; socket: Socket | null; session: Session | null; matchId: string | null; loginOrRegister(username?: string): Promise; logout(): Promise; joinMatchmaker(gameMetadata: GameMetadata): Promise; exitMatchmaker(gameMetadata: GameMetadata): Promise; joinMatch(matchId: string): Promise; sendMatchData(matchId: string, op: number, data: object): void; onMatchData(cb: (msg: MatchDataMessage) => void): void; getLeaderboardTop(): Promise; listOpenMatches(): Promise; }