///
import execa from 'execa';
import { promises as fs } from 'fs';
/**
* Quality (i.e. release channel) of discovered binary.
*/
export declare const enum Quality {
Canary = "canary",
Stable = "stable",
Beta = "beta",
Dev = "dev",
Custom = "custom"
}
/**
* All known qualities.
*/
export declare const allQualities: ReadonlySet;
/**
* Gets whether given string is a known Quality.
*/
export declare const isQuality: (input: string) => input is Quality;
/**
* Discovered browser binary.
*/
export interface IExecutable {
path: string;
quality: Quality;
}
export interface IBrowserFinder {
/**
* Finds the first browser on the platform where the predicate matches.
* May return early.
*/
findWhere(predicate: (exe: IExecutable) => boolean): Promise;
/**
* Finds all browser executables available on the current platform.
*/
findAll(): Promise;
}
export declare type BrowserFinderCtor = new (env: NodeJS.ProcessEnv, _fs: typeof fs, _execa: typeof execa) => IBrowserFinder;
/**
* Chrome finder class for the current platform.
*/
export declare const ChromeBrowserFinder: BrowserFinderCtor;
/**
* Edge finder class for the current platform.
*/
export declare const EdgeBrowserFinder: BrowserFinderCtor;