You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
1.0 KiB

import { SpawnOptions, SpawnPromise } from '@expo/spawn-async';
/**
* The pending spawn promise is similar to the spawn promise from `@expo/spawn-async`.
* Instead of the `child` process being available immediately, the `child` is behind another promise.
* We need this to perform async tasks before running the actual spawn promise.
* Use it like: `await manager.installAsync().child`
*/
export interface PendingSpawnPromise<T> extends Promise<T> {
/**
* The child process from the delayed spawn.
* This is `null` whenever the promise before the spawn promise is rejected.
*/
child: Promise<SpawnPromise<T>['child'] | null>;
}
export declare function createPendingSpawnAsync<V, T>(actionAsync: () => Promise<V>, spawnAsync: (result: V) => SpawnPromise<T>): PendingSpawnPromise<T>;
/**
* Spawn a command with sudo privileges.
* On windows, this uses the `sudo-prompt` package.
* on other systems, this uses the `sudo` binary.
*/
export declare function spawnSudoAsync(command: string[], spawnOptions: SpawnOptions): Promise<void>;