import { ConfigOptions } from 'karma';
import { BrowserStackCapabilitiesFactory } from './browserstack_capabilities_factory';
import { CustomLauncher } from 'karma';
import { Logger } from './karma_logger';
import { BrowserStackCredentials } from './browserstack_helpers';
import { WebDriver } from 'selenium-webdriver';
import { LocalIdentifier } from './browserstack_local_manager';
export interface BrowserStackSessionFactoryConfig {
    project: string;
    build: string;
    idleTimeout?: number;
    capabilitiesFactory: BrowserStackCapabilitiesFactory;
    localIdentifier?: LocalIdentifier;
}
export declare class BrowserStackSessionFactory {
    private _project;
    private _build;
    private _capsFactory;
    private _idleTimeout;
    private _localIdentifier;
    constructor(config: BrowserStackSessionFactoryConfig);
    createBrowser(browser: CustomLauncher, deviceName: string | undefined, id: string, log: Logger): Promise<WebDriver>;
}
export declare function makeBrowserStackSessionFactory(config: ConfigOptions, browserStackCredentials: BrowserStackCredentials, localIdentifier?: LocalIdentifier): BrowserStackSessionFactory;
