import Task from '@dojo/core/async/Task';
export default class Channel {
    readonly sessionId: string;
    readonly url: string;
    protected _activeRequest: Task<any>;
    protected _pendingRequest: Task<any>;
    protected _messageBuffer: string[];
    protected _sequence: number;
    protected _maxPostSize: number;
    constructor(options: ChannelOptions);
    sendMessage(name: string, data: any): Task<any>;
    protected _sendData(name: string, data: any): Task<any>;
    protected _send(): Task<any>;
}
export declare function isChannel(value: any): value is Channel;
export interface ChannelOptions {
    sessionId: string;
    url: string;
}
export interface Message {
    sessionId: string;
    id: string;
    name: string;
    data: any;
}
