UNPKG

mudb

Version:

Real-time database for multiplayer games

49 lines (48 loc) 1.96 kB
import { MuSocket } from './socket/socket'; import { MuMessageInterface, MuAnyMessageTable, MuAnyProtocolSchema, MuProtocolBandwidth } from './protocol'; import { MuLogger } from './logger'; export declare class MuRemoteServer<Schema extends MuAnyMessageTable> { message: { [message in keyof Schema]: (event: Schema[message]["identity"], unreliable?: boolean | undefined) => void; }; sendRaw: (bytes: Uint8Array | string, unreliable?: boolean) => void; } export declare class MuClientProtocolSpec { messageHandlers: {}; rawHandler: (data: Uint8Array | string, unreliable: boolean) => void; readyHandler: () => void; closeHandler: () => void; } export declare class MuClientProtocol<Schema extends MuAnyProtocolSchema> { readonly schema: Schema; readonly server: MuRemoteServer<Schema['server']>; readonly client: MuClient; configured: boolean; private _protocolSpec; constructor(schema: Schema, client: MuClient, protocolSpec: MuClientProtocolSpec); configure(spec: { message: MuMessageInterface<Schema['client']>['abstractAPI']; raw?: (bytes: Uint8Array | string, unreliable: boolean) => void; ready?: () => void; close?: () => void; }): void; } export interface MuAnyClientProtocol extends MuClientProtocol<MuAnyProtocolSchema> { } export declare class MuClient { readonly sessionId: string; protocols: MuAnyClientProtocol[]; private _protocolSpecs; running: boolean; private _started; private _closed; private _socket; logger: MuLogger; private _shouldValidateProtocol; bandwidth: MuProtocolBandwidth[]; constructor(socket: MuSocket, logger?: MuLogger, skipProtocolValidation?: boolean); start(spec_?: { ready?: (error?: string) => void; close?: (error?: string) => void; }): void; destroy(): void; protocol<Schema extends MuAnyProtocolSchema>(schema: Schema): MuClientProtocol<Schema>; }