import * as execa from "execa";
/**
 * Asynchronously execute a powershell command.
 *
 * @param command The powershell command to execute
 * @param startupFlags The optional startup flags to be passed to powershell. Defaults to `["-NoProfile", "-NoLogo",
 *   "-NonInteractive"]`. This means that the Powershell profile is not sourced first.
 * @param execOptions The options passed to `execa`. Defaults to `{ stdio: "inherit" }`
 * @returns A promise to the execution result
 * @note It prefers `pwsh` over `powershell`
 */
export declare function execPowershell(command: string, startupFlags?: string[], execOptions?: execa.Options): execa.ExecaChildProcess<string>;
/**
 * Execute a powershell command.
 *
 * @param command The powershell command to execute
 * @param startupFlags The optional startup flags to be passed to powershell. Defaults to `["-NoProfile", "-NoLogo",
 *   "-NonInteractive"]`. This means that the Powershell profile is not sourced first.
 * @param execOptions The options passed to `execa`. Defaults to `{ stdio: "inherit" }`
 * @returns The execution result
 * @note It prefers `pwsh` over `powershell`
 */
export declare function execPowershellSync(command: string, startupFlags?: string[], execOptions?: execa.SyncOptions): execa.ExecaSyncReturnValue<string>;
/**
 * Get the path to the powershell executable.
 *
 * @note It prefers `pwsh` over `powershell`
 * @note It caches the path for the subsequent calls to this function
 */
export declare function getPowerShell(): string;
