UNPKG

@haelp/teto

Version:

A typescript-based controllable TETR.IO client.

79 lines 2.85 kB
import type { Events, Game } from "../../types"; import { type APITypes, EventEmitter } from "../../utils"; export type Codec = "json" | "teto" | "candor"; export interface Spool { host: string; endpoint: string; token: string; signature: Promise<APITypes.Server.Signature>; } export type LoggingLevel = "all" | "error" | "none"; export declare class Ribbon { #private; static CACHE_MAXSIZE: number; static BATCH_TIMEOUT: number; static readonly CLOSE_CODES: { readonly 1000: "ribbon closed normally"; readonly 1001: "client closed ribbon"; readonly 1002: "protocol error"; readonly 1003: "protocol violation"; readonly 1005: "no error provided"; readonly 1006: "ribbon lost"; readonly 1007: "payload data corrupted"; readonly 1008: "protocol violation"; readonly 1009: "too much data"; readonly 1010: "negotiation error"; readonly 1011: "server error"; readonly 1012: "server restarting"; readonly 1013: "temporary error"; readonly 1014: "bad gateway"; readonly 1015: "TLS error"; }; static FLAGS: { ALIVE: number; SUCCESSFUL: number; CONNECTING: number; FAST_PING: number; TIMING_OUT: number; DEAD: number; }; static CODEC_FLAGS: { readonly F_ID: 128; }; static SLOW_CODEC_THRESHOLD: number; emitter: EventEmitter<Events.in.all>; /** @hideconstructor */ private constructor(); static create({ verbose, logging, token, handling, userAgent, codec, spooling }: { /** @deprecated - use `logging` instead */ verbose?: boolean; logging?: LoggingLevel; token: string; handling: Game.Handling; userAgent: string; codec?: Codec; spooling?: boolean; }): Promise<Ribbon>; emit<T extends keyof Events.out.all>(event: T, ...data: Events.out.all[T] extends void ? [] : [Events.out.all[T]]): void; log(msg: string, { force, level }?: { force: boolean; level: "info" | "warning" | "error"; }): void; /** The last ping time, in ms */ get ping(): number; /** Used in the Game class to detect disconnects faster, don't touch. */ set fasterPing(value: boolean); /** Ribbon spool information, useful for logging */ get spool(): { host: string; endpoint: string; }; /** Closes and cleans up the ribbon, called automatically by `client.destroy()` */ destroy(): void; /** Automatically disconnect the ribbon's connection. It will attempt to automatically reconnect. */ disconnect(): void; /** Clones a ribbon. Used internally by Client.reconnect. */ clone(): Promise<Ribbon>; } export type { RibbonOptions } from "./types"; //# sourceMappingURL=index.d.ts.map