1import { SpawnPromise, SpawnResult } from '@expo/spawn-async';
2import { PackageManager, PackageManagerOptions } from '../PackageManager';
3import { PendingSpawnPromise } from '../utils/spawn';
4export declare abstract class BasePackageManager implements PackageManager {
5    readonly silent: boolean;
6    readonly log?: (...args: any) => void;
7    readonly options: PackageManagerOptions;
8    constructor({ silent, log, env, ...options }?: PackageManagerOptions);
9    /** Get the name of the package manager */
10    abstract readonly name: string;
11    /** Get the executable binary of the package manager */
12    abstract readonly bin: string;
13    /** Get the lockfile for this package manager */
14    abstract readonly lockFile: string;
15    /** Get the default environment variables used when running the package manager. */
16    protected getDefaultEnvironment(): Record<string, string>;
17    abstract addAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
18    abstract addDevAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
19    abstract addGlobalAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
20    abstract removeAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
21    abstract removeDevAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
22    abstract removeGlobalAsync(namesOrFlags: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
23    abstract workspaceRoot(): PackageManager | null;
24    /** Ensure the CWD is set to a non-empty string */
25    protected ensureCwdDefined(method?: string): string;
26    runAsync(command: string[]): SpawnPromise<SpawnResult>;
27    versionAsync(): Promise<string>;
28    getConfigAsync(key: string): Promise<string>;
29    removeLockfileAsync(): Promise<void>;
30    installAsync(flags?: string[]): SpawnPromise<SpawnResult> | PendingSpawnPromise<SpawnResult>;
31    uninstallAsync(): Promise<void>;
32}
33