#if swift(>=4.0)
@objcMembers public class TrustDefenderAPI: NSObject  {

    static let kRequestDoTrustDefenderProfiling = "com.ErnTrustdefenderApi.ern.api.request.doTrustDefenderProfiling";

    static let kRequestGetTrustDefenderMetaHeader = "com.ErnTrustdefenderApi.ern.api.request.getTrustDefenderMetaHeader";


    public lazy var requests: TrustDefenderAPIRequests = {
        return TrustDefenderRequests()
    }()
}


@objcMembers public class TrustDefenderAPIRequests: NSObject {
    public func registerDoTrustDefenderProfilingRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{
        assertionFailure("should override")
        return UUID()
    }

    public func registerGetTrustDefenderMetaHeaderRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{
        assertionFailure("should override")
        return UUID()
    }


    public func unregisterDoTrustDefenderProfilingRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? {
        assertionFailure("should override")
        return nil
    }

    public func unregisterGetTrustDefenderMetaHeaderRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? {
        assertionFailure("should override")
        return nil
    }


    public func doTrustDefenderProfiling(trustDefenderArgs: TrustDefenderArgs, responseCompletionHandler: @escaping (TrustDefenderProfileResult?, ElectrodeFailureMessage?) -> ()) {
        assertionFailure("should override")
    }

    public func getTrustDefenderMetaHeader(trustDefenderArgs: TrustDefenderArgs, responseCompletionHandler: @escaping (TrustDefenderMetaHeader?, ElectrodeFailureMessage?) -> ()) {
        assertionFailure("should override")
    }

}
#else
public class TrustDefenderAPI: NSObject  {

    static let kRequestDoTrustDefenderProfiling = "com.ErnTrustdefenderApi.ern.api.request.doTrustDefenderProfiling";

    static let kRequestGetTrustDefenderMetaHeader = "com.ErnTrustdefenderApi.ern.api.request.getTrustDefenderMetaHeader";


    public lazy var requests: TrustDefenderAPIRequests = {
        return TrustDefenderRequests()
    }()
}


public class TrustDefenderAPIRequests: NSObject {
    public func registerDoTrustDefenderProfilingRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{
        assertionFailure("should override")
        return UUID()
    }

    public func registerGetTrustDefenderMetaHeaderRequestHandler(handler: @escaping ElectrodeBridgeRequestCompletionHandler) -> UUID?{
        assertionFailure("should override")
        return UUID()
    }


    public func unregisterDoTrustDefenderProfilingRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? {
        assertionFailure("should override")
        return nil
    }

    public func unregisterGetTrustDefenderMetaHeaderRequestHandler(uuid: UUID) -> ElectrodeBridgeRequestCompletionHandler? {
        assertionFailure("should override")
        return nil
    }


    public func doTrustDefenderProfiling(trustDefenderArgs: TrustDefenderArgs, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) {
        assertionFailure("should override")
    }

    public func getTrustDefenderMetaHeader(trustDefenderArgs: TrustDefenderArgs, responseCompletionHandler: @escaping ElectrodeBridgeResponseCompletionHandler) {
        assertionFailure("should override")
    }

}

#endif
