use crate::error::VBResult;
use super::appactivate::AppActivateRequest;
use super::inputbox::InputBoxRequest;
use super::msgbox::{MsgBoxButton, MsgBoxRequest};
use super::sendkeys::SendKeysRequest;
use super::shell::ShellRequest;
pub trait InteractionBackend: Send {
fn command_args(&self) -> Vec<String>;
fn do_events(&self) -> i16;
fn beep(&self);
fn stop(&self);
fn msg_box(&self, request: &MsgBoxRequest) -> VBResult<MsgBoxButton>;
fn input_box(&self, request: &InputBoxRequest) -> VBResult<String>;
fn app_activate(&self, request: &AppActivateRequest) -> VBResult<()>;
fn send_keys(&self, request: &SendKeysRequest) -> VBResult<()>;
fn shell(&self, request: &ShellRequest) -> VBResult<f64>;
fn as_any(&self) -> &dyn std::any::Any;
}