import SessionsRequest from '../SessionsRequest';
/**
 * Manages the request queue with backpressure
 */
export default class RequestQueue {
    private requests;
    private maxSize;
    constructor(maxSize?: number);
    /**
     * Enqueue a request
     * @param request - Request to enqueue
     * @returns true if enqueued, false if dropped due to backpressure
     */
    enqueue(request: SessionsRequest): boolean;
    /**
     * Dequeue and return the first request
     * @returns The first request or undefined if queue is empty
     */
    dequeue(): SessionsRequest | undefined;
    /**
     * Peek at the first request without removing it
     * @returns The first request or undefined if queue is empty
     */
    peek(): SessionsRequest | undefined;
    /**
     * Add a request to the beginning of the queue
     * @param request - Request to add
     */
    unshift(request: SessionsRequest): void;
    /**
     * Check if queue is empty
     */
    isEmpty(): boolean;
    /**
     * Get current queue size
     */
    size(): number;
    /**
     * Clear all requests
     */
    clear(): void;
    /**
     * Update max size
     * @param maxSize - New maximum size
     */
    setMaxSize(maxSize: number): void;
    /**
     * Get max size
     */
    getMaxSize(): number;
    /**
     * Get all requests (for internal/legacy use)
     * @internal
     */
    getRequests(): SessionsRequest[];
}
