import { MuSocket, MuSocketSpec, MuSocketServer, MuSocketServerSpec, MuSessionId, MuData, MuSocketState, MuSocketServerState } from 'mudb/socket';
export declare class MuLocalSocket implements MuSocket {
    sessionId: MuSessionId;
    private _server;
    _duplex: MuLocalSocket;
    private _onMessage;
    private _onUnreliableMessage;
    private _onClose;
    state: MuSocketState;
    constructor(sessionId: string, server: MuLocalSocketServer);
    open(spec: MuSocketSpec): void;
    private _pendingUnreliableMessages;
    private _drainUnreliable;
    private _pendingMessages;
    private _drainTimeout;
    private _drain;
    send(data_: MuData, unreliable?: boolean): void;
    close(): void;
}
export declare class MuLocalSocketServer implements MuSocketServer {
    clients: MuSocket[];
    _pendingSockets: MuSocket[];
    state: MuSocketServerState;
    private _onConnection;
    private _onClose;
    _handleConnection(socket: any): void;
    _removeSocket(socket: any): void;
    start(spec: MuSocketServerSpec): void;
    close(): void;
}
