import Task from '@dojo/core/async/Task';
import { RemoteEvents } from '../RemoteSuite';
import BaseChannel, { ChannelOptions } from './Base';
export default class HttpChannel extends BaseChannel {
    protected _lastRequest: Task<void>;
    protected _messageBuffer: MessageEntry[];
    protected _sequence: number;
    protected _maxPostSize: number;
    protected _activeRequest: Task<any> | undefined;
    constructor(options: HttpChannelOptions);
    protected _sendData(name: keyof RemoteEvents, data: any): Task<{}>;
    protected _sendMessages(): Task<any> | undefined;
}
export interface HttpChannelOptions extends ChannelOptions {
    maxPostSize?: number;
}
export interface MessageEntry {
    message: string;
    resolve: (value: any) => void;
    reject: (error: Error) => void;
}
