import { Logger } from './karma_logger';
import { KarmaLauncher } from './karma_launcher';
import { BrowserStackCredentials } from './browserstack_helpers';
import { ConfigOptions } from 'karma';
export declare class BrowserStackSessionsManager {
    private _credentials;
    private _lock;
    private _timeout;
    private _state;
    private _requiredSlots;
    private _queueTimeout;
    constructor(config: ConfigOptions, _credentials: BrowserStackCredentials);
    canNewSessionBeLaunched(log: Logger): Promise<boolean>;
    ensureQueue(launcher: KarmaLauncher, log: Logger): Promise<void>;
    private getNewLauncher;
    private getQueue;
    private waitForQueue;
    private setFree;
    private setTimedout;
    private checkIfNewSessionCanBeQueued;
    private checkIfCanLaunchSessions;
}
export declare function makeBrowserStackSessionsManager(config: ConfigOptions, browserStackCredentials: BrowserStackCredentials): BrowserStackSessionsManager;
