process.lua
---@meta Process
local process = {}
---@async
---Runs a command in a terminal, has to be called from a coroutine!
---@param cmd string The command to run.
---@return number exitCode The exit code of the command.
function process.runInTerminal(cmd) end
---@async
---Runs a command and returns the output!
---@param cmd string The command to run.
---@return string output The output of the command.
function process.commandOutput(cmd) end
---@class Process
process.Process = {}
---@class ProcessParameters
---@field command FilePath The command to run.
---@field arguments? string[] The arguments to pass to the command.
---@field workingDirectory? FilePath The working directory for the command.
---@field stdin? string The input to write to stdin.
---@field stdout? function The callback to call when the process writes to stdout.
---@field stderr? function The callback to call when the process writes to stderr.
---@field onFinished? function () The callback to call when the process finishes.
process.ProcessParameters = {}
---Creates a new process object.
---@param parameters ProcessParameters
---@return Process
function process.create(parameters) end
---Start the process.
---@async
---@return boolean isRunning Whether the process was started successfully.
function process.Process:start() end
---Stop the process.
---@async
---@return boolean didStop Whether the process was stopped successfully.
---@return number exitCode The exit code of the process.
---@return string error The error message if the process could not be stopped.
function process.Process:stop() end
---Returns whether the process is running.
---@return boolean isRunning Whether the process is running.
function process.Process:isRunning() end
---
return process