%a{annotate:rdoc:skip} class Integer

# <!--
#   rdoc-file=lib/bigdecimal/util.rb
#   - int.to_d  -> bigdecimal
# -->
# Returns the value of `int` as a BigDecimal.
#
#     require 'bigdecimal'
#     require 'bigdecimal/util'
#
#     42.to_d   # => 0.42e2
#
# See also Kernel.BigDecimal.
#
def to_d: () -> BigDecimal

end

%a{annotate:rdoc:skip} class Float

# <!--
#   rdoc-file=lib/bigdecimal/util.rb
#   - float.to_d             -> bigdecimal
#   - float.to_d(precision)  -> bigdecimal
# -->
# Returns the value of `float` as a BigDecimal. The `precision` parameter is
# used to determine the number of significant digits for the result. When
# `precision` is set to `0`, the number of digits to represent the float being
# converted is determined automatically. The default `precision` is `0`.
#
#     require 'bigdecimal'
#     require 'bigdecimal/util'
#
#     0.5.to_d         # => 0.5e0
#     1.234.to_d       # => 0.1234e1
#     1.234.to_d(2)    # => 0.12e1
#
# See also Kernel.BigDecimal.
#
def to_d: (?Integer precision) -> BigDecimal

end

%a{annotate:rdoc:skip} class String

# <!--
#   rdoc-file=lib/bigdecimal/util.rb
#   - str.to_d  -> bigdecimal
# -->
# Returns the result of interpreting leading characters in `str` as a
# BigDecimal.
#
#     require 'bigdecimal'
#     require 'bigdecimal/util'
#
#     "0.5".to_d             # => 0.5e0
#     "123.45e1".to_d        # => 0.12345e4
#     "45.67 degrees".to_d   # => 0.4567e2
#
# See also Kernel.BigDecimal.
#
def to_d: () -> BigDecimal

end

%a{annotate:rdoc:skip} class BigDecimal

# <!--
#   rdoc-file=lib/bigdecimal/util.rb
#   - a.to_digits -> string
# -->
# Converts a BigDecimal to a String of the form "nnnnnn.mmm". This method is
# deprecated; use BigDecimal#to_s("F") instead.
#
#     require 'bigdecimal/util'
#
#     d = BigDecimal("3.14")
#     d.to_digits                  # => "3.14"
#
def to_digits: () -> String

# <!--
#   rdoc-file=lib/bigdecimal/util.rb
#   - a.to_d -> bigdecimal
# -->
# Returns self.
#
#     require 'bigdecimal/util'
#
#     d = BigDecimal("3.14")
#     d.to_d                       # => 0.314e1
#
def to_d: () -> BigDecimal

end

%a{annotate:rdoc:skip} class Rational

# <!--
#   rdoc-file=lib/bigdecimal/util.rb
#   - rat.to_d(precision)  -> bigdecimal
# -->
# Returns the value as a BigDecimal.
#
# The `precision` parameter is used to determine the number of significant
# digits for the result. When `precision` is set to `0`, the number of digits to
# represent the float being converted is determined automatically. The default
# `precision` is `0`.
#
#     require 'bigdecimal'
#     require 'bigdecimal/util'
#
#     Rational(22, 7).to_d(3)   # => 0.314e1
#
# See also Kernel.BigDecimal.
#
def to_d: (Integer precision) -> BigDecimal

end

%a{annotate:rdoc:skip} class Complex

# <!--
#   rdoc-file=lib/bigdecimal/util.rb
#   - cmp.to_d             -> bigdecimal
#   - cmp.to_d(precision)  -> bigdecimal
# -->
# Returns the value as a BigDecimal. If the imaginary part is not `0`, an error
# is raised
#
# The `precision` parameter is used to determine the number of significant
# digits for the result. When `precision` is set to `0`, the number of digits to
# represent the float being converted is determined automatically. The default
# `precision` is `0`.
#
#     require 'bigdecimal'
#     require 'bigdecimal/util'
#
#     Complex(0.1234567, 0).to_d(4)   # => 0.1235e0
#     Complex(Rational(22, 7), 0).to_d(3)   # => 0.314e1
#     Complex(1, 1).to_d   # raises ArgumentError
#
# See also Kernel.BigDecimal.
#
def to_d: (*untyped args) -> BigDecimal

end

%a{annotate:rdoc:skip} class NilClass

# <!--
#   rdoc-file=lib/bigdecimal/util.rb
#   - nil.to_d -> bigdecimal
# -->
# Returns nil represented as a BigDecimal.
#
#     require 'bigdecimal'
#     require 'bigdecimal/util'
#
#     nil.to_d   # => 0.0
#
def to_d: () -> BigDecimal

end