import ByteBuffer from '../../ByteBuffer';
import UDPSocket from '../../UDPSocket';
import SteamPacket from '../Packets/SteamPacket';
import TCPSocket from '../../TCPSocket';
import RCONPacket from '../Packets/RCON/RCONPacket';
export default abstract class SteamSocket {
    protected ipAddress: string;
    protected portNumber: number;
    protected socket: UDPSocket | TCPSocket;
    protected buffer: ByteBuffer;
    protected timeout: number;
    setTimeout(timeout: number): void;
    constructor(ipAddress: string, portNumber?: number);
    connect(): Promise<void>;
    close(): Promise<void>;
    abstract getReply(): Promise<SteamPacket | RCONPacket | void>;
    receivePacket(bufferLength?: number): Promise<number>;
    send(dataPacket: SteamPacket | RCONPacket): Promise<void>;
}
