1*b7d15820SCedric van Puttenimport spawnAsync, { SpawnPromise, SpawnResult } from '@expo/spawn-async';
28d3f3824SCedric van Puttenimport { PackageManager, PackageManagerOptions } from '../PackageManager';
38d3f3824SCedric van Puttenimport { PendingSpawnPromise } from '../utils/spawn';
48d3f3824SCedric van Puttenexport declare abstract class BasePackageManager implements PackageManager {
58d3f3824SCedric van Putten    readonly silent: boolean;
68d3f3824SCedric van Putten    readonly log?: (...args: any) => void;
78d3f3824SCedric van Putten    readonly options: PackageManagerOptions;
88d3f3824SCedric van Putten    constructor({ silent, log, env, ...options }?: PackageManagerOptions);
98d3f3824SCedric van Putten    /** Get the name of the package manager */
108d3f3824SCedric van Putten    abstract readonly name: string;
118d3f3824SCedric van Putten    /** Get the executable binary of the package manager */
128d3f3824SCedric van Putten    abstract readonly bin: string;
138d3f3824SCedric van Putten    /** Get the lockfile for this package manager */
148d3f3824SCedric van Putten    abstract readonly lockFile: string;
158d3f3824SCedric van Putten    /** Get the default environment variables used when running the package manager. */
168d3f3824SCedric van Putten    protected getDefaultEnvironment(): Record<string, string>;
178d3f3824SCedric van Putten    abstract addAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
188d3f3824SCedric van Putten    abstract addDevAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
198d3f3824SCedric van Putten    abstract addGlobalAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
208d3f3824SCedric van Putten    abstract removeAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
218d3f3824SCedric van Putten    abstract removeDevAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
228d3f3824SCedric van Putten    abstract removeGlobalAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
238d3f3824SCedric van Putten    abstract workspaceRoot(): PackageManager | null;
248d3f3824SCedric van Putten    /** Ensure the CWD is set to a non-empty string */
258d3f3824SCedric van Putten    protected ensureCwdDefined(method?: string): string;
26*b7d15820SCedric van Putten    runAsync(command: string[]): spawnAsync.SpawnPromise<spawnAsync.SpawnResult>;
278d3f3824SCedric van Putten    versionAsync(): Promise<string>;
288d3f3824SCedric van Putten    getConfigAsync(key: string): Promise<string>;
298d3f3824SCedric van Putten    removeLockfileAsync(): Promise<void>;
308d3f3824SCedric van Putten    installAsync(flags?: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
318d3f3824SCedric van Putten    uninstallAsync(): Promise<void>;
328d3f3824SCedric van Putten}
33