import { Logger } from '../../../logger/src/index.ts';
import { RakNetSession } from '../../../raknet/src/index.ts';
import { DataPacket, BatchPacket } from './Packets';
/**
 * Act as the first connection layer, handles everything related to batching,
 * queuing and encrypting of Minecraft packets in a hypotetical session.
 * TODO: implement ticking, batching, queues, encryption.
 */
export default class MinecraftSession {
    private readonly logger;
    protected readonly rakSession: RakNetSession;
    constructor(session: RakNetSession, logger: Logger);
    sendBatch(batch: BatchPacket, direct?: boolean): void;
    sendDataPacket<T extends DataPacket>(packet: T, comp?: boolean, direct?: boolean): Promise<void>;
    forceDisconnect(): void;
}
//# sourceMappingURL=MinecraftSession.d.ts.map