import { HtkConfig } from '../config';
import { BrowserInstance } from '../browsers';
import { MessageServer } from '../message-server';
import { CertCheckServer } from '../cert-check-server';
import { Interceptor } from '.';
export declare const NSS_DIR: string;
declare abstract class Firefox implements Interceptor {
    private config;
    private variantName;
    private pathName;
    readonly abstract id: string;
    readonly abstract version: string;
    protected constructor(config: HtkConfig, variantName: string, pathName?: string);
    private readonly activeBrowsers;
    isActive(proxyPort: number | string): boolean;
    isActivable(): Promise<boolean>;
    startFirefox(profilePath: string, initialServer: MessageServer | CertCheckServer, proxyPort?: number, existingPrefs?: {}): Promise<BrowserInstance>;
    setupFirefoxProfile(profilePath: string): Promise<void>;
    activate(proxyPort: number): Promise<void>;
    deactivate(proxyPort: number | string): Promise<void>;
    deactivateAll(): Promise<void>;
}
export declare class FreshFirefox extends Firefox {
    id: string;
    version: string;
    constructor(config: HtkConfig);
}
export declare class FreshFirefoxDeveloper extends Firefox {
    id: string;
    version: string;
    constructor(config: HtkConfig);
}
export declare class FreshFirefoxNightly extends Firefox {
    id: string;
    version: string;
    constructor(config: HtkConfig);
}
export {};
