/// <reference types="jquery" />
import { RemoteRequest, RemoteResponse, Session } from '../index';
export declare class ResponseQueue {
    session: Session;
    queue: RemoteResponse[];
    lastProcessedSequenceNo: number;
    nextExpectedSequenceNo: number;
    force: boolean;
    forceTimeoutId: number;
    constructor(session: Session);
    /**
     * Timeout in milliseconds after which the response queue is processed even when a sequence number is still missing.
     * This should prevent an infinitely blocked UI, but (optimistically) assumes that the missed response was not important.
     *
     * This value should be slightly larger than the {@link Session#POLLING_GRACE_PERIOD} to give the retry mechanism a
     * chance to retrieve a missed response after a network interruption.
     */
    static FORCE_TIMEOUT: number;
    add(response?: RemoteResponse): void;
    process(response?: RemoteResponse): boolean;
    size(): number;
    protected _handleResponse(response: RemoteResponse): boolean;
    protected _checkMissingResponse(sequenceNo: number): boolean;
    protected _checkTimeout(): void;
    protected _logTimeout(): void;
    prepareRequest(request: RemoteRequest): void;
    prepareHttpRequest(ajaxOptions: JQuery.AjaxSettings): void;
    queueToString(): string;
}
//# sourceMappingURL=ResponseQueue.d.ts.map