import { Player, Server, PlayerSession } from '../';
import { Logger } from '../../../logger/src/index.ts';
import { RakNetSession } from '../../../raknet/src/index.ts';
import { default as MinecraftSession } from './MinecraftSession';
/**
 * Handles the connection before the player creation itself, very helpful as
 * it helps to not waste resources in case the client trying to connect is simply
 * outdated or sends invalid data during the login handshake.
 */
export default class ClientConnection extends MinecraftSession {
    private playerSession;
    hasCompression: boolean;
    constructor(session: RakNetSession, logger: Logger);
    /**
     * @internal
     *
     * @param server - the server instance
     * @param player - the player instance
     * @returns the new player session
     */
    initPlayerConnection(server: Server, player: Player): PlayerSession;
    closePlayerSession(): Promise<void>;
    disconnect(reason?: string, hideReason?: boolean): void;
    getPlayerSession(): PlayerSession | null;
    getRakNetSession(): RakNetSession;
}
//# sourceMappingURL=ClientConnection.d.ts.map