import BaseChannel, { ChannelOptions } from './Base';
import Task from '@dojo/core/async/Task';
export default class WebSocketChannel extends BaseChannel {
    /** Time to wait for response before rejecting a send */
    timeout: number;
    protected _socket: WebSocket;
    protected _sendQueue: {
        [key: string]: {
            resolve: () => void;
            reject: (error: Error) => void;
        } | undefined;
    };
    protected _ready: Task<any>;
    protected _sequence: number;
    constructor(options: ChannelOptions);
    protected _sendData(name: string, data: any): Task<void>;
    protected _handleMessage(message: any): void;
    protected _handleError(error: Error): void;
}
