import { IBrowserPool, IBrowserSession, SessionConfig, PoolStats } from '../types';
/**
 * BrowserPool manages a pool of browser sessions
 * Handles session lifecycle, cleanup, and resource management
 */
export declare class BrowserPool implements IBrowserPool {
    private sessions;
    private queue;
    private cleanupInterval;
    private isShuttingDown;
    constructor();
    /**
     * Get or create a browser session
     */
    getSession(sessionConfig: SessionConfig): Promise<IBrowserSession>;
    /**
     * Create a new browser session
     */
    private createSession;
    /**
     * Release a session back to the pool (mark as idle but don't close)
     */
    releaseSession(sessionId: string): Promise<void>;
    /**
     * Close and remove a session from the pool
     */
    closeSession(sessionId: string): Promise<void>;
    /**
     * Process queued session requests
     */
    private processQueue;
    /**
     * Get pool statistics
     */
    getStats(): PoolStats;
    /**
     * Start periodic cleanup task
     */
    private startCleanupTask;
    /**
     * Cleanup idle and expired sessions
     */
    cleanup(): Promise<void>;
    /**
     * Shutdown the pool and close all sessions
     */
    shutdown(): Promise<void>;
}
//# sourceMappingURL=BrowserPool.d.ts.map