/// 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[]; }