import { KeyPairKeyObjectResult } from 'crypto'; import { TypedEmitter } from 'tiny-typed-emitter'; import { Server } from './server'; import { Connection } from './nethernet/connection'; import { Options } from './options'; import { CompressionAlgorithm } from './transforms/framer'; export declare const ClientStatus: { Disconnected: number; Connecting: number; Authenticating: number; Initializing: number; Initialized: number; }; type LoginExtraData = { displayName?: string; identity?: string; xuid?: string; XUID?: string; PlayFabID?: string; PlayFabTitleID?: string; [key: string]: unknown; }; type LoginUserData = { extraData?: LoginExtraData; [key: string]: unknown; }; type LoginSkinData = Record; interface PlayerEvents { status: (status: number) => void; loggingIn: (body: any) => void; login: (body: any) => void; 'server.client_handshake': (body: any) => void; join: () => void; spawn: () => void; close: () => void; packet: (packet: any) => void; } export declare class Player extends TypedEmitter { #private; server: Server; ecdhKeyPair: KeyPairKeyObjectResult; publicKeyDER: string | Buffer; privateKeyPEM: string | Buffer; clientX509: string; sharedSecret: Buffer; secretKeyBytes: Buffer; decodeLoginJWT: (authTokens: string[], skinTokens: string, authToken?: string) => Promise<{ key: string; userData: LoginUserData; skinData: LoginSkinData; }>; encodeLoginJWT: (localChain: string, mojangChain: string[]) => void; inLog?: (...args: any[]) => void; outLog?: (...args: any[]) => void; _sentNetworkSettings: boolean; serializer: any; deserializer: any; batchHeader: number[]; disableEncryption: boolean; compressionAlgorithm: CompressionAlgorithm; compressionLevel: number; compressionThreshold: number; compressionHeader: number; connection: Connection; options: Options; compressionReady: boolean; userData: any; skinData: any; profile?: { name: string; uuid: string; xuid: string; }; version?: number; constructor(server: Server, connection: Connection); getUserData(): any; get status(): number; set status(val: number); sendNetworkSettings(): void; handleClientProtocolVersion(clientVersion: number): boolean; onLogin(packet: any): Promise; /** * Disconnects a client before it has joined * @param {string} playStatus */ sendDisconnectStatus(playStatus: string): void; /** * Disconnects a client */ disconnect(reason?: string, hide?: boolean): void; onHandshake(): void; close(reason: string): void; readPacket(packet: Buffer): void; updateItemPalette(palette: any): void; write(name: string, params: any): void; sendPacket(buffer: Buffer): void; onDecryptedPacket: (buffer: Buffer) => void; } export {};