konstruo 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +22 -0
  4. data/.tool-versions +1 -0
  5. data/CHANGELOG.md +21 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +35 -0
  8. data/Rakefile +10 -0
  9. data/lib/konstruo/mapper.rb +120 -0
  10. data/lib/konstruo/version.rb +6 -0
  11. data/lib/konstruo.rb +18 -0
  12. data/sorbet/config +4 -0
  13. data/sorbet/rbi/annotations/.gitattributes +1 -0
  14. data/sorbet/rbi/annotations/actionmailer.rbi +10 -0
  15. data/sorbet/rbi/annotations/actionpack.rbi +430 -0
  16. data/sorbet/rbi/annotations/actionview.rbi +75 -0
  17. data/sorbet/rbi/annotations/activejob.rbi +44 -0
  18. data/sorbet/rbi/annotations/activemodel.rbi +89 -0
  19. data/sorbet/rbi/annotations/activerecord.rbi +92 -0
  20. data/sorbet/rbi/annotations/activesupport.rbi +454 -0
  21. data/sorbet/rbi/annotations/globalid.rbi +30 -0
  22. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  23. data/sorbet/rbi/annotations/railties.rbi +61 -0
  24. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  25. data/sorbet/rbi/dsl/.gitattributes +1 -0
  26. data/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  27. data/sorbet/rbi/gems/.gitattributes +1 -0
  28. data/sorbet/rbi/gems/actioncable@7.2.1.rbi +3096 -0
  29. data/sorbet/rbi/gems/actionmailbox@7.2.1.rbi +1832 -0
  30. data/sorbet/rbi/gems/actionmailer@7.2.1.rbi +2664 -0
  31. data/sorbet/rbi/gems/actionpack@7.2.1.rbi +20536 -0
  32. data/sorbet/rbi/gems/actiontext@7.2.1.rbi +1697 -0
  33. data/sorbet/rbi/gems/actionview@7.2.1.rbi +15752 -0
  34. data/sorbet/rbi/gems/activejob@7.2.1.rbi +2828 -0
  35. data/sorbet/rbi/gems/activemodel@7.2.1.rbi +6762 -0
  36. data/sorbet/rbi/gems/activerecord@7.2.1.rbi +41433 -0
  37. data/sorbet/rbi/gems/activestorage@7.2.1.rbi +3247 -0
  38. data/sorbet/rbi/gems/activesupport@7.2.1.rbi +21142 -0
  39. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  40. data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
  41. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +78 -0
  42. data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
  43. data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +11645 -0
  44. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  45. data/sorbet/rbi/gems/crass@1.0.6.rbi +623 -0
  46. data/sorbet/rbi/gems/dashbrains-rubocop-config@1.0.4.rbi +9 -0
  47. data/sorbet/rbi/gems/date@3.3.4.rbi +75 -0
  48. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
  49. data/sorbet/rbi/gems/drb@2.2.1.rbi +1347 -0
  50. data/sorbet/rbi/gems/erubi@1.13.0.rbi +150 -0
  51. data/sorbet/rbi/gems/globalid@1.2.1.rbi +749 -0
  52. data/sorbet/rbi/gems/i18n@1.14.5.rbi +2359 -0
  53. data/sorbet/rbi/gems/io-console@0.7.2.rbi +9 -0
  54. data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
  55. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  56. data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
  57. data/sorbet/rbi/gems/loofah@2.22.0.rbi +1081 -0
  58. data/sorbet/rbi/gems/mail@2.8.1.rbi +8658 -0
  59. data/sorbet/rbi/gems/marcel@1.0.4.rbi +239 -0
  60. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +173 -0
  61. data/sorbet/rbi/gems/minitest@5.25.1.rbi +1546 -0
  62. data/sorbet/rbi/gems/net-imap@0.4.16.rbi +10845 -0
  63. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +927 -0
  64. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +292 -0
  65. data/sorbet/rbi/gems/net-smtp@0.5.0.rbi +1228 -0
  66. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  67. data/sorbet/rbi/gems/nio4r@2.7.3.rbi +293 -0
  68. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  69. data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
  70. data/sorbet/rbi/gems/parser@3.3.5.0.rbi +5519 -0
  71. data/sorbet/rbi/gems/prism@1.0.0.rbi +35493 -0
  72. data/sorbet/rbi/gems/psych@5.1.2.rbi +1769 -0
  73. data/sorbet/rbi/gems/racc@1.8.1.rbi +162 -0
  74. data/sorbet/rbi/gems/rack-session@2.0.0.rbi +727 -0
  75. data/sorbet/rbi/gems/rack-test@2.1.0.rbi +747 -0
  76. data/sorbet/rbi/gems/rack@3.1.7.rbi +4902 -0
  77. data/sorbet/rbi/gems/rackup@2.1.0.rbi +390 -0
  78. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +758 -0
  79. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.0.rbi +785 -0
  80. data/sorbet/rbi/gems/rails@7.2.1.rbi +9 -0
  81. data/sorbet/rbi/gems/railties@7.2.1.rbi +3824 -0
  82. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  83. data/sorbet/rbi/gems/rake@13.2.1.rbi +3046 -0
  84. data/sorbet/rbi/gems/rbi@0.2.0.rbi +4105 -0
  85. data/sorbet/rbi/gems/rdoc@6.7.0.rbi +12721 -0
  86. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
  87. data/sorbet/rbi/gems/reline@0.5.10.rbi +9 -0
  88. data/sorbet/rbi/gems/rspec-core@3.13.1.rbi +11012 -0
  89. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
  90. data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
  91. data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
  92. data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
  93. data/sorbet/rbi/gems/rubocop-ast@1.32.3.rbi +7446 -0
  94. data/sorbet/rbi/gems/rubocop-capybara@2.21.0.rbi +9 -0
  95. data/sorbet/rbi/gems/rubocop-factory_bot@2.26.1.rbi +9 -0
  96. data/sorbet/rbi/gems/rubocop-graphql@1.5.4.rbi +9 -0
  97. data/sorbet/rbi/gems/rubocop-minitest@0.36.0.rbi +9 -0
  98. data/sorbet/rbi/gems/rubocop-performance@1.21.1.rbi +9 -0
  99. data/sorbet/rbi/gems/rubocop-rails@2.26.1.rbi +9 -0
  100. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
  101. data/sorbet/rbi/gems/rubocop-rspec@3.0.5.rbi +9 -0
  102. data/sorbet/rbi/gems/rubocop-rspec_rails@2.30.0.rbi +9 -0
  103. data/sorbet/rbi/gems/rubocop-sorbet@0.8.5.rbi +9 -0
  104. data/sorbet/rbi/gems/rubocop@1.66.1.rbi +58268 -0
  105. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  106. data/sorbet/rbi/gems/securerandom@0.3.1.rbi +396 -0
  107. data/sorbet/rbi/gems/spoom@1.4.2.rbi +4932 -0
  108. data/sorbet/rbi/gems/stringio@3.1.1.rbi +9 -0
  109. data/sorbet/rbi/gems/tapioca@0.16.2.rbi +3581 -0
  110. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  111. data/sorbet/rbi/gems/timeout@0.4.1.rbi +149 -0
  112. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  113. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  114. data/sorbet/rbi/gems/useragent@0.16.10.rbi +9 -0
  115. data/sorbet/rbi/gems/webrick@1.8.1.rbi +2607 -0
  116. data/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +993 -0
  117. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +121 -0
  118. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  119. data/sorbet/rbi/gems/yard@0.9.37.rbi +18570 -0
  120. data/sorbet/rbi/gems/zeitwerk@2.6.18.rbi +1051 -0
  121. data/sorbet/rbi/todo.rbi +6 -0
  122. data/sorbet/tapioca/config.yml +13 -0
  123. data/sorbet/tapioca/require.rb +9 -0
  124. data/tasks/bundle_update.rake +14 -0
  125. data/tasks/sorbet.rake +26 -0
  126. metadata +216 -0
