use objc2::__framework_prelude::*;
use crate::*;
extern_protocol!(
pub unsafe trait MEExtension: NSObjectProtocol {
#[cfg(feature = "MEComposeSession")]
#[optional]
#[method_id(@__retain_semantics Other handlerForComposeSession:)]
unsafe fn handlerForComposeSession(
&self,
session: &MEComposeSession,
) -> Retained<ProtocolObject<dyn MEComposeSessionHandler>>;
#[cfg(feature = "MEMessageActionHandler")]
#[optional]
#[method_id(@__retain_semantics Other handlerForMessageActions)]
unsafe fn handlerForMessageActions(
&self,
) -> Retained<ProtocolObject<dyn MEMessageActionHandler>>;
#[cfg(feature = "MEContentBlocker")]
#[optional]
#[method_id(@__retain_semantics Other handlerForContentBlocker)]
unsafe fn handlerForContentBlocker(&self)
-> Retained<ProtocolObject<dyn MEContentBlocker>>;
#[cfg(all(
feature = "MEMessageDecoder",
feature = "MEMessageEncoder",
feature = "MEMessageSecurityHandler"
))]
#[optional]
#[method_id(@__retain_semantics Other handlerForMessageSecurity)]
unsafe fn handlerForMessageSecurity(
&self,
) -> Retained<ProtocolObject<dyn MEMessageSecurityHandler>>;
}
unsafe impl ProtocolType for dyn MEExtension {}
);