# typed: true

# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `securerandom` gem.
# Please instead update this file by running `bin/tapioca gem securerandom`.


# == Secure random number generator interface.
#
# This library is an interface to secure random number generators which are
# suitable for generating session keys in HTTP cookies, etc.
#
# You can use this library in your application by requiring it:
#
#   require 'securerandom'
#
# It supports the following secure random number generators:
#
# * openssl
# * /dev/urandom
# * Win32
#
# SecureRandom is extended by the Random::Formatter module which
# defines the following methods:
#
# * alphanumeric
# * base64
# * choose
# * gen_random
# * hex
# * rand
# * random_bytes
# * random_number
# * urlsafe_base64
# * uuid
#
# These methods are usable as class methods of SecureRandom such as
# +SecureRandom.hex+.
#
# If a secure random number generator is not available,
# +NotImplementedError+ is raised.
module SecureRandom
  extend ::Random::Formatter

  class << self
    # Returns a random binary string containing +size+ bytes.
    #
    # See Random.bytes
    #
    # source://securerandom//lib/securerandom.rb#50
    def bytes(n); end

    # source://securerandom//lib/securerandom.rb#70
    def gen_random(n); end

    private

    # Implementation using OpenSSL
    #
    # source://securerandom//lib/securerandom.rb#65
    def gen_random_openssl(n); end

    # Implementation using system random device
    #
    # source://securerandom//lib/securerandom.rb#70
    def gen_random_urandom(n); end
  end
end

# The version
#
# source://securerandom//lib/securerandom.rb#44
SecureRandom::VERSION = T.let(T.unsafe(nil), String)
