///
import { Quality, IExecutable, IBrowserFinder } from '.';
import _execa from 'execa';
import { promises as fsPromises } from 'fs';
import { IPriority } from './util';
/**
* Base class providing utilities for the Darwin browser finders.
*/
export declare abstract class DarwinFinderBase implements IBrowserFinder {
protected readonly env: NodeJS.ProcessEnv;
private readonly fs;
private readonly execa;
protected lsRegisterCommand: string;
/**
* Well-known paths to browsers on Chrome. This is used to make finding fast
* in the common case, avoiding sometimes-slow launch services.
* @see https://github.com/microsoft/vscode-js-debug/issues/570
*/
protected wellKnownPaths: ReadonlyArray;
constructor(env: NodeJS.ProcessEnv, fs: typeof fsPromises, execa: typeof _execa);
/**
* @inheritdoc
*/
findWhere(predicate: (exe: IExecutable) => boolean): Promise;
/**
* @inheritdoc
*/
abstract findAll(): Promise;
/**
* Returns the environment-configured custom path, if any.
*/
protected abstract getPreferredPath(): string | undefined;
/**
* Finds apps matching the given pattern in the launch service register.
*/
protected findLaunchRegisteredApps(pattern: string, defaultPaths: ReadonlyArray, suffixes: ReadonlyArray): Promise>;
/**
* Creates priorities for the {@link sort} function that places browsers
* in proper order based on their installed location./
*/
protected createPriorities(priorities: {
name: string;
weight: number;
quality: Quality;
}[]): IPriority[];
}