///
import SocketIO from 'socket.io';
import { EmitHistoryPacket } from './common.types';
import Queue from '../../tools/queue';
/**
* Returns socket sticky session ID
* @param socket native socket.io socket
* @returns sticky session ID
*/
export declare function getSocketStickySessionId(socket: SocketIO.Socket): string;
/**
* Returns whether a socket supports sticky socket protocol
* @param socket native socket.io socket
* @returns whether supports the protocol
*/
export declare function supportsStickySocketProtocol(socket: SocketIO.Socket): boolean;
/**
* Returns client socket.io socket transport
* @param socket native socket.io socket
* @returns current transport name
*/
export declare function getClientSocketIoTransportName(socket: SocketIOClient.Socket): string;
/**
* Destroys underlying socket of a client socket, using socket.io internals. The socket must have `websocket` transport
* @param socket native socket.io socket
* @param err optional error
*/
export declare function destroyInternalClientSocket(socket: SocketIOClient.Socket, err?: Error): void;
/**
* Sends history events to a socket
* @param socket socket to send to
* @param history history to send from (will be modified)
* @param startIndex start packet index to stream from
*/
export declare function sendHistory(socket: SocketIOClient.Socket | SocketIO.Socket, history: Queue, startIndex: number): void;