export declare const OUT_DIR: string;
/**
 * The provider interface implemented by all providers.
 */
export interface ProviderInterface {
    cleanFiles?: () => string;
    getBinaryPath?: (version?: string) => string | null;
    getStatus?: () => string | null;
    updateBinary: (version?: string, maxVersion?: string) => Promise<void>;
    seleniumFlag?: string;
    osType?: string;
    version?: string;
    maxVersion?: string;
}
/**
 * The provider class with commonmethods by all providers.
 */
export declare class ProviderClass {
    /**
     * Setting values from either the npmrc or config object:
     *   1. Use the default value
     *   2. If the npmrc value exists, use the npmrc value
     *   2. If the value is set in the config, use that instead.
     * @param key
     * @param defaultValue
     * @param providerConfig
     * @return The value of the variable. The type needs to be fixed.
     */
    setVar<T>(key: string, defaultValue: T, providerConfig: ProviderConfig): T;
}
/**
 * The provider configuration is passed to the Provider and can override
 * the default behavior of the provider.
 */
export interface ProviderConfig {
    requestUrl?: string;
    outDir?: string;
    cacheFileName?: string;
    configFileName?: string;
    osType?: string;
    osArch?: string;
    proxy?: string;
    ignoreSSL?: boolean;
    version?: string;
    maxVersion?: string;
    [key: string]: string | boolean | number;
}
