 
 /// Decodes a JWT
 @objc(A0JWT)
-open class _JWT: NSObject {
+public class _JWT: NSObject {
 
     var jwt: JWT
 

    }

    /// token header part
    open var header: [String: Any] {
        return self.jwt.header
    }

    /// token body part or claims
    open var body: [String: Any] {
        return self.jwt.body
    }

    /// token signature part
    open var signature: String? {
        return self.jwt.signature
    }

    /// value of the `exp` claim
    open var expiresAt: Date? {
        return self.jwt.expiresAt as Date?
    }

    /// value of the `expired` field
    open var expired: Bool {
        return self.jwt.expired
    }



    :returns: a new instance of `A0JWT` that holds the decode token
    */
    public class func decode(jwt jwtValue: String) throws -> _JWT {
        let jwt = try DecodedJWT(jwt: jwtValue)
        return _JWT(jwt: jwt)
    }
