# sig/json/jwe.rbs

class JSON::JWE
  def as_json: () -> untyped
  def authentication_tag: () -> untyped
  def cbc?: () -> untyped
  def cipher: () -> untyped
  def cipher_name: () -> untyped
  def decode_compact_serialized: () -> untyped
  def decode_json_serialized: () -> untyped
  def decrypt!: () -> untyped
  def decrypt_content_encryption_key: () -> untyped
  def derive_encryption_and_mac_keys: () -> untyped
  def dir?: () -> untyped
  def encrypt!: () -> untyped
  def gcm?: () -> untyped
  def generate_content_encryption_key: () -> untyped
  def initialize: () -> void
  def jwe_encrypted_key: () -> untyped
  def sha_digest: () -> untyped
  def sha_size: () -> untyped
  def to_s: () -> untyped
  def verify_cbc_authentication_tag!: () -> untyped
end


# sig/json/jwk.rbs

class JSON::JWK < JSON::ActiveSupport::HashWithIndifferentAccess
  def calculate_default_kid: () -> untyped
  def content_type: () -> untyped
  def ec?: () -> untyped
  def initialize: () -> void
  def normalize: () -> untyped
  def oct?: () -> untyped
  def rsa?: () -> untyped
  def thumbprint: () -> untyped
  def to_ec_key: () -> untyped
  def to_key: () -> untyped
  def to_rsa_key: () -> untyped
end


# sig/json/jwk/set.rbs

class JSON::JWK::Set < JSON::JWK::Array
  def []: () -> untyped
  def as_json: () -> untyped
  def content_type: () -> untyped
  def initialize: () -> void
end


# sig/json/jwk/set/fetcher.rbs

class JSON::JWK::Set::Fetcher::Cache
  def delete: () -> untyped
  def fetch: () -> untyped
end


# sig/json/jws.rbs

class JSON::JWS < JSON::JWT
  def asn1_to_raw: () -> untyped
  def autodetected_algorithm_from: () -> untyped
  def decode_compact_serialized: () -> untyped
  def decode_json_serialized: () -> untyped
  def digest: () -> untyped
  def ecdsa?: () -> untyped
  def hmac?: () -> untyped
  def initialize: () -> void
  def raw_to_asn1: () -> untyped
  def rsa?: () -> untyped
  def rsa_pss?: () -> untyped
  def sign: () -> untyped
  def sign!: () -> untyped
  def signature_base_string: () -> untyped
  def update: () -> untyped
  def valid?: () -> untyped
  def verify!: () -> untyped
  def verify_ecdsa_group!: () -> untyped
end


# sig/json/jwt.rbs

class JSON::JWT < JSON::ActiveSupport::HashWithIndifferentAccess
  def as_json: () -> untyped
  def decode_compact_serialized: () -> untyped
  def decode_json_serialized: () -> untyped
  def encrypt: () -> untyped
  def initialize: () -> void
  def pretty_generate: () -> untyped
  def pretty_generate: () -> untyped
  def sign: () -> untyped
  def to_json: () -> untyped
  def to_s: () -> untyped
  def update: () -> untyped
end


# sig/json/jose.rbs

module JSON::JOSE
  def content_type: () -> untyped
  def header: () -> untyped
  def secure_compare: () -> untyped
  def with_jwk_support: () -> untyped
end


# sig/json/jose.rbs

module JSON::JOSE::ClassMethods
  def decode: () -> untyped
  def register_header_keys: () -> untyped
end


# sig/json/jwk/jwkizable.rbs

module JSON::JWK::JWKizable::EC
  def coordinates: () -> untyped
  def curve_name: () -> untyped
  def to_jwk: () -> untyped
end


# sig/json/jwk/jwkizable.rbs

module JSON::JWK::JWKizable::RSA
  def to_jwk: () -> untyped
end


# sig/json/jwk/set/fetcher.rbs

module JSON::JWK::Set::Fetcher
  def self.cache: () -> untyped
  def self.cache=: () -> untyped
  def self.debug: () -> untyped
  def self.debug!: () -> untyped
  def self.debugging=: () -> untyped
  def self.debugging?: () -> untyped
  def self.fetch: () -> untyped
  def self.http_client: () -> untyped
  def self.http_config: () -> untyped
  def self.logger: () -> untyped
  def self.logger=: () -> untyped
end
