pub trait TerminalProvider {
// Required methods
fn run(
&mut self,
command: &str,
timeout: Duration,
) -> Result<TerminalExecution>;
fn signal(&mut self, pid: u32, signal: ProcessSignal) -> Result<()>;
fn active_pids(&self) -> Vec<u32>;
}