pub trait DataChannelProxyInterface: Send + Sync {
type RegisterResponseFut: Future<Output = Result<DataChannelRegisterResult, Error>> + Send;
type GetIdentifierResponseFut: Future<Output = Result<DataChannelGetIdentifierResponse, Error>> + Send;
type ReadResponseFut: Future<Output = Result<DataChannelReadResult, Error>> + Send;
type WriteResponseFut: Future<Output = Result<DataChannelWriteResult, Error>> + Send;
// Required methods
fn register(&self, event: Event) -> Self::RegisterResponseFut;
fn get_identifier(&self) -> Self::GetIdentifierResponseFut;
fn read(&self, payload: &DataChannelReadRequest) -> Self::ReadResponseFut;
fn write(&self, payload: &DataChannelWriteRequest) -> Self::WriteResponseFut;
}