@@ -0,0 +1,159 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `netrc` gem.
5
+ # Please instead update this file by running `bin/tapioca gem netrc`.
6
+
7
+
8
+ # source://netrc//lib/netrc.rb#3
9
+ class Netrc
10
+ # @return [Netrc] a new instance of Netrc
11
+ #
12
+ # source://netrc//lib/netrc.rb#166
13
+ def initialize(path, data); end
14
+
15
+ # source://netrc//lib/netrc.rb#180
16
+ def [](k); end
17
+
18
+ # source://netrc//lib/netrc.rb#188
19
+ def []=(k, info); end
20
+
21
+ # source://netrc//lib/netrc.rb#200
22
+ def delete(key); end
23
+
24
+ # source://netrc//lib/netrc.rb#211
25
+ def each(&block); end
26
+
27
+ # source://netrc//lib/netrc.rb#196
28
+ def length; end
29
+
30
+ # source://netrc//lib/netrc.rb#215
31
+ def new_item(m, l, p); end
32
+
33
+ # Returns the value of attribute new_item_prefix.
34
+ #
35
+ # source://netrc//lib/netrc.rb#178
36
+ def new_item_prefix; end
37
+
38
+ # Sets the attribute new_item_prefix
39
+ #
40
+ # @param value the value to set the attribute new_item_prefix to.
41
+ #
42
+ # source://netrc//lib/netrc.rb#178
43
+ def new_item_prefix=(_arg0); end
44
+
45
+ # source://netrc//lib/netrc.rb#219
46
+ def save; end
47
+
48
+ # source://netrc//lib/netrc.rb#233
49
+ def unparse; end
50
+
51
+ class << self
52
+ # source://netrc//lib/netrc.rb#42
53
+ def check_permissions(path); end
54
+
55
+ # source://netrc//lib/netrc.rb#33
56
+ def config; end
57
+
58
+ # @yield [self.config]
59
+ #
60
+ # source://netrc//lib/netrc.rb#37
61
+ def configure; end
62
+
63
+ # source://netrc//lib/netrc.rb#10
64
+ def default_path; end
65
+
66
+ # source://netrc//lib/netrc.rb#14
67
+ def home_path; end
68
+
69
+ # source://netrc//lib/netrc.rb#85
70
+ def lex(lines); end
71
+
72
+ # source://netrc//lib/netrc.rb#29
73
+ def netrc_filename; end
74
+
75
+ # Returns two values, a header and a list of items.
76
+ # Each item is a tuple, containing some or all of:
77
+ # - machine keyword (including trailing whitespace+comments)
78
+ # - machine name
79
+ # - login keyword (including surrounding whitespace+comments)
80
+ # - login
81
+ # - password keyword (including surrounding whitespace+comments)
82
+ # - password
83
+ # - trailing chars
84
+ # This lets us change individual fields, then write out the file
85
+ # with all its original formatting.
86
+ #
87
+ # source://netrc//lib/netrc.rb#129
88
+ def parse(ts); end
89
+
90
+ # Reads path and parses it as a .netrc file. If path doesn't
91
+ # exist, returns an empty object. Decrypt paths ending in .gpg.
92
+ #
93
+ # source://netrc//lib/netrc.rb#51
94
+ def read(path = T.unsafe(nil)); end
95
+
96
+ # @return [Boolean]
97
+ #
98
+ # source://netrc//lib/netrc.rb#112
99
+ def skip?(s); end
100
+ end
101
+ end
102
+
103
+ # source://netrc//lib/netrc.rb#8
104
+ Netrc::CYGWIN = T.let(T.unsafe(nil), T.untyped)
105
+
106
+ # source://netrc//lib/netrc.rb#244
107
+ class Netrc::Entry < ::Struct
108
+ # Returns the value of attribute login
109
+ #
110
+ # @return [Object] the current value of login
111
+ def login; end
112
+
113
+ # Sets the attribute login
114
+ #
115
+ # @param value [Object] the value to set the attribute login to.
116
+ # @return [Object] the newly set value
117
+ def login=(_); end
118
+
119
+ # Returns the value of attribute password
120
+ #
121
+ # @return [Object] the current value of password
122
+ def password; end
123
+
124
+ # Sets the attribute password
125
+ #
126
+ # @param value [Object] the value to set the attribute password to.
127
+ # @return [Object] the newly set value
128
+ def password=(_); end
129
+
130
+ def to_ary; end
131
+
132
+ class << self
133
+ def [](*_arg0); end
134
+ def inspect; end
135
+ def keyword_init?; end
136
+ def members; end
137
+ def new(*_arg0); end
138
+ end
139
+ end
140
+
141
+ # source://netrc//lib/netrc.rb#250
142
+ class Netrc::Error < ::StandardError; end
143
+
144
+ # source://netrc//lib/netrc.rb#68
145
+ class Netrc::TokenArray < ::Array
146
+ # source://netrc//lib/netrc.rb#76
147
+ def readto; end
148
+
149
+ # source://netrc//lib/netrc.rb#69
150
+ def take; end
151
+ end
152
+
153
+ # source://netrc//lib/netrc.rb#4
154
+ Netrc::VERSION = T.let(T.unsafe(nil), String)
155
+
156
+ # see http://stackoverflow.com/questions/4871309/what-is-the-correct-way-to-detect-if-ruby-is-running-on-windows
157
+ #
158
+ # source://netrc//lib/netrc.rb#7
159
+ Netrc::WINDOWS = T.let(T.unsafe(nil), T.untyped)
@@ -0,0 +1,293 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `nio4r` gem.
5
+ # Please instead update this file by running `bin/tapioca gem nio4r`.
6
+
7
+
8
+ # New I/O for Ruby
9
+ #
10
+ # source://nio4r//lib/nio/version.rb#8
11
+ module NIO
12
+ class << self
13
+ # NIO implementation, one of the following (as a string):
14
+ # * select: in pure Ruby using Kernel.select
15
+ # * libev: as a C extension using libev
16
+ # * java: using Java NIO
17
+ #
18
+ # source://nio4r//lib/nio.rb#21
19
+ def engine; end
20
+
21
+ # @return [Boolean]
22
+ #
23
+ # source://nio4r//lib/nio.rb#25
24
+ def pure?(env = T.unsafe(nil)); end
25
+ end
26
+ end
27
+
28
+ # Efficient byte buffers for performant I/O operations
29
+ class NIO::ByteBuffer
30
+ include ::Enumerable
31
+
32
+ # Create a new ByteBuffer, either with a specified capacity or populating
33
+ # it from a given string
34
+ #
35
+ # @param capacity [Integer] size of buffer in bytes
36
+ # @raise [TypeError]
37
+ # @return [NIO::ByteBuffer]
38
+ def initialize(_arg0); end
39
+
40
+ # Add a String to the buffer
41
+ #
42
+ # @param str [#to_str] data to add to the buffer
43
+ # @raise [TypeError] given a non-string type
44
+ # @raise [NIO::ByteBuffer::OverflowError] buffer is full
45
+ # @return [self]
46
+ def <<(_arg0); end
47
+
48
+ # Obtain the byte at a given index in the buffer as an Integer
49
+ #
50
+ # @raise [ArgumentError] index is invalid (either negative or larger than limit)
51
+ # @return [Integer] byte at the given index
52
+ def [](_arg0); end
53
+
54
+ # Returns the value of attribute capacity.
55
+ def capacity; end
56
+
57
+ # Clear the buffer, resetting it to the default state
58
+ def clear; end
59
+
60
+ # Move data between the position and limit to the beginning of the buffer
61
+ # Sets the position to the end of the moved data, and the limit to the capacity
62
+ def compact; end
63
+
64
+ # Iterate over the bytes in the buffer (as Integers)
65
+ #
66
+ # @return [self]
67
+ def each; end
68
+
69
+ # Set the buffer's current position as the limit and set the position to 0
70
+ def flip; end
71
+
72
+ # Does the ByteBuffer have any space remaining?
73
+ #
74
+ # @return [true, false]
75
+ def full?; end
76
+
77
+ # Obtain the requested number of bytes from the buffer, advancing the position.
78
+ # If no length is given, all remaining bytes are consumed.
79
+ #
80
+ # @raise [NIO::ByteBuffer::UnderflowError] not enough data remaining in buffer
81
+ # @return [String] bytes read from buffer
82
+ def get(*_arg0); end
83
+
84
+ # Inspect the state of the buffer
85
+ #
86
+ # @return [String] string describing the state of the buffer
87
+ def inspect; end
88
+
89
+ # Returns the value of attribute limit.
90
+ def limit; end
91
+
92
+ # Set the limit to the given value. New limit must be less than capacity.
93
+ # Preserves limit and mark if they're less than the new limit, otherwise
94
+ # sets position to the new limit and clears the mark.
95
+ #
96
+ # @param new_limit [Integer] position in the buffer
97
+ # @raise [ArgumentError] new limit was invalid
98
+ def limit=(_arg0); end
99
+
100
+ # Mark a position to return to using the `#reset` method
101
+ def mark; end
102
+
103
+ # Returns the value of attribute position.
104
+ def position; end
105
+
106
+ # Set the position to the given value. New position must be less than limit.
107
+ # Preserves mark if it's less than the new position, otherwise clears it.
108
+ #
109
+ # @param new_position [Integer] position in the buffer
110
+ # @raise [ArgumentError] new position was invalid
111
+ def position=(_arg0); end
112
+
113
+ # Perform a non-blocking read from the given IO object into the buffer
114
+ # Reads as much data as is immediately available and returns
115
+ #
116
+ # @param Ruby [IO] IO object to read from
117
+ # @raise [OverflowError]
118
+ # @return [Integer] number of bytes read (0 if none were available)
119
+ def read_from(_arg0); end
120
+
121
+ # Number of bytes remaining in the buffer before the limit
122
+ #
123
+ # @return [Integer] number of bytes remaining
124
+ def remaining; end
125
+
126
+ # Reset position to the previously marked location
127
+ #
128
+ # @raise [NIO::ByteBuffer::MarkUnsetError] mark has not been set (call `#mark` first)
129
+ def reset; end
130
+
131
+ # Set the buffer's current position to 0, leaving the limit unchanged
132
+ def rewind; end
133
+
134
+ def size; end
135
+
136
+ # Perform a non-blocking write of the buffer's contents to the given I/O object
137
+ # Writes as much data as is immediately possible and returns
138
+ #
139
+ # @param Ruby [IO] IO object to write to
140
+ # @raise [UnderflowError]
141
+ # @return [Integer] number of bytes written (0 if the write would block)
142
+ def write_to(_arg0); end
143
+ end
144
+
145
+ # Mark has not been set
146
+ class NIO::ByteBuffer::MarkUnsetError < ::IOError; end
147
+
148
+ # Insufficient capacity in buffer
149
+ class NIO::ByteBuffer::OverflowError < ::IOError; end
150
+
151
+ # Not enough data remaining in buffer
152
+ class NIO::ByteBuffer::UnderflowError < ::IOError; end
153
+
154
+ # source://nio4r//lib/nio.rb#59
155
+ NIO::ENGINE = T.let(T.unsafe(nil), String)
156
+
157
+ # Monitors watch IO objects for specific events
158
+ class NIO::Monitor
159
+ # @return [Monitor] a new instance of Monitor
160
+ def initialize(_arg0, _arg1, _arg2); end
161
+
162
+ # Add new interests to the existing interest set
163
+ #
164
+ # @param interests [:r, :w, :rw] new I/O interests (read/write/readwrite)
165
+ # @return [self]
166
+ def add_interest(_arg0); end
167
+
168
+ # Deactivate this monitor
169
+ def close(*_arg0); end
170
+
171
+ # Is this monitor closed?
172
+ #
173
+ # @return [Boolean]
174
+ def closed?; end
175
+
176
+ # Returns the value of attribute interests.
177
+ def interests; end
178
+
179
+ # Replace the existing interest set with a new one
180
+ #
181
+ # @param interests [:r, :w, :rw, nil] I/O readiness we're interested in (read/write/readwrite)
182
+ # @raise [EOFError]
183
+ # @return [Symbol] new interests
184
+ def interests=(_arg0); end
185
+
186
+ # Returns the value of attribute io.
187
+ def io; end
188
+
189
+ # Is the IO object readable?
190
+ #
191
+ # @return [Boolean]
192
+ def readable?; end
193
+
194
+ # Returns the value of attribute readiness.
195
+ def readiness; end
196
+
197
+ # Remove interests from the existing interest set
198
+ #
199
+ # @param interests [:r, :w, :rw] I/O interests to remove (read/write/readwrite)
200
+ # @return [self]
201
+ def remove_interest(_arg0); end
202
+
203
+ # Returns the value of attribute selector.
204
+ def selector; end
205
+
206
+ # Returns the value of attribute value.
207
+ def value; end
208
+
209
+ # Sets the attribute value
210
+ #
211
+ # @param value the value to set the attribute value to.
212
+ def value=(_arg0); end
213
+
214
+ # Is the IO object writable?
215
+ #
216
+ # @return [Boolean]
217
+ def writable?; end
218
+
219
+ # Is the IO object writable?
220
+ #
221
+ # @return [Boolean]
222
+ def writeable?; end
223
+ end
224
+
225
+ # Selectors monitor IO objects for events of interest
226
+ class NIO::Selector
227
+ # Create a new NIO::Selector
228
+ #
229
+ # @raise [ArgumentError]
230
+ # @return [Selector] a new instance of Selector
231
+ def initialize(*_arg0); end
232
+
233
+ # Return a symbol representing the backend I/O multiplexing mechanism used.
234
+ # Supported backends are:
235
+ # * :ruby - pure Ruby (i.e IO.select)
236
+ # * :java - Java NIO on JRuby
237
+ # * :epoll - libev w\ Linux epoll
238
+ # * :poll - libev w\ POSIX poll
239
+ # * :kqueue - libev w\ BSD kqueue
240
+ # * :select - libev w\ SysV select
241
+ # * :port - libev w\ I/O completion ports
242
+ # * :linuxaio - libev w\ Linux AIO io_submit (experimental)
243
+ # * :io_uring - libev w\ Linux io_uring (experimental)
244
+ # * :unknown - libev w\ unknown backend
245
+ def backend; end
246
+
247
+ # Close this selector and free its resources
248
+ def close; end
249
+
250
+ # Is this selector closed?
251
+ #
252
+ # @return [Boolean]
253
+ def closed?; end
254
+
255
+ # Deregister the given IO object from the selector
256
+ def deregister(_arg0); end
257
+
258
+ # @return [Boolean]
259
+ def empty?; end
260
+
261
+ # Register interest in an IO object with the selector for the given types
262
+ # of events. Valid event types for interest are:
263
+ # * :r - is the IO readable?
264
+ # * :w - is the IO writeable?
265
+ # * :rw - is the IO either readable or writeable?
266
+ def register(_arg0, _arg1); end
267
+
268
+ # Is the given IO object registered with the selector?
269
+ #
270
+ # @return [Boolean]
271
+ def registered?(_arg0); end
272
+
273
+ # Select which monitors are ready
274
+ def select(*_arg0); end
275
+
276
+ # Wake up a thread that's in the middle of selecting on this selector, if
277
+ # any such thread exists.
278
+ #
279
+ # Invoking this method more than once between two successive select calls
280
+ # has the same effect as invoking it just once. In other words, it provides
281
+ # level-triggered behavior.
282
+ def wakeup; end
283
+
284
+ class << self
285
+ # Return supported backends as symbols
286
+ #
287
+ # See `#backend` method definition for all possible backends
288
+ def backends; end
289
+ end
290
+ end
291
+
292
+ # source://nio4r//lib/nio/version.rb#9
293
+ NIO::VERSION = T.let(T.unsafe(nil), String)