import { InetAddress, RakNetSession } from '@jsprismarine/raknet';
import { Socket } from 'node:dgram';
import { EventEmitter } from 'node:events';
export default class Client extends EventEmitter {
    private clientGUID;
    private readonly logger;
    private readonly address;
    private targetAddress;
    private connection;
    private readonly socket;
    private get closed();
    private connecting;
    private connected;
    private offlineHandled;
    private loginHandled;
    constructor();
    /**
     * Creates a packet listener on given address and port.
     * @param {string} address - The address to listen on.
     * @param {number} port - The port to listen on.
     * @returns {Promise<Client>} The client instance.
     * @public
     */
    connect(address?: string, port?: number): Promise<Client>;
    /**
     * Handles the incoming buffer.
     * @param {Buffer} buffer - The buffer to handle.
     * @private
     * @internal
     */
    private handle;
    handleUnconnectedPong(buffer: Buffer): Buffer;
    handleOpenConnectionReply1(buffer: Buffer): Buffer;
    handleOpenConnectionReply2(buffer: Buffer): void;
    /**
     * Sends the buffer to the server
     *
     * @param buffer
     */
    sendBuffer(buffer: Buffer): Promise<void>;
    getSocket(): Socket;
    getAddress(): InetAddress;
    removeConnection(_connection: RakNetSession, _reason?: string): Promise<void>;
}
//# sourceMappingURL=index.d.ts.map