diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..da4313a
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# This allows generated code to be indexed correctly
+*.rb linguist-generated=false
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3df9aba
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.gem
+Gemfile.lock
+.rbenv-gemsets
+.DS_Store
diff --git a/.rubocop.yml b/.rubocop.yml
new file mode 100644
index 0000000..7b9c01e
--- /dev/null
+++ b/.rubocop.yml
@@ -0,0 +1,74 @@
+AllCops:
+ Exclude:
+ - Rakefile
+ TargetRubyVersion: "3.0"
+Metrics:
+ Enabled: false
+Style/IfInsideElse:
+ Enabled: false
+Style/GuardClause:
+ Enabled: false
+Style/ConditionalAssignment:
+ Enabled: false
+Style/Documentation:
+ Enabled: false
+Style/NegatedIf:
+ Enabled: false
+Style/SoleNestedConditional:
+ Enabled: false
+Style/AccessorGrouping:
+ Enabled: false
+Layout/EndAlignment:
+ EnforcedStyleAlignWith: start_of_line
+ Enabled: false
+Layout/LineLength:
+ Enabled: false
+Lint/EmptyConditionalBody:
+ Enabled: false
+Lint/MissingSuper:
+ Enabled: false
+Style/CaseLikeIf:
+ Enabled: false
+#To eventually re-enable:
+Layout/EmptyLines:
+ Enabled: false
+Layout/EmptyLinesAroundMethodBody:
+ Enabled: false
+Layout/EmptyLineBetweenDefs:
+ Enabled: false
+Layout/EmptyLineAfterGuardClause:
+ Enabled: false
+Layout/EmptyLinesAroundModuleBody:
+ Enabled: false
+Layout/MultilineBlockLayout:
+ Enabled: false
+Lint/UnusedMethodArgument:
+ Enabled: false
+Layout/TrailingWhitespace:
+ Enabled: false
+Style/IfUnlessModifier:
+ Enabled: false
+Naming/AccessorMethodName:
+ Enabled: false
+Naming/MethodParameterName:
+ Enabled: false
+Layout/SpaceInsideHashLiteralBraces:
+ Enabled: false
+Layout/FirstHashElementIndentation:
+ Enabled: false
+Style/TrailingCommaInHashLiteral:
+ Enabled: false
+Style/TrailingCommaInArrayLiteral:
+ Enabled: false
+Layout/EmptyLinesAroundClassBody:
+ Enabled: false
+Style/WordArray:
+ Enabled: false
+Style/RedundantReturn: # https://github.com/rubocop/rubocop/issues/12394
+ Enabled: false
+Style/RedundantAssignment:
+ Enabled: false
+Lint/LiteralAsCondition:
+ Enabled: false
+Naming/VariableNumber:
+ Enabled: false
diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
new file mode 100755
index 0000000..8b00781
--- /dev/null
+++ b/.speakeasy/gen.lock
@@ -0,0 +1,534 @@
+lockVersion: 2.0.0
+id: 84165678-9961-4e53-8768-0ade65ca07e0
+management:
+ docChecksum: 95d4ac4070b7f9db42126fc81b258e02
+ docVersion: 0.0.3
+ speakeasyVersion: internal
+ generationVersion: 2.239.4
+ releaseVersion: 0.0.1
+ configChecksum: 7e45b3c44957c53c806044004f9ee4e6
+ repoURL: https://github.com/LukeHagar/plexruby.git
+ repoSubDirectory: .
+ installationURL: https://github.com/LukeHagar/plexruby
+features:
+ ruby:
+ core: 3.2.2
+ flattening: 2.81.1
+ globalSecurity: 2.81.3
+ globalServerURLs: 2.82.1
+ nameOverrides: 2.81.1
+generatedFiles:
+ - lib/plexapi/sdkconfiguration.rb
+ - lib/plexapi/server.rb
+ - lib/plexapi/media.rb
+ - lib/plexapi/activities.rb
+ - lib/plexapi/butler.rb
+ - lib/plexapi/hubs.rb
+ - lib/plexapi/search.rb
+ - lib/plexapi/library.rb
+ - lib/plexapi/log.rb
+ - lib/plexapi/playlists.rb
+ - lib/plexapi/security.rb
+ - lib/plexapi/sessions.rb
+ - lib/plexapi/updater.rb
+ - lib/plexapi/video.rb
+ - lib/plexapi/sdk.rb
+ - .rubocop.yml
+ - Gemfile
+ - Rakefile
+ - lib/plexapi/utils/metadata_fields.rb
+ - lib/plexapi/utils/utils.rb
+ - sorbet/config
+ - sorbet/rbi/annotations/.gitattributes
+ - sorbet/rbi/annotations/faraday.rbi
+ - sorbet/rbi/annotations/rainbow.rbi
+ - sorbet/rbi/gems/.gitattributes
+ - sorbet/rbi/gems/ast@2.4.2.rbi
+ - sorbet/rbi/gems/base64@0.1.1.rbi
+ - sorbet/rbi/gems/erubi@1.12.0.rbi
+ - sorbet/rbi/gems/faraday-multipart@1.0.4.rbi
+ - sorbet/rbi/gems/faraday-net_http@3.0.2.rbi
+ - sorbet/rbi/gems/faraday@2.7.11.rbi
+ - sorbet/rbi/gems/json@2.6.3.rbi
+ - sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
+ - sorbet/rbi/gems/minitest@5.20.0.rbi
+ - sorbet/rbi/gems/multipart-post@2.3.0.rbi
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
+ - sorbet/rbi/gems/parallel@1.23.0.rbi
+ - sorbet/rbi/gems/parser@3.2.2.4.rbi
+ - sorbet/rbi/gems/prettier_print@1.2.1.rbi
+ - sorbet/rbi/gems/racc@1.7.1.rbi
+ - sorbet/rbi/gems/rack@3.0.8.rbi
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
+ - sorbet/rbi/gems/rake@13.0.6.rbi
+ - sorbet/rbi/gems/rbi@0.1.1.rbi
+ - sorbet/rbi/gems/regexp_parser@2.8.2.rbi
+ - sorbet/rbi/gems/rexml@3.2.6.rbi
+ - sorbet/rbi/gems/rubocop-ast@1.29.0.rbi
+ - sorbet/rbi/gems/rubocop@1.57.1.rbi
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
+ - sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi
+ - sorbet/rbi/gems/spoom@1.2.4.rbi
+ - sorbet/rbi/gems/syntax_tree@6.2.0.rbi
+ - sorbet/rbi/gems/tapioca@0.11.9.rbi
+ - sorbet/rbi/gems/thor@1.3.0.rbi
+ - sorbet/rbi/gems/unicode-display_width@2.5.0.rbi
+ - sorbet/rbi/gems/yard-sorbet@0.8.1.rbi
+ - sorbet/rbi/gems/yard@0.9.34.rbi
+ - sorbet/rbi/gems/yarp@0.13.0.rbi
+ - sorbet/tapioca/config.yml
+ - sorbet/tapioca/require.rb
+ - plexruby.gemspec
+ - lib/plexapi/models/operations/getservercapabilities.rb
+ - lib/plexapi/models/operations/getserverpreferences.rb
+ - lib/plexapi/models/operations/getavailableclients.rb
+ - lib/plexapi/models/operations/getdevices.rb
+ - lib/plexapi/models/operations/getserveridentity.rb
+ - lib/plexapi/models/operations/getmyplexaccount.rb
+ - lib/plexapi/models/operations/getresizedphoto.rb
+ - lib/plexapi/models/operations/getserverlist.rb
+ - lib/plexapi/models/operations/markplayed.rb
+ - lib/plexapi/models/operations/markunplayed.rb
+ - lib/plexapi/models/operations/updateplayprogress.rb
+ - lib/plexapi/models/operations/getserveractivities.rb
+ - lib/plexapi/models/operations/cancelserveractivities.rb
+ - lib/plexapi/models/operations/getbutlertasks.rb
+ - lib/plexapi/models/operations/startalltasks.rb
+ - lib/plexapi/models/operations/stopalltasks.rb
+ - lib/plexapi/models/operations/starttask.rb
+ - lib/plexapi/models/operations/stoptask.rb
+ - lib/plexapi/models/operations/getglobalhubs.rb
+ - lib/plexapi/models/operations/getlibraryhubs.rb
+ - lib/plexapi/models/operations/performsearch.rb
+ - lib/plexapi/models/operations/performvoicesearch.rb
+ - lib/plexapi/models/operations/getsearchresults.rb
+ - lib/plexapi/models/operations/getfilehash.rb
+ - lib/plexapi/models/operations/getrecentlyadded.rb
+ - lib/plexapi/models/operations/getlibraries.rb
+ - lib/plexapi/models/operations/getlibrary.rb
+ - lib/plexapi/models/operations/deletelibrary.rb
+ - lib/plexapi/models/operations/getlibraryitems.rb
+ - lib/plexapi/models/operations/refreshlibrary.rb
+ - lib/plexapi/models/operations/searchlibrary.rb
+ - lib/plexapi/models/operations/getmetadata.rb
+ - lib/plexapi/models/operations/getmetadatachildren.rb
+ - lib/plexapi/models/operations/getondeck.rb
+ - lib/plexapi/models/operations/logline.rb
+ - lib/plexapi/models/operations/logmultiline.rb
+ - lib/plexapi/models/operations/enablepapertrail.rb
+ - lib/plexapi/models/operations/createplaylist.rb
+ - lib/plexapi/models/operations/getplaylists.rb
+ - lib/plexapi/models/operations/getplaylist.rb
+ - lib/plexapi/models/operations/deleteplaylist.rb
+ - lib/plexapi/models/operations/updateplaylist.rb
+ - lib/plexapi/models/operations/getplaylistcontents.rb
+ - lib/plexapi/models/operations/clearplaylistcontents.rb
+ - lib/plexapi/models/operations/addplaylistcontents.rb
+ - lib/plexapi/models/operations/uploadplaylist.rb
+ - lib/plexapi/models/operations/gettransienttoken.rb
+ - lib/plexapi/models/operations/getsourceconnectioninformation.rb
+ - lib/plexapi/models/operations/getsessions.rb
+ - lib/plexapi/models/operations/getsessionhistory.rb
+ - lib/plexapi/models/operations/gettranscodesessions.rb
+ - lib/plexapi/models/operations/stoptranscodesession.rb
+ - lib/plexapi/models/operations/getupdatestatus.rb
+ - lib/plexapi/models/operations/checkforupdates.rb
+ - lib/plexapi/models/operations/applyupdates.rb
+ - lib/plexapi/models/operations/startuniversaltranscode.rb
+ - lib/plexapi/models/operations/gettimeline.rb
+ - lib/plexapi/models/shared/security.rb
+ - lib/plexruby.rb
+ - docs/models/operations/errors.md
+ - docs/models/operations/getservercapabilitiesserverresponsebody.md
+ - docs/models/operations/directory.md
+ - docs/models/operations/mediacontainer.md
+ - docs/models/operations/getservercapabilitiesresponsebody.md
+ - docs/models/operations/getservercapabilitiesresponse.md
+ - docs/models/operations/getserverpreferenceserrors.md
+ - docs/models/operations/getserverpreferencesserverresponsebody.md
+ - docs/models/operations/getserverpreferencesmediacontainer.md
+ - docs/models/operations/getserverpreferencesresponsebody.md
+ - docs/models/operations/getserverpreferencesresponse.md
+ - docs/models/operations/getavailableclientserrors.md
+ - docs/models/operations/getavailableclientsserverresponsebody.md
+ - docs/models/operations/server.md
+ - docs/models/operations/getavailableclientsmediacontainer.md
+ - docs/models/operations/getavailableclientsresponsebody.md
+ - docs/models/operations/getavailableclientsresponse.md
+ - docs/models/operations/getdeviceserrors.md
+ - docs/models/operations/getdevicesserverresponsebody.md
+ - docs/models/operations/device.md
+ - docs/models/operations/getdevicesmediacontainer.md
+ - docs/models/operations/getdevicesresponsebody.md
+ - docs/models/operations/getdevicesresponse.md
+ - docs/models/operations/getserveridentityerrors.md
+ - docs/models/operations/getserveridentityserverresponsebody.md
+ - docs/models/operations/getserveridentitymediacontainer.md
+ - docs/models/operations/getserveridentityresponsebody.md
+ - docs/models/operations/getserveridentityresponse.md
+ - docs/models/operations/getmyplexaccounterrors.md
+ - docs/models/operations/getmyplexaccountserverresponsebody.md
+ - docs/models/operations/myplex.md
+ - docs/models/operations/getmyplexaccountresponsebody.md
+ - docs/models/operations/getmyplexaccountresponse.md
+ - docs/models/operations/minsize.md
+ - docs/models/operations/upscale.md
+ - docs/models/operations/getresizedphotorequest.md
+ - docs/models/operations/getresizedphotoerrors.md
+ - docs/models/operations/getresizedphotoresponsebody.md
+ - docs/models/operations/getresizedphotoresponse.md
+ - docs/models/operations/getserverlisterrors.md
+ - docs/models/operations/getserverlistserverresponsebody.md
+ - docs/models/operations/getserverlistserver.md
+ - docs/models/operations/getserverlistmediacontainer.md
+ - docs/models/operations/getserverlistresponsebody.md
+ - docs/models/operations/getserverlistresponse.md
+ - docs/models/operations/markplayedrequest.md
+ - docs/models/operations/markplayederrors.md
+ - docs/models/operations/markplayedresponsebody.md
+ - docs/models/operations/markplayedresponse.md
+ - docs/models/operations/markunplayedrequest.md
+ - docs/models/operations/markunplayederrors.md
+ - docs/models/operations/markunplayedresponsebody.md
+ - docs/models/operations/markunplayedresponse.md
+ - docs/models/operations/updateplayprogressrequest.md
+ - docs/models/operations/updateplayprogresserrors.md
+ - docs/models/operations/updateplayprogressresponsebody.md
+ - docs/models/operations/updateplayprogressresponse.md
+ - docs/models/operations/getserveractivitieserrors.md
+ - docs/models/operations/getserveractivitiesactivitiesresponsebody.md
+ - docs/models/operations/context.md
+ - docs/models/operations/activity.md
+ - docs/models/operations/getserveractivitiesmediacontainer.md
+ - docs/models/operations/getserveractivitiesresponsebody.md
+ - docs/models/operations/getserveractivitiesresponse.md
+ - docs/models/operations/cancelserveractivitiesrequest.md
+ - docs/models/operations/cancelserveractivitieserrors.md
+ - docs/models/operations/cancelserveractivitiesresponsebody.md
+ - docs/models/operations/cancelserveractivitiesresponse.md
+ - docs/models/operations/getbutlertaskserrors.md
+ - docs/models/operations/getbutlertasksbutlerresponsebody.md
+ - docs/models/operations/butlertask.md
+ - docs/models/operations/butlertasks.md
+ - docs/models/operations/getbutlertasksresponsebody.md
+ - docs/models/operations/getbutlertasksresponse.md
+ - docs/models/operations/startalltaskserrors.md
+ - docs/models/operations/startalltasksresponsebody.md
+ - docs/models/operations/startalltasksresponse.md
+ - docs/models/operations/stopalltaskserrors.md
+ - docs/models/operations/stopalltasksresponsebody.md
+ - docs/models/operations/stopalltasksresponse.md
+ - docs/models/operations/taskname.md
+ - docs/models/operations/starttaskrequest.md
+ - docs/models/operations/starttaskerrors.md
+ - docs/models/operations/starttaskresponsebody.md
+ - docs/models/operations/starttaskresponse.md
+ - docs/models/operations/pathparamtaskname.md
+ - docs/models/operations/stoptaskrequest.md
+ - docs/models/operations/stoptaskerrors.md
+ - docs/models/operations/stoptaskresponsebody.md
+ - docs/models/operations/stoptaskresponse.md
+ - docs/models/operations/onlytransient.md
+ - docs/models/operations/getglobalhubsrequest.md
+ - docs/models/operations/getglobalhubserrors.md
+ - docs/models/operations/getglobalhubshubsresponsebody.md
+ - docs/models/operations/getglobalhubsmetadata.md
+ - docs/models/operations/hub.md
+ - docs/models/operations/getglobalhubsmediacontainer.md
+ - docs/models/operations/getglobalhubsresponsebody.md
+ - docs/models/operations/getglobalhubsresponse.md
+ - docs/models/operations/queryparamonlytransient.md
+ - docs/models/operations/getlibraryhubsrequest.md
+ - docs/models/operations/getlibraryhubserrors.md
+ - docs/models/operations/getlibraryhubshubsresponsebody.md
+ - docs/models/operations/getlibraryhubspart.md
+ - docs/models/operations/getlibraryhubsmedia.md
+ - docs/models/operations/getlibraryhubsgenre.md
+ - docs/models/operations/getlibraryhubscountry.md
+ - docs/models/operations/getlibraryhubsdirector.md
+ - docs/models/operations/getlibraryhubsrole.md
+ - docs/models/operations/getlibraryhubswriter.md
+ - docs/models/operations/getlibraryhubsmetadata.md
+ - docs/models/operations/getlibraryhubshub.md
+ - docs/models/operations/getlibraryhubsmediacontainer.md
+ - docs/models/operations/getlibraryhubsresponsebody.md
+ - docs/models/operations/getlibraryhubsresponse.md
+ - docs/models/operations/performsearchrequest.md
+ - docs/models/operations/performsearcherrors.md
+ - docs/models/operations/performsearchresponsebody.md
+ - docs/models/operations/performsearchresponse.md
+ - docs/models/operations/performvoicesearchrequest.md
+ - docs/models/operations/performvoicesearcherrors.md
+ - docs/models/operations/performvoicesearchresponsebody.md
+ - docs/models/operations/performvoicesearchresponse.md
+ - docs/models/operations/getsearchresultsrequest.md
+ - docs/models/operations/getsearchresultserrors.md
+ - docs/models/operations/getsearchresultssearchresponsebody.md
+ - docs/models/operations/getsearchresultspart.md
+ - docs/models/operations/getsearchresultsmedia.md
+ - docs/models/operations/getsearchresultsgenre.md
+ - docs/models/operations/getsearchresultsdirector.md
+ - docs/models/operations/getsearchresultswriter.md
+ - docs/models/operations/getsearchresultscountry.md
+ - docs/models/operations/getsearchresultsrole.md
+ - docs/models/operations/getsearchresultsmetadata.md
+ - docs/models/operations/provider.md
+ - docs/models/operations/getsearchresultsmediacontainer.md
+ - docs/models/operations/getsearchresultsresponsebody.md
+ - docs/models/operations/getsearchresultsresponse.md
+ - docs/models/operations/getfilehashrequest.md
+ - docs/models/operations/getfilehasherrors.md
+ - docs/models/operations/getfilehashresponsebody.md
+ - docs/models/operations/getfilehashresponse.md
+ - docs/models/operations/getrecentlyaddederrors.md
+ - docs/models/operations/getrecentlyaddedlibraryresponsebody.md
+ - docs/models/operations/part.md
+ - docs/models/operations/media.md
+ - docs/models/operations/genre.md
+ - docs/models/operations/director.md
+ - docs/models/operations/writer.md
+ - docs/models/operations/country.md
+ - docs/models/operations/role.md
+ - docs/models/operations/metadata.md
+ - docs/models/operations/getrecentlyaddedmediacontainer.md
+ - docs/models/operations/getrecentlyaddedresponsebody.md
+ - docs/models/operations/getrecentlyaddedresponse.md
+ - docs/models/operations/getlibrarieserrors.md
+ - docs/models/operations/getlibrarieslibraryresponsebody.md
+ - docs/models/operations/location.md
+ - docs/models/operations/getlibrariesdirectory.md
+ - docs/models/operations/getlibrariesmediacontainer.md
+ - docs/models/operations/getlibrariesresponsebody.md
+ - docs/models/operations/getlibrariesresponse.md
+ - docs/models/operations/includedetails.md
+ - docs/models/operations/getlibraryrequest.md
+ - docs/models/operations/getlibraryerrors.md
+ - docs/models/operations/getlibrarylibraryresponsebody.md
+ - docs/models/operations/getlibrarydirectory.md
+ - docs/models/operations/filter.md
+ - docs/models/operations/sort.md
+ - docs/models/operations/field.md
+ - docs/models/operations/getlibrarytype.md
+ - docs/models/operations/operator.md
+ - docs/models/operations/fieldtype.md
+ - docs/models/operations/getlibrarymediacontainer.md
+ - docs/models/operations/getlibraryresponsebody.md
+ - docs/models/operations/getlibraryresponse.md
+ - docs/models/operations/deletelibraryrequest.md
+ - docs/models/operations/deletelibraryerrors.md
+ - docs/models/operations/deletelibraryresponsebody.md
+ - docs/models/operations/deletelibraryresponse.md
+ - docs/models/operations/tag.md
+ - docs/models/operations/getlibraryitemsrequest.md
+ - docs/models/operations/getlibraryitemspart.md
+ - docs/models/operations/getlibraryitemsmedia.md
+ - docs/models/operations/getlibraryitemsgenre.md
+ - docs/models/operations/getlibraryitemscountry.md
+ - docs/models/operations/getlibraryitemsdirector.md
+ - docs/models/operations/getlibraryitemswriter.md
+ - docs/models/operations/getlibraryitemsrole.md
+ - docs/models/operations/getlibraryitemsmetadata.md
+ - docs/models/operations/getlibraryitemsmediacontainer.md
+ - docs/models/operations/getlibraryitemsresponsebody.md
+ - docs/models/operations/getlibraryitemsresponse.md
+ - docs/models/operations/refreshlibraryrequest.md
+ - docs/models/operations/refreshlibraryerrors.md
+ - docs/models/operations/refreshlibraryresponsebody.md
+ - docs/models/operations/refreshlibraryresponse.md
+ - docs/models/operations/type.md
+ - docs/models/operations/searchlibraryrequest.md
+ - docs/models/operations/searchlibrarymetadata.md
+ - docs/models/operations/searchlibrarymediacontainer.md
+ - docs/models/operations/searchlibraryresponsebody.md
+ - docs/models/operations/searchlibraryresponse.md
+ - docs/models/operations/getmetadatarequest.md
+ - docs/models/operations/getmetadataerrors.md
+ - docs/models/operations/getmetadatalibraryresponsebody.md
+ - docs/models/operations/stream.md
+ - docs/models/operations/getmetadatapart.md
+ - docs/models/operations/getmetadatamedia.md
+ - docs/models/operations/getmetadatagenre.md
+ - docs/models/operations/getmetadatacountry.md
+ - docs/models/operations/guids.md
+ - docs/models/operations/ratings.md
+ - docs/models/operations/getmetadatadirector.md
+ - docs/models/operations/getmetadatawriter.md
+ - docs/models/operations/getmetadatarole.md
+ - docs/models/operations/producer.md
+ - docs/models/operations/getmetadatametadata.md
+ - docs/models/operations/getmetadatamediacontainer.md
+ - docs/models/operations/getmetadataresponsebody.md
+ - docs/models/operations/getmetadataresponse.md
+ - docs/models/operations/getmetadatachildrenrequest.md
+ - docs/models/operations/getmetadatachildrenerrors.md
+ - docs/models/operations/getmetadatachildrenlibraryresponsebody.md
+ - docs/models/operations/getmetadatachildrendirectory.md
+ - docs/models/operations/getmetadatachildrenmetadata.md
+ - docs/models/operations/getmetadatachildrenmediacontainer.md
+ - docs/models/operations/getmetadatachildrenresponsebody.md
+ - docs/models/operations/getmetadatachildrenresponse.md
+ - docs/models/operations/getondeckerrors.md
+ - docs/models/operations/getondecklibraryresponsebody.md
+ - docs/models/operations/getondeckstream.md
+ - docs/models/operations/getondeckpart.md
+ - docs/models/operations/getondeckmedia.md
+ - docs/models/operations/getondeckguids.md
+ - docs/models/operations/getondeckmetadata.md
+ - docs/models/operations/getondeckmediacontainer.md
+ - docs/models/operations/getondeckresponsebody.md
+ - docs/models/operations/getondeckresponse.md
+ - docs/models/operations/level.md
+ - docs/models/operations/loglinerequest.md
+ - docs/models/operations/loglineerrors.md
+ - docs/models/operations/loglineresponsebody.md
+ - docs/models/operations/loglineresponse.md
+ - docs/models/operations/logmultilineerrors.md
+ - docs/models/operations/logmultilineresponsebody.md
+ - docs/models/operations/logmultilineresponse.md
+ - docs/models/operations/enablepapertrailerrors.md
+ - docs/models/operations/enablepapertrailresponsebody.md
+ - docs/models/operations/enablepapertrailresponse.md
+ - docs/models/operations/queryparamtype.md
+ - docs/models/operations/smart.md
+ - docs/models/operations/createplaylistrequest.md
+ - docs/models/operations/createplaylisterrors.md
+ - docs/models/operations/createplaylistplaylistsresponsebody.md
+ - docs/models/operations/createplaylistmetadata.md
+ - docs/models/operations/createplaylistmediacontainer.md
+ - docs/models/operations/createplaylistresponsebody.md
+ - docs/models/operations/createplaylistresponse.md
+ - docs/models/operations/playlisttype.md
+ - docs/models/operations/queryparamsmart.md
+ - docs/models/operations/getplaylistsrequest.md
+ - docs/models/operations/getplaylistserrors.md
+ - docs/models/operations/getplaylistsplaylistsresponsebody.md
+ - docs/models/operations/getplaylistsmetadata.md
+ - docs/models/operations/getplaylistsmediacontainer.md
+ - docs/models/operations/getplaylistsresponsebody.md
+ - docs/models/operations/getplaylistsresponse.md
+ - docs/models/operations/getplaylistrequest.md
+ - docs/models/operations/getplaylisterrors.md
+ - docs/models/operations/getplaylistplaylistsresponsebody.md
+ - docs/models/operations/getplaylistmetadata.md
+ - docs/models/operations/getplaylistmediacontainer.md
+ - docs/models/operations/getplaylistresponsebody.md
+ - docs/models/operations/getplaylistresponse.md
+ - docs/models/operations/deleteplaylistrequest.md
+ - docs/models/operations/deleteplaylisterrors.md
+ - docs/models/operations/deleteplaylistresponsebody.md
+ - docs/models/operations/deleteplaylistresponse.md
+ - docs/models/operations/updateplaylistrequest.md
+ - docs/models/operations/updateplaylisterrors.md
+ - docs/models/operations/updateplaylistresponsebody.md
+ - docs/models/operations/updateplaylistresponse.md
+ - docs/models/operations/getplaylistcontentsrequest.md
+ - docs/models/operations/getplaylistcontentserrors.md
+ - docs/models/operations/getplaylistcontentsplaylistsresponsebody.md
+ - docs/models/operations/getplaylistcontentspart.md
+ - docs/models/operations/getplaylistcontentsmedia.md
+ - docs/models/operations/getplaylistcontentsgenre.md
+ - docs/models/operations/getplaylistcontentscountry.md
+ - docs/models/operations/getplaylistcontentsdirector.md
+ - docs/models/operations/getplaylistcontentswriter.md
+ - docs/models/operations/getplaylistcontentsrole.md
+ - docs/models/operations/getplaylistcontentsmetadata.md
+ - docs/models/operations/getplaylistcontentsmediacontainer.md
+ - docs/models/operations/getplaylistcontentsresponsebody.md
+ - docs/models/operations/getplaylistcontentsresponse.md
+ - docs/models/operations/clearplaylistcontentsrequest.md
+ - docs/models/operations/clearplaylistcontentserrors.md
+ - docs/models/operations/clearplaylistcontentsresponsebody.md
+ - docs/models/operations/clearplaylistcontentsresponse.md
+ - docs/models/operations/addplaylistcontentsrequest.md
+ - docs/models/operations/addplaylistcontentserrors.md
+ - docs/models/operations/addplaylistcontentsplaylistsresponsebody.md
+ - docs/models/operations/addplaylistcontentsmetadata.md
+ - docs/models/operations/addplaylistcontentsmediacontainer.md
+ - docs/models/operations/addplaylistcontentsresponsebody.md
+ - docs/models/operations/addplaylistcontentsresponse.md
+ - docs/models/operations/force.md
+ - docs/models/operations/uploadplaylistrequest.md
+ - docs/models/operations/uploadplaylisterrors.md
+ - docs/models/operations/uploadplaylistresponsebody.md
+ - docs/models/operations/uploadplaylistresponse.md
+ - docs/models/operations/gettransienttokenqueryparamtype.md
+ - docs/models/operations/scope.md
+ - docs/models/operations/gettransienttokenrequest.md
+ - docs/models/operations/gettransienttokenerrors.md
+ - docs/models/operations/gettransienttokenresponsebody.md
+ - docs/models/operations/gettransienttokenresponse.md
+ - docs/models/operations/getsourceconnectioninformationrequest.md
+ - docs/models/operations/getsourceconnectioninformationerrors.md
+ - docs/models/operations/getsourceconnectioninformationresponsebody.md
+ - docs/models/operations/getsourceconnectioninformationresponse.md
+ - docs/models/operations/getsessionserrors.md
+ - docs/models/operations/getsessionssessionsresponsebody.md
+ - docs/models/operations/getsessionsstream.md
+ - docs/models/operations/getsessionspart.md
+ - docs/models/operations/getsessionsmedia.md
+ - docs/models/operations/user.md
+ - docs/models/operations/player.md
+ - docs/models/operations/session.md
+ - docs/models/operations/getsessionsmetadata.md
+ - docs/models/operations/getsessionsmediacontainer.md
+ - docs/models/operations/getsessionsresponsebody.md
+ - docs/models/operations/getsessionsresponse.md
+ - docs/models/operations/getsessionhistoryerrors.md
+ - docs/models/operations/getsessionhistorysessionsresponsebody.md
+ - docs/models/operations/getsessionhistorymetadata.md
+ - docs/models/operations/getsessionhistorymediacontainer.md
+ - docs/models/operations/getsessionhistoryresponsebody.md
+ - docs/models/operations/getsessionhistoryresponse.md
+ - docs/models/operations/gettranscodesessionserrors.md
+ - docs/models/operations/gettranscodesessionssessionsresponsebody.md
+ - docs/models/operations/transcodesession.md
+ - docs/models/operations/gettranscodesessionsmediacontainer.md
+ - docs/models/operations/gettranscodesessionsresponsebody.md
+ - docs/models/operations/gettranscodesessionsresponse.md
+ - docs/models/operations/stoptranscodesessionrequest.md
+ - docs/models/operations/stoptranscodesessionerrors.md
+ - docs/models/operations/stoptranscodesessionresponsebody.md
+ - docs/models/operations/stoptranscodesessionresponse.md
+ - docs/models/operations/getupdatestatuserrors.md
+ - docs/models/operations/getupdatestatusupdaterresponsebody.md
+ - docs/models/operations/release.md
+ - docs/models/operations/getupdatestatusmediacontainer.md
+ - docs/models/operations/getupdatestatusresponsebody.md
+ - docs/models/operations/getupdatestatusresponse.md
+ - docs/models/operations/download.md
+ - docs/models/operations/checkforupdatesrequest.md
+ - docs/models/operations/checkforupdateserrors.md
+ - docs/models/operations/checkforupdatesresponsebody.md
+ - docs/models/operations/checkforupdatesresponse.md
+ - docs/models/operations/tonight.md
+ - docs/models/operations/skip.md
+ - docs/models/operations/applyupdatesrequest.md
+ - docs/models/operations/applyupdateserrors.md
+ - docs/models/operations/applyupdatesresponsebody.md
+ - docs/models/operations/applyupdatesresponse.md
+ - docs/models/operations/startuniversaltranscoderequest.md
+ - docs/models/operations/startuniversaltranscodeerrors.md
+ - docs/models/operations/startuniversaltranscoderesponsebody.md
+ - docs/models/operations/startuniversaltranscoderesponse.md
+ - docs/models/operations/state.md
+ - docs/models/operations/gettimelinerequest.md
+ - docs/models/operations/gettimelineerrors.md
+ - docs/models/operations/gettimelineresponsebody.md
+ - docs/models/operations/gettimelineresponse.md
+ - docs/models/shared/security.md
+ - docs/sdks/plexapi/README.md
+ - docs/sdks/server/README.md
+ - docs/sdks/media/README.md
+ - docs/sdks/activities/README.md
+ - docs/sdks/butler/README.md
+ - docs/sdks/hubs/README.md
+ - docs/sdks/search/README.md
+ - docs/sdks/library/README.md
+ - docs/sdks/log/README.md
+ - docs/sdks/playlists/README.md
+ - docs/sdks/security/README.md
+ - docs/sdks/sessions/README.md
+ - docs/sdks/updater/README.md
+ - docs/sdks/video/README.md
+ - USAGE.md
+ - .gitattributes
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..b0ea405
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,6 @@
+# frozen_string_literal: true
+
+source 'https://rubygems.org'
+
+# Specify your gem's dependencies in openapi.gemspec
+gemspec
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4f93759
--- /dev/null
+++ b/README.md
@@ -0,0 +1,196 @@
+# plexruby
+
+
+
+
+## 🏗 **Welcome to your new SDK!** 🏗
+
+It has been generated successfully based on your OpenAPI spec. However, it is not yet ready for production use. Here are some next steps:
+- [ ] 🛠 Make your SDK feel handcrafted by [customizing it](https://www.speakeasyapi.dev/docs/customize-sdks)
+- [ ] ♻️ Refine your SDK quickly by iterating locally with the [Speakeasy CLI](https://github.com/speakeasy-api/speakeasy)
+- [ ] 🎁 Publish your SDK to package managers by [configuring automatic publishing](https://www.speakeasyapi.dev/docs/productionize-sdks/publish-sdks)
+- [ ] ✨ When ready to productionize, delete this section from the README
+
+
+## SDK Installation
+
+```bash
+gem install specific_install
+gem specific_install https://github.com/LukeHagar/plexruby
+```
+
+
+
+## SDK Example Usage
+
+### Example
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_server_capabilities()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+
+## Available Resources and Operations
+
+### [Server](docs/sdks/server/README.md)
+
+* [get_server_capabilities](docs/sdks/server/README.md#get_server_capabilities) - Server Capabilities
+* [get_server_preferences](docs/sdks/server/README.md#get_server_preferences) - Get Server Preferences
+* [get_available_clients](docs/sdks/server/README.md#get_available_clients) - Get Available Clients
+* [get_devices](docs/sdks/server/README.md#get_devices) - Get Devices
+* [get_server_identity](docs/sdks/server/README.md#get_server_identity) - Get Server Identity
+* [get_my_plex_account](docs/sdks/server/README.md#get_my_plex_account) - Get MyPlex Account
+* [get_resized_photo](docs/sdks/server/README.md#get_resized_photo) - Get a Resized Photo
+* [get_server_list](docs/sdks/server/README.md#get_server_list) - Get Server List
+
+### [Media](docs/sdks/media/README.md)
+
+* [mark_played](docs/sdks/media/README.md#mark_played) - Mark Media Played
+* [mark_unplayed](docs/sdks/media/README.md#mark_unplayed) - Mark Media Unplayed
+* [update_play_progress](docs/sdks/media/README.md#update_play_progress) - Update Media Play Progress
+
+### [Activities](docs/sdks/activities/README.md)
+
+* [get_server_activities](docs/sdks/activities/README.md#get_server_activities) - Get Server Activities
+* [cancel_server_activities](docs/sdks/activities/README.md#cancel_server_activities) - Cancel Server Activities
+
+### [Butler](docs/sdks/butler/README.md)
+
+* [get_butler_tasks](docs/sdks/butler/README.md#get_butler_tasks) - Get Butler tasks
+* [start_all_tasks](docs/sdks/butler/README.md#start_all_tasks) - Start all Butler tasks
+* [stop_all_tasks](docs/sdks/butler/README.md#stop_all_tasks) - Stop all Butler tasks
+* [start_task](docs/sdks/butler/README.md#start_task) - Start a single Butler task
+* [stop_task](docs/sdks/butler/README.md#stop_task) - Stop a single Butler task
+
+### [Hubs](docs/sdks/hubs/README.md)
+
+* [get_global_hubs](docs/sdks/hubs/README.md#get_global_hubs) - Get Global Hubs
+* [get_library_hubs](docs/sdks/hubs/README.md#get_library_hubs) - Get library specific hubs
+
+### [Search](docs/sdks/search/README.md)
+
+* [perform_search](docs/sdks/search/README.md#perform_search) - Perform a search
+* [perform_voice_search](docs/sdks/search/README.md#perform_voice_search) - Perform a voice search
+* [get_search_results](docs/sdks/search/README.md#get_search_results) - Get Search Results
+
+### [Library](docs/sdks/library/README.md)
+
+* [get_file_hash](docs/sdks/library/README.md#get_file_hash) - Get Hash Value
+* [get_recently_added](docs/sdks/library/README.md#get_recently_added) - Get Recently Added
+* [get_libraries](docs/sdks/library/README.md#get_libraries) - Get All Libraries
+* [get_library](docs/sdks/library/README.md#get_library) - Get Library Details
+* [delete_library](docs/sdks/library/README.md#delete_library) - Delete Library Section
+* [get_library_items](docs/sdks/library/README.md#get_library_items) - Get Library Items
+* [refresh_library](docs/sdks/library/README.md#refresh_library) - Refresh Library
+* [search_library](docs/sdks/library/README.md#search_library) - Search Library
+* [get_metadata](docs/sdks/library/README.md#get_metadata) - Get Items Metadata
+* [get_metadata_children](docs/sdks/library/README.md#get_metadata_children) - Get Items Children
+* [get_on_deck](docs/sdks/library/README.md#get_on_deck) - Get On Deck
+
+### [Log](docs/sdks/log/README.md)
+
+* [log_line](docs/sdks/log/README.md#log_line) - Logging a single line message.
+* [log_multi_line](docs/sdks/log/README.md#log_multi_line) - Logging a multi-line message
+* [enable_paper_trail](docs/sdks/log/README.md#enable_paper_trail) - Enabling Papertrail
+
+### [Playlists](docs/sdks/playlists/README.md)
+
+* [create_playlist](docs/sdks/playlists/README.md#create_playlist) - Create a Playlist
+* [get_playlists](docs/sdks/playlists/README.md#get_playlists) - Get All Playlists
+* [get_playlist](docs/sdks/playlists/README.md#get_playlist) - Retrieve Playlist
+* [delete_playlist](docs/sdks/playlists/README.md#delete_playlist) - Deletes a Playlist
+* [update_playlist](docs/sdks/playlists/README.md#update_playlist) - Update a Playlist
+* [get_playlist_contents](docs/sdks/playlists/README.md#get_playlist_contents) - Retrieve Playlist Contents
+* [clear_playlist_contents](docs/sdks/playlists/README.md#clear_playlist_contents) - Delete Playlist Contents
+* [add_playlist_contents](docs/sdks/playlists/README.md#add_playlist_contents) - Adding to a Playlist
+* [upload_playlist](docs/sdks/playlists/README.md#upload_playlist) - Upload Playlist
+
+### [Security](docs/sdks/security/README.md)
+
+* [get_transient_token](docs/sdks/security/README.md#get_transient_token) - Get a Transient Token.
+* [get_source_connection_information](docs/sdks/security/README.md#get_source_connection_information) - Get Source Connection Information
+
+### [Sessions](docs/sdks/sessions/README.md)
+
+* [get_sessions](docs/sdks/sessions/README.md#get_sessions) - Get Active Sessions
+* [get_session_history](docs/sdks/sessions/README.md#get_session_history) - Get Session History
+* [get_transcode_sessions](docs/sdks/sessions/README.md#get_transcode_sessions) - Get Transcode Sessions
+* [stop_transcode_session](docs/sdks/sessions/README.md#stop_transcode_session) - Stop a Transcode Session
+
+### [Updater](docs/sdks/updater/README.md)
+
+* [get_update_status](docs/sdks/updater/README.md#get_update_status) - Querying status of updates
+* [check_for_updates](docs/sdks/updater/README.md#check_for_updates) - Checking for updates
+* [apply_updates](docs/sdks/updater/README.md#apply_updates) - Apply Updates
+
+### [Video](docs/sdks/video/README.md)
+
+* [start_universal_transcode](docs/sdks/video/README.md#start_universal_transcode) - Start Universal Transcode
+* [get_timeline](docs/sdks/video/README.md#get_timeline) - Get the timeline for a media item
+
+
+
+## Server Selection
+
+## Server Selection
+
+### Select Server by Index
+
+You can override the default server globally by passing a server index to the `server_idx: int` optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers:
+
+| # | Server | Variables |
+| - | ------ | --------- |
+| 0 | `{protocol}://{ip}:{port}` | `protocol` (default is `http`), `ip` (default is `10.10.10.47`), `port` (default is `32400`) |
+
+
+
+#### Variables
+
+Some of the server options above contain variables. If you want to set the values of those variables, the following optional parameters are available when initializing the SDK client instance:
+ * `protocol: ServerProtocol`
+ * `ip: String`
+ * `port: String`
+
+### Override Server URL Per-Client
+
+The default server can also be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example:
+
+
+
+
+# Development
+
+## Maturity
+
+This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
+to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
+looking for the latest version.
+
+## Contributions
+
+While we value open-source contributions to this SDK, this library is generated programmatically.
+Feel free to open a PR or a Github issue as a proof of concept and we'll do our best to include it in a future release!
+
+### SDK Created by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks)
diff --git a/RELEASES.md b/RELEASES.md
new file mode 100644
index 0000000..487ff4b
--- /dev/null
+++ b/RELEASES.md
@@ -0,0 +1,9 @@
+
+
+## 2024-01-30 00:46:43
+### Changes
+Based on:
+- OpenAPI Doc 0.0.3
+- Speakeasy CLI 1.153.0 (2.239.4) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [ruby v0.0.1] .
\ No newline at end of file
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000..86ad483
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,21 @@
+# typed: true
+# frozen_string_literal: true
+
+require 'bundler/gem_tasks'
+require 'minitest/test_task'
+require 'rubocop/rake_task'
+
+RuboCop::RakeTask.new
+
+Minitest::TestTask.create
+
+# So far default is working - leaving this here for reference.
+
+# Minitest::TestTask.create(:test) do |t|
+# t.libs << 'test'
+# t.libs << 'lib'
+# t.warning = false
+# t.test_globs = ['test/**/*_test.rb']
+# end
+
+task :default => :test
diff --git a/USAGE.md b/USAGE.md
new file mode 100644
index 0000000..24923e4
--- /dev/null
+++ b/USAGE.md
@@ -0,0 +1,21 @@
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_server_capabilities()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
\ No newline at end of file
diff --git a/docs/models/operations/activity.md b/docs/models/operations/activity.md
new file mode 100644
index 0000000..98e78bf
--- /dev/null
+++ b/docs/models/operations/activity.md
@@ -0,0 +1,15 @@
+# Activity
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| `uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `cancellable` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `user_id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `subtitle` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `progress` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `context` | [T.nilable(Operations::Context)](../../models/operations/context.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/addplaylistcontentserrors.md b/docs/models/operations/addplaylistcontentserrors.md
new file mode 100644
index 0000000..9ba9fda
--- /dev/null
+++ b/docs/models/operations/addplaylistcontentserrors.md
@@ -0,0 +1,10 @@
+# AddPlaylistContentsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/addplaylistcontentsmediacontainer.md b/docs/models/operations/addplaylistcontentsmediacontainer.md
new file mode 100644
index 0000000..85d109f
--- /dev/null
+++ b/docs/models/operations/addplaylistcontentsmediacontainer.md
@@ -0,0 +1,11 @@
+# AddPlaylistContentsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `leaf_count_added` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `leaf_count_requested` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `metadata` | T::Array<[Operations::AddPlaylistContentsMetadata](../../models/operations/addplaylistcontentsmetadata.md)> | :heavy_minus_sign: | N/A | [{"addedAt":1705716458,"composite":"/playlists/94/composite/1705800070","duration":423000,"guid":"com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2","key":"/playlists/94/items","leafCount":3,"playlistType":"video","ratingKey":"94","smart":false,"summary":"One of my great playlists","title":"A great playlist","type":"playlist","updatedAt":1705800070}] |
\ No newline at end of file
diff --git a/docs/models/operations/addplaylistcontentsmetadata.md b/docs/models/operations/addplaylistcontentsmetadata.md
new file mode 100644
index 0000000..770b824
--- /dev/null
+++ b/docs/models/operations/addplaylistcontentsmetadata.md
@@ -0,0 +1,20 @@
+# AddPlaylistContentsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 94 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/94/items |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://972e3047-83d6-4848-a000-261f0af26ba2 |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | A great playlist |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | One of my great playlists |
+| `smart` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `playlist_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | video |
+| `composite` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/94/composite/1705800070 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 423000 |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 3 |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705716458 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705800070 |
\ No newline at end of file
diff --git a/docs/models/operations/addplaylistcontentsplaylistsresponsebody.md b/docs/models/operations/addplaylistcontentsplaylistsresponsebody.md
new file mode 100644
index 0000000..99b2b92
--- /dev/null
+++ b/docs/models/operations/addplaylistcontentsplaylistsresponsebody.md
@@ -0,0 +1,10 @@
+# AddPlaylistContentsPlaylistsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::AddPlaylistContentsErrors](../../models/operations/addplaylistcontentserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/addplaylistcontentsrequest.md b/docs/models/operations/addplaylistcontentsrequest.md
new file mode 100644
index 0000000..cdcd596
--- /dev/null
+++ b/docs/models/operations/addplaylistcontentsrequest.md
@@ -0,0 +1,10 @@
+# AddPlaylistContentsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist | |
+| `uri` | *String* | :heavy_check_mark: | the content URI for the playlist | server://12345/com.plexapp.plugins.library/library/metadata/1 |
+| `play_queue_id` | *T.nilable(Float)* | :heavy_minus_sign: | the play queue to add to a playlist | 123 |
\ No newline at end of file
diff --git a/docs/models/operations/addplaylistcontentsresponse.md b/docs/models/operations/addplaylistcontentsresponse.md
new file mode 100644
index 0000000..f35029d
--- /dev/null
+++ b/docs/models/operations/addplaylistcontentsresponse.md
@@ -0,0 +1,12 @@
+# AddPlaylistContentsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::AddPlaylistContentsResponseBody)](../../models/operations/addplaylistcontentsresponsebody.md) | :heavy_minus_sign: | Playlist Updated |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::AddPlaylistContentsPlaylistsResponseBody)](../../models/operations/addplaylistcontentsplaylistsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/addplaylistcontentsresponsebody.md b/docs/models/operations/addplaylistcontentsresponsebody.md
new file mode 100644
index 0000000..88d1b0b
--- /dev/null
+++ b/docs/models/operations/addplaylistcontentsresponsebody.md
@@ -0,0 +1,10 @@
+# AddPlaylistContentsResponseBody
+
+Playlist Updated
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::AddPlaylistContentsMediaContainer)](../../models/operations/addplaylistcontentsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/applyupdateserrors.md b/docs/models/operations/applyupdateserrors.md
new file mode 100644
index 0000000..8bb9356
--- /dev/null
+++ b/docs/models/operations/applyupdateserrors.md
@@ -0,0 +1,10 @@
+# ApplyUpdatesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/applyupdatesrequest.md b/docs/models/operations/applyupdatesrequest.md
new file mode 100644
index 0000000..1ef79a8
--- /dev/null
+++ b/docs/models/operations/applyupdatesrequest.md
@@ -0,0 +1,9 @@
+# ApplyUpdatesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `tonight` | [T.nilable(Operations::Tonight)](../../models/operations/tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install |
+| `skip` | [T.nilable(Operations::Skip)](../../models/operations/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`. |
\ No newline at end of file
diff --git a/docs/models/operations/applyupdatesresponse.md b/docs/models/operations/applyupdatesresponse.md
new file mode 100644
index 0000000..07945d1
--- /dev/null
+++ b/docs/models/operations/applyupdatesresponse.md
@@ -0,0 +1,11 @@
+# ApplyUpdatesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::ApplyUpdatesResponseBody)](../../models/operations/applyupdatesresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/applyupdatesresponsebody.md b/docs/models/operations/applyupdatesresponsebody.md
new file mode 100644
index 0000000..20f0d17
--- /dev/null
+++ b/docs/models/operations/applyupdatesresponsebody.md
@@ -0,0 +1,10 @@
+# ApplyUpdatesResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::ApplyUpdatesErrors](../../models/operations/applyupdateserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/butlertask.md b/docs/models/operations/butlertask.md
new file mode 100644
index 0000000..355b102
--- /dev/null
+++ b/docs/models/operations/butlertask.md
@@ -0,0 +1,13 @@
+# ButlerTask
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `name` | *T.nilable(String)* | :heavy_minus_sign: | N/A | BackupDatabase |
+| `interval` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 3 |
+| `schedule_randomized` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `enabled` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Backup Database |
+| `description` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Create a backup copy of the server's database in the configured backup directory |
\ No newline at end of file
diff --git a/docs/models/operations/butlertasks.md b/docs/models/operations/butlertasks.md
new file mode 100644
index 0000000..2697417
--- /dev/null
+++ b/docs/models/operations/butlertasks.md
@@ -0,0 +1,8 @@
+# ButlerTasks
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| `butler_task` | T::Array<[Operations::ButlerTask](../../models/operations/butlertask.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/cancelserveractivitieserrors.md b/docs/models/operations/cancelserveractivitieserrors.md
new file mode 100644
index 0000000..d89f4c4
--- /dev/null
+++ b/docs/models/operations/cancelserveractivitieserrors.md
@@ -0,0 +1,10 @@
+# CancelServerActivitiesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/cancelserveractivitiesrequest.md b/docs/models/operations/cancelserveractivitiesrequest.md
new file mode 100644
index 0000000..060d34e
--- /dev/null
+++ b/docs/models/operations/cancelserveractivitiesrequest.md
@@ -0,0 +1,8 @@
+# CancelServerActivitiesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| `activity_uuid` | *String* | :heavy_check_mark: | The UUID of the activity to cancel. |
\ No newline at end of file
diff --git a/docs/models/operations/cancelserveractivitiesresponse.md b/docs/models/operations/cancelserveractivitiesresponse.md
new file mode 100644
index 0000000..3479daf
--- /dev/null
+++ b/docs/models/operations/cancelserveractivitiesresponse.md
@@ -0,0 +1,11 @@
+# CancelServerActivitiesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::CancelServerActivitiesResponseBody)](../../models/operations/cancelserveractivitiesresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/cancelserveractivitiesresponsebody.md b/docs/models/operations/cancelserveractivitiesresponsebody.md
new file mode 100644
index 0000000..2c7210d
--- /dev/null
+++ b/docs/models/operations/cancelserveractivitiesresponsebody.md
@@ -0,0 +1,10 @@
+# CancelServerActivitiesResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::CancelServerActivitiesErrors](../../models/operations/cancelserveractivitieserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/checkforupdateserrors.md b/docs/models/operations/checkforupdateserrors.md
new file mode 100644
index 0000000..d7f34bb
--- /dev/null
+++ b/docs/models/operations/checkforupdateserrors.md
@@ -0,0 +1,10 @@
+# CheckForUpdatesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/checkforupdatesrequest.md b/docs/models/operations/checkforupdatesrequest.md
new file mode 100644
index 0000000..a70ab41
--- /dev/null
+++ b/docs/models/operations/checkforupdatesrequest.md
@@ -0,0 +1,8 @@
+# CheckForUpdatesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| `download` | [T.nilable(Operations::Download)](../../models/operations/download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. |
\ No newline at end of file
diff --git a/docs/models/operations/checkforupdatesresponse.md b/docs/models/operations/checkforupdatesresponse.md
new file mode 100644
index 0000000..ab1af1e
--- /dev/null
+++ b/docs/models/operations/checkforupdatesresponse.md
@@ -0,0 +1,11 @@
+# CheckForUpdatesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::CheckForUpdatesResponseBody)](../../models/operations/checkforupdatesresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/checkforupdatesresponsebody.md b/docs/models/operations/checkforupdatesresponsebody.md
new file mode 100644
index 0000000..1a42214
--- /dev/null
+++ b/docs/models/operations/checkforupdatesresponsebody.md
@@ -0,0 +1,10 @@
+# CheckForUpdatesResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::CheckForUpdatesErrors](../../models/operations/checkforupdateserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/clearplaylistcontentserrors.md b/docs/models/operations/clearplaylistcontentserrors.md
new file mode 100644
index 0000000..eb71bb5
--- /dev/null
+++ b/docs/models/operations/clearplaylistcontentserrors.md
@@ -0,0 +1,10 @@
+# ClearPlaylistContentsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/clearplaylistcontentsrequest.md b/docs/models/operations/clearplaylistcontentsrequest.md
new file mode 100644
index 0000000..e15ceac
--- /dev/null
+++ b/docs/models/operations/clearplaylistcontentsrequest.md
@@ -0,0 +1,8 @@
+# ClearPlaylistContentsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
\ No newline at end of file
diff --git a/docs/models/operations/clearplaylistcontentsresponse.md b/docs/models/operations/clearplaylistcontentsresponse.md
new file mode 100644
index 0000000..ae94529
--- /dev/null
+++ b/docs/models/operations/clearplaylistcontentsresponse.md
@@ -0,0 +1,11 @@
+# ClearPlaylistContentsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::ClearPlaylistContentsResponseBody)](../../models/operations/clearplaylistcontentsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/clearplaylistcontentsresponsebody.md b/docs/models/operations/clearplaylistcontentsresponsebody.md
new file mode 100644
index 0000000..45067a3
--- /dev/null
+++ b/docs/models/operations/clearplaylistcontentsresponsebody.md
@@ -0,0 +1,10 @@
+# ClearPlaylistContentsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::ClearPlaylistContentsErrors](../../models/operations/clearplaylistcontentserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/context.md b/docs/models/operations/context.md
new file mode 100644
index 0000000..197632e
--- /dev/null
+++ b/docs/models/operations/context.md
@@ -0,0 +1,8 @@
+# Context
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------- | -------------------- | -------------------- | -------------------- |
+| `library_section_id` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/country.md b/docs/models/operations/country.md
new file mode 100644
index 0000000..f4eef0b
--- /dev/null
+++ b/docs/models/operations/country.md
@@ -0,0 +1,8 @@
+# Country
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | United States of America |
\ No newline at end of file
diff --git a/docs/models/operations/createplaylisterrors.md b/docs/models/operations/createplaylisterrors.md
new file mode 100644
index 0000000..9dcde95
--- /dev/null
+++ b/docs/models/operations/createplaylisterrors.md
@@ -0,0 +1,10 @@
+# CreatePlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/createplaylistmediacontainer.md b/docs/models/operations/createplaylistmediacontainer.md
new file mode 100644
index 0000000..1892519
--- /dev/null
+++ b/docs/models/operations/createplaylistmediacontainer.md
@@ -0,0 +1,9 @@
+# CreatePlaylistMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 7 |
+| `metadata` | T::Array<[Operations::CreatePlaylistMetadata](../../models/operations/createplaylistmetadata.md)> | :heavy_minus_sign: | N/A | [{"addedAt":1705719589,"composite":"/playlists/96/composite/1705724593","duration":141000,"guid":"com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55","icon":"playlist://image.smart","key":"/playlists/96/items","lastViewedAt":1705719589,"leafCount":1,"playlistType":"video","ratingKey":"96","smart":false,"summary":"What a great playlist","title":"A Great Playlist","type":"playlist","updatedAt":1705724593,"viewCount":1}] |
\ No newline at end of file
diff --git a/docs/models/operations/createplaylistmetadata.md b/docs/models/operations/createplaylistmetadata.md
new file mode 100644
index 0000000..4aed9d9
--- /dev/null
+++ b/docs/models/operations/createplaylistmetadata.md
@@ -0,0 +1,23 @@
+# CreatePlaylistMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 96 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/96/items |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://a2f92937-1408-40e2-b022-63a8a9377e55 |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | A Great Playlist |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | What a great playlist |
+| `smart` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `playlist_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | video |
+| `icon` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist://image.smart |
+| `view_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `last_viewed_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705719589 |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705719589 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705724593 |
+| `composite` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/96/composite/1705724593 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 141000 |
\ No newline at end of file
diff --git a/docs/models/operations/createplaylistplaylistsresponsebody.md b/docs/models/operations/createplaylistplaylistsresponsebody.md
new file mode 100644
index 0000000..9b947da
--- /dev/null
+++ b/docs/models/operations/createplaylistplaylistsresponsebody.md
@@ -0,0 +1,10 @@
+# CreatePlaylistPlaylistsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::CreatePlaylistErrors](../../models/operations/createplaylisterrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/createplaylistrequest.md b/docs/models/operations/createplaylistrequest.md
new file mode 100644
index 0000000..8bae931
--- /dev/null
+++ b/docs/models/operations/createplaylistrequest.md
@@ -0,0 +1,12 @@
+# CreatePlaylistRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
+| `title` | *String* | :heavy_check_mark: | name of the playlist |
+| `type` | [Operations::QueryParamType](../../models/operations/queryparamtype.md) | :heavy_check_mark: | type of playlist to create |
+| `smart` | [Operations::Smart](../../models/operations/smart.md) | :heavy_check_mark: | whether the playlist is smart or not |
+| `uri` | *String* | :heavy_check_mark: | the content URI for the playlist |
+| `play_queue_id` | *T.nilable(Float)* | :heavy_minus_sign: | the play queue to copy to a playlist |
\ No newline at end of file
diff --git a/docs/models/operations/createplaylistresponse.md b/docs/models/operations/createplaylistresponse.md
new file mode 100644
index 0000000..19ce943
--- /dev/null
+++ b/docs/models/operations/createplaylistresponse.md
@@ -0,0 +1,12 @@
+# CreatePlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::CreatePlaylistResponseBody)](../../models/operations/createplaylistresponsebody.md) | :heavy_minus_sign: | returns all playlists |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::CreatePlaylistPlaylistsResponseBody)](../../models/operations/createplaylistplaylistsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/createplaylistresponsebody.md b/docs/models/operations/createplaylistresponsebody.md
new file mode 100644
index 0000000..258dba5
--- /dev/null
+++ b/docs/models/operations/createplaylistresponsebody.md
@@ -0,0 +1,10 @@
+# CreatePlaylistResponseBody
+
+returns all playlists
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::CreatePlaylistMediaContainer)](../../models/operations/createplaylistmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/deletelibraryerrors.md b/docs/models/operations/deletelibraryerrors.md
new file mode 100644
index 0000000..cfce6e1
--- /dev/null
+++ b/docs/models/operations/deletelibraryerrors.md
@@ -0,0 +1,10 @@
+# DeleteLibraryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/deletelibraryrequest.md b/docs/models/operations/deletelibraryrequest.md
new file mode 100644
index 0000000..64a4306
--- /dev/null
+++ b/docs/models/operations/deletelibraryrequest.md
@@ -0,0 +1,8 @@
+# DeleteLibraryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
+| `section_id` | *Float* | :heavy_check_mark: | the Id of the library to query | 1000 |
\ No newline at end of file
diff --git a/docs/models/operations/deletelibraryresponse.md b/docs/models/operations/deletelibraryresponse.md
new file mode 100644
index 0000000..c5118d4
--- /dev/null
+++ b/docs/models/operations/deletelibraryresponse.md
@@ -0,0 +1,11 @@
+# DeleteLibraryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::DeleteLibraryResponseBody)](../../models/operations/deletelibraryresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/deletelibraryresponsebody.md b/docs/models/operations/deletelibraryresponsebody.md
new file mode 100644
index 0000000..df07ddd
--- /dev/null
+++ b/docs/models/operations/deletelibraryresponsebody.md
@@ -0,0 +1,10 @@
+# DeleteLibraryResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::DeleteLibraryErrors](../../models/operations/deletelibraryerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/deleteplaylisterrors.md b/docs/models/operations/deleteplaylisterrors.md
new file mode 100644
index 0000000..2ed1a27
--- /dev/null
+++ b/docs/models/operations/deleteplaylisterrors.md
@@ -0,0 +1,10 @@
+# DeletePlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/deleteplaylistrequest.md b/docs/models/operations/deleteplaylistrequest.md
new file mode 100644
index 0000000..a7b2d4b
--- /dev/null
+++ b/docs/models/operations/deleteplaylistrequest.md
@@ -0,0 +1,8 @@
+# DeletePlaylistRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
\ No newline at end of file
diff --git a/docs/models/operations/deleteplaylistresponse.md b/docs/models/operations/deleteplaylistresponse.md
new file mode 100644
index 0000000..0f9c914
--- /dev/null
+++ b/docs/models/operations/deleteplaylistresponse.md
@@ -0,0 +1,11 @@
+# DeletePlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::DeletePlaylistResponseBody)](../../models/operations/deleteplaylistresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/deleteplaylistresponsebody.md b/docs/models/operations/deleteplaylistresponsebody.md
new file mode 100644
index 0000000..d7344b1
--- /dev/null
+++ b/docs/models/operations/deleteplaylistresponsebody.md
@@ -0,0 +1,10 @@
+# DeletePlaylistResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::DeletePlaylistErrors](../../models/operations/deleteplaylisterrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/device.md b/docs/models/operations/device.md
new file mode 100644
index 0000000..a353382
--- /dev/null
+++ b/docs/models/operations/device.md
@@ -0,0 +1,12 @@
+# Device
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1 |
+| `name` | *T.nilable(String)* | :heavy_minus_sign: | N/A | iPhone |
+| `platform` | *T.nilable(String)* | :heavy_minus_sign: | N/A | iOS |
+| `client_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | |
+| `created_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1654131230 |
\ No newline at end of file
diff --git a/docs/models/operations/director.md b/docs/models/operations/director.md
new file mode 100644
index 0000000..c63e3aa
--- /dev/null
+++ b/docs/models/operations/director.md
@@ -0,0 +1,8 @@
+# Director
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Peyton Reed |
\ No newline at end of file
diff --git a/docs/models/operations/directory.md b/docs/models/operations/directory.md
new file mode 100644
index 0000000..15aee3a
--- /dev/null
+++ b/docs/models/operations/directory.md
@@ -0,0 +1,10 @@
+# Directory
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------- | ------------------- | ------------------- | ------------------- |
+| `count` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/download.md b/docs/models/operations/download.md
new file mode 100644
index 0000000..1eb27ea
--- /dev/null
+++ b/docs/models/operations/download.md
@@ -0,0 +1,11 @@
+# Download
+
+Indicate that you want to start download any updates found.
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/enablepapertrailerrors.md b/docs/models/operations/enablepapertrailerrors.md
new file mode 100644
index 0000000..712fba8
--- /dev/null
+++ b/docs/models/operations/enablepapertrailerrors.md
@@ -0,0 +1,10 @@
+# EnablePaperTrailErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/enablepapertrailresponse.md b/docs/models/operations/enablepapertrailresponse.md
new file mode 100644
index 0000000..18c3b0a
--- /dev/null
+++ b/docs/models/operations/enablepapertrailresponse.md
@@ -0,0 +1,11 @@
+# EnablePaperTrailResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::EnablePaperTrailResponseBody)](../../models/operations/enablepapertrailresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/enablepapertrailresponsebody.md b/docs/models/operations/enablepapertrailresponsebody.md
new file mode 100644
index 0000000..29b4a1b
--- /dev/null
+++ b/docs/models/operations/enablepapertrailresponsebody.md
@@ -0,0 +1,10 @@
+# EnablePaperTrailResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::EnablePaperTrailErrors](../../models/operations/enablepapertrailerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/errors.md b/docs/models/operations/errors.md
new file mode 100644
index 0000000..6a6e5c1
--- /dev/null
+++ b/docs/models/operations/errors.md
@@ -0,0 +1,10 @@
+# Errors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/field.md b/docs/models/operations/field.md
new file mode 100644
index 0000000..7f74c30
--- /dev/null
+++ b/docs/models/operations/field.md
@@ -0,0 +1,11 @@
+# Field
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | label |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Label |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | tag |
+| `sub_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | bitrate |
\ No newline at end of file
diff --git a/docs/models/operations/fieldtype.md b/docs/models/operations/fieldtype.md
new file mode 100644
index 0000000..b0ea980
--- /dev/null
+++ b/docs/models/operations/fieldtype.md
@@ -0,0 +1,9 @@
+# FieldType
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | resolution |
+| `operator` | T::Array<[Operations::Operator](../../models/operations/operator.md)> | :heavy_minus_sign: | N/A | [{"key":"=","title":"is"}] |
\ No newline at end of file
diff --git a/docs/models/operations/filter.md b/docs/models/operations/filter.md
new file mode 100644
index 0000000..f6860d6
--- /dev/null
+++ b/docs/models/operations/filter.md
@@ -0,0 +1,12 @@
+# Filter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- |
+| `filter` | *T.nilable(String)* | :heavy_minus_sign: | N/A | label |
+| `filter_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | string |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/1/label |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Labels |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | filter |
\ No newline at end of file
diff --git a/docs/models/operations/force.md b/docs/models/operations/force.md
new file mode 100644
index 0000000..9bacc5e
--- /dev/null
+++ b/docs/models/operations/force.md
@@ -0,0 +1,15 @@
+# Force
+
+Force overwriting of duplicate playlists.
+By default, a playlist file uploaded with the same path will overwrite the existing playlist.
+The `force` argument is used to disable overwriting.
+If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
+
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/genre.md b/docs/models/operations/genre.md
new file mode 100644
index 0000000..887d71d
--- /dev/null
+++ b/docs/models/operations/genre.md
@@ -0,0 +1,8 @@
+# Genre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Comedy |
\ No newline at end of file
diff --git a/docs/models/operations/getavailableclientserrors.md b/docs/models/operations/getavailableclientserrors.md
new file mode 100644
index 0000000..b392ff6
--- /dev/null
+++ b/docs/models/operations/getavailableclientserrors.md
@@ -0,0 +1,10 @@
+# GetAvailableClientsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getavailableclientsmediacontainer.md b/docs/models/operations/getavailableclientsmediacontainer.md
new file mode 100644
index 0000000..451832d
--- /dev/null
+++ b/docs/models/operations/getavailableclientsmediacontainer.md
@@ -0,0 +1,9 @@
+# GetAvailableClientsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1 |
+| `server` | T::Array<[Operations::Server](../../models/operations/server.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getavailableclientsresponse.md b/docs/models/operations/getavailableclientsresponse.md
new file mode 100644
index 0000000..b6e9c5e
--- /dev/null
+++ b/docs/models/operations/getavailableclientsresponse.md
@@ -0,0 +1,12 @@
+# GetAvailableClientsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetAvailableClientsResponseBody)](../../models/operations/getavailableclientsresponsebody.md) | :heavy_minus_sign: | Available Clients |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetAvailableClientsServerResponseBody)](../../models/operations/getavailableclientsserverresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getavailableclientsresponsebody.md b/docs/models/operations/getavailableclientsresponsebody.md
new file mode 100644
index 0000000..e2da4ef
--- /dev/null
+++ b/docs/models/operations/getavailableclientsresponsebody.md
@@ -0,0 +1,10 @@
+# GetAvailableClientsResponseBody
+
+Available Clients
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetAvailableClientsMediaContainer)](../../models/operations/getavailableclientsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getavailableclientsserverresponsebody.md b/docs/models/operations/getavailableclientsserverresponsebody.md
new file mode 100644
index 0000000..eef1ea2
--- /dev/null
+++ b/docs/models/operations/getavailableclientsserverresponsebody.md
@@ -0,0 +1,10 @@
+# GetAvailableClientsServerResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetAvailableClientsErrors](../../models/operations/getavailableclientserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getbutlertasksbutlerresponsebody.md b/docs/models/operations/getbutlertasksbutlerresponsebody.md
new file mode 100644
index 0000000..5847194
--- /dev/null
+++ b/docs/models/operations/getbutlertasksbutlerresponsebody.md
@@ -0,0 +1,10 @@
+# GetButlerTasksButlerResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetButlerTasksErrors](../../models/operations/getbutlertaskserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getbutlertaskserrors.md b/docs/models/operations/getbutlertaskserrors.md
new file mode 100644
index 0000000..38d8320
--- /dev/null
+++ b/docs/models/operations/getbutlertaskserrors.md
@@ -0,0 +1,10 @@
+# GetButlerTasksErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getbutlertasksresponse.md b/docs/models/operations/getbutlertasksresponse.md
new file mode 100644
index 0000000..fc0d7bd
--- /dev/null
+++ b/docs/models/operations/getbutlertasksresponse.md
@@ -0,0 +1,12 @@
+# GetButlerTasksResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetButlerTasksResponseBody)](../../models/operations/getbutlertasksresponsebody.md) | :heavy_minus_sign: | All butler tasks |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetButlerTasksButlerResponseBody)](../../models/operations/getbutlertasksbutlerresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getbutlertasksresponsebody.md b/docs/models/operations/getbutlertasksresponsebody.md
new file mode 100644
index 0000000..05c74b5
--- /dev/null
+++ b/docs/models/operations/getbutlertasksresponsebody.md
@@ -0,0 +1,10 @@
+# GetButlerTasksResponseBody
+
+All butler tasks
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `butler_tasks` | [T.nilable(Operations::ButlerTasks)](../../models/operations/butlertasks.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getdeviceserrors.md b/docs/models/operations/getdeviceserrors.md
new file mode 100644
index 0000000..5eb054f
--- /dev/null
+++ b/docs/models/operations/getdeviceserrors.md
@@ -0,0 +1,10 @@
+# GetDevicesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getdevicesmediacontainer.md b/docs/models/operations/getdevicesmediacontainer.md
new file mode 100644
index 0000000..be1bc9e
--- /dev/null
+++ b/docs/models/operations/getdevicesmediacontainer.md
@@ -0,0 +1,10 @@
+# GetDevicesMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 151 |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.system.devices |
+| `device` | T::Array<[Operations::Device](../../models/operations/device.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getdevicesresponse.md b/docs/models/operations/getdevicesresponse.md
new file mode 100644
index 0000000..d17fedf
--- /dev/null
+++ b/docs/models/operations/getdevicesresponse.md
@@ -0,0 +1,12 @@
+# GetDevicesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetDevicesResponseBody)](../../models/operations/getdevicesresponsebody.md) | :heavy_minus_sign: | Devices |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetDevicesServerResponseBody)](../../models/operations/getdevicesserverresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getdevicesresponsebody.md b/docs/models/operations/getdevicesresponsebody.md
new file mode 100644
index 0000000..92d1284
--- /dev/null
+++ b/docs/models/operations/getdevicesresponsebody.md
@@ -0,0 +1,10 @@
+# GetDevicesResponseBody
+
+Devices
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetDevicesMediaContainer)](../../models/operations/getdevicesmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getdevicesserverresponsebody.md b/docs/models/operations/getdevicesserverresponsebody.md
new file mode 100644
index 0000000..1275873
--- /dev/null
+++ b/docs/models/operations/getdevicesserverresponsebody.md
@@ -0,0 +1,10 @@
+# GetDevicesServerResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetDevicesErrors](../../models/operations/getdeviceserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getfilehasherrors.md b/docs/models/operations/getfilehasherrors.md
new file mode 100644
index 0000000..5939999
--- /dev/null
+++ b/docs/models/operations/getfilehasherrors.md
@@ -0,0 +1,10 @@
+# GetFileHashErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getfilehashrequest.md b/docs/models/operations/getfilehashrequest.md
new file mode 100644
index 0000000..aa2f432
--- /dev/null
+++ b/docs/models/operations/getfilehashrequest.md
@@ -0,0 +1,9 @@
+# GetFileHashRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `url` | *String* | :heavy_check_mark: | This is the path to the local file, must be prefixed by `file://` | file://C:\Image.png&type=13 |
+| `type` | *T.nilable(Float)* | :heavy_minus_sign: | Item type | |
\ No newline at end of file
diff --git a/docs/models/operations/getfilehashresponse.md b/docs/models/operations/getfilehashresponse.md
new file mode 100644
index 0000000..2d0c3a3
--- /dev/null
+++ b/docs/models/operations/getfilehashresponse.md
@@ -0,0 +1,11 @@
+# GetFileHashResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::GetFileHashResponseBody)](../../models/operations/getfilehashresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getfilehashresponsebody.md b/docs/models/operations/getfilehashresponsebody.md
new file mode 100644
index 0000000..53b45e8
--- /dev/null
+++ b/docs/models/operations/getfilehashresponsebody.md
@@ -0,0 +1,10 @@
+# GetFileHashResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetFileHashErrors](../../models/operations/getfilehasherrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getglobalhubserrors.md b/docs/models/operations/getglobalhubserrors.md
new file mode 100644
index 0000000..11faec8
--- /dev/null
+++ b/docs/models/operations/getglobalhubserrors.md
@@ -0,0 +1,10 @@
+# GetGlobalHubsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getglobalhubshubsresponsebody.md b/docs/models/operations/getglobalhubshubsresponsebody.md
new file mode 100644
index 0000000..11df082
--- /dev/null
+++ b/docs/models/operations/getglobalhubshubsresponsebody.md
@@ -0,0 +1,10 @@
+# GetGlobalHubsHubsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetGlobalHubsErrors](../../models/operations/getglobalhubserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getglobalhubsmediacontainer.md b/docs/models/operations/getglobalhubsmediacontainer.md
new file mode 100644
index 0000000..becb5e3
--- /dev/null
+++ b/docs/models/operations/getglobalhubsmediacontainer.md
@@ -0,0 +1,11 @@
+# GetGlobalHubsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 8 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `hub` | T::Array<[Operations::Hub](../../models/operations/hub.md)> | :heavy_minus_sign: | N/A | [{"Metadata":[{"addedAt":1655309388,"composite":"/playlists/50768/composite/1704333758","duration":42864000,"guid":"com.plexapp.agents.none://81658e0d-cd4e-4c73-abb9-832b2ae2037b","icon":"playlist://image.smart","key":"/playlists/50768/items","lastViewedAt":1705329935,"leafCount":178,"playlistType":"audio","ratingKey":"50768","smart":true,"summary":"All your highly rated tracks, in one convenient place.","title":"❤️ Tracks","titleSort":"Tracks","type":"playlist","updatedAt":1704333758,"viewCount":47},{"addedAt":1697993545,"composite":"/playlists/65523/composite/1698597932","duration":4864000,"guid":"com.plexapp.agents.none://1bcdd596-892b-4856-9f28-b4338c439300","key":"/playlists/65523/items","lastViewedAt":1698597949,"leafCount":19,"playlistType":"audio","ratingKey":"65523","smart":false,"summary":"","title":"Car Rides","type":"playlist","updatedAt":1698597932,"viewCount":2},{"addedAt":1679616785,"composite":"/playlists/58188/composite/1680825595","duration":12522000,"guid":"com.plexapp.agents.none://8f0441d3-2a28-4644-a2f1-b7deeb290dff","key":"/playlists/58188/items","lastViewedAt":1680825596,"leafCount":56,"playlistType":"audio","ratingKey":"58188","smart":false,"summary":"","title":"Workout","type":"playlist","updatedAt":1680825595,"viewCount":4},{"addedAt":1673372306,"composite":"/playlists/57341/composite/1673372385","duration":19119000,"guid":"com.plexapp.agents.none://bf8778c3-20a3-4619-8eb0-3c172c18ffd6","key":"/playlists/57341/items","lastViewedAt":1673372306,"leafCount":3,"playlistType":"video","ratingKey":"57341","smart":false,"summary":"","title":"January Movie Day","type":"playlist","updatedAt":1673372385,"viewCount":1},{"addedAt":1671197078,"composite":"/playlists/57302/composite/1671205874","duration":23040000,"guid":"com.plexapp.agents.none://f25064ed-05bb-4bcf-b70c-ed7514b70929","key":"/playlists/57302/items","lastViewedAt":1671206853,"leafCount":3,"playlistType":"video","ratingKey":"57302","smart":false,"summary":"","title":"December Movie Day","type":"playlist","updatedAt":1671205874,"viewCount":2},{"addedAt":1668779618,"composite":"/playlists/57070/composite/1668787730","duration":16873000,"guid":"com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c","key":"/playlists/57070/items","lastViewedAt":1668787732,"leafCount":3,"playlistType":"video","ratingKey":"57070","smart":false,"summary":"","title":"November Movie Day","type":"playlist","updatedAt":1668787730,"viewCount":2}],"context":"hub.home.playlists","hubIdentifier":"home.playlists","hubKey":"/library/metadata/50768,65523,58188,57341,57302,57070","key":"/playlists/all?type=15\u0026sort=lastViewedAt:desc\u0026playlistType=video,audio","more":true,"promoted":true,"size":6,"style":"shelf","title":"Recent Playlists","type":"playlist"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getglobalhubsmetadata.md b/docs/models/operations/getglobalhubsmetadata.md
new file mode 100644
index 0000000..3948cad
--- /dev/null
+++ b/docs/models/operations/getglobalhubsmetadata.md
@@ -0,0 +1,24 @@
+# GetGlobalHubsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 57070 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/57070/items |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | November Movie Day |
+| `title_sort` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Tracks |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | |
+| `smart` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `playlist_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | video |
+| `composite` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/57070/composite/1668787730 |
+| `icon` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist://image.smart |
+| `view_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `last_viewed_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1668787732 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 16873000 |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 3 |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1668779618 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1668787730 |
\ No newline at end of file
diff --git a/docs/models/operations/getglobalhubsrequest.md b/docs/models/operations/getglobalhubsrequest.md
new file mode 100644
index 0000000..ce41399
--- /dev/null
+++ b/docs/models/operations/getglobalhubsrequest.md
@@ -0,0 +1,9 @@
+# GetGlobalHubsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `count` | *T.nilable(Float)* | :heavy_minus_sign: | The number of items to return with each hub. |
+| `only_transient` | [T.nilable(Operations::OnlyTransient)](../../models/operations/onlytransient.md) | :heavy_minus_sign: | Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). |
\ No newline at end of file
diff --git a/docs/models/operations/getglobalhubsresponse.md b/docs/models/operations/getglobalhubsresponse.md
new file mode 100644
index 0000000..39dafab
--- /dev/null
+++ b/docs/models/operations/getglobalhubsresponse.md
@@ -0,0 +1,12 @@
+# GetGlobalHubsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetGlobalHubsResponseBody)](../../models/operations/getglobalhubsresponsebody.md) | :heavy_minus_sign: | returns global hubs |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetGlobalHubsHubsResponseBody)](../../models/operations/getglobalhubshubsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getglobalhubsresponsebody.md b/docs/models/operations/getglobalhubsresponsebody.md
new file mode 100644
index 0000000..bdf24d2
--- /dev/null
+++ b/docs/models/operations/getglobalhubsresponsebody.md
@@ -0,0 +1,10 @@
+# GetGlobalHubsResponseBody
+
+returns global hubs
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetGlobalHubsMediaContainer)](../../models/operations/getglobalhubsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrariesdirectory.md b/docs/models/operations/getlibrariesdirectory.md
new file mode 100644
index 0000000..2c9f27c
--- /dev/null
+++ b/docs/models/operations/getlibrariesdirectory.md
@@ -0,0 +1,28 @@
+# GetLibrariesDirectory
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
+| `composite` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/1/composite/1705615584 |
+| `filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `refreshing` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `agent` | *T.nilable(String)* | :heavy_minus_sign: | N/A | tv.plex.agents.movie |
+| `scanner` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Plex Movie |
+| `language` | *T.nilable(String)* | :heavy_minus_sign: | N/A | en-US |
+| `uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705615634 |
+| `created_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1654131312 |
+| `scanned_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705615584 |
+| `content` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `directory` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `content_changed_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 3192854 |
+| `hidden` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 0 |
+| `location` | T::Array<[Operations::Location](../../models/operations/location.md)> | :heavy_minus_sign: | N/A | [{"id":1,"path":"/movies"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrarieserrors.md b/docs/models/operations/getlibrarieserrors.md
new file mode 100644
index 0000000..52be9f6
--- /dev/null
+++ b/docs/models/operations/getlibrarieserrors.md
@@ -0,0 +1,10 @@
+# GetLibrariesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrarieslibraryresponsebody.md b/docs/models/operations/getlibrarieslibraryresponsebody.md
new file mode 100644
index 0000000..8148057
--- /dev/null
+++ b/docs/models/operations/getlibrarieslibraryresponsebody.md
@@ -0,0 +1,10 @@
+# GetLibrariesLibraryResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetLibrariesErrors](../../models/operations/getlibrarieserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrariesmediacontainer.md b/docs/models/operations/getlibrariesmediacontainer.md
new file mode 100644
index 0000000..924e6ea
--- /dev/null
+++ b/docs/models/operations/getlibrariesmediacontainer.md
@@ -0,0 +1,11 @@
+# GetLibrariesMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 5 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `title1` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Plex Library |
+| `directory` | T::Array<[Operations::GetLibrariesDirectory](../../models/operations/getlibrariesdirectory.md)> | :heavy_minus_sign: | N/A | [{"Location":[{"id":1,"path":"/movies"}],"agent":"tv.plex.agents.movie","allowSync":true,"art":"/:/resources/movie-fanart.jpg","composite":"/library/sections/1/composite/1705615584","content":true,"contentChangedAt":3192854,"createdAt":1654131312,"directory":true,"filters":true,"hidden":0,"key":"1","language":"en-US","refreshing":false,"scannedAt":1705615584,"scanner":"Plex Movie","thumb":"/:/resources/movie.png","title":"Movies","type":"movie","updatedAt":1705615634,"uuid":"322a231a-b7f7-49f5-920f-14c61199cd30"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrariesresponse.md b/docs/models/operations/getlibrariesresponse.md
new file mode 100644
index 0000000..970d741
--- /dev/null
+++ b/docs/models/operations/getlibrariesresponse.md
@@ -0,0 +1,12 @@
+# GetLibrariesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetLibrariesResponseBody)](../../models/operations/getlibrariesresponsebody.md) | :heavy_minus_sign: | The libraries available on the Server |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetLibrariesLibraryResponseBody)](../../models/operations/getlibrarieslibraryresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrariesresponsebody.md b/docs/models/operations/getlibrariesresponsebody.md
new file mode 100644
index 0000000..1b5fa4c
--- /dev/null
+++ b/docs/models/operations/getlibrariesresponsebody.md
@@ -0,0 +1,10 @@
+# GetLibrariesResponseBody
+
+The libraries available on the Server
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetLibrariesMediaContainer)](../../models/operations/getlibrariesmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrarydirectory.md b/docs/models/operations/getlibrarydirectory.md
new file mode 100644
index 0000000..8645d6f
--- /dev/null
+++ b/docs/models/operations/getlibrarydirectory.md
@@ -0,0 +1,12 @@
+# GetLibraryDirectory
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------- | ----------------------- | ----------------------- | ----------------------- | ----------------------- |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | search?type=1 |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Search... |
+| `secondary` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `prompt` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Search Movies |
+| `search` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryerrors.md b/docs/models/operations/getlibraryerrors.md
new file mode 100644
index 0000000..9c8ce6e
--- /dev/null
+++ b/docs/models/operations/getlibraryerrors.md
@@ -0,0 +1,10 @@
+# GetLibraryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubscountry.md b/docs/models/operations/getlibraryhubscountry.md
new file mode 100644
index 0000000..227d931
--- /dev/null
+++ b/docs/models/operations/getlibraryhubscountry.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | United States of America |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsdirector.md b/docs/models/operations/getlibraryhubsdirector.md
new file mode 100644
index 0000000..03821cd
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsdirector.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Nathan Greno |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubserrors.md b/docs/models/operations/getlibraryhubserrors.md
new file mode 100644
index 0000000..f3e6465
--- /dev/null
+++ b/docs/models/operations/getlibraryhubserrors.md
@@ -0,0 +1,10 @@
+# GetLibraryHubsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsgenre.md b/docs/models/operations/getlibraryhubsgenre.md
new file mode 100644
index 0000000..0daa977
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsgenre.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Animation |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubshub.md b/docs/models/operations/getlibraryhubshub.md
new file mode 100644
index 0000000..d2d297f
--- /dev/null
+++ b/docs/models/operations/getlibraryhubshub.md
@@ -0,0 +1,19 @@
+# GetLibraryHubsHub
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/1/all?sort=lastViewedAt:desc&unwatched=0&viewOffset=0 |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Recently Played Movies |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `hub_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie.recentlyviewed.1 |
+| `context` | *T.nilable(String)* | :heavy_minus_sign: | N/A | hub.movie.recentlyviewed |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 6 |
+| `more` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `style` | *T.nilable(String)* | :heavy_minus_sign: | N/A | shelf |
+| `hub_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66485,66098,57249,11449,5858,14944 |
+| `metadata` | T::Array<[Operations::GetLibraryHubsMetadata](../../models/operations/getlibraryhubsmetadata.md)> | :heavy_minus_sign: | N/A | [{"Country":[{"tag":"United States of America"}],"Director":[{"tag":"Byron Howard"},{"tag":"Nathan Greno"}],"Genre":[{"tag":"Comedy"},{"tag":"Animation"}],"Media":[{"Part":[{"audioProfile":"lc","container":"mp4","duration":6017237,"file":"/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4","has64bitOffsets":false,"id":38247,"key":"/library/parts/38247/1589412494/file.mp4","optimizedForStreaming":true,"size":1545647447,"videoProfile":"high"}],"aspectRatio":1.78,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2051,"container":"mp4","duration":6017237,"has64bitOffsets":false,"height":1080,"id":38247,"optimizedForStreaming":1,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}],"Role":[{"tag":"Mandy Moore"},{"tag":"Zachary Levi"},{"tag":"Donna Murphy"}],"Writer":[{"tag":"Jacob Grimm"},{"tag":"Wilhelm Grimm"}],"addedAt":1589412494,"art":"/library/metadata/14944/art/1705739847","audienceRating":8.7,"audienceRatingImage":"rottentomatoes://image.rating.upright","chapterSource":"media","contentRating":"PG","duration":6017237,"guid":"plex://movie/5d77686eeb5d26001f1eb339","key":"/library/metadata/14944","lastViewedAt":1704936047,"librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"2010-11-24T00:00:00Z","primaryExtraKey":"/library/metadata/14952","rating":8.9,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"14944","skipCount":1,"studio":"Walt Disney Animation Studios","summary":"The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.","tagline":"They're taking adventure to new lengths.","thumb":"/library/metadata/14944/thumb/1705739847","title":"Tangled","type":"movie","updatedAt":1705739847,"viewCount":1,"year":2010}] |
+| `promoted` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `random` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubshubsresponsebody.md b/docs/models/operations/getlibraryhubshubsresponsebody.md
new file mode 100644
index 0000000..0c9feab
--- /dev/null
+++ b/docs/models/operations/getlibraryhubshubsresponsebody.md
@@ -0,0 +1,10 @@
+# GetLibraryHubsHubsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetLibraryHubsErrors](../../models/operations/getlibraryhubserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsmedia.md b/docs/models/operations/getlibraryhubsmedia.md
new file mode 100644
index 0000000..2bb488a
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsmedia.md
@@ -0,0 +1,24 @@
+# GetLibraryHubsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 38247 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 6017237 |
+| `bitrate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2051 |
+| `width` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1080 |
+| `aspect_ratio` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1.78 |
+| `audio_channels` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | aac |
+| `video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | h264 |
+| `video_resolution` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mp4 |
+| `video_frame_rate` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 24p |
+| `optimized_for_streaming` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | high |
+| `part` | T::Array<[Operations::GetLibraryHubsPart](../../models/operations/getlibraryhubspart.md)> | :heavy_minus_sign: | N/A | [{"audioProfile":"lc","container":"mp4","duration":6017237,"file":"/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4","has64bitOffsets":false,"id":38247,"key":"/library/parts/38247/1589412494/file.mp4","optimizedForStreaming":true,"size":1545647447,"videoProfile":"high"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsmediacontainer.md b/docs/models/operations/getlibraryhubsmediacontainer.md
new file mode 100644
index 0000000..fa02cda
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsmediacontainer.md
@@ -0,0 +1,14 @@
+# GetLibraryHubsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 7 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `library_section_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `library_section_uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `hub` | T::Array<[Operations::GetLibraryHubsHub](../../models/operations/getlibraryhubshub.md)> | :heavy_minus_sign: | N/A | [{"Metadata":[{"Country":[{"tag":"United States of America"}],"Director":[{"tag":"Ceyda Torun"}],"Genre":[{"tag":"Documentary"}],"Media":[{"Part":[{"audioProfile":"lc","container":"mp4","duration":4736174,"file":"/movies/Kedi (2017)/Kedi (2017) 1080p x264.mp4","has64bitOffsets":false,"id":129778,"key":"/library/parts/129778/1702586883/file.mp4","optimizedForStreaming":false,"size":1410810905,"videoProfile":"high"}],"aspectRatio":1.78,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2377,"container":"mp4","duration":4736174,"has64bitOffsets":false,"height":1080,"id":129531,"optimizedForStreaming":0,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}],"Role":[{"tag":"Bülent Üstün"}],"addedAt":1702586905,"art":"/library/metadata/66485/art/1702586907","audienceRating":8.5,"audienceRatingImage":"rottentomatoes://image.rating.upright","contentRating":"Not Rated","duration":4736174,"guid":"plex://movie/5d776c3251dd69001fe38bb4","key":"/library/metadata/66485","lastViewedAt":1705786111,"librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"2017-02-10T00:00:00Z","primaryExtraKey":"/library/metadata/66486","rating":9.8,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"66485","studio":"Termite Films","summary":"A profile of an ancient city and its unique people, seen through the eyes of the most mysterious and beloved animal humans have ever known, the Cat.","tagline":"A cat meowing at your feet, looking up at you, is life smiling at you...","thumb":"/library/metadata/66485/thumb/1702586907","title":"Kedi","type":"movie","updatedAt":1702586907,"viewCount":2,"year":2017},{"Country":[{"tag":"United States of America"}],"Director":[{"tag":"Duwayne Dunham"}],"Genre":[{"tag":"Adventure"},{"tag":"Comedy"}],"Media":[{"Part":[{"audioProfile":"lc","container":"mp4","duration":5065775,"file":"/movies/Homeward Bound The Incredible Journey (1993)/Homeward Bound The Incredible Journey (1993) [BluRay] [1080p] [YTS.LT].mp4","has64bitOffsets":false,"id":129250,"key":"/library/parts/129250/1700434864/file.mp4","optimizedForStreaming":true,"size":1550855333,"videoProfile":"high"}],"aspectRatio":1.85,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2444,"container":"mp4","duration":5065775,"has64bitOffsets":false,"height":1024,"id":129003,"optimizedForStreaming":1,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1904}],"Role":[{"tag":"Michael J. Fox"},{"tag":"Sally Field"},{"tag":"Don Ameche"}],"Writer":[{"tag":"Caroline Thompson"},{"tag":"Linda Woolverton"}],"addedAt":1700434925,"art":"/library/metadata/66098/art/1703148781","audienceRating":7.1,"audienceRatingImage":"rottentomatoes://image.rating.upright","contentRating":"G","duration":5065775,"guid":"plex://movie/5d9f34f4adeb7a0021ce020f","key":"/library/metadata/66098","lastViewedAt":1705709811,"librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"1993-02-12T00:00:00Z","primaryExtraKey":"/library/metadata/66099","rating":8.7,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"66098","studio":"Touchwood Pacific Partners 1","summary":"A fun-loving American bulldog pup, a hilarious Himalayan cat, and a wise old golden retriever embark on a long trek through the rugged wilderness of the Sierra Nevada mountains in a quest to reach home and their beloved owners.","tagline":"In the classic tradition of Walt Disney Pictures comes a story about courage, adventure and friendship.","thumb":"/library/metadata/66098/thumb/1703148781","title":"Homeward Bound: The Incredible Journey","type":"movie","updatedAt":1703148781,"viewCount":2,"year":1993},{"Country":[{"tag":"Canada"},{"tag":"Ireland"}],"Director":[{"tag":"Matt Stawski"}],"Genre":[{"tag":"Comedy"},{"tag":"Family"}],"Media":[{"Part":[{"audioProfile":"lc","container":"mkv","duration":4459050,"file":"/movies/Blue's Big City Adventure (2022)/Blues.Big.City.Adventure.2022.2160p.4K.WEB.x265.10bit.AAC5.1-[YTS.MX].mkv","id":115478,"key":"/library/parts/115478/1669671340/file.mkv","size":3560750664,"videoProfile":"main 10"}],"aspectRatio":1.78,"audioChannels":6,"audioCodec":"aac","audioProfile":"lc","bitrate":6384,"container":"mkv","duration":4459050,"height":2160,"id":115470,"videoCodec":"hevc","videoFrameRate":"24p","videoProfile":"main 10","videoResolution":"4k","width":3840}],"Role":[{"tag":"Joshua Dela Cruz"},{"tag":"Steve Burns"},{"tag":"Donovan Patton"}],"Writer":[{"tag":"Traci Paige Johnson"},{"tag":"Todd Kessler"}],"addedAt":1669671356,"art":"/library/metadata/57249/art/1704274800","audienceRating":8.6,"audienceRatingImage":"rottentomatoes://image.rating.upright","contentRating":"TV-Y","duration":4459050,"guid":"plex://movie/60eff7d3e22797002c55c1cc","key":"/library/metadata/57249","lastViewedAt":1705681955,"librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"2022-11-18T00:00:00Z","primaryExtraKey":"/library/metadata/57250","rating":8.3,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"57249","skipCount":1,"studio":"Nickelodeon Movies","summary":"Josh and Blue skidoo to New York City to audition for Rainbow Puppy's Broadway musical, but they get lost when Josh accidentally left his Handy Dandy Notebook at home. This leads to a game of Blue's Clues to figure out where the audition is. Meanwhile, Tickety Tock and her friends go to New York City to find Josh and Blue and get to the audition with help from Joe and Steve.","tagline":"All They Need is You.","thumb":"/library/metadata/57249/thumb/1704274800","title":"Blue's Big City Adventure","type":"movie","updatedAt":1704274800,"viewCount":8,"year":2022},{"Country":[{"tag":"United States of America"}],"Director":[{"tag":"Dan Scanlon"}],"Genre":[{"tag":"Animation"},{"tag":"Comedy"}],"Media":[{"Part":[{"audioProfile":"ma","container":"mkv","duration":6141428,"file":"/movies/Onward (2020)/Onward (2020) Bluray-1080p.mkv","id":29291,"key":"/library/parts/29291/1589237130/file.mkv","size":8426669232,"videoProfile":"high"}],"aspectRatio":2.35,"audioChannels":8,"audioCodec":"dca-ma","audioProfile":"ma","bitrate":10977,"container":"mkv","duration":6141428,"height":804,"id":29291,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920},{"Part":[{"audioProfile":"lc","container":"mp4","duration":6142006,"file":"/movies/Onward (2020)/Onward (2020) WEBRip-1080p.mp4","has64bitOffsets":false,"id":29315,"key":"/library/parts/29315/1629002847/file.mp4","optimizedForStreaming":true,"size":2026154995,"videoProfile":"high"}],"aspectRatio":2.35,"audioChannels":6,"audioCodec":"aac","audioProfile":"lc","bitrate":2639,"container":"mp4","duration":6142006,"has64bitOffsets":false,"height":800,"id":29315,"optimizedForStreaming":1,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}],"Role":[{"tag":"Tom Holland"},{"tag":"Chris Pratt"},{"tag":"Julia Louis-Dreyfus"}],"Writer":[{"tag":"Kelsey Mann"},{"tag":"Dan Scanlon"}],"addedAt":1589237130,"art":"/library/metadata/11449/art/1705224000","audienceRating":9.5,"audienceRatingImage":"rottentomatoes://image.rating.upright","chapterSource":"media","contentRating":"PG","duration":6141428,"guid":"plex://movie/5d776edfad5437001f803cf9","key":"/library/metadata/11449","lastViewedAt":1705543126,"librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"2020-03-04T00:00:00Z","primaryExtraKey":"/library/metadata/11470","rating":8.8,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"11449","studio":"Walt Disney Pictures","summary":"In a magical world full of technological advances, elven brothers Ian and Barley Lightfoot set out on an adventure to resurrect their late father for a day.","tagline":"Their quest begineth.","thumb":"/library/metadata/11449/thumb/1705224000","title":"Onward","type":"movie","updatedAt":1705224000,"viewCount":3,"year":2020},{"Country":[{"tag":"United States of America"}],"Director":[{"tag":"Chris Buck"},{"tag":"Jennifer Lee"}],"Genre":[{"tag":"Adventure"},{"tag":"Animation"}],"Media":[{"Part":[{"audioProfile":"lc","container":"mp4","duration":6194042,"file":"/movies/Frozen II (2019)/Frozen II (2019) Bluray-1080p.mp4","has64bitOffsets":false,"id":14954,"key":"/library/parts/14954/1588207762/file.mp4","optimizedForStreaming":true,"size":1969230037,"videoProfile":"high"}],"aspectRatio":2.35,"audioChannels":6,"audioCodec":"aac","audioProfile":"lc","bitrate":2538,"container":"mp4","duration":6194042,"has64bitOffsets":false,"height":800,"id":14954,"optimizedForStreaming":1,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920},{"Part":[{"audioProfile":"lc","container":"mp4","duration":6244271,"file":"/movies/Frozen II (2019)/Frozen II (2019) WEBRip-1080p.mp4","has64bitOffsets":false,"id":14999,"key":"/library/parts/14999/1629001526/file.mp4","optimizedForStreaming":true,"size":1983357282,"videoProfile":"high"}],"aspectRatio":2.35,"audioChannels":6,"audioCodec":"aac","audioProfile":"lc","bitrate":2536,"container":"mp4","duration":6244271,"has64bitOffsets":false,"height":800,"id":14999,"optimizedForStreaming":1,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}],"Role":[{"tag":"Idina Menzel"},{"tag":"Kristen Bell"},{"tag":"Josh Gad"}],"Writer":[{"tag":"Chris Buck"},{"tag":"Hans Christian Andersen"}],"addedAt":1588207762,"art":"/library/metadata/5858/art/1704621922","audienceRating":9.2,"audienceRatingImage":"rottentomatoes://image.rating.upright","contentRating":"PG","duration":6194042,"guid":"plex://movie/5d776b85594b2b001e6dc641","key":"/library/metadata/5858","lastViewedAt":1705337663,"librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"2019-11-20T00:00:00Z","primaryExtraKey":"/library/metadata/5892","rating":7.7,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"5858","skipCount":1,"studio":"Walt Disney Pictures","summary":"Anna, Elsa, Kristoff, Olaf and Sven leave Arendelle to travel to an ancient, autumn-bound forest of an enchanted land. They set out to find the origin of Elsa's powers in order to save their kingdom.","tagline":"The past is not what it seems.","thumb":"/library/metadata/5858/thumb/1704621922","title":"Frozen II","type":"movie","updatedAt":1704621922,"viewCount":1,"year":2019},{"Country":[{"tag":"United States of America"}],"Director":[{"tag":"Byron Howard"},{"tag":"Nathan Greno"}],"Genre":[{"tag":"Comedy"},{"tag":"Animation"}],"Media":[{"Part":[{"audioProfile":"lc","container":"mp4","duration":6017237,"file":"/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4","has64bitOffsets":false,"id":38247,"key":"/library/parts/38247/1589412494/file.mp4","optimizedForStreaming":true,"size":1545647447,"videoProfile":"high"}],"aspectRatio":1.78,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2051,"container":"mp4","duration":6017237,"has64bitOffsets":false,"height":1080,"id":38247,"optimizedForStreaming":1,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}],"Role":[{"tag":"Mandy Moore"},{"tag":"Zachary Levi"},{"tag":"Donna Murphy"}],"Writer":[{"tag":"Jacob Grimm"},{"tag":"Wilhelm Grimm"}],"addedAt":1589412494,"art":"/library/metadata/14944/art/1705739847","audienceRating":8.7,"audienceRatingImage":"rottentomatoes://image.rating.upright","contentRating":"PG","duration":6017237,"guid":"plex://movie/5d77686eeb5d26001f1eb339","key":"/library/metadata/14944","lastViewedAt":1704936047,"librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"2010-11-24T00:00:00Z","primaryExtraKey":"/library/metadata/14952","rating":8.9,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"14944","studio":"Walt Disney Animation Studios","summary":"The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is.","tagline":"They're taking adventure to new lengths.","thumb":"/library/metadata/14944/thumb/1705739847","title":"Tangled","type":"movie","updatedAt":1705739847,"viewCount":1,"year":2010}],"context":"hub.movie.recentlyviewed","hubIdentifier":"movie.recentlyviewed.1","hubKey":"/library/metadata/66485,66098,57249,11449,5858,14944","key":"/library/sections/1/all?sort=lastViewedAt:desc\u0026unwatched=0\u0026viewOffset=0","more":true,"promoted":true,"random":true,"size":6,"style":"shelf","title":"Recently Played Movies","type":"movie"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsmetadata.md b/docs/models/operations/getlibraryhubsmetadata.md
new file mode 100644
index 0000000..d6cbd0b
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsmetadata.md
@@ -0,0 +1,41 @@
+# GetLibraryHubsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 14944 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/14944 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://movie/5d77686eeb5d26001f1eb339 |
+| `studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Walt Disney Animation Studios |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Tangled |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `library_section_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `library_section_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/1 |
+| `content_rating` | *T.nilable(String)* | :heavy_minus_sign: | N/A | PG |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | The magically long-haired Rapunzel has spent her entire life in a tower, but now that a runaway thief has stumbled upon her, she is about to discover the world for the first time, and who she really is. |
+| `rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 8.9 |
+| `audience_rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 8.7 |
+| `view_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `last_viewed_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1704936047 |
+| `year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2010 |
+| `tagline` | *T.nilable(String)* | :heavy_minus_sign: | N/A | They're taking adventure to new lengths. |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/14944/thumb/1705739847 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/14944/art/1705739847 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 6017237 |
+| `originally_available_at` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_minus_sign: | N/A | 2010-11-24 00:00:00 +0000 UTC |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1589412494 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705739847 |
+| `audience_rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `primary_extra_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/14952 |
+| `rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe |
+| `media` | T::Array<[Operations::GetLibraryHubsMedia](../../models/operations/getlibraryhubsmedia.md)> | :heavy_minus_sign: | N/A | [{"Part":[{"audioProfile":"lc","container":"mp4","duration":6017237,"file":"/movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4","has64bitOffsets":false,"id":38247,"key":"/library/parts/38247/1589412494/file.mp4","optimizedForStreaming":true,"size":1545647447,"videoProfile":"high"}],"aspectRatio":1.78,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2051,"container":"mp4","duration":6017237,"has64bitOffsets":false,"height":1080,"id":38247,"optimizedForStreaming":1,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}] |
+| `genre` | T::Array<[Operations::GetLibraryHubsGenre](../../models/operations/getlibraryhubsgenre.md)> | :heavy_minus_sign: | N/A | [{"tag":"Animation"}] |
+| `country` | T::Array<[Operations::GetLibraryHubsCountry](../../models/operations/getlibraryhubscountry.md)> | :heavy_minus_sign: | N/A | [{"tag":"United States of America"}] |
+| `director` | T::Array<[Operations::GetLibraryHubsDirector](../../models/operations/getlibraryhubsdirector.md)> | :heavy_minus_sign: | N/A | [{"tag":"Nathan Greno"}] |
+| `role` | T::Array<[Operations::GetLibraryHubsRole](../../models/operations/getlibraryhubsrole.md)> | :heavy_minus_sign: | N/A | [{"tag":"Donna Murphy"}] |
+| `writer` | T::Array<[Operations::GetLibraryHubsWriter](../../models/operations/getlibraryhubswriter.md)> | :heavy_minus_sign: | N/A | [{"tag":"Wilhelm Grimm"}] |
+| `skip_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `chapter_source` | *T.nilable(String)* | :heavy_minus_sign: | N/A | media |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubspart.md b/docs/models/operations/getlibraryhubspart.md
new file mode 100644
index 0000000..2c06240
--- /dev/null
+++ b/docs/models/operations/getlibraryhubspart.md
@@ -0,0 +1,17 @@
+# GetLibraryHubsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 38247 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/parts/38247/1589412494/file.mp4 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 6017237 |
+| `file` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /movies/Tangled (2010)/Tangled (2010) Bluray-1080p.mp4 |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1545647447 |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mp4 |
+| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `optimized_for_streaming` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | high |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsrequest.md b/docs/models/operations/getlibraryhubsrequest.md
new file mode 100644
index 0000000..5e26af8
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsrequest.md
@@ -0,0 +1,10 @@
+# GetLibraryHubsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `section_id` | *Float* | :heavy_check_mark: | the Id of the library to query |
+| `count` | *T.nilable(Float)* | :heavy_minus_sign: | The number of items to return with each hub. |
+| `only_transient` | [T.nilable(Operations::QueryParamOnlyTransient)](../../models/operations/queryparamonlytransient.md) | :heavy_minus_sign: | Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsresponse.md b/docs/models/operations/getlibraryhubsresponse.md
new file mode 100644
index 0000000..9c8838c
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsresponse.md
@@ -0,0 +1,12 @@
+# GetLibraryHubsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetLibraryHubsResponseBody)](../../models/operations/getlibraryhubsresponsebody.md) | :heavy_minus_sign: | The hubs specific to the library |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetLibraryHubsHubsResponseBody)](../../models/operations/getlibraryhubshubsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsresponsebody.md b/docs/models/operations/getlibraryhubsresponsebody.md
new file mode 100644
index 0000000..bf0c1ac
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsresponsebody.md
@@ -0,0 +1,10 @@
+# GetLibraryHubsResponseBody
+
+The hubs specific to the library
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetLibraryHubsMediaContainer)](../../models/operations/getlibraryhubsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubsrole.md b/docs/models/operations/getlibraryhubsrole.md
new file mode 100644
index 0000000..fc7be4e
--- /dev/null
+++ b/docs/models/operations/getlibraryhubsrole.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Donna Murphy |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryhubswriter.md b/docs/models/operations/getlibraryhubswriter.md
new file mode 100644
index 0000000..543e06d
--- /dev/null
+++ b/docs/models/operations/getlibraryhubswriter.md
@@ -0,0 +1,8 @@
+# GetLibraryHubsWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Wilhelm Grimm |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemscountry.md b/docs/models/operations/getlibraryitemscountry.md
new file mode 100644
index 0000000..607f199
--- /dev/null
+++ b/docs/models/operations/getlibraryitemscountry.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | United States of America |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsdirector.md b/docs/models/operations/getlibraryitemsdirector.md
new file mode 100644
index 0000000..2ae3d4f
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsdirector.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | James Cameron |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsgenre.md b/docs/models/operations/getlibraryitemsgenre.md
new file mode 100644
index 0000000..ef69dde
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsgenre.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Adventure |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsmedia.md b/docs/models/operations/getlibraryitemsmedia.md
new file mode 100644
index 0000000..0a9a57b
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsmedia.md
@@ -0,0 +1,21 @@
+# GetLibraryItemsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 119534 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 11558112 |
+| `bitrate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 25025 |
+| `width` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 3840 |
+| `height` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2072 |
+| `aspect_ratio` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1.85 |
+| `audio_channels` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 6 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | eac3 |
+| `video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | hevc |
+| `video_resolution` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 4k |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mkv |
+| `video_frame_rate` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 24p |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | main 10 |
+| `part` | T::Array<[Operations::GetLibraryItemsPart](../../models/operations/getlibraryitemspart.md)> | :heavy_minus_sign: | N/A | [{"container":"mkv","duration":11558112,"file":"/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv","id":119542,"key":"/library/parts/119542/1680457526/file.mkv","size":36158371307,"videoProfile":"main 10"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsmediacontainer.md b/docs/models/operations/getlibraryitemsmediacontainer.md
new file mode 100644
index 0000000..fbd8a89
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsmediacontainer.md
@@ -0,0 +1,23 @@
+# GetLibraryItemsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 70 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `library_section_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `library_section_uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `media_tag_prefix` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `media_tag_version` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1701731894 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
+| `title1` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `title2` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Recently Released |
+| `view_group` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `view_mode` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 65592 |
+| `mixed_parents` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `metadata` | T::Array<[Operations::GetLibraryItemsMetadata](../../models/operations/getlibraryitemsmetadata.md)> | :heavy_minus_sign: | N/A | [{"Country":[{"tag":"United States of America"}],"Director":[{"tag":"James Cameron"}],"Genre":[{"tag":"Action"},{"tag":"Adventure"}],"Media":[{"Part":[{"container":"mkv","duration":11558112,"file":"/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv","id":119542,"key":"/library/parts/119542/1680457526/file.mkv","size":36158371307,"videoProfile":"main 10"}],"aspectRatio":1.85,"audioChannels":6,"audioCodec":"eac3","bitrate":25025,"container":"mkv","duration":11558112,"height":2072,"id":119534,"videoCodec":"hevc","videoFrameRate":"24p","videoProfile":"main 10","videoResolution":"4k","width":3840}],"Role":[{"tag":"Sam Worthington"},{"tag":"Zoe Saldaña"},{"tag":"Sigourney Weaver"}],"Writer":[{"tag":"Josh Friedman"},{"tag":"James Cameron"}],"addedAt":1680457607,"art":"/library/metadata/58683/art/1703239236","audienceRating":9.2,"audienceRatingImage":"rottentomatoes://image.rating.upright","chapterSource":"media","childCount":1,"contentRating":"PG-13","duration":11558112,"grandparentArt":"/library/metadata/66/art/1705716261","grandparentGuid":"plex://show/5d9c081b170e24001f2a7be4","grandparentKey":"/library/metadata/66","grandparentRatingKey":"66","grandparentTheme":"/library/metadata/66/theme/1705716261","grandparentThumb":"/library/metadata/66/thumb/1705716261","grandparentTitle":"Caprica","guid":"plex://movie/5d7768ba96b655001fdc0408","hasPremiumExtras":"1","hasPremiumPrimaryExtra":"1","index":1,"key":"/library/metadata/58683","lastViewedAt":1682752242,"leafCount":14,"originalTitle":"映画 ブラッククローバー 魔法帝の剣","originallyAvailableAt":"2022-12-14T00:00:00Z","parentGuid":"plex://show/5d9c081b170e24001f2a7be4","parentIndex":1,"parentKey":"/library/metadata/66","parentRatingKey":"66","parentStudio":"UCP","parentTheme":"/library/metadata/66/theme/1705716261","parentThumb":"/library/metadata/66/thumb/1705716261","parentTitle":"Caprica","parentYear":2010,"primaryExtraKey":"/library/metadata/58684","rating":7.6,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"58683","skipCount":1,"studio":"20th Century Studios","summary":"Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home.","tagline":"Return to Pandora.","theme":"/library/metadata/1/theme/1705636920","thumb":"/library/metadata/58683/thumb/1703239236","title":"Avatar: The Way of Water","titleSort":"Whale","type":"movie","updatedAt":1703239236,"viewCount":1,"viewOffset":5222500,"viewedLeafCount":0,"year":2022}] |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsmetadata.md b/docs/models/operations/getlibraryitemsmetadata.md
new file mode 100644
index 0000000..819eb77
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsmetadata.md
@@ -0,0 +1,64 @@
+# GetLibraryItemsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 58683 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/58683 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://movie/5d7768ba96b655001fdc0408 |
+| `studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 20th Century Studios |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Avatar: The Way of Water |
+| `content_rating` | *T.nilable(String)* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Jake Sully lives with his newfound family formed on the extrasolar moon Pandora. Once a familiar threat returns to finish what was previously started, Jake must work with Neytiri and the army of the Na'vi race to protect their home. |
+| `rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 7.6 |
+| `audience_rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 9.2 |
+| `year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2022 |
+| `tagline` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Return to Pandora. |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/58683/thumb/1703239236 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/58683/art/1703239236 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 11558112 |
+| `originally_available_at` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_minus_sign: | N/A | 2022-12-14 00:00:00 +0000 UTC |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1680457607 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1703239236 |
+| `audience_rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `chapter_source` | *T.nilable(String)* | :heavy_minus_sign: | N/A | media |
+| `primary_extra_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/58684 |
+| `rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe |
+| `grandparent_rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 66 |
+| `grandparent_guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 |
+| `grandparent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66 |
+| `grandparent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Caprica |
+| `grandparent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 |
+| `grandparent_art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66/art/1705716261 |
+| `grandparent_theme` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 |
+| `media` | T::Array<[Operations::GetLibraryItemsMedia](../../models/operations/getlibraryitemsmedia.md)> | :heavy_minus_sign: | N/A | [{"Part":[{"container":"mkv","duration":11558112,"file":"/movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv","id":119542,"key":"/library/parts/119542/1680457526/file.mkv","size":36158371307,"videoProfile":"main 10"}],"aspectRatio":1.85,"audioChannels":6,"audioCodec":"eac3","bitrate":25025,"container":"mkv","duration":11558112,"height":2072,"id":119534,"videoCodec":"hevc","videoFrameRate":"24p","videoProfile":"main 10","videoResolution":"4k","width":3840}] |
+| `genre` | T::Array<[Operations::GetLibraryItemsGenre](../../models/operations/getlibraryitemsgenre.md)> | :heavy_minus_sign: | N/A | [{"tag":"Adventure"}] |
+| `country` | T::Array<[Operations::GetLibraryItemsCountry](../../models/operations/getlibraryitemscountry.md)> | :heavy_minus_sign: | N/A | [{"tag":"United States of America"}] |
+| `director` | T::Array<[Operations::GetLibraryItemsDirector](../../models/operations/getlibraryitemsdirector.md)> | :heavy_minus_sign: | N/A | [{"tag":"James Cameron"}] |
+| `writer` | T::Array<[Operations::GetLibraryItemsWriter](../../models/operations/getlibraryitemswriter.md)> | :heavy_minus_sign: | N/A | [{"tag":"James Cameron"}] |
+| `role` | T::Array<[Operations::GetLibraryItemsRole](../../models/operations/getlibraryitemsrole.md)> | :heavy_minus_sign: | N/A | [{"tag":"Sigourney Weaver"}] |
+| `title_sort` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Whale |
+| `view_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `last_viewed_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1682752242 |
+| `original_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 映画 ブラッククローバー 魔法帝の剣 |
+| `view_offset` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 5222500 |
+| `skip_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `theme` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 14 |
+| `viewed_leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 0 |
+| `child_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `has_premium_extras` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `has_premium_primary_extra` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `parent_rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 66 |
+| `parent_guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://show/5d9c081b170e24001f2a7be4 |
+| `parent_studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | UCP |
+| `parent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66 |
+| `parent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Caprica |
+| `parent_index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `parent_year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2010 |
+| `parent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66/thumb/1705716261 |
+| `parent_theme` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66/theme/1705716261 |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemspart.md b/docs/models/operations/getlibraryitemspart.md
new file mode 100644
index 0000000..9e0edaf
--- /dev/null
+++ b/docs/models/operations/getlibraryitemspart.md
@@ -0,0 +1,14 @@
+# GetLibraryItemsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 119542 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/parts/119542/1680457526/file.mkv |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 11558112 |
+| `file` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /movies/Avatar The Way of Water (2022)/Avatar.The.Way.of.Water.2022.2160p.WEB-DL.DDP5.1.Atmos.DV.HDR10.HEVC-CMRG.mkv |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 36158371307 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mkv |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | main 10 |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsrequest.md b/docs/models/operations/getlibraryitemsrequest.md
new file mode 100644
index 0000000..bd79d8a
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsrequest.md
@@ -0,0 +1,9 @@
+# GetLibraryItemsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| `section_id` | *Integer* | :heavy_check_mark: | the Id of the library to query |
+| `tag` | [Operations::Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsresponse.md b/docs/models/operations/getlibraryitemsresponse.md
new file mode 100644
index 0000000..5775672
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsresponse.md
@@ -0,0 +1,11 @@
+# GetLibraryItemsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::GetLibraryItemsResponseBody)](../../models/operations/getlibraryitemsresponsebody.md) | :heavy_minus_sign: | The contents of the library by section and tag |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsresponsebody.md b/docs/models/operations/getlibraryitemsresponsebody.md
new file mode 100644
index 0000000..13588b4
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsresponsebody.md
@@ -0,0 +1,10 @@
+# GetLibraryItemsResponseBody
+
+The contents of the library by section and tag
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetLibraryItemsMediaContainer)](../../models/operations/getlibraryitemsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemsrole.md b/docs/models/operations/getlibraryitemsrole.md
new file mode 100644
index 0000000..8aaa98e
--- /dev/null
+++ b/docs/models/operations/getlibraryitemsrole.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Sigourney Weaver |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryitemswriter.md b/docs/models/operations/getlibraryitemswriter.md
new file mode 100644
index 0000000..2852516
--- /dev/null
+++ b/docs/models/operations/getlibraryitemswriter.md
@@ -0,0 +1,8 @@
+# GetLibraryItemsWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | James Cameron |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrarylibraryresponsebody.md b/docs/models/operations/getlibrarylibraryresponsebody.md
new file mode 100644
index 0000000..40e1665
--- /dev/null
+++ b/docs/models/operations/getlibrarylibraryresponsebody.md
@@ -0,0 +1,10 @@
+# GetLibraryLibraryResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetLibraryErrors](../../models/operations/getlibraryerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrarymediacontainer.md b/docs/models/operations/getlibrarymediacontainer.md
new file mode 100644
index 0000000..df0032b
--- /dev/null
+++ b/docs/models/operations/getlibrarymediacontainer.md
@@ -0,0 +1,22 @@
+# GetLibraryMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 29 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /:/resources/movie-fanart.jpg |
+| `content` | *T.nilable(String)* | :heavy_minus_sign: | N/A | secondary |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `library_section_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `media_tag_prefix` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `media_tag_version` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1701731894 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /:/resources/movie.png |
+| `title1` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `view_group` | *T.nilable(String)* | :heavy_minus_sign: | N/A | secondary |
+| `view_mode` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 65592 |
+| `directory` | T::Array<[Operations::GetLibraryDirectory](../../models/operations/getlibrarydirectory.md)> | :heavy_minus_sign: | N/A | [{"key":"search?type=1","prompt":"Search Movies","search":true,"secondary":true,"title":"Search..."}] |
+| `type` | T::Array<[Operations::GetLibraryType](../../models/operations/getlibrarytype.md)> | :heavy_minus_sign: | N/A | [{"Field":[{"key":"title","title":"Title","type":"string"},{"key":"studio","title":"Studio","type":"string"},{"key":"userRating","subType":"rating","title":"Rating","type":"integer"},{"key":"contentRating","title":"Content Rating","type":"tag"},{"key":"year","subType":"year","title":"Year","type":"integer"},{"key":"decade","subType":"decade","title":"Decade","type":"integer"},{"key":"originallyAvailableAt","title":"Release Date","type":"date"},{"key":"duration","subType":"duration","title":"Duration","type":"integer"},{"key":"unmatched","title":"Unmatched","type":"boolean"},{"key":"duplicate","title":"Duplicate","type":"boolean"},{"key":"genre","title":"Genre","type":"tag"},{"key":"collection","title":"Collection","type":"tag"},{"key":"director","title":"Director","type":"tag"},{"key":"writer","title":"Writer","type":"tag"},{"key":"producer","title":"Producer","type":"tag"},{"key":"actor","title":"Actor","type":"tag"},{"key":"country","title":"Country","type":"tag"},{"key":"addedAt","title":"Date Added","type":"date"},{"key":"viewCount","title":"Plays","type":"integer"},{"key":"lastViewedAt","title":"Last Played","type":"date"},{"key":"unwatched","title":"Unplayed","type":"boolean"},{"key":"resolution","title":"Resolution","type":"resolution"},{"key":"hdr","subType":"hdr","title":"HDR","type":"boolean"},{"key":"mediaSize","subType":"fileSize","title":"File Size","type":"integer"},{"key":"mediaBitrate","subType":"bitrate","title":"Bitrate","type":"integer"},{"key":"subtitleLanguage","title":"Subtitle Language","type":"subtitleLanguage"},{"key":"audioLanguage","title":"Audio Language","type":"audioLanguage"},{"key":"inProgress","title":"In Progress","type":"boolean"},{"key":"trash","title":"Trash","type":"boolean"},{"key":"editionTitle","title":"Edition","type":"string"},{"key":"label","title":"Label","type":"tag"}],"Filter":[{"filter":"genre","filterType":"string","key":"/library/sections/1/genre","title":"Genre","type":"filter"},{"filter":"year","filterType":"integer","key":"/library/sections/1/year","title":"Year","type":"filter"},{"filter":"decade","filterType":"integer","key":"/library/sections/1/decade","title":"Decade","type":"filter"},{"filter":"contentRating","filterType":"string","key":"/library/sections/1/contentRating","title":"Content Rating","type":"filter"},{"filter":"collection","filterType":"string","key":"/library/sections/1/collection","title":"Collection","type":"filter"},{"filter":"director","filterType":"string","key":"/library/sections/1/director","title":"Director","type":"filter"},{"filter":"actor","filterType":"string","key":"/library/sections/1/actor","title":"Actor","type":"filter"},{"filter":"writer","filterType":"string","key":"/library/sections/1/writer","title":"Writer","type":"filter"},{"filter":"producer","filterType":"string","key":"/library/sections/1/producer","title":"Producer","type":"filter"},{"filter":"country","filterType":"string","key":"/library/sections/1/country","title":"Country","type":"filter"},{"filter":"studio","filterType":"string","key":"/library/sections/1/studio","title":"Studio","type":"filter"},{"filter":"resolution","filterType":"string","key":"/library/sections/1/resolution","title":"Resolution","type":"filter"},{"filter":"hdr","filterType":"boolean","key":"/library/sections/1/hdr","title":"HDR","type":"filter"},{"filter":"unwatched","filterType":"boolean","key":"/library/sections/1/unwatched","title":"Unplayed","type":"filter"},{"filter":"inProgress","filterType":"boolean","key":"/library/sections/1/inProgress","title":"In Progress","type":"filter"},{"filter":"unmatched","filterType":"boolean","key":"/library/sections/1/unmatched","title":"Unmatched","type":"filter"},{"filter":"audioLanguage","filterType":"string","key":"/library/sections/1/audioLanguage","title":"Audio Language","type":"filter"},{"filter":"subtitleLanguage","filterType":"string","key":"/library/sections/1/subtitleLanguage","title":"Subtitle Language","type":"filter"},{"filter":"editionTitle","filterType":"string","key":"/library/sections/1/editionTitle","title":"Edition","type":"filter"},{"filter":"label","filterType":"string","key":"/library/sections/1/label","title":"Labels","type":"filter"}],"Sort":[{"default":"asc","defaultDirection":"asc","descKey":"titleSort:desc","firstCharacterKey":"/library/sections/1/firstCharacter","key":"titleSort","title":"Title"},{"defaultDirection":"desc","descKey":"originallyAvailableAt:desc","key":"originallyAvailableAt","title":"Release Date"},{"defaultDirection":"desc","descKey":"rating:desc","key":"rating","title":"Critic Rating"},{"defaultDirection":"desc","descKey":"audienceRating:desc","key":"audienceRating","title":"Audience Rating"},{"defaultDirection":"desc","descKey":"duration:desc","key":"duration","title":"Duration"},{"defaultDirection":"desc","descKey":"addedAt:desc","key":"addedAt","title":"Date Added"},{"defaultDirection":"desc","descKey":"lastViewedAt:desc","key":"lastViewedAt","title":"Date Viewed"},{"defaultDirection":"asc","descKey":"mediaHeight:desc","key":"mediaHeight","title":"Resolution"},{"defaultDirection":"desc","descKey":"random:desc","key":"random","title":"Randomly"}],"active":false,"key":"/library/sections/1/all?type=1","title":"Movies","type":"movie"}] |
+| `field_type` | T::Array<[Operations::FieldType](../../models/operations/fieldtype.md)> | :heavy_minus_sign: | N/A | [{"Operator":[{"key":"=","title":"is"}],"type":"resolution"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryrequest.md b/docs/models/operations/getlibraryrequest.md
new file mode 100644
index 0000000..ac0129d
--- /dev/null
+++ b/docs/models/operations/getlibraryrequest.md
@@ -0,0 +1,9 @@
+# GetLibraryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `section_id` | *Float* | :heavy_check_mark: | the Id of the library to query | 1000 |
+| `include_details` | [T.nilable(Operations::IncludeDetails)](../../models/operations/includedetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).
Only exists for backwards compatibility, media providers other than the server libraries have it on always.
| |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryresponse.md b/docs/models/operations/getlibraryresponse.md
new file mode 100644
index 0000000..ddecec7
--- /dev/null
+++ b/docs/models/operations/getlibraryresponse.md
@@ -0,0 +1,12 @@
+# GetLibraryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetLibraryResponseBody)](../../models/operations/getlibraryresponsebody.md) | :heavy_minus_sign: | The details of the library |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetLibraryLibraryResponseBody)](../../models/operations/getlibrarylibraryresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getlibraryresponsebody.md b/docs/models/operations/getlibraryresponsebody.md
new file mode 100644
index 0000000..46cce93
--- /dev/null
+++ b/docs/models/operations/getlibraryresponsebody.md
@@ -0,0 +1,10 @@
+# GetLibraryResponseBody
+
+The details of the library
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetLibraryMediaContainer)](../../models/operations/getlibrarymediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getlibrarytype.md b/docs/models/operations/getlibrarytype.md
new file mode 100644
index 0000000..ecbd4be
--- /dev/null
+++ b/docs/models/operations/getlibrarytype.md
@@ -0,0 +1,14 @@
+# GetLibraryType
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `active` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `filter` | T::Array<[Operations::Filter](../../models/operations/filter.md)> | :heavy_minus_sign: | N/A | [{"filter":"label","filterType":"string","key":"/library/sections/1/label","title":"Labels","type":"filter"}] |
+| `sort` | T::Array<[Operations::Sort](../../models/operations/sort.md)> | :heavy_minus_sign: | N/A | [{"default":"asc","defaultDirection":"desc","descKey":"random:desc","firstCharacterKey":"/library/sections/1/firstCharacter","key":"random","title":"Randomly"}] |
+| `field` | T::Array<[Operations::Field](../../models/operations/field.md)> | :heavy_minus_sign: | N/A | [{"key":"label","subType":"bitrate","title":"Label","type":"tag"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatachildrendirectory.md b/docs/models/operations/getmetadatachildrendirectory.md
new file mode 100644
index 0000000..8e171de
--- /dev/null
+++ b/docs/models/operations/getmetadatachildrendirectory.md
@@ -0,0 +1,12 @@
+# GetMetadataChildrenDirectory
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 16 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 |
+| `viewed_leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 16 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072/allLeaves |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | All episodes |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatachildrenerrors.md b/docs/models/operations/getmetadatachildrenerrors.md
new file mode 100644
index 0000000..6ca6c1b
--- /dev/null
+++ b/docs/models/operations/getmetadatachildrenerrors.md
@@ -0,0 +1,10 @@
+# GetMetadataChildrenErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatachildrenlibraryresponsebody.md b/docs/models/operations/getmetadatachildrenlibraryresponsebody.md
new file mode 100644
index 0000000..be7140c
--- /dev/null
+++ b/docs/models/operations/getmetadatachildrenlibraryresponsebody.md
@@ -0,0 +1,10 @@
+# GetMetadataChildrenLibraryResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetMetadataChildrenErrors](../../models/operations/getmetadatachildrenerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatachildrenmediacontainer.md b/docs/models/operations/getmetadatachildrenmediacontainer.md
new file mode 100644
index 0000000..cdaf32c
--- /dev/null
+++ b/docs/models/operations/getmetadatachildrenmediacontainer.md
@@ -0,0 +1,30 @@
+# GetMetadataChildrenMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 3 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072/art/1705739923 |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 30072 |
+| `library_section_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | TV Shows |
+| `library_section_uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 4bb2521c-8ba9-459b-aaee-8ab8bc35eabd |
+| `media_tag_prefix` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `media_tag_version` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1701731894 |
+| `nocache` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `parent_index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `parent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Reacher |
+| `parent_year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2022 |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | When retired Military Police Officer Jack Reacher is arrested for a murder he did not commit, he finds himself in the middle of a deadly conspiracy full of dirty cops, shady businessmen, and scheming politicians. With nothing but his wits, he must figure out what is happening in Margrave, Georgia. |
+| `theme` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072/theme/1705739923 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 |
+| `title1` | *T.nilable(String)* | :heavy_minus_sign: | N/A | TV Shows |
+| `title2` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Reacher |
+| `view_group` | *T.nilable(String)* | :heavy_minus_sign: | N/A | season |
+| `view_mode` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 65593 |
+| `directory` | T::Array<[Operations::GetMetadataChildrenDirectory](../../models/operations/getmetadatachildrendirectory.md)> | :heavy_minus_sign: | N/A | [{"key":"/library/metadata/30072/allLeaves","leafCount":16,"thumb":"/library/metadata/30072/thumb/1705739923","title":"All episodes","viewedLeafCount":16}] |
+| `metadata` | T::Array<[Operations::GetMetadataChildrenMetadata](../../models/operations/getmetadatachildrenmetadata.md)> | :heavy_minus_sign: | N/A | [{"addedAt":1702602021,"art":"/library/metadata/30072/art/1705739923","guid":"plex://season/652aea6549508477c34c6000","index":2,"key":"/library/metadata/66488/children","lastRatedAt":1703881224,"lastViewedAt":1705646565,"leafCount":8,"parentGuid":"plex://show/5d9c09190aaccd001f8f42f0","parentIndex":1,"parentKey":"/library/metadata/30072","parentRatingKey":"30072","parentStudio":"Amazon Studios","parentTheme":"/library/metadata/30072/theme/1705739923","parentThumb":"/library/metadata/30072/thumb/1705739923","parentTitle":"Reacher","parentYear":2022,"ratingKey":"66488","skipCount":1,"summary":"Based on\"Bad Luck and Trouble,\" when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind—revenge.","thumb":"/library/metadata/66488/thumb/1703065033","title":"Season 2","type":"season","updatedAt":1703065033,"userRating":9,"viewCount":11,"viewedLeafCount":8}] |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatachildrenmetadata.md b/docs/models/operations/getmetadatachildrenmetadata.md
new file mode 100644
index 0000000..60c46dc
--- /dev/null
+++ b/docs/models/operations/getmetadatachildrenmetadata.md
@@ -0,0 +1,34 @@
+# GetMetadataChildrenMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 66488 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66488/children |
+| `parent_rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 30072 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://season/652aea6549508477c34c6000 |
+| `parent_guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://show/5d9c09190aaccd001f8f42f0 |
+| `parent_studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Amazon Studios |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | season |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Season 2 |
+| `parent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072 |
+| `parent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Reacher |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Based on"Bad Luck and Trouble," when members of Reacher's old military unit start turning up dead, Reacher has just one thing on his mind—revenge. |
+| `index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `parent_index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `view_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 11 |
+| `last_viewed_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705646565 |
+| `parent_year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2022 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/66488/thumb/1703065033 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072/art/1705739923 |
+| `parent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072/thumb/1705739923 |
+| `parent_theme` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/30072/theme/1705739923 |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 8 |
+| `viewed_leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 8 |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1702602021 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1703065033 |
+| `user_rating` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 9 |
+| `skip_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `last_rated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1703881224 |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatachildrenrequest.md b/docs/models/operations/getmetadatachildrenrequest.md
new file mode 100644
index 0000000..6f02671
--- /dev/null
+++ b/docs/models/operations/getmetadatachildrenrequest.md
@@ -0,0 +1,8 @@
+# GetMetadataChildrenRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| `rating_key` | *Float* | :heavy_check_mark: | the id of the library item to return the children of. |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatachildrenresponse.md b/docs/models/operations/getmetadatachildrenresponse.md
new file mode 100644
index 0000000..816b0ca
--- /dev/null
+++ b/docs/models/operations/getmetadatachildrenresponse.md
@@ -0,0 +1,12 @@
+# GetMetadataChildrenResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetMetadataChildrenResponseBody)](../../models/operations/getmetadatachildrenresponsebody.md) | :heavy_minus_sign: | The children of the library item. |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetMetadataChildrenLibraryResponseBody)](../../models/operations/getmetadatachildrenlibraryresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatachildrenresponsebody.md b/docs/models/operations/getmetadatachildrenresponsebody.md
new file mode 100644
index 0000000..a96fbe9
--- /dev/null
+++ b/docs/models/operations/getmetadatachildrenresponsebody.md
@@ -0,0 +1,10 @@
+# GetMetadataChildrenResponseBody
+
+The children of the library item.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetMetadataChildrenMediaContainer)](../../models/operations/getmetadatachildrenmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatacountry.md b/docs/models/operations/getmetadatacountry.md
new file mode 100644
index 0000000..5c63912
--- /dev/null
+++ b/docs/models/operations/getmetadatacountry.md
@@ -0,0 +1,10 @@
+# GetMetadataCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 116 |
+| `filter` | *T.nilable(String)* | :heavy_minus_sign: | N/A | country=116 |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | United States of America |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatadirector.md b/docs/models/operations/getmetadatadirector.md
new file mode 100644
index 0000000..8514f3c
--- /dev/null
+++ b/docs/models/operations/getmetadatadirector.md
@@ -0,0 +1,12 @@
+# GetMetadataDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 130 |
+| `filter` | *T.nilable(String)* | :heavy_minus_sign: | N/A | director=130 |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Joss Whedon |
+| `tag_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 5d776828880197001ec90e8f |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadataerrors.md b/docs/models/operations/getmetadataerrors.md
new file mode 100644
index 0000000..af62243
--- /dev/null
+++ b/docs/models/operations/getmetadataerrors.md
@@ -0,0 +1,10 @@
+# GetMetadataErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatagenre.md b/docs/models/operations/getmetadatagenre.md
new file mode 100644
index 0000000..fcf64ae
--- /dev/null
+++ b/docs/models/operations/getmetadatagenre.md
@@ -0,0 +1,10 @@
+# GetMetadataGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------- | -------------------- | -------------------- | -------------------- | -------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 184 |
+| `filter` | *T.nilable(String)* | :heavy_minus_sign: | N/A | genre=184 |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Thriller |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatalibraryresponsebody.md b/docs/models/operations/getmetadatalibraryresponsebody.md
new file mode 100644
index 0000000..49ced9c
--- /dev/null
+++ b/docs/models/operations/getmetadatalibraryresponsebody.md
@@ -0,0 +1,10 @@
+# GetMetadataLibraryResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetMetadataErrors](../../models/operations/getmetadataerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatamedia.md b/docs/models/operations/getmetadatamedia.md
new file mode 100644
index 0000000..a36f2d0
--- /dev/null
+++ b/docs/models/operations/getmetadatamedia.md
@@ -0,0 +1,24 @@
+# GetMetadataMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 15 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 141417 |
+| `bitrate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2278 |
+| `width` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 814 |
+| `aspect_ratio` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2.35 |
+| `audio_channels` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | aac |
+| `video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | h264 |
+| `video_resolution` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mp4 |
+| `video_frame_rate` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 24p |
+| `optimized_for_streaming` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 0 |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | high |
+| `part` | T::Array<[Operations::GetMetadataPart](../../models/operations/getmetadatapart.md)> | :heavy_minus_sign: | N/A | [{"Stream":[{"bitDepth":8,"bitrate":2160,"chromaLocation":"left","chromaSubsampling":14520,"codec":"h264","codedHeight":816,"codedWidth":1920,"colorPrimaries":"bt709","colorRange":"tv","colorSpace":"bt709","colorTrc":"bt709","default":true,"displayTitle":"1080p (H.264)","extendedDisplayTitle":"1080p (H.264)","frameRate":24,"hasScalingMatrix":false,"height":814,"id":30,"index":1,"level":40,"profile":"high","refFrames":4,"scanType":"progressive","streamIdentifier":"2","streamType":1,"width":1920},{"bitrate":128,"channels":2,"codec":"aac","default":true,"displayTitle":"English (AAC Stereo)","extendedDisplayTitle":"English (AAC Stereo)","id":29,"index":0,"language":"English","languageCode":"eng","languageTag":"en","profile":"lc","samplingRate":44100,"selected":true,"streamIdentifier":"1","streamType":2}],"audioProfile":"lc","container":"mp4","duration":141417,"file":"/movies/Serenity (2005)/Serenity (2005).mp4","has64bitOffsets":false,"id":15,"key":"/library/parts/15/1705637151/file.mp4","optimizedForStreaming":false,"size":40271948,"videoProfile":"high"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatamediacontainer.md b/docs/models/operations/getmetadatamediacontainer.md
new file mode 100644
index 0000000..efa952e
--- /dev/null
+++ b/docs/models/operations/getmetadatamediacontainer.md
@@ -0,0 +1,16 @@
+# GetMetadataMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `library_section_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `library_section_uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | cfc899d7-3000-46f6-8489-b9592714ada5 |
+| `media_tag_prefix` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `media_tag_version` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1698860922 |
+| `metadata` | T::Array<[Operations::GetMetadataMetadata](../../models/operations/getmetadatametadata.md)> | :heavy_minus_sign: | N/A | [{"Country":[{"filter":"country=116","id":116,"tag":"United States of America"}],"Director":[{"filter":"director=130","id":130,"tag":"Joss Whedon","tagKey":"5d776828880197001ec90e8f","thumb":"https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg"}],"Genre":[{"filter":"genre=5","id":5,"tag":"Science Fiction"}],"Guid":[{"id":"imdb://tt0379786"}],"Media":[{"Part":[{"Stream":[{"bitDepth":8,"bitrate":2160,"chromaLocation":"left","chromaSubsampling":14520,"codec":"h264","codedHeight":816,"codedWidth":1920,"colorPrimaries":"bt709","colorRange":"tv","colorSpace":"bt709","colorTrc":"bt709","default":true,"displayTitle":"1080p (H.264)","extendedDisplayTitle":"1080p (H.264)","frameRate":24,"hasScalingMatrix":false,"height":814,"id":30,"index":1,"level":40,"profile":"high","refFrames":4,"scanType":"progressive","streamIdentifier":"2","streamType":1,"width":1920},{"bitrate":128,"channels":2,"codec":"aac","default":true,"displayTitle":"English (AAC Stereo)","extendedDisplayTitle":"English (AAC Stereo)","id":29,"index":0,"language":"English","languageCode":"eng","languageTag":"en","profile":"lc","samplingRate":44100,"selected":true,"streamIdentifier":"1","streamType":2}],"audioProfile":"lc","container":"mp4","duration":141417,"file":"/movies/Serenity (2005)/Serenity (2005).mp4","has64bitOffsets":false,"id":15,"key":"/library/parts/15/1705637151/file.mp4","optimizedForStreaming":false,"size":40271948,"videoProfile":"high"}],"aspectRatio":2.35,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2278,"container":"mp4","duration":141417,"has64bitOffsets":false,"height":814,"id":15,"optimizedForStreaming":0,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}],"Producer":[{"filter":"producer=221","id":221,"tag":"Barry Mendel","tagKey":"5d776826961905001eb90e2b","thumb":"https://metadata-static.plex.tv/8/people/87877371326a964634d18556d94547e1.jpg"}],"Rating":[{"image":"imdb://image.rating","type":"audience","value":7.8}],"Role":[{"filter":"actor=8","id":8,"role":"Malcolm \"Mal\" Reynolds","tag":"Nathan Fillion","tagKey":"5d7768286f4521001ea9945c","thumb":"https://metadata-static.plex.tv/4/people/4a2890ca346eb832500b1ed0add89d5e.jpg"}],"Writer":[{"filter":"writer=132","id":132,"tag":"Joss Whedon","tagKey":"5d776828880197001ec90e8f","thumb":"https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg"}],"addedAt":1705637164,"art":"/library/metadata/17/art/1705637165","audienceRating":9.1,"audienceRatingImage":"rottentomatoes://image.rating.upright","contentRating":"PG-13","duration":141417,"guid":"plex://movie/5d77683f6f4521001ea9dc53","hasPremiumPrimaryExtra":"1","key":"/library/metadata/17","librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"2005-09-29T00:00:00Z","rating":8.2,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"17","studio":"Universal Pictures","summary":"Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.","tagline":"They aim to misbehave.","thumb":"/library/metadata/17/thumb/1705637165","title":"Serenity","type":"movie","updatedAt":1705637165,"year":2005}] |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatametadata.md b/docs/models/operations/getmetadatametadata.md
new file mode 100644
index 0000000..8b93565
--- /dev/null
+++ b/docs/models/operations/getmetadatametadata.md
@@ -0,0 +1,40 @@
+# GetMetadataMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 17 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/17 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 |
+| `studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Universal Pictures |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Serenity |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `library_section_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `library_section_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/1 |
+| `content_rating` | *T.nilable(String)* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Serenity continues the story of the TV series it was based upon ("Firefly"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job. |
+| `rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 8.2 |
+| `audience_rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 9.1 |
+| `year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2005 |
+| `tagline` | *T.nilable(String)* | :heavy_minus_sign: | N/A | They aim to misbehave. |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 141417 |
+| `originally_available_at` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_minus_sign: | N/A | 2005-09-29 00:00:00 +0000 UTC |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705637164 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705637165 |
+| `audience_rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `has_premium_primary_extra` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe |
+| `media` | T::Array<[Operations::GetMetadataMedia](../../models/operations/getmetadatamedia.md)> | :heavy_minus_sign: | N/A | [{"Part":[{"Stream":[{"bitDepth":8,"bitrate":2160,"chromaLocation":"left","chromaSubsampling":14520,"codec":"h264","codedHeight":816,"codedWidth":1920,"colorPrimaries":"bt709","colorRange":"tv","colorSpace":"bt709","colorTrc":"bt709","default":true,"displayTitle":"1080p (H.264)","extendedDisplayTitle":"1080p (H.264)","frameRate":24,"hasScalingMatrix":false,"height":814,"id":30,"index":1,"level":40,"profile":"high","refFrames":4,"scanType":"progressive","streamIdentifier":"2","streamType":1,"width":1920},{"bitrate":128,"channels":2,"codec":"aac","default":true,"displayTitle":"English (AAC Stereo)","extendedDisplayTitle":"English (AAC Stereo)","id":29,"index":0,"language":"English","languageCode":"eng","languageTag":"en","profile":"lc","samplingRate":44100,"selected":true,"streamIdentifier":"1","streamType":2}],"audioProfile":"lc","container":"mp4","duration":141417,"file":"/movies/Serenity (2005)/Serenity (2005).mp4","has64bitOffsets":false,"id":15,"key":"/library/parts/15/1705637151/file.mp4","optimizedForStreaming":false,"size":40271948,"videoProfile":"high"}],"aspectRatio":2.35,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2278,"container":"mp4","duration":141417,"has64bitOffsets":false,"height":814,"id":15,"optimizedForStreaming":0,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}] |
+| `genre` | T::Array<[Operations::GetMetadataGenre](../../models/operations/getmetadatagenre.md)> | :heavy_minus_sign: | N/A | [{"filter":"genre=184","id":184,"tag":"Thriller"}] |
+| `country` | T::Array<[Operations::GetMetadataCountry](../../models/operations/getmetadatacountry.md)> | :heavy_minus_sign: | N/A | [{"filter":"country=116","id":116,"tag":"United States of America"}] |
+| `guids` | T::Array<[Operations::Guids](../../models/operations/guids.md)> | :heavy_minus_sign: | N/A | [{"id":"tvdb://2337"}] |
+| `ratings` | T::Array<[Operations::Ratings](../../models/operations/ratings.md)> | :heavy_minus_sign: | N/A | [{"image":"themoviedb://image.rating","type":"audience","value":7.4}] |
+| `director` | T::Array<[Operations::GetMetadataDirector](../../models/operations/getmetadatadirector.md)> | :heavy_minus_sign: | N/A | [{"filter":"director=130","id":130,"tag":"Joss Whedon","tagKey":"5d776828880197001ec90e8f","thumb":"https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg"}] |
+| `writer` | T::Array<[Operations::GetMetadataWriter](../../models/operations/getmetadatawriter.md)> | :heavy_minus_sign: | N/A | [{"filter":"writer=132","id":132,"tag":"Joss Whedon","tagKey":"5d776828880197001ec90e8f","thumb":"https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg"}] |
+| `role` | T::Array<[Operations::GetMetadataRole](../../models/operations/getmetadatarole.md)> | :heavy_minus_sign: | N/A | [{"filter":"actor=220","id":220,"role":"Bar Guy (uncredited)","tag":"Dennis Keiffer","tagKey":"5d77683554f42c001f8c4708","thumb":"https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg"}] |
+| `producer` | T::Array<[Operations::Producer](../../models/operations/producer.md)> | :heavy_minus_sign: | N/A | [{"filter":"producer=221","id":221,"tag":"Barry Mendel","tagKey":"5d776826961905001eb90e2b","thumb":"https://metadata-static.plex.tv/8/people/87877371326a964634d18556d94547e1.jpg"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatapart.md b/docs/models/operations/getmetadatapart.md
new file mode 100644
index 0000000..3b2e421
--- /dev/null
+++ b/docs/models/operations/getmetadatapart.md
@@ -0,0 +1,18 @@
+# GetMetadataPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 15 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 141417 |
+| `file` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 40271948 |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mp4 |
+| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `optimized_for_streaming` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | high |
+| `stream` | T::Array<[Operations::Stream](../../models/operations/stream.md)> | :heavy_minus_sign: | N/A | [{"bitDepth":8,"bitrate":128,"channels":2,"chromaLocation":"left","chromaSubsampling":14520,"codec":"aac","codedHeight":816,"codedWidth":1920,"colorPrimaries":"bt709","colorRange":"tv","colorSpace":"bt709","colorTrc":"bt709","default":true,"displayTitle":"English (AAC Stereo)","extendedDisplayTitle":"English (AAC Stereo)","frameRate":24,"hasScalingMatrix":false,"height":814,"id":29,"index":0,"language":"English","languageCode":"eng","languageTag":"en","level":40,"profile":"lc","refFrames":4,"samplingRate":44100,"scanType":"progressive","selected":true,"streamIdentifier":"1","streamType":2,"width":1920}] |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatarequest.md b/docs/models/operations/getmetadatarequest.md
new file mode 100644
index 0000000..1428145
--- /dev/null
+++ b/docs/models/operations/getmetadatarequest.md
@@ -0,0 +1,8 @@
+# GetMetadataRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| `rating_key` | *Float* | :heavy_check_mark: | the id of the library item to return the children of. |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadataresponse.md b/docs/models/operations/getmetadataresponse.md
new file mode 100644
index 0000000..5817aca
--- /dev/null
+++ b/docs/models/operations/getmetadataresponse.md
@@ -0,0 +1,12 @@
+# GetMetadataResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetMetadataResponseBody)](../../models/operations/getmetadataresponsebody.md) | :heavy_minus_sign: | The metadata of the library item. |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetMetadataLibraryResponseBody)](../../models/operations/getmetadatalibraryresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadataresponsebody.md b/docs/models/operations/getmetadataresponsebody.md
new file mode 100644
index 0000000..70eaa37
--- /dev/null
+++ b/docs/models/operations/getmetadataresponsebody.md
@@ -0,0 +1,10 @@
+# GetMetadataResponseBody
+
+The metadata of the library item.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetMetadataMediaContainer)](../../models/operations/getmetadatamediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatarole.md b/docs/models/operations/getmetadatarole.md
new file mode 100644
index 0000000..2dd6545
--- /dev/null
+++ b/docs/models/operations/getmetadatarole.md
@@ -0,0 +1,13 @@
+# GetMetadataRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 220 |
+| `filter` | *T.nilable(String)* | :heavy_minus_sign: | N/A | actor=220 |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Dennis Keiffer |
+| `tag_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 5d77683554f42c001f8c4708 |
+| `role` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Bar Guy (uncredited) |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/6/people/648e9a7ea1d537bccfcd7615134b78ce.jpg |
\ No newline at end of file
diff --git a/docs/models/operations/getmetadatawriter.md b/docs/models/operations/getmetadatawriter.md
new file mode 100644
index 0000000..45f03b0
--- /dev/null
+++ b/docs/models/operations/getmetadatawriter.md
@@ -0,0 +1,12 @@
+# GetMetadataWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 132 |
+| `filter` | *T.nilable(String)* | :heavy_minus_sign: | N/A | writer=132 |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Joss Whedon |
+| `tag_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 5d776828880197001ec90e8f |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/people/5d776828880197001ec90e8f.jpg |
\ No newline at end of file
diff --git a/docs/models/operations/getmyplexaccounterrors.md b/docs/models/operations/getmyplexaccounterrors.md
new file mode 100644
index 0000000..3d64e41
--- /dev/null
+++ b/docs/models/operations/getmyplexaccounterrors.md
@@ -0,0 +1,10 @@
+# GetMyPlexAccountErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getmyplexaccountresponse.md b/docs/models/operations/getmyplexaccountresponse.md
new file mode 100644
index 0000000..a3c7721
--- /dev/null
+++ b/docs/models/operations/getmyplexaccountresponse.md
@@ -0,0 +1,12 @@
+# GetMyPlexAccountResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetMyPlexAccountResponseBody)](../../models/operations/getmyplexaccountresponsebody.md) | :heavy_minus_sign: | MyPlex Account |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetMyPlexAccountServerResponseBody)](../../models/operations/getmyplexaccountserverresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getmyplexaccountresponsebody.md b/docs/models/operations/getmyplexaccountresponsebody.md
new file mode 100644
index 0000000..b5954a5
--- /dev/null
+++ b/docs/models/operations/getmyplexaccountresponsebody.md
@@ -0,0 +1,10 @@
+# GetMyPlexAccountResponseBody
+
+MyPlex Account
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `my_plex` | [T.nilable(Operations::MyPlex)](../../models/operations/myplex.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getmyplexaccountserverresponsebody.md b/docs/models/operations/getmyplexaccountserverresponsebody.md
new file mode 100644
index 0000000..d5c1e75
--- /dev/null
+++ b/docs/models/operations/getmyplexaccountserverresponsebody.md
@@ -0,0 +1,10 @@
+# GetMyPlexAccountServerResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetMyPlexAccountErrors](../../models/operations/getmyplexaccounterrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckerrors.md b/docs/models/operations/getondeckerrors.md
new file mode 100644
index 0000000..a914111
--- /dev/null
+++ b/docs/models/operations/getondeckerrors.md
@@ -0,0 +1,10 @@
+# GetOnDeckErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckguids.md b/docs/models/operations/getondeckguids.md
new file mode 100644
index 0000000..508f834
--- /dev/null
+++ b/docs/models/operations/getondeckguids.md
@@ -0,0 +1,8 @@
+# GetOnDeckGuids
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | imdb://tt13303712 |
\ No newline at end of file
diff --git a/docs/models/operations/getondecklibraryresponsebody.md b/docs/models/operations/getondecklibraryresponsebody.md
new file mode 100644
index 0000000..43e2c07
--- /dev/null
+++ b/docs/models/operations/getondecklibraryresponsebody.md
@@ -0,0 +1,10 @@
+# GetOnDeckLibraryResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetOnDeckErrors](../../models/operations/getondeckerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckmedia.md b/docs/models/operations/getondeckmedia.md
new file mode 100644
index 0000000..e7dee00
--- /dev/null
+++ b/docs/models/operations/getondeckmedia.md
@@ -0,0 +1,22 @@
+# GetOnDeckMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| `id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 80994 |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 420080 |
+| `bitrate` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1046 |
+| `width` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1080 |
+| `aspect_ratio` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1.78 |
+| `audio_channels` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | aac |
+| `video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | hevc |
+| `video_resolution` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mkv |
+| `video_frame_rate` | *T.nilable(String)* | :heavy_minus_sign: | N/A | PAL |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | main |
+| `part` | T::Array<[Operations::GetOnDeckPart](../../models/operations/getondeckpart.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckmediacontainer.md b/docs/models/operations/getondeckmediacontainer.md
new file mode 100644
index 0000000..3bb9311
--- /dev/null
+++ b/docs/models/operations/getondeckmediacontainer.md
@@ -0,0 +1,14 @@
+# GetOnDeckMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 16 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `media_tag_prefix` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `media_tag_version` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1680021154 |
+| `mixed_parents` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `metadata` | T::Array<[Operations::GetOnDeckMetadata](../../models/operations/getondeckmetadata.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckmetadata.md b/docs/models/operations/getondeckmetadata.md
new file mode 100644
index 0000000..e83b48c
--- /dev/null
+++ b/docs/models/operations/getondeckmetadata.md
@@ -0,0 +1,43 @@
+# GetOnDeckMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `library_section_id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | TV Shows |
+| `library_section_uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 4bb2521c-8ba9-459b-aaee-8ab8bc35eabd |
+| `rating_key` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 49564 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49564 |
+| `parent_rating_key` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 49557 |
+| `grandparent_rating_key` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 49556 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://episode/5ea7d7402e7ab10042e74d4f |
+| `parent_guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://season/602e754d67f4c8002ce54b3d |
+| `grandparent_guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://show/5d9c090e705e7a001e6e94d8 |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | episode |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Circus |
+| `grandparent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49556 |
+| `parent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49557 |
+| `library_section_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/2 |
+| `grandparent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Bluey (2018) |
+| `parent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Season 2 |
+| `content_rating` | *T.nilable(String)* | :heavy_minus_sign: | N/A | TV-Y |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Bluey is the ringmaster in a game of circus with her friends but Hercules wants to play his motorcycle game instead. Luckily Bluey has a solution to keep everyone happy. |
+| `index` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 33 |
+| `parent_index` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2 |
+| `last_viewed_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1681908352 |
+| `year` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2018 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49564/thumb/1654258204 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 |
+| `parent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49557/thumb/1654258204 |
+| `grandparent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49556/thumb/1680939546 |
+| `grandparent_art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49556/art/1680939546 |
+| `grandparent_theme` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/49556/theme/1680939546 |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 420080 |
+| `originally_available_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | N/A | 2020-10-31 00:00:00 +0000 UTC |
+| `added_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1654258196 |
+| `updated_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1654258204 |
+| `media` | T::Array<[Operations::GetOnDeckMedia](../../models/operations/getondeckmedia.md)> | :heavy_minus_sign: | N/A | |
+| `guids` | T::Array<[Operations::GetOnDeckGuids](../../models/operations/getondeckguids.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckpart.md b/docs/models/operations/getondeckpart.md
new file mode 100644
index 0000000..b457938
--- /dev/null
+++ b/docs/models/operations/getondeckpart.md
@@ -0,0 +1,16 @@
+# GetOnDeckPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 80994 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/parts/80994/1655007810/file.mkv |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 420080 |
+| `file` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /tvshows/Bluey (2018)/Bluey (2018) - S02E33 - Circus.mkv |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 55148931 |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mkv |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | main |
+| `stream` | T::Array<[Operations::GetOnDeckStream](../../models/operations/getondeckstream.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckresponse.md b/docs/models/operations/getondeckresponse.md
new file mode 100644
index 0000000..329f178
--- /dev/null
+++ b/docs/models/operations/getondeckresponse.md
@@ -0,0 +1,12 @@
+# GetOnDeckResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetOnDeckResponseBody)](../../models/operations/getondeckresponsebody.md) | :heavy_minus_sign: | The on Deck content |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetOnDeckLibraryResponseBody)](../../models/operations/getondecklibraryresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckresponsebody.md b/docs/models/operations/getondeckresponsebody.md
new file mode 100644
index 0000000..2d36890
--- /dev/null
+++ b/docs/models/operations/getondeckresponsebody.md
@@ -0,0 +1,10 @@
+# GetOnDeckResponseBody
+
+The on Deck content
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetOnDeckMediaContainer)](../../models/operations/getondeckmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getondeckstream.md b/docs/models/operations/getondeckstream.md
new file mode 100644
index 0000000..47b27a3
--- /dev/null
+++ b/docs/models/operations/getondeckstream.md
@@ -0,0 +1,30 @@
+# GetOnDeckStream
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 211234 |
+| `stream_type` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1 |
+| `default` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | hevc |
+| `index` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 0 |
+| `bitrate` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 918 |
+| `language` | *T.nilable(String)* | :heavy_minus_sign: | N/A | English |
+| `language_tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | en |
+| `language_code` | *T.nilable(String)* | :heavy_minus_sign: | N/A | eng |
+| `bit_depth` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 8 |
+| `chroma_location` | *T.nilable(String)* | :heavy_minus_sign: | N/A | left |
+| `chroma_subsampling` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 4:2:0 |
+| `coded_height` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1080 |
+| `coded_width` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1920 |
+| `color_range` | *T.nilable(String)* | :heavy_minus_sign: | N/A | tv |
+| `frame_rate` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 25 |
+| `height` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1080 |
+| `level` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 120 |
+| `profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | main |
+| `ref_frames` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1 |
+| `width` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1920 |
+| `display_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) |
+| `extended_display_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1080p (HEVC Main) |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentscountry.md b/docs/models/operations/getplaylistcontentscountry.md
new file mode 100644
index 0000000..256d162
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentscountry.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | United States of America |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsdirector.md b/docs/models/operations/getplaylistcontentsdirector.md
new file mode 100644
index 0000000..8c31c81
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsdirector.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Joss Whedon |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentserrors.md b/docs/models/operations/getplaylistcontentserrors.md
new file mode 100644
index 0000000..085f205
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentserrors.md
@@ -0,0 +1,10 @@
+# GetPlaylistContentsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsgenre.md b/docs/models/operations/getplaylistcontentsgenre.md
new file mode 100644
index 0000000..891a7d3
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsgenre.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Action |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsmedia.md b/docs/models/operations/getplaylistcontentsmedia.md
new file mode 100644
index 0000000..f1c11ed
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsmedia.md
@@ -0,0 +1,24 @@
+# GetPlaylistContentsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 15 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 141416 |
+| `bitrate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2273 |
+| `width` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 814 |
+| `aspect_ratio` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2.35 |
+| `audio_channels` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | aac |
+| `video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | h264 |
+| `video_resolution` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mp4 |
+| `video_frame_rate` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 24p |
+| `optimized_for_streaming` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 0 |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | high |
+| `part` | T::Array<[Operations::GetPlaylistContentsPart](../../models/operations/getplaylistcontentspart.md)> | :heavy_minus_sign: | N/A | [{"audioProfile":"lc","container":"mp4","duration":141416,"file":"/movies/Serenity (2005)/Serenity (2005).mp4","has64bitOffsets":false,"id":15,"key":"/library/parts/15/1705637151/file.mp4","optimizedForStreaming":false,"size":40271948,"videoProfile":"high"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsmediacontainer.md b/docs/models/operations/getplaylistcontentsmediacontainer.md
new file mode 100644
index 0000000..d12e6c5
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsmediacontainer.md
@@ -0,0 +1,16 @@
+# GetPlaylistContentsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `composite` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/95/composite/1705717521 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 282 |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `playlist_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | video |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 95 |
+| `smart` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Smart Movie Playlist |
+| `metadata` | T::Array<[Operations::GetPlaylistContentsMetadata](../../models/operations/getplaylistcontentsmetadata.md)> | :heavy_minus_sign: | N/A | [{"Country":[{"tag":"United States of America"}],"Director":[{"tag":"Joss Whedon"}],"Genre":[{"tag":"Science Fiction"}],"Media":[{"Part":[{"audioProfile":"lc","container":"mp4","duration":141416,"file":"/movies/Serenity (2005)/Serenity (2005).mp4","has64bitOffsets":false,"id":15,"key":"/library/parts/15/1705637151/file.mp4","optimizedForStreaming":false,"size":40271948,"videoProfile":"high"}],"aspectRatio":2.35,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2273,"container":"mp4","duration":141416,"has64bitOffsets":false,"height":814,"id":15,"optimizedForStreaming":0,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}],"Role":[{"tag":"Nathan Fillion"}],"Writer":[{"tag":"Joss Whedon"}],"addedAt":1705637164,"art":"/library/metadata/17/art/1705637165","audienceRating":9.1,"audienceRatingImage":"rottentomatoes://image.rating.upright","contentRating":"PG-13","duration":141416,"guid":"plex://movie/5d77683f6f4521001ea9dc53","hasPremiumExtras":"1","hasPremiumPrimaryExtra":"1","key":"/library/metadata/17","librarySectionID":1,"librarySectionKey":"/library/sections/1","librarySectionTitle":"Movies","originallyAvailableAt":"2005-09-29T00:00:00Z","rating":8.2,"ratingImage":"rottentomatoes://image.rating.ripe","ratingKey":"17","studio":"Universal Pictures","summary":"Serenity continues the story of the TV series it was based upon (\"Firefly\"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job.","tagline":"They aim to misbehave.","thumb":"/library/metadata/17/thumb/1705637165","title":"Serenity","titleSort":"Amazing Spider-Man 2","type":"movie","updatedAt":1705637165,"year":2005}] |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsmetadata.md b/docs/models/operations/getplaylistcontentsmetadata.md
new file mode 100644
index 0000000..4b0909a
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsmetadata.md
@@ -0,0 +1,39 @@
+# GetPlaylistContentsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 17 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/17 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://movie/5d77683f6f4521001ea9dc53 |
+| `studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Universal Pictures |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Serenity |
+| `title_sort` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Amazing Spider-Man 2 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `library_section_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `library_section_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/1 |
+| `content_rating` | *T.nilable(String)* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Serenity continues the story of the TV series it was based upon ("Firefly"). River Tam had a secret - one in which she's not even aware - so dangerous, no one's safe, as an Alliance operative's sent to capture her, and all others are considered irrelevant to his job. |
+| `rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 8.2 |
+| `audience_rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 9.1 |
+| `year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2005 |
+| `tagline` | *T.nilable(String)* | :heavy_minus_sign: | N/A | They aim to misbehave. |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/17/thumb/1705637165 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/17/art/1705637165 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 141416 |
+| `originally_available_at` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_minus_sign: | N/A | 2005-09-29 00:00:00 +0000 UTC |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705637164 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705637165 |
+| `audience_rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `has_premium_extras` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `has_premium_primary_extra` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe |
+| `media` | T::Array<[Operations::GetPlaylistContentsMedia](../../models/operations/getplaylistcontentsmedia.md)> | :heavy_minus_sign: | N/A | [{"Part":[{"audioProfile":"lc","container":"mp4","duration":141416,"file":"/movies/Serenity (2005)/Serenity (2005).mp4","has64bitOffsets":false,"id":15,"key":"/library/parts/15/1705637151/file.mp4","optimizedForStreaming":false,"size":40271948,"videoProfile":"high"}],"aspectRatio":2.35,"audioChannels":2,"audioCodec":"aac","audioProfile":"lc","bitrate":2273,"container":"mp4","duration":141416,"has64bitOffsets":false,"height":814,"id":15,"optimizedForStreaming":0,"videoCodec":"h264","videoFrameRate":"24p","videoProfile":"high","videoResolution":"1080","width":1920}] |
+| `genre` | T::Array<[Operations::GetPlaylistContentsGenre](../../models/operations/getplaylistcontentsgenre.md)> | :heavy_minus_sign: | N/A | [{"tag":"Action"}] |
+| `country` | T::Array<[Operations::GetPlaylistContentsCountry](../../models/operations/getplaylistcontentscountry.md)> | :heavy_minus_sign: | N/A | [{"tag":"United States of America"}] |
+| `director` | T::Array<[Operations::GetPlaylistContentsDirector](../../models/operations/getplaylistcontentsdirector.md)> | :heavy_minus_sign: | N/A | [{"tag":"Joss Whedon"}] |
+| `writer` | T::Array<[Operations::GetPlaylistContentsWriter](../../models/operations/getplaylistcontentswriter.md)> | :heavy_minus_sign: | N/A | [{"tag":"Joss Whedon"}] |
+| `role` | T::Array<[Operations::GetPlaylistContentsRole](../../models/operations/getplaylistcontentsrole.md)> | :heavy_minus_sign: | N/A | [{"tag":"Gina Torres"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentspart.md b/docs/models/operations/getplaylistcontentspart.md
new file mode 100644
index 0000000..5e13d65
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentspart.md
@@ -0,0 +1,17 @@
+# GetPlaylistContentsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 15 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/parts/15/1705637151/file.mp4 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 141416 |
+| `file` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /movies/Serenity (2005)/Serenity (2005).mp4 |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 40271948 |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mp4 |
+| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `optimized_for_streaming` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | high |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsplaylistsresponsebody.md b/docs/models/operations/getplaylistcontentsplaylistsresponsebody.md
new file mode 100644
index 0000000..50058d9
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsplaylistsresponsebody.md
@@ -0,0 +1,10 @@
+# GetPlaylistContentsPlaylistsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetPlaylistContentsErrors](../../models/operations/getplaylistcontentserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsrequest.md b/docs/models/operations/getplaylistcontentsrequest.md
new file mode 100644
index 0000000..dc21a1d
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsrequest.md
@@ -0,0 +1,9 @@
+# GetPlaylistContentsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
+| `type` | *Float* | :heavy_check_mark: | the metadata type of the item to return |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsresponse.md b/docs/models/operations/getplaylistcontentsresponse.md
new file mode 100644
index 0000000..f16782d
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsresponse.md
@@ -0,0 +1,12 @@
+# GetPlaylistContentsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetPlaylistContentsResponseBody)](../../models/operations/getplaylistcontentsresponsebody.md) | :heavy_minus_sign: | The playlist contents |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetPlaylistContentsPlaylistsResponseBody)](../../models/operations/getplaylistcontentsplaylistsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsresponsebody.md b/docs/models/operations/getplaylistcontentsresponsebody.md
new file mode 100644
index 0000000..2e88a6d
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsresponsebody.md
@@ -0,0 +1,10 @@
+# GetPlaylistContentsResponseBody
+
+The playlist contents
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetPlaylistContentsMediaContainer)](../../models/operations/getplaylistcontentsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentsrole.md b/docs/models/operations/getplaylistcontentsrole.md
new file mode 100644
index 0000000..c6c3cce
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentsrole.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Gina Torres |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistcontentswriter.md b/docs/models/operations/getplaylistcontentswriter.md
new file mode 100644
index 0000000..0a29324
--- /dev/null
+++ b/docs/models/operations/getplaylistcontentswriter.md
@@ -0,0 +1,8 @@
+# GetPlaylistContentsWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Joss Whedon |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylisterrors.md b/docs/models/operations/getplaylisterrors.md
new file mode 100644
index 0000000..96d7e4d
--- /dev/null
+++ b/docs/models/operations/getplaylisterrors.md
@@ -0,0 +1,10 @@
+# GetPlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistmediacontainer.md b/docs/models/operations/getplaylistmediacontainer.md
new file mode 100644
index 0000000..8a313db
--- /dev/null
+++ b/docs/models/operations/getplaylistmediacontainer.md
@@ -0,0 +1,9 @@
+# GetPlaylistMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `metadata` | T::Array<[Operations::GetPlaylistMetadata](../../models/operations/getplaylistmetadata.md)> | :heavy_minus_sign: | N/A | [{"addedAt":1705716493,"composite":"/playlists/95/composite/1705717387","content":"library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1","duration":282000,"guid":"com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91","icon":"playlist://image.smart","key":"/playlists/95/items","leafCount":2,"playlistType":"video","ratingKey":"95","smart":true,"summary":"","title":"Smart Movie Playlist","type":"playlist","updatedAt":1705717387}] |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistmetadata.md b/docs/models/operations/getplaylistmetadata.md
new file mode 100644
index 0000000..5c1d374
--- /dev/null
+++ b/docs/models/operations/getplaylistmetadata.md
@@ -0,0 +1,22 @@
+# GetPlaylistMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `content` | *T.nilable(String)* | :heavy_minus_sign: | N/A | library://x/directory/%2Flibrary%2Fsections%2F1%2Fall%3Ftype%3D1%26push%3D1%26title%3D2%26or%3D1%26title%3DSerenity%26pop%3D1 |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 95 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/95/items |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://87425529-380f-44b8-a689-9a0537e7ec91 |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Smart Movie Playlist |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | |
+| `smart` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `playlist_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | video |
+| `composite` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/95/composite/1705717387 |
+| `icon` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist://image.smart |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 282000 |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705716493 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705717387 |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistplaylistsresponsebody.md b/docs/models/operations/getplaylistplaylistsresponsebody.md
new file mode 100644
index 0000000..14c0aad
--- /dev/null
+++ b/docs/models/operations/getplaylistplaylistsresponsebody.md
@@ -0,0 +1,10 @@
+# GetPlaylistPlaylistsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetPlaylistErrors](../../models/operations/getplaylisterrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistrequest.md b/docs/models/operations/getplaylistrequest.md
new file mode 100644
index 0000000..dbfc395
--- /dev/null
+++ b/docs/models/operations/getplaylistrequest.md
@@ -0,0 +1,8 @@
+# GetPlaylistRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistresponse.md b/docs/models/operations/getplaylistresponse.md
new file mode 100644
index 0000000..d1fba3f
--- /dev/null
+++ b/docs/models/operations/getplaylistresponse.md
@@ -0,0 +1,12 @@
+# GetPlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetPlaylistResponseBody)](../../models/operations/getplaylistresponsebody.md) | :heavy_minus_sign: | The playlist |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetPlaylistPlaylistsResponseBody)](../../models/operations/getplaylistplaylistsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistresponsebody.md b/docs/models/operations/getplaylistresponsebody.md
new file mode 100644
index 0000000..a618b0c
--- /dev/null
+++ b/docs/models/operations/getplaylistresponsebody.md
@@ -0,0 +1,10 @@
+# GetPlaylistResponseBody
+
+The playlist
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetPlaylistMediaContainer)](../../models/operations/getplaylistmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistserrors.md b/docs/models/operations/getplaylistserrors.md
new file mode 100644
index 0000000..d6e0ec1
--- /dev/null
+++ b/docs/models/operations/getplaylistserrors.md
@@ -0,0 +1,10 @@
+# GetPlaylistsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistsmediacontainer.md b/docs/models/operations/getplaylistsmediacontainer.md
new file mode 100644
index 0000000..f1478ed
--- /dev/null
+++ b/docs/models/operations/getplaylistsmediacontainer.md
@@ -0,0 +1,9 @@
+# GetPlaylistsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 4 |
+| `metadata` | T::Array<[Operations::GetPlaylistsMetadata](../../models/operations/getplaylistsmetadata.md)> | :heavy_minus_sign: | N/A | [{"addedAt":1705716298,"composite":"/playlists/92/composite/1705716440","duration":7328000,"guid":"com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903","icon":"playlist://image.smart","key":"/playlists/92/items","lastViewedAt":1705716298,"leafCount":32,"playlistType":"video","ratingKey":"92","smart":false,"summary":"A Great Playlist","title":"Static Playlist","type":"playlist","updatedAt":1705716440,"viewCount":1}] |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistsmetadata.md b/docs/models/operations/getplaylistsmetadata.md
new file mode 100644
index 0000000..edf69aa
--- /dev/null
+++ b/docs/models/operations/getplaylistsmetadata.md
@@ -0,0 +1,23 @@
+# GetPlaylistsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 92 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/92/items |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.agents.none://7ca5aaef-58e8-4828-9e21-c009c97f2903 |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Static Playlist |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | A Great Playlist |
+| `smart` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `playlist_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | video |
+| `composite` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/92/composite/1705716440 |
+| `icon` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist://image.smart |
+| `view_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `last_viewed_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705716298 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 7328000 |
+| `leaf_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 32 |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705716298 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705716440 |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistsplaylistsresponsebody.md b/docs/models/operations/getplaylistsplaylistsresponsebody.md
new file mode 100644
index 0000000..1b03f75
--- /dev/null
+++ b/docs/models/operations/getplaylistsplaylistsresponsebody.md
@@ -0,0 +1,10 @@
+# GetPlaylistsPlaylistsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetPlaylistsErrors](../../models/operations/getplaylistserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistsrequest.md b/docs/models/operations/getplaylistsrequest.md
new file mode 100644
index 0000000..bf6c7be
--- /dev/null
+++ b/docs/models/operations/getplaylistsrequest.md
@@ -0,0 +1,9 @@
+# GetPlaylistsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| `playlist_type` | [T.nilable(Operations::PlaylistType)](../../models/operations/playlisttype.md) | :heavy_minus_sign: | limit to a type of playlist. |
+| `smart` | [T.nilable(Operations::QueryParamSmart)](../../models/operations/queryparamsmart.md) | :heavy_minus_sign: | type of playlists to return (default is all). |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistsresponse.md b/docs/models/operations/getplaylistsresponse.md
new file mode 100644
index 0000000..885412e
--- /dev/null
+++ b/docs/models/operations/getplaylistsresponse.md
@@ -0,0 +1,12 @@
+# GetPlaylistsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetPlaylistsResponseBody)](../../models/operations/getplaylistsresponsebody.md) | :heavy_minus_sign: | returns all playlists |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetPlaylistsPlaylistsResponseBody)](../../models/operations/getplaylistsplaylistsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getplaylistsresponsebody.md b/docs/models/operations/getplaylistsresponsebody.md
new file mode 100644
index 0000000..a007ea1
--- /dev/null
+++ b/docs/models/operations/getplaylistsresponsebody.md
@@ -0,0 +1,10 @@
+# GetPlaylistsResponseBody
+
+returns all playlists
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetPlaylistsMediaContainer)](../../models/operations/getplaylistsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getrecentlyaddederrors.md b/docs/models/operations/getrecentlyaddederrors.md
new file mode 100644
index 0000000..9151007
--- /dev/null
+++ b/docs/models/operations/getrecentlyaddederrors.md
@@ -0,0 +1,10 @@
+# GetRecentlyAddedErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getrecentlyaddedlibraryresponsebody.md b/docs/models/operations/getrecentlyaddedlibraryresponsebody.md
new file mode 100644
index 0000000..0f5a992
--- /dev/null
+++ b/docs/models/operations/getrecentlyaddedlibraryresponsebody.md
@@ -0,0 +1,10 @@
+# GetRecentlyAddedLibraryResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetRecentlyAddedErrors](../../models/operations/getrecentlyaddederrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getrecentlyaddedmediacontainer.md b/docs/models/operations/getrecentlyaddedmediacontainer.md
new file mode 100644
index 0000000..92a1250
--- /dev/null
+++ b/docs/models/operations/getrecentlyaddedmediacontainer.md
@@ -0,0 +1,14 @@
+# GetRecentlyAddedMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 50 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `media_tag_prefix` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `media_tag_version` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1680021154 |
+| `mixed_parents` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `metadata` | T::Array<[Operations::Metadata](../../models/operations/metadata.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getrecentlyaddedresponse.md b/docs/models/operations/getrecentlyaddedresponse.md
new file mode 100644
index 0000000..1ec80cd
--- /dev/null
+++ b/docs/models/operations/getrecentlyaddedresponse.md
@@ -0,0 +1,12 @@
+# GetRecentlyAddedResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetRecentlyAddedResponseBody)](../../models/operations/getrecentlyaddedresponsebody.md) | :heavy_minus_sign: | The recently added content |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetRecentlyAddedLibraryResponseBody)](../../models/operations/getrecentlyaddedlibraryresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getrecentlyaddedresponsebody.md b/docs/models/operations/getrecentlyaddedresponsebody.md
new file mode 100644
index 0000000..108a6bb
--- /dev/null
+++ b/docs/models/operations/getrecentlyaddedresponsebody.md
@@ -0,0 +1,10 @@
+# GetRecentlyAddedResponseBody
+
+The recently added content
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetRecentlyAddedMediaContainer)](../../models/operations/getrecentlyaddedmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getresizedphotoerrors.md b/docs/models/operations/getresizedphotoerrors.md
new file mode 100644
index 0000000..d5cdd28
--- /dev/null
+++ b/docs/models/operations/getresizedphotoerrors.md
@@ -0,0 +1,10 @@
+# GetResizedPhotoErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getresizedphotorequest.md b/docs/models/operations/getresizedphotorequest.md
new file mode 100644
index 0000000..d98f53e
--- /dev/null
+++ b/docs/models/operations/getresizedphotorequest.md
@@ -0,0 +1,14 @@
+# GetResizedPhotoRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| `width` | *Float* | :heavy_check_mark: | The width for the resized photo | 110 |
+| `height` | *Float* | :heavy_check_mark: | The height for the resized photo | 165 |
+| `opacity` | *Integer* | :heavy_check_mark: | The opacity for the resized photo | |
+| `blur` | *Float* | :heavy_check_mark: | The width for the resized photo | 0 |
+| `min_size` | [Operations::MinSize](../../models/operations/minsize.md) | :heavy_check_mark: | images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against. | |
+| `upscale` | [Operations::Upscale](../../models/operations/upscale.md) | :heavy_check_mark: | allow images to be resized beyond native dimensions. | |
+| `url` | *String* | :heavy_check_mark: | path to image within Plex | /library/metadata/49564/thumb/1654258204 |
\ No newline at end of file
diff --git a/docs/models/operations/getresizedphotoresponse.md b/docs/models/operations/getresizedphotoresponse.md
new file mode 100644
index 0000000..ed025e4
--- /dev/null
+++ b/docs/models/operations/getresizedphotoresponse.md
@@ -0,0 +1,11 @@
+# GetResizedPhotoResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::GetResizedPhotoResponseBody)](../../models/operations/getresizedphotoresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getresizedphotoresponsebody.md b/docs/models/operations/getresizedphotoresponsebody.md
new file mode 100644
index 0000000..c975352
--- /dev/null
+++ b/docs/models/operations/getresizedphotoresponsebody.md
@@ -0,0 +1,10 @@
+# GetResizedPhotoResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetResizedPhotoErrors](../../models/operations/getresizedphotoerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultscountry.md b/docs/models/operations/getsearchresultscountry.md
new file mode 100644
index 0000000..38d707e
--- /dev/null
+++ b/docs/models/operations/getsearchresultscountry.md
@@ -0,0 +1,8 @@
+# GetSearchResultsCountry
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | United States of America |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsdirector.md b/docs/models/operations/getsearchresultsdirector.md
new file mode 100644
index 0000000..65425f9
--- /dev/null
+++ b/docs/models/operations/getsearchresultsdirector.md
@@ -0,0 +1,8 @@
+# GetSearchResultsDirector
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Brian De Palma |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultserrors.md b/docs/models/operations/getsearchresultserrors.md
new file mode 100644
index 0000000..394432c
--- /dev/null
+++ b/docs/models/operations/getsearchresultserrors.md
@@ -0,0 +1,10 @@
+# GetSearchResultsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsgenre.md b/docs/models/operations/getsearchresultsgenre.md
new file mode 100644
index 0000000..171b113
--- /dev/null
+++ b/docs/models/operations/getsearchresultsgenre.md
@@ -0,0 +1,8 @@
+# GetSearchResultsGenre
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Action |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsmedia.md b/docs/models/operations/getsearchresultsmedia.md
new file mode 100644
index 0000000..476f74b
--- /dev/null
+++ b/docs/models/operations/getsearchresultsmedia.md
@@ -0,0 +1,22 @@
+# GetSearchResultsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 26610 |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 6612628 |
+| `bitrate` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 4751 |
+| `width` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1916 |
+| `height` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 796 |
+| `aspect_ratio` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2.35 |
+| `audio_channels` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 6 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | aac |
+| `video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | hevc |
+| `video_resolution` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mkv |
+| `video_frame_rate` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 24p |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | main 10 |
+| `part` | T::Array<[Operations::GetSearchResultsPart](../../models/operations/getsearchresultspart.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsmediacontainer.md b/docs/models/operations/getsearchresultsmediacontainer.md
new file mode 100644
index 0000000..248d110
--- /dev/null
+++ b/docs/models/operations/getsearchresultsmediacontainer.md
@@ -0,0 +1,13 @@
+# GetSearchResultsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 26 |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `media_tag_prefix` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `media_tag_version` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1680021154 |
+| `metadata` | T::Array<[Operations::GetSearchResultsMetadata](../../models/operations/getsearchresultsmetadata.md)> | :heavy_minus_sign: | N/A | |
+| `provider` | T::Array<[Operations::Provider](../../models/operations/provider.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsmetadata.md b/docs/models/operations/getsearchresultsmetadata.md
new file mode 100644
index 0000000..1e72bf0
--- /dev/null
+++ b/docs/models/operations/getsearchresultsmetadata.md
@@ -0,0 +1,41 @@
+# GetSearchResultsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `library_section_id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `library_section_uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `personal` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `source_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Hera |
+| `rating_key` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 10398 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/10398 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://movie/5d7768284de0ee001fcc8f52 |
+| `studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Paramount |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Mission: Impossible |
+| `content_rating` | *T.nilable(String)* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | When Ethan Hunt the leader of a crack espionage team whose perilous operation has gone awry with no explanation discovers that a mole has penetrated the CIA he's surprised to learn that he's the No. 1 suspect. To clear his name Hunt now must ferret out the real double agent and in the process even the score. |
+| `rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 6.6 |
+| `audience_rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 7.1 |
+| `year` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1996 |
+| `tagline` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Expect the impossible. |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/10398/thumb/1679505055 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/10398/art/1679505055 |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 6612628 |
+| `originally_available_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | N/A | 1996-05-22 00:00:00 +0000 UTC |
+| `added_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1589234571 |
+| `updated_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1679505055 |
+| `audience_rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `chapter_source` | *T.nilable(String)* | :heavy_minus_sign: | N/A | media |
+| `primary_extra_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/10501 |
+| `rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.ripe |
+| `media` | T::Array<[Operations::GetSearchResultsMedia](../../models/operations/getsearchresultsmedia.md)> | :heavy_minus_sign: | N/A | |
+| `genre` | T::Array<[Operations::GetSearchResultsGenre](../../models/operations/getsearchresultsgenre.md)> | :heavy_minus_sign: | N/A | |
+| `director` | T::Array<[Operations::GetSearchResultsDirector](../../models/operations/getsearchresultsdirector.md)> | :heavy_minus_sign: | N/A | |
+| `writer` | T::Array<[Operations::GetSearchResultsWriter](../../models/operations/getsearchresultswriter.md)> | :heavy_minus_sign: | N/A | |
+| `country` | T::Array<[Operations::GetSearchResultsCountry](../../models/operations/getsearchresultscountry.md)> | :heavy_minus_sign: | N/A | |
+| `role` | T::Array<[Operations::GetSearchResultsRole](../../models/operations/getsearchresultsrole.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultspart.md b/docs/models/operations/getsearchresultspart.md
new file mode 100644
index 0000000..94f7b29
--- /dev/null
+++ b/docs/models/operations/getsearchresultspart.md
@@ -0,0 +1,15 @@
+# GetSearchResultsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 26610 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/parts/26610/1589234571/file.mkv |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 6612628 |
+| `file` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /movies/Mission Impossible (1996)/Mission Impossible (1996) Bluray-1080p.mkv |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 3926903851 |
+| `audio_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mkv |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | main 10 |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsrequest.md b/docs/models/operations/getsearchresultsrequest.md
new file mode 100644
index 0000000..cc56e4f
--- /dev/null
+++ b/docs/models/operations/getsearchresultsrequest.md
@@ -0,0 +1,8 @@
+# GetSearchResultsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
+| `query` | *String* | :heavy_check_mark: | The search query string to use | 110 |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsresponse.md b/docs/models/operations/getsearchresultsresponse.md
new file mode 100644
index 0000000..282b018
--- /dev/null
+++ b/docs/models/operations/getsearchresultsresponse.md
@@ -0,0 +1,12 @@
+# GetSearchResultsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetSearchResultsResponseBody)](../../models/operations/getsearchresultsresponsebody.md) | :heavy_minus_sign: | Search Results |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetSearchResultsSearchResponseBody)](../../models/operations/getsearchresultssearchresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsresponsebody.md b/docs/models/operations/getsearchresultsresponsebody.md
new file mode 100644
index 0000000..d8ce83c
--- /dev/null
+++ b/docs/models/operations/getsearchresultsresponsebody.md
@@ -0,0 +1,10 @@
+# GetSearchResultsResponseBody
+
+Search Results
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetSearchResultsMediaContainer)](../../models/operations/getsearchresultsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultsrole.md b/docs/models/operations/getsearchresultsrole.md
new file mode 100644
index 0000000..ef946d6
--- /dev/null
+++ b/docs/models/operations/getsearchresultsrole.md
@@ -0,0 +1,8 @@
+# GetSearchResultsRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Tom Cruise |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultssearchresponsebody.md b/docs/models/operations/getsearchresultssearchresponsebody.md
new file mode 100644
index 0000000..3aae752
--- /dev/null
+++ b/docs/models/operations/getsearchresultssearchresponsebody.md
@@ -0,0 +1,10 @@
+# GetSearchResultsSearchResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetSearchResultsErrors](../../models/operations/getsearchresultserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getsearchresultswriter.md b/docs/models/operations/getsearchresultswriter.md
new file mode 100644
index 0000000..3f694b5
--- /dev/null
+++ b/docs/models/operations/getsearchresultswriter.md
@@ -0,0 +1,8 @@
+# GetSearchResultsWriter
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | David Koepp |
\ No newline at end of file
diff --git a/docs/models/operations/getserveractivitiesactivitiesresponsebody.md b/docs/models/operations/getserveractivitiesactivitiesresponsebody.md
new file mode 100644
index 0000000..d751bcb
--- /dev/null
+++ b/docs/models/operations/getserveractivitiesactivitiesresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerActivitiesActivitiesResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetServerActivitiesErrors](../../models/operations/getserveractivitieserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getserveractivitieserrors.md b/docs/models/operations/getserveractivitieserrors.md
new file mode 100644
index 0000000..b28bf7a
--- /dev/null
+++ b/docs/models/operations/getserveractivitieserrors.md
@@ -0,0 +1,10 @@
+# GetServerActivitiesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getserveractivitiesmediacontainer.md b/docs/models/operations/getserveractivitiesmediacontainer.md
new file mode 100644
index 0000000..775475b
--- /dev/null
+++ b/docs/models/operations/getserveractivitiesmediacontainer.md
@@ -0,0 +1,9 @@
+# GetServerActivitiesMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `activity` | T::Array<[Operations::Activity](../../models/operations/activity.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getserveractivitiesresponse.md b/docs/models/operations/getserveractivitiesresponse.md
new file mode 100644
index 0000000..68832b6
--- /dev/null
+++ b/docs/models/operations/getserveractivitiesresponse.md
@@ -0,0 +1,12 @@
+# GetServerActivitiesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetServerActivitiesResponseBody)](../../models/operations/getserveractivitiesresponsebody.md) | :heavy_minus_sign: | The Server Activities |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetServerActivitiesActivitiesResponseBody)](../../models/operations/getserveractivitiesactivitiesresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getserveractivitiesresponsebody.md b/docs/models/operations/getserveractivitiesresponsebody.md
new file mode 100644
index 0000000..1a2b5e2
--- /dev/null
+++ b/docs/models/operations/getserveractivitiesresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerActivitiesResponseBody
+
+The Server Activities
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetServerActivitiesMediaContainer)](../../models/operations/getserveractivitiesmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getservercapabilitiesresponse.md b/docs/models/operations/getservercapabilitiesresponse.md
new file mode 100644
index 0000000..c30bd19
--- /dev/null
+++ b/docs/models/operations/getservercapabilitiesresponse.md
@@ -0,0 +1,12 @@
+# GetServerCapabilitiesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetServerCapabilitiesResponseBody)](../../models/operations/getservercapabilitiesresponsebody.md) | :heavy_minus_sign: | The Server Capabilities |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetServerCapabilitiesServerResponseBody)](../../models/operations/getservercapabilitiesserverresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getservercapabilitiesresponsebody.md b/docs/models/operations/getservercapabilitiesresponsebody.md
new file mode 100644
index 0000000..ffc0a52
--- /dev/null
+++ b/docs/models/operations/getservercapabilitiesresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerCapabilitiesResponseBody
+
+The Server Capabilities
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::MediaContainer)](../../models/operations/mediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getservercapabilitiesserverresponsebody.md b/docs/models/operations/getservercapabilitiesserverresponsebody.md
new file mode 100644
index 0000000..1bec112
--- /dev/null
+++ b/docs/models/operations/getservercapabilitiesserverresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerCapabilitiesServerResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::Errors](../../models/operations/errors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getserveridentityerrors.md b/docs/models/operations/getserveridentityerrors.md
new file mode 100644
index 0000000..560efae
--- /dev/null
+++ b/docs/models/operations/getserveridentityerrors.md
@@ -0,0 +1,10 @@
+# GetServerIdentityErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getserveridentitymediacontainer.md b/docs/models/operations/getserveridentitymediacontainer.md
new file mode 100644
index 0000000..55bd7d5
--- /dev/null
+++ b/docs/models/operations/getserveridentitymediacontainer.md
@@ -0,0 +1,11 @@
+# GetServerIdentityMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 0 |
+| `claimed` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `machine_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 96f2fe7a78c9dc1f16a16bedbe90f98149be16b4 |
+| `version` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1.31.3.6868-28fc46b27 |
\ No newline at end of file
diff --git a/docs/models/operations/getserveridentityresponse.md b/docs/models/operations/getserveridentityresponse.md
new file mode 100644
index 0000000..5a228ee
--- /dev/null
+++ b/docs/models/operations/getserveridentityresponse.md
@@ -0,0 +1,12 @@
+# GetServerIdentityResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetServerIdentityResponseBody)](../../models/operations/getserveridentityresponsebody.md) | :heavy_minus_sign: | The Server Identity information |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetServerIdentityServerResponseBody)](../../models/operations/getserveridentityserverresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getserveridentityresponsebody.md b/docs/models/operations/getserveridentityresponsebody.md
new file mode 100644
index 0000000..3f085df
--- /dev/null
+++ b/docs/models/operations/getserveridentityresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerIdentityResponseBody
+
+The Server Identity information
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetServerIdentityMediaContainer)](../../models/operations/getserveridentitymediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getserveridentityserverresponsebody.md b/docs/models/operations/getserveridentityserverresponsebody.md
new file mode 100644
index 0000000..edebf24
--- /dev/null
+++ b/docs/models/operations/getserveridentityserverresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerIdentityServerResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetServerIdentityErrors](../../models/operations/getserveridentityerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getserverlisterrors.md b/docs/models/operations/getserverlisterrors.md
new file mode 100644
index 0000000..c75ea83
--- /dev/null
+++ b/docs/models/operations/getserverlisterrors.md
@@ -0,0 +1,10 @@
+# GetServerListErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getserverlistmediacontainer.md b/docs/models/operations/getserverlistmediacontainer.md
new file mode 100644
index 0000000..2ff7154
--- /dev/null
+++ b/docs/models/operations/getserverlistmediacontainer.md
@@ -0,0 +1,9 @@
+# GetServerListMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1 |
+| `server` | T::Array<[Operations::GetServerListServer](../../models/operations/getserverlistserver.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getserverlistresponse.md b/docs/models/operations/getserverlistresponse.md
new file mode 100644
index 0000000..fccf956
--- /dev/null
+++ b/docs/models/operations/getserverlistresponse.md
@@ -0,0 +1,12 @@
+# GetServerListResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetServerListResponseBody)](../../models/operations/getserverlistresponsebody.md) | :heavy_minus_sign: | List of Servers |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetServerListServerResponseBody)](../../models/operations/getserverlistserverresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getserverlistresponsebody.md b/docs/models/operations/getserverlistresponsebody.md
new file mode 100644
index 0000000..553f692
--- /dev/null
+++ b/docs/models/operations/getserverlistresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerListResponseBody
+
+List of Servers
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::GetServerListMediaContainer)](../../models/operations/getserverlistmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getserverlistserver.md b/docs/models/operations/getserverlistserver.md
new file mode 100644
index 0000000..f842479
--- /dev/null
+++ b/docs/models/operations/getserverlistserver.md
@@ -0,0 +1,13 @@
+# GetServerListServer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `name` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Hera |
+| `host` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 10.10.10.47 |
+| `address` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 10.10.10.47 |
+| `port` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 32400 |
+| `machine_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 96f2fe7a78c9dc1f16a16bedbe90f98149be16b4 |
+| `version` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1.31.3.6868-28fc46b27 |
\ No newline at end of file
diff --git a/docs/models/operations/getserverlistserverresponsebody.md b/docs/models/operations/getserverlistserverresponsebody.md
new file mode 100644
index 0000000..fac1276
--- /dev/null
+++ b/docs/models/operations/getserverlistserverresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerListServerResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetServerListErrors](../../models/operations/getserverlisterrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getserverpreferenceserrors.md b/docs/models/operations/getserverpreferenceserrors.md
new file mode 100644
index 0000000..2e30b94
--- /dev/null
+++ b/docs/models/operations/getserverpreferenceserrors.md
@@ -0,0 +1,10 @@
+# GetServerPreferencesErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getserverpreferencesmediacontainer.md b/docs/models/operations/getserverpreferencesmediacontainer.md
new file mode 100644
index 0000000..125f8af
--- /dev/null
+++ b/docs/models/operations/getserverpreferencesmediacontainer.md
@@ -0,0 +1,9 @@
+# GetServerPreferencesMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 161 |
+| `setting` | T::Array<*Object*> | :heavy_minus_sign: | N/A | [{"advanced":false,"default":"","group":"general","hidden":false,"id":"FriendlyName","label":"Friendly name","summary":"This name will be used to identify this media server to other computers on your network. If you leave it blank, your computer's name will be used instead.","type":"text","value":"Hera"},{"advanced":false,"default":3600,"enumValues":"900:every 15 minutes\|1800:every 30 minutes\|3600:hourly\|7200:every 2 hours\|21600:every 6 hours\|43200:every 12 hours\|86400:daily","group":"library","hidden":false,"id":"ScheduledLibraryUpdateInterval","label":"Library scan interval","summary":"","type":"int","value":3600}] |
\ No newline at end of file
diff --git a/docs/models/operations/getserverpreferencesresponse.md b/docs/models/operations/getserverpreferencesresponse.md
new file mode 100644
index 0000000..bb5b789
--- /dev/null
+++ b/docs/models/operations/getserverpreferencesresponse.md
@@ -0,0 +1,12 @@
+# GetServerPreferencesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetServerPreferencesResponseBody)](../../models/operations/getserverpreferencesresponsebody.md) | :heavy_minus_sign: | Server Preferences |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetServerPreferencesServerResponseBody)](../../models/operations/getserverpreferencesserverresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getserverpreferencesresponsebody.md b/docs/models/operations/getserverpreferencesresponsebody.md
new file mode 100644
index 0000000..18af148
--- /dev/null
+++ b/docs/models/operations/getserverpreferencesresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerPreferencesResponseBody
+
+Server Preferences
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetServerPreferencesMediaContainer)](../../models/operations/getserverpreferencesmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getserverpreferencesserverresponsebody.md b/docs/models/operations/getserverpreferencesserverresponsebody.md
new file mode 100644
index 0000000..d96f610
--- /dev/null
+++ b/docs/models/operations/getserverpreferencesserverresponsebody.md
@@ -0,0 +1,10 @@
+# GetServerPreferencesServerResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetServerPreferencesErrors](../../models/operations/getserverpreferenceserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionhistoryerrors.md b/docs/models/operations/getsessionhistoryerrors.md
new file mode 100644
index 0000000..1906951
--- /dev/null
+++ b/docs/models/operations/getsessionhistoryerrors.md
@@ -0,0 +1,10 @@
+# GetSessionHistoryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionhistorymediacontainer.md b/docs/models/operations/getsessionhistorymediacontainer.md
new file mode 100644
index 0000000..b033982
--- /dev/null
+++ b/docs/models/operations/getsessionhistorymediacontainer.md
@@ -0,0 +1,9 @@
+# GetSessionHistoryMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 10855 |
+| `metadata` | T::Array<[Operations::GetSessionHistoryMetadata](../../models/operations/getsessionhistorymetadata.md)> | :heavy_minus_sign: | N/A | [{"accountID":1,"deviceID":5,"grandparentArt":"/library/metadata/32132/art/1703933346","grandparentKey":"/library/metadata/32132","grandparentThumb":"/library/metadata/32132/thumb/1703933346","grandparentTitle":"Taskmaster","historyKey":"/status/sessions/history/1","index":1,"key":"/library/metadata/32171","librarySectionID":"2","originallyAvailableAt":"2022-04-14T00:00:00Z","parentIndex":13,"parentKey":"/library/metadata/32170","parentThumb":"/library/metadata/32170/thumb/1654134301","ratingKey":"32171","thumb":"/library/metadata/32171/thumb/-1","title":"The Noise That Blue Makes","type":"episode","viewedAt":1654139223}] |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionhistorymetadata.md b/docs/models/operations/getsessionhistorymetadata.md
new file mode 100644
index 0000000..dcdb58d
--- /dev/null
+++ b/docs/models/operations/getsessionhistorymetadata.md
@@ -0,0 +1,26 @@
+# GetSessionHistoryMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `history_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /status/sessions/history/1 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/32171 |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 32171 |
+| `library_section_id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 2 |
+| `parent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/32170 |
+| `grandparent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/32132 |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | The Noise That Blue Makes |
+| `grandparent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Taskmaster |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | episode |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/32171/thumb/-1 |
+| `parent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/32170/thumb/1654134301 |
+| `grandparent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/32132/thumb/1703933346 |
+| `grandparent_art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/32132/art/1703933346 |
+| `index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `parent_index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 13 |
+| `originally_available_at` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_minus_sign: | N/A | 2022-04-14 00:00:00 +0000 UTC |
+| `viewed_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1654139223 |
+| `account_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `device_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 5 |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionhistoryresponse.md b/docs/models/operations/getsessionhistoryresponse.md
new file mode 100644
index 0000000..391c529
--- /dev/null
+++ b/docs/models/operations/getsessionhistoryresponse.md
@@ -0,0 +1,12 @@
+# GetSessionHistoryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetSessionHistoryResponseBody)](../../models/operations/getsessionhistoryresponsebody.md) | :heavy_minus_sign: | List of Plex Sessions |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetSessionHistorySessionsResponseBody)](../../models/operations/getsessionhistorysessionsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionhistoryresponsebody.md b/docs/models/operations/getsessionhistoryresponsebody.md
new file mode 100644
index 0000000..3ed4a10
--- /dev/null
+++ b/docs/models/operations/getsessionhistoryresponsebody.md
@@ -0,0 +1,10 @@
+# GetSessionHistoryResponseBody
+
+List of Plex Sessions
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetSessionHistoryMediaContainer)](../../models/operations/getsessionhistorymediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionhistorysessionsresponsebody.md b/docs/models/operations/getsessionhistorysessionsresponsebody.md
new file mode 100644
index 0000000..c110d57
--- /dev/null
+++ b/docs/models/operations/getsessionhistorysessionsresponsebody.md
@@ -0,0 +1,10 @@
+# GetSessionHistorySessionsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetSessionHistoryErrors](../../models/operations/getsessionhistoryerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionserrors.md b/docs/models/operations/getsessionserrors.md
new file mode 100644
index 0000000..e2d6302
--- /dev/null
+++ b/docs/models/operations/getsessionserrors.md
@@ -0,0 +1,10 @@
+# GetSessionsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionsmedia.md b/docs/models/operations/getsessionsmedia.md
new file mode 100644
index 0000000..87f71f3
--- /dev/null
+++ b/docs/models/operations/getsessionsmedia.md
@@ -0,0 +1,15 @@
+# GetSessionsMedia
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `audio_channels` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | flac |
+| `bitrate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1014 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | flac |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 186240 |
+| `id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 130355 |
+| `selected` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `part` | T::Array<[Operations::GetSessionsPart](../../models/operations/getsessionspart.md)> | :heavy_minus_sign: | N/A | [{"Stream":[{"albumGain":"-12.94","albumPeak":"1.000000","albumRange":"4.751014","audioChannelLayout":"stereo","bitDepth":16,"bitrate":1014,"channels":2,"codec":"flac","displayTitle":"FLAC (Stereo)","extendedDisplayTitle":"FLAC (Stereo)","gain":"-12.94","id":"352487","index":0,"location":"direct","loudness":"-5.94","lra":"1.74","peak":"1.000000","samplingRate":44100,"selected":true,"streamType":2}],"container":"flac","decision":"directplay","duration":186240,"file":"/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac","hasThumbnail":"1","id":"130625","key":"/library/parts/130625/1705543268/file.flac","selected":true,"size":23644000}] |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionsmediacontainer.md b/docs/models/operations/getsessionsmediacontainer.md
new file mode 100644
index 0000000..f14f28e
--- /dev/null
+++ b/docs/models/operations/getsessionsmediacontainer.md
@@ -0,0 +1,9 @@
+# GetSessionsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `metadata` | T::Array<[Operations::GetSessionsMetadata](../../models/operations/getsessionsmetadata.md)> | :heavy_minus_sign: | N/A | [{"Media":[{"Part":[{"Stream":[{"albumGain":"-12.94","albumPeak":"1.000000","albumRange":"4.751014","audioChannelLayout":"stereo","bitDepth":16,"bitrate":1014,"channels":2,"codec":"flac","displayTitle":"FLAC (Stereo)","extendedDisplayTitle":"FLAC (Stereo)","gain":"-12.94","id":"352487","index":0,"location":"direct","loudness":"-5.94","lra":"1.74","peak":"1.000000","samplingRate":44100,"selected":true,"streamType":2}],"container":"flac","decision":"directplay","duration":186240,"file":"/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac","hasThumbnail":"1","id":"130625","key":"/library/parts/130625/1705543268/file.flac","selected":true,"size":23644000}],"audioChannels":2,"audioCodec":"flac","bitrate":1014,"container":"flac","duration":186240,"id":"130355","selected":true}],"Player":{"address":"10.10.10.171","local":true,"machineIdentifier":"3tsdzir85m2onc3qyr255aq1","model":"standalone","platform":"windows","platformVersion":"10.0.22621","product":"Plex for Windows","profile":"Plex Desktop","relayed":false,"remotePublicAddress":"68.248.140.20","secure":true,"state":"playing","title":"DESKTOP-BL80MTD","userID":1,"version":"1.85.0.4071-21128b56"},"Session":{"bandwidth":1050,"id":"93h7e00ncblxncqw9lkfaoxi","location":"lan"},"User":{"id":"1","thumb":"https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661","title":"Blindkitty38"},"addedAt":1705543312,"art":"/library/metadata/39904/art/1705310687","duration":186240,"grandparentArt":"/library/metadata/39904/art/1705310687","grandparentGuid":"plex://artist/5d07bbfd403c6402904a6480","grandparentKey":"/library/metadata/39904","grandparentRatingKey":"39904","grandparentThumb":"/library/metadata/39904/thumb/1705310687","grandparentTitle":"Green Day","guid":"plex://track/6535834f71f22f36f71a8e8f","index":1,"key":"/library/metadata/67085","librarySectionID":"3","librarySectionKey":"/library/sections/3","librarySectionTitle":"Music","musicAnalysisVersion":"1","parentGuid":"plex://album/65394d6d472b8ab03ef47f12","parentIndex":1,"parentKey":"/library/metadata/67084","parentRatingKey":"67084","parentStudio":"Reprise Records","parentThumb":"/library/metadata/67084/thumb/1705543314","parentTitle":"Saviors","parentYear":2024,"ratingCount":45885,"ratingKey":"67085","sessionKey":"203","thumb":"/library/metadata/67084/thumb/1705543314","title":"The American Dream Is Killing Me","titleSort":"American Dream Is Killing Me","type":"track","updatedAt":1705543314,"viewOffset":1000}] |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionsmetadata.md b/docs/models/operations/getsessionsmetadata.md
new file mode 100644
index 0000000..7648fa3
--- /dev/null
+++ b/docs/models/operations/getsessionsmetadata.md
@@ -0,0 +1,44 @@
+# GetSessionsMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705543312 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/39904/art/1705310687 |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 186240 |
+| `grandparent_art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/39904/art/1705310687 |
+| `grandparent_guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://artist/5d07bbfd403c6402904a6480 |
+| `grandparent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/39904 |
+| `grandparent_rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 39904 |
+| `grandparent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/39904/thumb/1705310687 |
+| `grandparent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Green Day |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://track/6535834f71f22f36f71a8e8f |
+| `index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/67085 |
+| `library_section_id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 3 |
+| `library_section_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/3 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Music |
+| `music_analysis_version` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `parent_guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://album/65394d6d472b8ab03ef47f12 |
+| `parent_index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `parent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/67084 |
+| `parent_rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 67084 |
+| `parent_studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Reprise Records |
+| `parent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/67084/thumb/1705543314 |
+| `parent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Saviors |
+| `parent_year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2024 |
+| `rating_count` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 45885 |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 67085 |
+| `session_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 203 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/67084/thumb/1705543314 |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | The American Dream Is Killing Me |
+| `title_sort` | *T.nilable(String)* | :heavy_minus_sign: | N/A | American Dream Is Killing Me |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | track |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705543314 |
+| `view_offset` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1000 |
+| `media` | T::Array<[Operations::GetSessionsMedia](../../models/operations/getsessionsmedia.md)> | :heavy_minus_sign: | N/A | [{"Part":[{"Stream":[{"albumGain":"-12.94","albumPeak":"1.000000","albumRange":"4.751014","audioChannelLayout":"stereo","bitDepth":16,"bitrate":1014,"channels":2,"codec":"flac","displayTitle":"FLAC (Stereo)","extendedDisplayTitle":"FLAC (Stereo)","gain":"-12.94","id":"352487","index":0,"location":"direct","loudness":"-5.94","lra":"1.74","peak":"1.000000","samplingRate":44100,"selected":true,"streamType":2}],"container":"flac","decision":"directplay","duration":186240,"file":"/music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac","hasThumbnail":"1","id":"130625","key":"/library/parts/130625/1705543268/file.flac","selected":true,"size":23644000}],"audioChannels":2,"audioCodec":"flac","bitrate":1014,"container":"flac","duration":186240,"id":"130355","selected":true}] |
+| `user` | [T.nilable(Operations::User)](../../models/operations/user.md) | :heavy_minus_sign: | N/A | |
+| `player` | [T.nilable(Operations::Player)](../../models/operations/player.md) | :heavy_minus_sign: | N/A | |
+| `session` | [T.nilable(Operations::Session)](../../models/operations/session.md) | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionspart.md b/docs/models/operations/getsessionspart.md
new file mode 100644
index 0000000..3310859
--- /dev/null
+++ b/docs/models/operations/getsessionspart.md
@@ -0,0 +1,17 @@
+# GetSessionsPart
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | flac |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 186240 |
+| `file` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /music/Green Day/Saviors (2024)/Green Day - Saviors - 01 - The American Dream Is Killing Me.flac |
+| `has_thumbnail` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 130625 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/parts/130625/1705543268/file.flac |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 23644000 |
+| `decision` | *T.nilable(String)* | :heavy_minus_sign: | N/A | directplay |
+| `selected` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `stream` | T::Array<[Operations::GetSessionsStream](../../models/operations/getsessionsstream.md)> | :heavy_minus_sign: | N/A | [{"albumGain":"-12.94","albumPeak":"1.000000","albumRange":"4.751014","audioChannelLayout":"stereo","bitDepth":16,"bitrate":1014,"channels":2,"codec":"flac","displayTitle":"FLAC (Stereo)","extendedDisplayTitle":"FLAC (Stereo)","gain":"-12.94","id":"352487","index":0,"location":"direct","loudness":"-5.94","lra":"1.74","peak":"1.000000","samplingRate":44100,"selected":true,"streamType":2}] |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionsresponse.md b/docs/models/operations/getsessionsresponse.md
new file mode 100644
index 0000000..02a7a47
--- /dev/null
+++ b/docs/models/operations/getsessionsresponse.md
@@ -0,0 +1,12 @@
+# GetSessionsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetSessionsResponseBody)](../../models/operations/getsessionsresponsebody.md) | :heavy_minus_sign: | List of Active Plex Sessions |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetSessionsSessionsResponseBody)](../../models/operations/getsessionssessionsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionsresponsebody.md b/docs/models/operations/getsessionsresponsebody.md
new file mode 100644
index 0000000..4955818
--- /dev/null
+++ b/docs/models/operations/getsessionsresponsebody.md
@@ -0,0 +1,10 @@
+# GetSessionsResponseBody
+
+List of Active Plex Sessions
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetSessionsMediaContainer)](../../models/operations/getsessionsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionssessionsresponsebody.md b/docs/models/operations/getsessionssessionsresponsebody.md
new file mode 100644
index 0000000..6f46b47
--- /dev/null
+++ b/docs/models/operations/getsessionssessionsresponsebody.md
@@ -0,0 +1,10 @@
+# GetSessionsSessionsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetSessionsErrors](../../models/operations/getsessionserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getsessionsstream.md b/docs/models/operations/getsessionsstream.md
new file mode 100644
index 0000000..581b953
--- /dev/null
+++ b/docs/models/operations/getsessionsstream.md
@@ -0,0 +1,27 @@
+# GetSessionsStream
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `album_gain` | *T.nilable(String)* | :heavy_minus_sign: | N/A | -12.94 |
+| `album_peak` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1.000000 |
+| `album_range` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 4.751014 |
+| `audio_channel_layout` | *T.nilable(String)* | :heavy_minus_sign: | N/A | stereo |
+| `bit_depth` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 16 |
+| `bitrate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1014 |
+| `channels` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | flac |
+| `display_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | FLAC (Stereo) |
+| `extended_display_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | FLAC (Stereo) |
+| `gain` | *T.nilable(String)* | :heavy_minus_sign: | N/A | -12.94 |
+| `id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 352487 |
+| `index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 0 |
+| `loudness` | *T.nilable(String)* | :heavy_minus_sign: | N/A | -5.94 |
+| `lra` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1.74 |
+| `peak` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1.000000 |
+| `sampling_rate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 44100 |
+| `selected` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `stream_type` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `location` | *T.nilable(String)* | :heavy_minus_sign: | N/A | direct |
\ No newline at end of file
diff --git a/docs/models/operations/getsourceconnectioninformationerrors.md b/docs/models/operations/getsourceconnectioninformationerrors.md
new file mode 100644
index 0000000..85a48ef
--- /dev/null
+++ b/docs/models/operations/getsourceconnectioninformationerrors.md
@@ -0,0 +1,10 @@
+# GetSourceConnectionInformationErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getsourceconnectioninformationrequest.md b/docs/models/operations/getsourceconnectioninformationrequest.md
new file mode 100644
index 0000000..a173a06
--- /dev/null
+++ b/docs/models/operations/getsourceconnectioninformationrequest.md
@@ -0,0 +1,8 @@
+# GetSourceConnectionInformationRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
+| `source` | *String* | :heavy_check_mark: | The source identifier with an included prefix. | server://client-identifier |
\ No newline at end of file
diff --git a/docs/models/operations/getsourceconnectioninformationresponse.md b/docs/models/operations/getsourceconnectioninformationresponse.md
new file mode 100644
index 0000000..f3fe4ad
--- /dev/null
+++ b/docs/models/operations/getsourceconnectioninformationresponse.md
@@ -0,0 +1,11 @@
+# GetSourceConnectionInformationResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::GetSourceConnectionInformationResponseBody)](../../models/operations/getsourceconnectioninformationresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getsourceconnectioninformationresponsebody.md b/docs/models/operations/getsourceconnectioninformationresponsebody.md
new file mode 100644
index 0000000..cb625a3
--- /dev/null
+++ b/docs/models/operations/getsourceconnectioninformationresponsebody.md
@@ -0,0 +1,10 @@
+# GetSourceConnectionInformationResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetSourceConnectionInformationErrors](../../models/operations/getsourceconnectioninformationerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/gettimelineerrors.md b/docs/models/operations/gettimelineerrors.md
new file mode 100644
index 0000000..879836d
--- /dev/null
+++ b/docs/models/operations/gettimelineerrors.md
@@ -0,0 +1,10 @@
+# GetTimelineErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/gettimelinerequest.md b/docs/models/operations/gettimelinerequest.md
new file mode 100644
index 0000000..3f4e32c
--- /dev/null
+++ b/docs/models/operations/gettimelinerequest.md
@@ -0,0 +1,17 @@
+# GetTimelineRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| `rating_key` | *Float* | :heavy_check_mark: | The rating key of the media item |
+| `key` | *String* | :heavy_check_mark: | The key of the media item to get the timeline for |
+| `state` | [Operations::State](../../models/operations/state.md) | :heavy_check_mark: | The state of the media item |
+| `has_mde` | *Float* | :heavy_check_mark: | Whether the media item has MDE |
+| `time` | *Float* | :heavy_check_mark: | The time of the media item |
+| `duration` | *Float* | :heavy_check_mark: | The duration of the media item |
+| `context` | *String* | :heavy_check_mark: | The context of the media item |
+| `play_queue_item_id` | *Float* | :heavy_check_mark: | The play queue item ID of the media item |
+| `play_back_time` | *Float* | :heavy_check_mark: | The playback time of the media item |
+| `row` | *Float* | :heavy_check_mark: | The row of the media item |
\ No newline at end of file
diff --git a/docs/models/operations/gettimelineresponse.md b/docs/models/operations/gettimelineresponse.md
new file mode 100644
index 0000000..3323943
--- /dev/null
+++ b/docs/models/operations/gettimelineresponse.md
@@ -0,0 +1,11 @@
+# GetTimelineResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::GetTimelineResponseBody)](../../models/operations/gettimelineresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/gettimelineresponsebody.md b/docs/models/operations/gettimelineresponsebody.md
new file mode 100644
index 0000000..be45af6
--- /dev/null
+++ b/docs/models/operations/gettimelineresponsebody.md
@@ -0,0 +1,10 @@
+# GetTimelineResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetTimelineErrors](../../models/operations/gettimelineerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/gettranscodesessionserrors.md b/docs/models/operations/gettranscodesessionserrors.md
new file mode 100644
index 0000000..b621913
--- /dev/null
+++ b/docs/models/operations/gettranscodesessionserrors.md
@@ -0,0 +1,10 @@
+# GetTranscodeSessionsErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/gettranscodesessionsmediacontainer.md b/docs/models/operations/gettranscodesessionsmediacontainer.md
new file mode 100644
index 0000000..5f17615
--- /dev/null
+++ b/docs/models/operations/gettranscodesessionsmediacontainer.md
@@ -0,0 +1,9 @@
+# GetTranscodeSessionsMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `transcode_session` | T::Array<[Operations::TranscodeSession](../../models/operations/transcodesession.md)> | :heavy_minus_sign: | N/A | [{"audioChannels":1,"audioCodec":"opus","audioDecision":"transcode","complete":false,"container":"mkv","context":"streaming","duration":1445695,"error":false,"key":"vv3i2q2lax92qlzul1hbd4bx","maxOffsetAvailable":29.53,"minOffsetAvailable":3.003000020980835,"progress":1.7999999523162842,"protocol":"http","remaining":53,"size":-22,"sourceAudioCodec":"aac","sourceVideoCodec":"h264","speed":25.100000381469727,"subtitleDecision":"burn","throttled":false,"timeStamp":1705895805.4919229,"transcodeHwRequested":true,"videoCodec":"h264","videoDecision":"transcode"}] |
\ No newline at end of file
diff --git a/docs/models/operations/gettranscodesessionsresponse.md b/docs/models/operations/gettranscodesessionsresponse.md
new file mode 100644
index 0000000..b571f69
--- /dev/null
+++ b/docs/models/operations/gettranscodesessionsresponse.md
@@ -0,0 +1,12 @@
+# GetTranscodeSessionsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetTranscodeSessionsResponseBody)](../../models/operations/gettranscodesessionsresponsebody.md) | :heavy_minus_sign: | The Transcode Sessions |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetTranscodeSessionsSessionsResponseBody)](../../models/operations/gettranscodesessionssessionsresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/gettranscodesessionsresponsebody.md b/docs/models/operations/gettranscodesessionsresponsebody.md
new file mode 100644
index 0000000..61331aa
--- /dev/null
+++ b/docs/models/operations/gettranscodesessionsresponsebody.md
@@ -0,0 +1,10 @@
+# GetTranscodeSessionsResponseBody
+
+The Transcode Sessions
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetTranscodeSessionsMediaContainer)](../../models/operations/gettranscodesessionsmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/gettranscodesessionssessionsresponsebody.md b/docs/models/operations/gettranscodesessionssessionsresponsebody.md
new file mode 100644
index 0000000..60dcdf4
--- /dev/null
+++ b/docs/models/operations/gettranscodesessionssessionsresponsebody.md
@@ -0,0 +1,10 @@
+# GetTranscodeSessionsSessionsResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetTranscodeSessionsErrors](../../models/operations/gettranscodesessionserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/gettransienttokenerrors.md b/docs/models/operations/gettransienttokenerrors.md
new file mode 100644
index 0000000..efbb6ef
--- /dev/null
+++ b/docs/models/operations/gettransienttokenerrors.md
@@ -0,0 +1,10 @@
+# GetTransientTokenErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/gettransienttokenqueryparamtype.md b/docs/models/operations/gettransienttokenqueryparamtype.md
new file mode 100644
index 0000000..5c33dc3
--- /dev/null
+++ b/docs/models/operations/gettransienttokenqueryparamtype.md
@@ -0,0 +1,10 @@
+# GetTransientTokenQueryParamType
+
+`delegation` - This is the only supported `type` parameter.
+
+
+## Values
+
+| Name | Value |
+| ------------ | ------------ |
+| `DELEGATION` | delegation |
\ No newline at end of file
diff --git a/docs/models/operations/gettransienttokenrequest.md b/docs/models/operations/gettransienttokenrequest.md
new file mode 100644
index 0000000..624b57a
--- /dev/null
+++ b/docs/models/operations/gettransienttokenrequest.md
@@ -0,0 +1,9 @@
+# GetTransientTokenRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `type` | [Operations::GetTransientTokenQueryParamType](../../models/operations/gettransienttokenqueryparamtype.md) | :heavy_check_mark: | `delegation` - This is the only supported `type` parameter. |
+| `scope` | [Operations::Scope](../../models/operations/scope.md) | :heavy_check_mark: | `all` - This is the only supported `scope` parameter. |
\ No newline at end of file
diff --git a/docs/models/operations/gettransienttokenresponse.md b/docs/models/operations/gettransienttokenresponse.md
new file mode 100644
index 0000000..53cd59d
--- /dev/null
+++ b/docs/models/operations/gettransienttokenresponse.md
@@ -0,0 +1,11 @@
+# GetTransientTokenResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::GetTransientTokenResponseBody)](../../models/operations/gettransienttokenresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/gettransienttokenresponsebody.md b/docs/models/operations/gettransienttokenresponsebody.md
new file mode 100644
index 0000000..e7ce117
--- /dev/null
+++ b/docs/models/operations/gettransienttokenresponsebody.md
@@ -0,0 +1,10 @@
+# GetTransientTokenResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetTransientTokenErrors](../../models/operations/gettransienttokenerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getupdatestatuserrors.md b/docs/models/operations/getupdatestatuserrors.md
new file mode 100644
index 0000000..db757ed
--- /dev/null
+++ b/docs/models/operations/getupdatestatuserrors.md
@@ -0,0 +1,10 @@
+# GetUpdateStatusErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/getupdatestatusmediacontainer.md b/docs/models/operations/getupdatestatusmediacontainer.md
new file mode 100644
index 0000000..298bab4
--- /dev/null
+++ b/docs/models/operations/getupdatestatusmediacontainer.md
@@ -0,0 +1,13 @@
+# GetUpdateStatusMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `can_install` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `checked_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705801232 |
+| `download_url` | *T.nilable(String)* | :heavy_minus_sign: | N/A | https://plex.tv/downloads/latest/5?channel=8&build=linux-x86_64&distro=redhat&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx |
+| `status` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 0 |
+| `release` | T::Array<[Operations::Release](../../models/operations/release.md)> | :heavy_minus_sign: | N/A | [{"added":"(PLEASE NOTE) This version makes changes to the database which will make it compatible only with server versions 1.31.2 or higher (released March 14). You will not be able to use your database on Plex Media Server versions lower than this after this update. Please also be patient when updating to this version if you have a very large database and allow the upgrade process to finish.\n(Collections) Items added to a collection from the item context menu will now lock the collection field on the items (#12793)\n(Music) Store track genres and add filtering options (#14653)\n(Music) Support ID3v2.4 null-separated tags for genres and release type (#14653)\n(View History) No longer create a view history entry for items marked as played (#10888)\n(Web) Updated to 4.118.0","downloadURL":"https://plex.tv/downloads/latest/5?channel=8\u0026build=linux-x86_64\u0026distro=redhat\u0026X-Plex-Token=xxxxxxxxxxxxxxxxxxxx","fixed":"(Agents) Changing a 'Other Videos' type library to the modern movie agent would fail (#14483)\n(Agents) It is possible that agents are not initialised during startup on rare occasions (#14654)\n(Agents) Remove the legacy OpenSubtitles agent which is no longer supported upstream (#14667)\n(Collection) Server could become unresponsive when collection membership changes (#14612)\n(DVR) Previously watched recordings could be deleted without being watched again (#13779)\n(Libraries) When performing fix match on items from certain music libraries the language would default to Arabic (#14501)\n(Library) The Content Rating not equal to None filter does not work (#14620)\n(Search) Album search results could contain all the album's tracks too (#14486)\n(Subtitles) In some circumstances, sidecar subtitles can show up for media when they're no longer available (#14674)\n(Transcoder) HW encoding would fail on devices with no rate control (#14222)\n(Transcoder) Software transcoding on Ubuntu could cause unexpected behavior (#14605)","key":"https://plex.tv/updater/releases/5136","state":"notify","version":"1.40.0.7775-456fbaf97"}] |
\ No newline at end of file
diff --git a/docs/models/operations/getupdatestatusresponse.md b/docs/models/operations/getupdatestatusresponse.md
new file mode 100644
index 0000000..be657a4
--- /dev/null
+++ b/docs/models/operations/getupdatestatusresponse.md
@@ -0,0 +1,12 @@
+# GetUpdateStatusResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `two_hundred_application_json_object` | [T.nilable(Operations::GetUpdateStatusResponseBody)](../../models/operations/getupdatestatusresponsebody.md) | :heavy_minus_sign: | The Server Updates |
+| `four_hundred_and_one_application_json_object` | [T.nilable(Operations::GetUpdateStatusUpdaterResponseBody)](../../models/operations/getupdatestatusupdaterresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/getupdatestatusresponsebody.md b/docs/models/operations/getupdatestatusresponsebody.md
new file mode 100644
index 0000000..a546e19
--- /dev/null
+++ b/docs/models/operations/getupdatestatusresponsebody.md
@@ -0,0 +1,10 @@
+# GetUpdateStatusResponseBody
+
+The Server Updates
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| `media_container` | [T.nilable(Operations::GetUpdateStatusMediaContainer)](../../models/operations/getupdatestatusmediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/getupdatestatusupdaterresponsebody.md b/docs/models/operations/getupdatestatusupdaterresponsebody.md
new file mode 100644
index 0000000..ba6f67a
--- /dev/null
+++ b/docs/models/operations/getupdatestatusupdaterresponsebody.md
@@ -0,0 +1,10 @@
+# GetUpdateStatusUpdaterResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::GetUpdateStatusErrors](../../models/operations/getupdatestatuserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/guids.md b/docs/models/operations/guids.md
new file mode 100644
index 0000000..e2176b9
--- /dev/null
+++ b/docs/models/operations/guids.md
@@ -0,0 +1,8 @@
+# Guids
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | tvdb://2337 |
\ No newline at end of file
diff --git a/docs/models/operations/hub.md b/docs/models/operations/hub.md
new file mode 100644
index 0000000..d23a65c
--- /dev/null
+++ b/docs/models/operations/hub.md
@@ -0,0 +1,18 @@
+# Hub
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `hub_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/50768,65523,58188,57341,57302,57070 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /playlists/all?type=15&sort=lastViewedAt:desc&playlistType=video,audio |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Recent Playlists |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playlist |
+| `hub_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | home.playlists |
+| `context` | *T.nilable(String)* | :heavy_minus_sign: | N/A | hub.home.playlists |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 6 |
+| `more` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `style` | *T.nilable(String)* | :heavy_minus_sign: | N/A | shelf |
+| `promoted` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `metadata` | T::Array<[Operations::GetGlobalHubsMetadata](../../models/operations/getglobalhubsmetadata.md)> | :heavy_minus_sign: | N/A | [{"addedAt":1668779618,"composite":"/playlists/57070/composite/1668787730","duration":16873000,"guid":"com.plexapp.agents.none://9fee6c5b-3143-4923-813e-57bd0190056c","icon":"playlist://image.smart","key":"/playlists/57070/items","lastViewedAt":1668787732,"leafCount":3,"playlistType":"video","ratingKey":"57070","smart":false,"summary":"","title":"November Movie Day","titleSort":"Tracks","type":"playlist","updatedAt":1668787730,"viewCount":2}] |
\ No newline at end of file
diff --git a/docs/models/operations/includedetails.md b/docs/models/operations/includedetails.md
new file mode 100644
index 0000000..5512941
--- /dev/null
+++ b/docs/models/operations/includedetails.md
@@ -0,0 +1,13 @@
+# IncludeDetails
+
+Whether or not to include details for a section (types, filters, and sorts).
+Only exists for backwards compatibility, media providers other than the server libraries have it on always.
+
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/level.md b/docs/models/operations/level.md
new file mode 100644
index 0000000..6f8db56
--- /dev/null
+++ b/docs/models/operations/level.md
@@ -0,0 +1,20 @@
+# Level
+
+An integer log level to write to the PMS log with.
+0: Error
+1: Warning
+2: Info
+3: Debug
+4: Verbose
+
+
+
+## Values
+
+| Name | Value |
+| ------- | ------- |
+| `ZERO` | 0 |
+| `ONE` | 1 |
+| `TWO` | 2 |
+| `THREE` | 3 |
+| `FOUR` | 4 |
\ No newline at end of file
diff --git a/docs/models/operations/location.md b/docs/models/operations/location.md
new file mode 100644
index 0000000..134c25f
--- /dev/null
+++ b/docs/models/operations/location.md
@@ -0,0 +1,9 @@
+# Location
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------- | -------------------- | -------------------- | -------------------- | -------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `path` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /movies |
\ No newline at end of file
diff --git a/docs/models/operations/loglineerrors.md b/docs/models/operations/loglineerrors.md
new file mode 100644
index 0000000..1dcc821
--- /dev/null
+++ b/docs/models/operations/loglineerrors.md
@@ -0,0 +1,10 @@
+# LogLineErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/loglinerequest.md b/docs/models/operations/loglinerequest.md
new file mode 100644
index 0000000..3557c83
--- /dev/null
+++ b/docs/models/operations/loglinerequest.md
@@ -0,0 +1,10 @@
+# LogLineRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `level` | [Operations::Level](../../models/operations/level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.
0: Error
1: Warning
2: Info
3: Debug
4: Verbose
| |
+| `message` | *String* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
+| `source` | *String* | :heavy_check_mark: | a string indicating the source of the message. | Postman |
\ No newline at end of file
diff --git a/docs/models/operations/loglineresponse.md b/docs/models/operations/loglineresponse.md
new file mode 100644
index 0000000..243dcf0
--- /dev/null
+++ b/docs/models/operations/loglineresponse.md
@@ -0,0 +1,11 @@
+# LogLineResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::LogLineResponseBody)](../../models/operations/loglineresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/loglineresponsebody.md b/docs/models/operations/loglineresponsebody.md
new file mode 100644
index 0000000..09b4674
--- /dev/null
+++ b/docs/models/operations/loglineresponsebody.md
@@ -0,0 +1,10 @@
+# LogLineResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::LogLineErrors](../../models/operations/loglineerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/logmultilineerrors.md b/docs/models/operations/logmultilineerrors.md
new file mode 100644
index 0000000..b059813
--- /dev/null
+++ b/docs/models/operations/logmultilineerrors.md
@@ -0,0 +1,10 @@
+# LogMultiLineErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/logmultilineresponse.md b/docs/models/operations/logmultilineresponse.md
new file mode 100644
index 0000000..3858c80
--- /dev/null
+++ b/docs/models/operations/logmultilineresponse.md
@@ -0,0 +1,11 @@
+# LogMultiLineResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::LogMultiLineResponseBody)](../../models/operations/logmultilineresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/logmultilineresponsebody.md b/docs/models/operations/logmultilineresponsebody.md
new file mode 100644
index 0000000..1cee3b5
--- /dev/null
+++ b/docs/models/operations/logmultilineresponsebody.md
@@ -0,0 +1,10 @@
+# LogMultiLineResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::LogMultiLineErrors](../../models/operations/logmultilineerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/markplayederrors.md b/docs/models/operations/markplayederrors.md
new file mode 100644
index 0000000..cda342d
--- /dev/null
+++ b/docs/models/operations/markplayederrors.md
@@ -0,0 +1,10 @@
+# MarkPlayedErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/markplayedrequest.md b/docs/models/operations/markplayedrequest.md
new file mode 100644
index 0000000..8e55288
--- /dev/null
+++ b/docs/models/operations/markplayedrequest.md
@@ -0,0 +1,8 @@
+# MarkPlayedRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `key` | *Float* | :heavy_check_mark: | The media key to mark as played | 59398 |
\ No newline at end of file
diff --git a/docs/models/operations/markplayedresponse.md b/docs/models/operations/markplayedresponse.md
new file mode 100644
index 0000000..0befe80
--- /dev/null
+++ b/docs/models/operations/markplayedresponse.md
@@ -0,0 +1,11 @@
+# MarkPlayedResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::MarkPlayedResponseBody)](../../models/operations/markplayedresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/markplayedresponsebody.md b/docs/models/operations/markplayedresponsebody.md
new file mode 100644
index 0000000..0aec9ec
--- /dev/null
+++ b/docs/models/operations/markplayedresponsebody.md
@@ -0,0 +1,10 @@
+# MarkPlayedResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::MarkPlayedErrors](../../models/operations/markplayederrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/markunplayederrors.md b/docs/models/operations/markunplayederrors.md
new file mode 100644
index 0000000..09ea5cc
--- /dev/null
+++ b/docs/models/operations/markunplayederrors.md
@@ -0,0 +1,10 @@
+# MarkUnplayedErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/markunplayedrequest.md b/docs/models/operations/markunplayedrequest.md
new file mode 100644
index 0000000..5b11871
--- /dev/null
+++ b/docs/models/operations/markunplayedrequest.md
@@ -0,0 +1,8 @@
+# MarkUnplayedRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- |
+| `key` | *Float* | :heavy_check_mark: | The media key to mark as Unplayed | 59398 |
\ No newline at end of file
diff --git a/docs/models/operations/markunplayedresponse.md b/docs/models/operations/markunplayedresponse.md
new file mode 100644
index 0000000..260de08
--- /dev/null
+++ b/docs/models/operations/markunplayedresponse.md
@@ -0,0 +1,11 @@
+# MarkUnplayedResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::MarkUnplayedResponseBody)](../../models/operations/markunplayedresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/markunplayedresponsebody.md b/docs/models/operations/markunplayedresponsebody.md
new file mode 100644
index 0000000..273b84e
--- /dev/null
+++ b/docs/models/operations/markunplayedresponsebody.md
@@ -0,0 +1,10 @@
+# MarkUnplayedResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::MarkUnplayedErrors](../../models/operations/markunplayederrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/media.md b/docs/models/operations/media.md
new file mode 100644
index 0000000..a04a661
--- /dev/null
+++ b/docs/models/operations/media.md
@@ -0,0 +1,23 @@
+# Media
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- |
+| `id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 120345 |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 7474422 |
+| `bitrate` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 3623 |
+| `width` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1920 |
+| `height` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 804 |
+| `aspect_ratio` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2.35 |
+| `audio_channels` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 6 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | ac3 |
+| `video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | h264 |
+| `video_resolution` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1080 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mp4 |
+| `video_frame_rate` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 24p |
+| `optimized_for_streaming` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 0 |
+| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | high |
+| `part` | T::Array<[Operations::Part](../../models/operations/part.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/mediacontainer.md b/docs/models/operations/mediacontainer.md
new file mode 100644
index 0000000..24c1e80
--- /dev/null
+++ b/docs/models/operations/mediacontainer.md
@@ -0,0 +1,58 @@
+# MediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `allow_camera_upload` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `allow_channel_access` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `allow_media_deletion` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `allow_sharing` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `allow_tuners` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `background_processing` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `certificate` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `companion_proxy` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `country_code` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `diagnostics` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `event_stream` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `friendly_name` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `hub_search` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `item_clusters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `livetv` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `machine_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `media_providers` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `multiuser` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `music_analysis` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `my_plex` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `my_plex_mapping_state` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `my_plex_signin_state` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `my_plex_subscription` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `my_plex_username` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `offline_transcode` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `owner_features` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `photo_auto_tag` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `platform` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `platform_version` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `plugin_host` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `push_notifications` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `read_only_libraries` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `streaming_brain_abr_version` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `streaming_brain_version` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `transcoder_active_video_sessions` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `transcoder_audio` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `transcoder_lyrics` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `transcoder_photo` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `transcoder_subtitles` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `transcoder_video` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `transcoder_video_bitrates` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `transcoder_video_qualities` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `transcoder_video_resolutions` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `updated_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A |
+| `updater` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `version` | *T.nilable(String)* | :heavy_minus_sign: | N/A |
+| `voice_search` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A |
+| `directory` | T::Array<[Operations::Directory](../../models/operations/directory.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/metadata.md b/docs/models/operations/metadata.md
new file mode 100644
index 0000000..cf9b00c
--- /dev/null
+++ b/docs/models/operations/metadata.md
@@ -0,0 +1,39 @@
+# Metadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `library_section_id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1 |
+| `library_section_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Movies |
+| `library_section_uuid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
+| `rating_key` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 59398 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/59398 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://movie/5e161a83bea6ac004126e148 |
+| `studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Marvel Studios |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | movie |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Ant-Man and the Wasp: Quantumania |
+| `content_rating` | *T.nilable(String)* | :heavy_minus_sign: | N/A | PG-13 |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Scott Lang and Hope Van Dyne along with Hank Pym and Janet Van Dyne explore the Quantum Realm where they interact with strange creatures and embark on an adventure that goes beyond the limits of what they thought was possible. |
+| `rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 4.7 |
+| `audience_rating` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 8.3 |
+| `year` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2023 |
+| `tagline` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Witness the beginning of a new dynasty. |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/59398/thumb/1681888010 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/59398/art/1681888010 |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 7474422 |
+| `originally_available_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | N/A | 2023-02-15 00:00:00 +0000 UTC |
+| `added_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1681803215 |
+| `updated_at` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1681888010 |
+| `audience_rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.upright |
+| `chapter_source` | *T.nilable(String)* | :heavy_minus_sign: | N/A | media |
+| `primary_extra_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/59399 |
+| `rating_image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | rottentomatoes://image.rating.rotten |
+| `media` | T::Array<[Operations::Media](../../models/operations/media.md)> | :heavy_minus_sign: | N/A | |
+| `genre` | T::Array<[Operations::Genre](../../models/operations/genre.md)> | :heavy_minus_sign: | N/A | |
+| `director` | T::Array<[Operations::Director](../../models/operations/director.md)> | :heavy_minus_sign: | N/A | |
+| `writer` | T::Array<[Operations::Writer](../../models/operations/writer.md)> | :heavy_minus_sign: | N/A | |
+| `country` | T::Array<[Operations::Country](../../models/operations/country.md)> | :heavy_minus_sign: | N/A | |
+| `role` | T::Array<[Operations::Role](../../models/operations/role.md)> | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/docs/models/operations/minsize.md b/docs/models/operations/minsize.md
new file mode 100644
index 0000000..815444c
--- /dev/null
+++ b/docs/models/operations/minsize.md
@@ -0,0 +1,11 @@
+# MinSize
+
+images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against.
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/myplex.md b/docs/models/operations/myplex.md
new file mode 100644
index 0000000..92d25a5
--- /dev/null
+++ b/docs/models/operations/myplex.md
@@ -0,0 +1,19 @@
+# MyPlex
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `auth_token` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Z5v-PrNASDFpsaCi3CPK7 |
+| `username` | *T.nilable(String)* | :heavy_minus_sign: | N/A | example.email@mail.com |
+| `mapping_state` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mapped |
+| `mapping_error` | *T.nilable(String)* | :heavy_minus_sign: | N/A | |
+| `sign_in_state` | *T.nilable(String)* | :heavy_minus_sign: | N/A | ok |
+| `public_address` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 140.20.68.140 |
+| `public_port` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 32400 |
+| `private_address` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 10.10.10.47 |
+| `private_port` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 32400 |
+| `subscription_features` | *T.nilable(String)* | :heavy_minus_sign: | N/A | federated-auth,hardware_transcoding,home,hwtranscode,item_clusters,kevin-bacon,livetv,loudness,lyrics,music-analysis,music_videos,pass,photo_autotags,photos-v5,photosV6-edit,photosV6-tv-albums,premium_music_metadata,radio,server-manager,session_bandwidth_restrictions,session_kick,shared-radio,sync,trailers,tuner-sharing,type-first,unsupportedtuners,webhooks |
+| `subscription_active` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `subscription_state` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Active |
\ No newline at end of file
diff --git a/docs/models/operations/onlytransient.md b/docs/models/operations/onlytransient.md
new file mode 100644
index 0000000..c91d3d7
--- /dev/null
+++ b/docs/models/operations/onlytransient.md
@@ -0,0 +1,11 @@
+# OnlyTransient
+
+Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/operator.md b/docs/models/operations/operator.md
new file mode 100644
index 0000000..556e618
--- /dev/null
+++ b/docs/models/operations/operator.md
@@ -0,0 +1,9 @@
+# Operator
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | = |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | is |
\ No newline at end of file
diff --git a/docs/models/operations/part.md b/docs/models/operations/part.md
new file mode 100644
index 0000000..c5855b0
--- /dev/null
+++ b/docs/models/operations/part.md
@@ -0,0 +1,17 @@
+# Part
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
+| `id` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 120353 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/parts/120353/1681803203/file.mp4 |
+| `duration` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 7474422 |
+| `file` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /movies/Ant-Man and the Wasp Quantumania (2023)/Ant-Man.and.the.Wasp.Quantumania.2023.1080p.mp4 |
+| `size` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 3395307162 |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mp4 |
+| `has64bit_offsets` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `has_thumbnail` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1 |
+| `optimized_for_streaming` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | |
+| `video_profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | high |
\ No newline at end of file
diff --git a/docs/models/operations/pathparamtaskname.md b/docs/models/operations/pathparamtaskname.md
new file mode 100644
index 0000000..87cffd1
--- /dev/null
+++ b/docs/models/operations/pathparamtaskname.md
@@ -0,0 +1,23 @@
+# PathParamTaskName
+
+The name of the task to be started.
+
+
+## Values
+
+| Name | Value |
+| ----------------------------- | ----------------------------- |
+| `BACKUP_DATABASE` | BackupDatabase |
+| `BUILD_GRACENOTE_COLLECTIONS` | BuildGracenoteCollections |
+| `CHECK_FOR_UPDATES` | CheckForUpdates |
+| `CLEAN_OLD_BUNDLES` | CleanOldBundles |
+| `CLEAN_OLD_CACHE_FILES` | CleanOldCacheFiles |
+| `DEEP_MEDIA_ANALYSIS` | DeepMediaAnalysis |
+| `GENERATE_AUTO_TAGS` | GenerateAutoTags |
+| `GENERATE_CHAPTER_THUMBS` | GenerateChapterThumbs |
+| `GENERATE_MEDIA_INDEX_FILES` | GenerateMediaIndexFiles |
+| `OPTIMIZE_DATABASE` | OptimizeDatabase |
+| `REFRESH_LIBRARIES` | RefreshLibraries |
+| `REFRESH_LOCAL_MEDIA` | RefreshLocalMedia |
+| `REFRESH_PERIODIC_METADATA` | RefreshPeriodicMetadata |
+| `UPGRADE_MEDIA_ANALYSIS` | UpgradeMediaAnalysis |
\ No newline at end of file
diff --git a/docs/models/operations/performsearcherrors.md b/docs/models/operations/performsearcherrors.md
new file mode 100644
index 0000000..22b6333
--- /dev/null
+++ b/docs/models/operations/performsearcherrors.md
@@ -0,0 +1,10 @@
+# PerformSearchErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/performsearchrequest.md b/docs/models/operations/performsearchrequest.md
new file mode 100644
index 0000000..9c55e63
--- /dev/null
+++ b/docs/models/operations/performsearchrequest.md
@@ -0,0 +1,10 @@
+# PerformSearchRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `query` | *String* | :heavy_check_mark: | The query term | arnold |
+| `section_id` | *T.nilable(Float)* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | |
+| `limit` | *T.nilable(Float)* | :heavy_minus_sign: | The number of items to return per hub | 5 |
\ No newline at end of file
diff --git a/docs/models/operations/performsearchresponse.md b/docs/models/operations/performsearchresponse.md
new file mode 100644
index 0000000..32183cd
--- /dev/null
+++ b/docs/models/operations/performsearchresponse.md
@@ -0,0 +1,11 @@
+# PerformSearchResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::PerformSearchResponseBody)](../../models/operations/performsearchresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/performsearchresponsebody.md b/docs/models/operations/performsearchresponsebody.md
new file mode 100644
index 0000000..1c306c9
--- /dev/null
+++ b/docs/models/operations/performsearchresponsebody.md
@@ -0,0 +1,10 @@
+# PerformSearchResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::PerformSearchErrors](../../models/operations/performsearcherrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/performvoicesearcherrors.md b/docs/models/operations/performvoicesearcherrors.md
new file mode 100644
index 0000000..d34c477
--- /dev/null
+++ b/docs/models/operations/performvoicesearcherrors.md
@@ -0,0 +1,10 @@
+# PerformVoiceSearchErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/performvoicesearchrequest.md b/docs/models/operations/performvoicesearchrequest.md
new file mode 100644
index 0000000..0b46050
--- /dev/null
+++ b/docs/models/operations/performvoicesearchrequest.md
@@ -0,0 +1,10 @@
+# PerformVoiceSearchRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `query` | *String* | :heavy_check_mark: | The query term | dead+poop |
+| `section_id` | *T.nilable(Float)* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | |
+| `limit` | *T.nilable(Float)* | :heavy_minus_sign: | The number of items to return per hub | 5 |
\ No newline at end of file
diff --git a/docs/models/operations/performvoicesearchresponse.md b/docs/models/operations/performvoicesearchresponse.md
new file mode 100644
index 0000000..c852173
--- /dev/null
+++ b/docs/models/operations/performvoicesearchresponse.md
@@ -0,0 +1,11 @@
+# PerformVoiceSearchResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::PerformVoiceSearchResponseBody)](../../models/operations/performvoicesearchresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/performvoicesearchresponsebody.md b/docs/models/operations/performvoicesearchresponsebody.md
new file mode 100644
index 0000000..c5c5de5
--- /dev/null
+++ b/docs/models/operations/performvoicesearchresponsebody.md
@@ -0,0 +1,10 @@
+# PerformVoiceSearchResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::PerformVoiceSearchErrors](../../models/operations/performvoicesearcherrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/player.md b/docs/models/operations/player.md
new file mode 100644
index 0000000..5e329b5
--- /dev/null
+++ b/docs/models/operations/player.md
@@ -0,0 +1,22 @@
+# Player
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `address` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 10.10.10.171 |
+| `machine_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 3tsdzir85m2onc3qyr255aq1 |
+| `model` | *T.nilable(String)* | :heavy_minus_sign: | N/A | standalone |
+| `platform` | *T.nilable(String)* | :heavy_minus_sign: | N/A | windows |
+| `platform_version` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 10.0.22621 |
+| `product` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Plex for Windows |
+| `profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Plex Desktop |
+| `remote_public_address` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 68.248.140.20 |
+| `state` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playing |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | DESKTOP-BL80MTD |
+| `version` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1.85.0.4071-21128b56 |
+| `local` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `relayed` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `secure` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `user_id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/playlisttype.md b/docs/models/operations/playlisttype.md
new file mode 100644
index 0000000..276ac5f
--- /dev/null
+++ b/docs/models/operations/playlisttype.md
@@ -0,0 +1,12 @@
+# PlaylistType
+
+limit to a type of playlist.
+
+
+## Values
+
+| Name | Value |
+| ------- | ------- |
+| `AUDIO` | audio |
+| `VIDEO` | video |
+| `PHOTO` | photo |
\ No newline at end of file
diff --git a/docs/models/operations/producer.md b/docs/models/operations/producer.md
new file mode 100644
index 0000000..09ce90b
--- /dev/null
+++ b/docs/models/operations/producer.md
@@ -0,0 +1,12 @@
+# Producer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 221 |
+| `filter` | *T.nilable(String)* | :heavy_minus_sign: | N/A | producer=221 |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Barry Mendel |
+| `tag_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 5d776826961905001eb90e2b |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | https://metadata-static.plex.tv/8/people/87877371326a964634d18556d94547e1.jpg |
\ No newline at end of file
diff --git a/docs/models/operations/provider.md b/docs/models/operations/provider.md
new file mode 100644
index 0000000..4cd7e1f
--- /dev/null
+++ b/docs/models/operations/provider.md
@@ -0,0 +1,10 @@
+# Provider
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/search |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Local Network |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mixed |
\ No newline at end of file
diff --git a/docs/models/operations/queryparamonlytransient.md b/docs/models/operations/queryparamonlytransient.md
new file mode 100644
index 0000000..6c2e140
--- /dev/null
+++ b/docs/models/operations/queryparamonlytransient.md
@@ -0,0 +1,11 @@
+# QueryParamOnlyTransient
+
+Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/queryparamsmart.md b/docs/models/operations/queryparamsmart.md
new file mode 100644
index 0000000..bb53a11
--- /dev/null
+++ b/docs/models/operations/queryparamsmart.md
@@ -0,0 +1,11 @@
+# QueryParamSmart
+
+type of playlists to return (default is all).
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/queryparamtype.md b/docs/models/operations/queryparamtype.md
new file mode 100644
index 0000000..c72a4f7
--- /dev/null
+++ b/docs/models/operations/queryparamtype.md
@@ -0,0 +1,12 @@
+# QueryParamType
+
+type of playlist to create
+
+
+## Values
+
+| Name | Value |
+| ------- | ------- |
+| `AUDIO` | audio |
+| `VIDEO` | video |
+| `PHOTO` | photo |
\ No newline at end of file
diff --git a/docs/models/operations/ratings.md b/docs/models/operations/ratings.md
new file mode 100644
index 0000000..41932e4
--- /dev/null
+++ b/docs/models/operations/ratings.md
@@ -0,0 +1,10 @@
+# Ratings
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- |
+| `image` | *T.nilable(String)* | :heavy_minus_sign: | N/A | themoviedb://image.rating |
+| `value` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 7.4 |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | audience |
\ No newline at end of file
diff --git a/docs/models/operations/refreshlibraryerrors.md b/docs/models/operations/refreshlibraryerrors.md
new file mode 100644
index 0000000..cac5feb
--- /dev/null
+++ b/docs/models/operations/refreshlibraryerrors.md
@@ -0,0 +1,10 @@
+# RefreshLibraryErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/refreshlibraryrequest.md b/docs/models/operations/refreshlibraryrequest.md
new file mode 100644
index 0000000..84bcbc0
--- /dev/null
+++ b/docs/models/operations/refreshlibraryrequest.md
@@ -0,0 +1,8 @@
+# RefreshLibraryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- |
+| `section_id` | *Float* | :heavy_check_mark: | the Id of the library to refresh |
\ No newline at end of file
diff --git a/docs/models/operations/refreshlibraryresponse.md b/docs/models/operations/refreshlibraryresponse.md
new file mode 100644
index 0000000..e6f7c24
--- /dev/null
+++ b/docs/models/operations/refreshlibraryresponse.md
@@ -0,0 +1,11 @@
+# RefreshLibraryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::RefreshLibraryResponseBody)](../../models/operations/refreshlibraryresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/refreshlibraryresponsebody.md b/docs/models/operations/refreshlibraryresponsebody.md
new file mode 100644
index 0000000..1094cb0
--- /dev/null
+++ b/docs/models/operations/refreshlibraryresponsebody.md
@@ -0,0 +1,10 @@
+# RefreshLibraryResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::RefreshLibraryErrors](../../models/operations/refreshlibraryerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/release.md b/docs/models/operations/release.md
new file mode 100644
index 0000000..b4b054e
--- /dev/null
+++ b/docs/models/operations/release.md
@@ -0,0 +1,13 @@
+# Release
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | https://plex.tv/updater/releases/5136 |
+| `version` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1.40.0.7775-456fbaf97 |
+| `added` | *T.nilable(String)* | :heavy_minus_sign: | N/A | (PLEASE NOTE) This version makes changes to the database which will make it compatible only with server versions 1.31.2 or higher (released March 14). You will not be able to use your database on Plex Media Server versions lower than this after this update. Please also be patient when updating to this version if you have a very large database and allow the upgrade process to finish.
(Collections) Items added to a collection from the item context menu will now lock the collection field on the items (#12793)
(Music) Store track genres and add filtering options (#14653)
(Music) Support ID3v2.4 null-separated tags for genres and release type (#14653)
(View History) No longer create a view history entry for items marked as played (#10888)
(Web) Updated to 4.118.0 |
+| `fixed` | *T.nilable(String)* | :heavy_minus_sign: | N/A | (Agents) Changing a 'Other Videos' type library to the modern movie agent would fail (#14483)
(Agents) It is possible that agents are not initialised during startup on rare occasions (#14654)
(Agents) Remove the legacy OpenSubtitles agent which is no longer supported upstream (#14667)
(Collection) Server could become unresponsive when collection membership changes (#14612)
(DVR) Previously watched recordings could be deleted without being watched again (#13779)
(Libraries) When performing fix match on items from certain music libraries the language would default to Arabic (#14501)
(Library) The Content Rating not equal to None filter does not work (#14620)
(Search) Album search results could contain all the album's tracks too (#14486)
(Subtitles) In some circumstances, sidecar subtitles can show up for media when they're no longer available (#14674)
(Transcoder) HW encoding would fail on devices with no rate control (#14222)
(Transcoder) Software transcoding on Ubuntu could cause unexpected behavior (#14605) |
+| `download_url` | *T.nilable(String)* | :heavy_minus_sign: | N/A | https://plex.tv/downloads/latest/5?channel=8&build=linux-x86_64&distro=redhat&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx |
+| `state` | *T.nilable(String)* | :heavy_minus_sign: | N/A | notify |
\ No newline at end of file
diff --git a/docs/models/operations/role.md b/docs/models/operations/role.md
new file mode 100644
index 0000000..2325c7a
--- /dev/null
+++ b/docs/models/operations/role.md
@@ -0,0 +1,8 @@
+# Role
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Paul Rudd |
\ No newline at end of file
diff --git a/docs/models/operations/scope.md b/docs/models/operations/scope.md
new file mode 100644
index 0000000..dfa1680
--- /dev/null
+++ b/docs/models/operations/scope.md
@@ -0,0 +1,10 @@
+# Scope
+
+`all` - This is the only supported `scope` parameter.
+
+
+## Values
+
+| Name | Value |
+| ----- | ----- |
+| `ALL` | all |
\ No newline at end of file
diff --git a/docs/models/operations/searchlibrarymediacontainer.md b/docs/models/operations/searchlibrarymediacontainer.md
new file mode 100644
index 0000000..200ed22
--- /dev/null
+++ b/docs/models/operations/searchlibrarymediacontainer.md
@@ -0,0 +1,20 @@
+# SearchLibraryMediaContainer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `allow_sync` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /:/resources/show-fanart.jpg |
+| `identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | com.plexapp.plugins.library |
+| `media_tag_prefix` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /system/bundle/media/flags/ |
+| `media_tag_version` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1698860922 |
+| `nocache` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /:/resources/show.png |
+| `title1` | *T.nilable(String)* | :heavy_minus_sign: | N/A | TV Shows |
+| `title2` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Search for '' |
+| `view_group` | *T.nilable(String)* | :heavy_minus_sign: | N/A | season |
+| `view_mode` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 65593 |
+| `metadata` | T::Array<[Operations::SearchLibraryMetadata](../../models/operations/searchlibrarymetadata.md)> | :heavy_minus_sign: | N/A | [{"addedAt":1705636916,"art":"/library/metadata/1/art/1705636920","guid":"plex://season/602e67e766dfdb002c0a1b5b","index":1,"key":"/library/metadata/2/children","parentGuid":"plex://show/5d9c086c7d06d9001ffd27aa","parentIndex":1,"parentKey":"/library/metadata/1","parentRatingKey":"1","parentStudio":"Mutant Enemy Productions","parentTheme":"/library/metadata/1/theme/1705636920","parentThumb":"/library/metadata/1/thumb/1705636920","parentTitle":"Firefly","parentYear":2002,"ratingKey":"2","summary":"Captain Malcolm 'Mal' Reynolds is a former galactic war veteran who is the captain of the transport ship \"Serenity\". Mal and his crew, ensign Zoe Alleyne Washburne; Zoe's husband, pilot Hoban 'Wash' Washburne; muscular mercenary Jayne Cobb; young mechanic Kaylee Frye; former Alliance medical officer Simon Tam; his disturbed teenage sister River (both on the run from the interplanetary government \"The Alliance\"); the beautiful courtesan Inara Serra; and preacher Shepherd Book do any jobs, legal or illegal, they can find as the Serenity crew travels across the outskirts of outer space.","thumb":"/library/metadata/2/thumb/1705636920","title":"Season 1","type":"season","updatedAt":1705636920}] |
\ No newline at end of file
diff --git a/docs/models/operations/searchlibrarymetadata.md b/docs/models/operations/searchlibrarymetadata.md
new file mode 100644
index 0000000..7dfad03
--- /dev/null
+++ b/docs/models/operations/searchlibrarymetadata.md
@@ -0,0 +1,27 @@
+# SearchLibraryMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 2 |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/2/children |
+| `parent_rating_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://season/602e67e766dfdb002c0a1b5b |
+| `parent_guid` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex://show/5d9c086c7d06d9001ffd27aa |
+| `parent_studio` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Mutant Enemy Productions |
+| `type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | season |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Season 1 |
+| `parent_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/1 |
+| `parent_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Firefly |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Captain Malcolm 'Mal' Reynolds is a former galactic war veteran who is the captain of the transport ship "Serenity". Mal and his crew, ensign Zoe Alleyne Washburne; Zoe's husband, pilot Hoban 'Wash' Washburne; muscular mercenary Jayne Cobb; young mechanic Kaylee Frye; former Alliance medical officer Simon Tam; his disturbed teenage sister River (both on the run from the interplanetary government "The Alliance"); the beautiful courtesan Inara Serra; and preacher Shepherd Book do any jobs, legal or illegal, they can find as the Serenity crew travels across the outskirts of outer space. |
+| `index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `parent_index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `parent_year` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2002 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/2/thumb/1705636920 |
+| `art` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/1/art/1705636920 |
+| `parent_thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/1/thumb/1705636920 |
+| `parent_theme` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/metadata/1/theme/1705636920 |
+| `added_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705636916 |
+| `updated_at` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1705636920 |
\ No newline at end of file
diff --git a/docs/models/operations/searchlibraryrequest.md b/docs/models/operations/searchlibraryrequest.md
new file mode 100644
index 0000000..040de31
--- /dev/null
+++ b/docs/models/operations/searchlibraryrequest.md
@@ -0,0 +1,9 @@
+# SearchLibraryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
+| `section_id` | *Integer* | :heavy_check_mark: | the Id of the library to query |
+| `type` | [Operations::Type](../../models/operations/type.md) | :heavy_check_mark: | Plex content type to search for |
\ No newline at end of file
diff --git a/docs/models/operations/searchlibraryresponse.md b/docs/models/operations/searchlibraryresponse.md
new file mode 100644
index 0000000..5333188
--- /dev/null
+++ b/docs/models/operations/searchlibraryresponse.md
@@ -0,0 +1,11 @@
+# SearchLibraryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::SearchLibraryResponseBody)](../../models/operations/searchlibraryresponsebody.md) | :heavy_minus_sign: | The contents of the library by section and type |
\ No newline at end of file
diff --git a/docs/models/operations/searchlibraryresponsebody.md b/docs/models/operations/searchlibraryresponsebody.md
new file mode 100644
index 0000000..4fa4926
--- /dev/null
+++ b/docs/models/operations/searchlibraryresponsebody.md
@@ -0,0 +1,10 @@
+# SearchLibraryResponseBody
+
+The contents of the library by section and type
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `media_container` | [T.nilable(Operations::SearchLibraryMediaContainer)](../../models/operations/searchlibrarymediacontainer.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/server.md b/docs/models/operations/server.md
new file mode 100644
index 0000000..b094fc4
--- /dev/null
+++ b/docs/models/operations/server.md
@@ -0,0 +1,18 @@
+# Server
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
+| `name` | *T.nilable(String)* | :heavy_minus_sign: | N/A | iPad |
+| `host` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 10.10.10.102 |
+| `address` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 10.10.10.102 |
+| `port` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 32500 |
+| `machine_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | A2E901F8-E016-43A7-ADFB-EF8CA8A4AC05 |
+| `version` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 8.17 |
+| `protocol` | *T.nilable(String)* | :heavy_minus_sign: | N/A | plex |
+| `product` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Plex for iOS |
+| `device_class` | *T.nilable(String)* | :heavy_minus_sign: | N/A | tablet |
+| `protocol_version` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 2 |
+| `protocol_capabilities` | *T.nilable(String)* | :heavy_minus_sign: | N/A | playback,playqueues,timeline,provider-playback |
\ No newline at end of file
diff --git a/docs/models/operations/session.md b/docs/models/operations/session.md
new file mode 100644
index 0000000..09c41a0
--- /dev/null
+++ b/docs/models/operations/session.md
@@ -0,0 +1,10 @@
+# Session
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 93h7e00ncblxncqw9lkfaoxi |
+| `bandwidth` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1050 |
+| `location` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lan |
\ No newline at end of file
diff --git a/docs/models/operations/skip.md b/docs/models/operations/skip.md
new file mode 100644
index 0000000..5e71f0e
--- /dev/null
+++ b/docs/models/operations/skip.md
@@ -0,0 +1,11 @@
+# Skip
+
+Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`.
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/smart.md b/docs/models/operations/smart.md
new file mode 100644
index 0000000..a4d5e78
--- /dev/null
+++ b/docs/models/operations/smart.md
@@ -0,0 +1,11 @@
+# Smart
+
+whether the playlist is smart or not
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/sort.md b/docs/models/operations/sort.md
new file mode 100644
index 0000000..67409ba
--- /dev/null
+++ b/docs/models/operations/sort.md
@@ -0,0 +1,13 @@
+# Sort
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- |
+| `default` | *T.nilable(String)* | :heavy_minus_sign: | N/A | asc |
+| `default_direction` | *T.nilable(String)* | :heavy_minus_sign: | N/A | desc |
+| `desc_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | random:desc |
+| `first_character_key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | /library/sections/1/firstCharacter |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | random |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Randomly |
\ No newline at end of file
diff --git a/docs/models/operations/startalltaskserrors.md b/docs/models/operations/startalltaskserrors.md
new file mode 100644
index 0000000..fff37f9
--- /dev/null
+++ b/docs/models/operations/startalltaskserrors.md
@@ -0,0 +1,10 @@
+# StartAllTasksErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/startalltasksresponse.md b/docs/models/operations/startalltasksresponse.md
new file mode 100644
index 0000000..9b6073d
--- /dev/null
+++ b/docs/models/operations/startalltasksresponse.md
@@ -0,0 +1,11 @@
+# StartAllTasksResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::StartAllTasksResponseBody)](../../models/operations/startalltasksresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/startalltasksresponsebody.md b/docs/models/operations/startalltasksresponsebody.md
new file mode 100644
index 0000000..94dcc72
--- /dev/null
+++ b/docs/models/operations/startalltasksresponsebody.md
@@ -0,0 +1,10 @@
+# StartAllTasksResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::StartAllTasksErrors](../../models/operations/startalltaskserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/starttaskerrors.md b/docs/models/operations/starttaskerrors.md
new file mode 100644
index 0000000..9d98bdf
--- /dev/null
+++ b/docs/models/operations/starttaskerrors.md
@@ -0,0 +1,10 @@
+# StartTaskErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/starttaskrequest.md b/docs/models/operations/starttaskrequest.md
new file mode 100644
index 0000000..b13d1b1
--- /dev/null
+++ b/docs/models/operations/starttaskrequest.md
@@ -0,0 +1,8 @@
+# StartTaskRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
+| `task_name` | [Operations::TaskName](../../models/operations/taskname.md) | :heavy_check_mark: | the name of the task to be started. |
\ No newline at end of file
diff --git a/docs/models/operations/starttaskresponse.md b/docs/models/operations/starttaskresponse.md
new file mode 100644
index 0000000..b638727
--- /dev/null
+++ b/docs/models/operations/starttaskresponse.md
@@ -0,0 +1,11 @@
+# StartTaskResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::StartTaskResponseBody)](../../models/operations/starttaskresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/starttaskresponsebody.md b/docs/models/operations/starttaskresponsebody.md
new file mode 100644
index 0000000..2c8f2e6
--- /dev/null
+++ b/docs/models/operations/starttaskresponsebody.md
@@ -0,0 +1,10 @@
+# StartTaskResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::StartTaskErrors](../../models/operations/starttaskerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/startuniversaltranscodeerrors.md b/docs/models/operations/startuniversaltranscodeerrors.md
new file mode 100644
index 0000000..caf7f65
--- /dev/null
+++ b/docs/models/operations/startuniversaltranscodeerrors.md
@@ -0,0 +1,10 @@
+# StartUniversalTranscodeErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/startuniversaltranscoderequest.md b/docs/models/operations/startuniversaltranscoderequest.md
new file mode 100644
index 0000000..f045faf
--- /dev/null
+++ b/docs/models/operations/startuniversaltranscoderequest.md
@@ -0,0 +1,23 @@
+# StartUniversalTranscodeRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
+| `has_mde` | *Float* | :heavy_check_mark: | Whether the media item has MDE |
+| `path` | *String* | :heavy_check_mark: | The path to the media item to transcode |
+| `media_index` | *Float* | :heavy_check_mark: | The index of the media item to transcode |
+| `part_index` | *Float* | :heavy_check_mark: | The index of the part to transcode |
+| `protocol` | *String* | :heavy_check_mark: | The protocol to use for the transcode session |
+| `fast_seek` | *T.nilable(Float)* | :heavy_minus_sign: | Whether to use fast seek or not |
+| `direct_play` | *T.nilable(Float)* | :heavy_minus_sign: | Whether to use direct play or not |
+| `direct_stream` | *T.nilable(Float)* | :heavy_minus_sign: | Whether to use direct stream or not |
+| `subtitle_size` | *T.nilable(Float)* | :heavy_minus_sign: | The size of the subtitles |
+| `subtites` | *T.nilable(String)* | :heavy_minus_sign: | The subtitles |
+| `audio_boost` | *T.nilable(Float)* | :heavy_minus_sign: | The audio boost |
+| `location` | *T.nilable(String)* | :heavy_minus_sign: | The location of the transcode session |
+| `media_buffer_size` | *T.nilable(Float)* | :heavy_minus_sign: | The size of the media buffer |
+| `session` | *T.nilable(String)* | :heavy_minus_sign: | The session ID |
+| `add_debug_overlay` | *T.nilable(Float)* | :heavy_minus_sign: | Whether to add a debug overlay or not |
+| `auto_adjust_quality` | *T.nilable(Float)* | :heavy_minus_sign: | Whether to auto adjust quality or not |
\ No newline at end of file
diff --git a/docs/models/operations/startuniversaltranscoderesponse.md b/docs/models/operations/startuniversaltranscoderesponse.md
new file mode 100644
index 0000000..4738d92
--- /dev/null
+++ b/docs/models/operations/startuniversaltranscoderesponse.md
@@ -0,0 +1,11 @@
+# StartUniversalTranscodeResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::StartUniversalTranscodeResponseBody)](../../models/operations/startuniversaltranscoderesponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/startuniversaltranscoderesponsebody.md b/docs/models/operations/startuniversaltranscoderesponsebody.md
new file mode 100644
index 0000000..91f83c6
--- /dev/null
+++ b/docs/models/operations/startuniversaltranscoderesponsebody.md
@@ -0,0 +1,10 @@
+# StartUniversalTranscodeResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::StartUniversalTranscodeErrors](../../models/operations/startuniversaltranscodeerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/state.md b/docs/models/operations/state.md
new file mode 100644
index 0000000..f4f712a
--- /dev/null
+++ b/docs/models/operations/state.md
@@ -0,0 +1,12 @@
+# State
+
+The state of the media item
+
+
+## Values
+
+| Name | Value |
+| --------- | --------- |
+| `PLAYING` | playing |
+| `PAUSED` | paused |
+| `STOPPED` | stopped |
\ No newline at end of file
diff --git a/docs/models/operations/stopalltaskserrors.md b/docs/models/operations/stopalltaskserrors.md
new file mode 100644
index 0000000..8cd1a8a
--- /dev/null
+++ b/docs/models/operations/stopalltaskserrors.md
@@ -0,0 +1,10 @@
+# StopAllTasksErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/stopalltasksresponse.md b/docs/models/operations/stopalltasksresponse.md
new file mode 100644
index 0000000..2599a5f
--- /dev/null
+++ b/docs/models/operations/stopalltasksresponse.md
@@ -0,0 +1,11 @@
+# StopAllTasksResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::StopAllTasksResponseBody)](../../models/operations/stopalltasksresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/stopalltasksresponsebody.md b/docs/models/operations/stopalltasksresponsebody.md
new file mode 100644
index 0000000..f699652
--- /dev/null
+++ b/docs/models/operations/stopalltasksresponsebody.md
@@ -0,0 +1,10 @@
+# StopAllTasksResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::StopAllTasksErrors](../../models/operations/stopalltaskserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/stoptaskerrors.md b/docs/models/operations/stoptaskerrors.md
new file mode 100644
index 0000000..86abbd1
--- /dev/null
+++ b/docs/models/operations/stoptaskerrors.md
@@ -0,0 +1,10 @@
+# StopTaskErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/stoptaskrequest.md b/docs/models/operations/stoptaskrequest.md
new file mode 100644
index 0000000..e025562
--- /dev/null
+++ b/docs/models/operations/stoptaskrequest.md
@@ -0,0 +1,8 @@
+# StopTaskRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `task_name` | [Operations::PathParamTaskName](../../models/operations/pathparamtaskname.md) | :heavy_check_mark: | The name of the task to be started. |
\ No newline at end of file
diff --git a/docs/models/operations/stoptaskresponse.md b/docs/models/operations/stoptaskresponse.md
new file mode 100644
index 0000000..f65c8b5
--- /dev/null
+++ b/docs/models/operations/stoptaskresponse.md
@@ -0,0 +1,11 @@
+# StopTaskResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::StopTaskResponseBody)](../../models/operations/stoptaskresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/stoptaskresponsebody.md b/docs/models/operations/stoptaskresponsebody.md
new file mode 100644
index 0000000..4694358
--- /dev/null
+++ b/docs/models/operations/stoptaskresponsebody.md
@@ -0,0 +1,10 @@
+# StopTaskResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::StopTaskErrors](../../models/operations/stoptaskerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/stoptranscodesessionerrors.md b/docs/models/operations/stoptranscodesessionerrors.md
new file mode 100644
index 0000000..4093614
--- /dev/null
+++ b/docs/models/operations/stoptranscodesessionerrors.md
@@ -0,0 +1,10 @@
+# StopTranscodeSessionErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/stoptranscodesessionrequest.md b/docs/models/operations/stoptranscodesessionrequest.md
new file mode 100644
index 0000000..6a4f8a1
--- /dev/null
+++ b/docs/models/operations/stoptranscodesessionrequest.md
@@ -0,0 +1,8 @@
+# StopTranscodeSessionRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `session_key` | *String* | :heavy_check_mark: | the Key of the transcode session to stop | zz7llzqlx8w9vnrsbnwhbmep |
\ No newline at end of file
diff --git a/docs/models/operations/stoptranscodesessionresponse.md b/docs/models/operations/stoptranscodesessionresponse.md
new file mode 100644
index 0000000..330ba06
--- /dev/null
+++ b/docs/models/operations/stoptranscodesessionresponse.md
@@ -0,0 +1,11 @@
+# StopTranscodeSessionResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::StopTranscodeSessionResponseBody)](../../models/operations/stoptranscodesessionresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/stoptranscodesessionresponsebody.md b/docs/models/operations/stoptranscodesessionresponsebody.md
new file mode 100644
index 0000000..6ade018
--- /dev/null
+++ b/docs/models/operations/stoptranscodesessionresponsebody.md
@@ -0,0 +1,10 @@
+# StopTranscodeSessionResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::StopTranscodeSessionErrors](../../models/operations/stoptranscodesessionerrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/stream.md b/docs/models/operations/stream.md
new file mode 100644
index 0000000..0d72358
--- /dev/null
+++ b/docs/models/operations/stream.md
@@ -0,0 +1,39 @@
+# Stream
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `id` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 29 |
+| `stream_type` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `default` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | aac |
+| `index` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 0 |
+| `bitrate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 128 |
+| `bit_depth` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 8 |
+| `chroma_location` | *T.nilable(String)* | :heavy_minus_sign: | N/A | left |
+| `chroma_subsampling` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 14520 |
+| `coded_height` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 816 |
+| `coded_width` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1920 |
+| `color_primaries` | *T.nilable(String)* | :heavy_minus_sign: | N/A | bt709 |
+| `color_range` | *T.nilable(String)* | :heavy_minus_sign: | N/A | tv |
+| `color_space` | *T.nilable(String)* | :heavy_minus_sign: | N/A | bt709 |
+| `color_trc` | *T.nilable(String)* | :heavy_minus_sign: | N/A | bt709 |
+| `frame_rate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 24 |
+| `has_scaling_matrix` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `height` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 814 |
+| `level` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 40 |
+| `profile` | *T.nilable(String)* | :heavy_minus_sign: | N/A | lc |
+| `ref_frames` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 4 |
+| `scan_type` | *T.nilable(String)* | :heavy_minus_sign: | N/A | progressive |
+| `stream_identifier` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `width` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1920 |
+| `display_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | English (AAC Stereo) |
+| `extended_display_title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | English (AAC Stereo) |
+| `selected` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `channels` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 2 |
+| `language` | *T.nilable(String)* | :heavy_minus_sign: | N/A | English |
+| `language_tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | en |
+| `language_code` | *T.nilable(String)* | :heavy_minus_sign: | N/A | eng |
+| `sampling_rate` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 44100 |
\ No newline at end of file
diff --git a/docs/models/operations/tag.md b/docs/models/operations/tag.md
new file mode 100644
index 0000000..19a3a0d
--- /dev/null
+++ b/docs/models/operations/tag.md
@@ -0,0 +1,28 @@
+# Tag
+
+A key representing a specific tag within the section.
+
+
+## Values
+
+| Name | Value |
+| ----------------- | ----------------- |
+| `ALL` | all |
+| `UNWATCHED` | unwatched |
+| `NEWEST` | newest |
+| `RECENTLY_ADDED` | recentlyAdded |
+| `RECENTLY_VIEWED` | recentlyViewed |
+| `ON_DECK` | onDeck |
+| `COLLECTION` | collection |
+| `EDITION` | edition |
+| `GENRE` | genre |
+| `YEAR` | year |
+| `DECADE` | decade |
+| `DIRECTOR` | director |
+| `ACTOR` | actor |
+| `COUNTRY` | country |
+| `CONTENT_RATING` | contentRating |
+| `RATING` | rating |
+| `RESOLUTION` | resolution |
+| `FIRST_CHARACTER` | firstCharacter |
+| `FOLDER` | folder |
\ No newline at end of file
diff --git a/docs/models/operations/taskname.md b/docs/models/operations/taskname.md
new file mode 100644
index 0000000..44383b3
--- /dev/null
+++ b/docs/models/operations/taskname.md
@@ -0,0 +1,23 @@
+# TaskName
+
+the name of the task to be started.
+
+
+## Values
+
+| Name | Value |
+| ----------------------------- | ----------------------------- |
+| `BACKUP_DATABASE` | BackupDatabase |
+| `BUILD_GRACENOTE_COLLECTIONS` | BuildGracenoteCollections |
+| `CHECK_FOR_UPDATES` | CheckForUpdates |
+| `CLEAN_OLD_BUNDLES` | CleanOldBundles |
+| `CLEAN_OLD_CACHE_FILES` | CleanOldCacheFiles |
+| `DEEP_MEDIA_ANALYSIS` | DeepMediaAnalysis |
+| `GENERATE_AUTO_TAGS` | GenerateAutoTags |
+| `GENERATE_CHAPTER_THUMBS` | GenerateChapterThumbs |
+| `GENERATE_MEDIA_INDEX_FILES` | GenerateMediaIndexFiles |
+| `OPTIMIZE_DATABASE` | OptimizeDatabase |
+| `REFRESH_LIBRARIES` | RefreshLibraries |
+| `REFRESH_LOCAL_MEDIA` | RefreshLocalMedia |
+| `REFRESH_PERIODIC_METADATA` | RefreshPeriodicMetadata |
+| `UPGRADE_MEDIA_ANALYSIS` | UpgradeMediaAnalysis |
\ No newline at end of file
diff --git a/docs/models/operations/tonight.md b/docs/models/operations/tonight.md
new file mode 100644
index 0000000..7bf98ba
--- /dev/null
+++ b/docs/models/operations/tonight.md
@@ -0,0 +1,11 @@
+# Tonight
+
+Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/transcodesession.md b/docs/models/operations/transcodesession.md
new file mode 100644
index 0000000..4d973b0
--- /dev/null
+++ b/docs/models/operations/transcodesession.md
@@ -0,0 +1,31 @@
+# TranscodeSession
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `key` | *T.nilable(String)* | :heavy_minus_sign: | N/A | vv3i2q2lax92qlzul1hbd4bx |
+| `throttled` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `complete` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `progress` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1.7999999523162842 |
+| `size` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | -22 |
+| `speed` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 25.100000381469727 |
+| `error` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | false |
+| `duration` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1445695 |
+| `remaining` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 53 |
+| `context` | *T.nilable(String)* | :heavy_minus_sign: | N/A | streaming |
+| `source_video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | h264 |
+| `source_audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | aac |
+| `video_decision` | *T.nilable(String)* | :heavy_minus_sign: | N/A | transcode |
+| `audio_decision` | *T.nilable(String)* | :heavy_minus_sign: | N/A | transcode |
+| `subtitle_decision` | *T.nilable(String)* | :heavy_minus_sign: | N/A | burn |
+| `protocol` | *T.nilable(String)* | :heavy_minus_sign: | N/A | http |
+| `container` | *T.nilable(String)* | :heavy_minus_sign: | N/A | mkv |
+| `video_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | h264 |
+| `audio_codec` | *T.nilable(String)* | :heavy_minus_sign: | N/A | opus |
+| `audio_channels` | *T.nilable(Integer)* | :heavy_minus_sign: | N/A | 1 |
+| `transcode_hw_requested` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | N/A | true |
+| `time_stamp` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1.7058958054919229e+09 |
+| `max_offset_available` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 29.53 |
+| `min_offset_available` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 3.003000020980835 |
\ No newline at end of file
diff --git a/docs/models/operations/type.md b/docs/models/operations/type.md
new file mode 100644
index 0000000..8cfa2e4
--- /dev/null
+++ b/docs/models/operations/type.md
@@ -0,0 +1,13 @@
+# Type
+
+Plex content type to search for
+
+
+## Values
+
+| Name | Value |
+| ------- | ------- |
+| `ONE` | 1 |
+| `TWO` | 2 |
+| `THREE` | 3 |
+| `FOUR` | 4 |
\ No newline at end of file
diff --git a/docs/models/operations/updateplaylisterrors.md b/docs/models/operations/updateplaylisterrors.md
new file mode 100644
index 0000000..321a7b1
--- /dev/null
+++ b/docs/models/operations/updateplaylisterrors.md
@@ -0,0 +1,10 @@
+# UpdatePlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/updateplaylistrequest.md b/docs/models/operations/updateplaylistrequest.md
new file mode 100644
index 0000000..887d8db
--- /dev/null
+++ b/docs/models/operations/updateplaylistrequest.md
@@ -0,0 +1,10 @@
+# UpdatePlaylistRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | name of the playlist |
+| `summary` | *T.nilable(String)* | :heavy_minus_sign: | summary description of the playlist |
\ No newline at end of file
diff --git a/docs/models/operations/updateplaylistresponse.md b/docs/models/operations/updateplaylistresponse.md
new file mode 100644
index 0000000..398fc5c
--- /dev/null
+++ b/docs/models/operations/updateplaylistresponse.md
@@ -0,0 +1,11 @@
+# UpdatePlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::UpdatePlaylistResponseBody)](../../models/operations/updateplaylistresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/updateplaylistresponsebody.md b/docs/models/operations/updateplaylistresponsebody.md
new file mode 100644
index 0000000..9edb7ea
--- /dev/null
+++ b/docs/models/operations/updateplaylistresponsebody.md
@@ -0,0 +1,10 @@
+# UpdatePlaylistResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::UpdatePlaylistErrors](../../models/operations/updateplaylisterrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/updateplayprogresserrors.md b/docs/models/operations/updateplayprogresserrors.md
new file mode 100644
index 0000000..77809a3
--- /dev/null
+++ b/docs/models/operations/updateplayprogresserrors.md
@@ -0,0 +1,10 @@
+# UpdatePlayProgressErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/updateplayprogressrequest.md b/docs/models/operations/updateplayprogressrequest.md
new file mode 100644
index 0000000..ef37807
--- /dev/null
+++ b/docs/models/operations/updateplayprogressrequest.md
@@ -0,0 +1,10 @@
+# UpdatePlayProgressRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `key` | *String* | :heavy_check_mark: | the media key |
+| `time` | *Float* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. |
+| `state` | *String* | :heavy_check_mark: | The playback state of the media item. |
\ No newline at end of file
diff --git a/docs/models/operations/updateplayprogressresponse.md b/docs/models/operations/updateplayprogressresponse.md
new file mode 100644
index 0000000..88019e4
--- /dev/null
+++ b/docs/models/operations/updateplayprogressresponse.md
@@ -0,0 +1,11 @@
+# UpdatePlayProgressResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::UpdatePlayProgressResponseBody)](../../models/operations/updateplayprogressresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/updateplayprogressresponsebody.md b/docs/models/operations/updateplayprogressresponsebody.md
new file mode 100644
index 0000000..29b9fa0
--- /dev/null
+++ b/docs/models/operations/updateplayprogressresponsebody.md
@@ -0,0 +1,10 @@
+# UpdatePlayProgressResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::UpdatePlayProgressErrors](../../models/operations/updateplayprogresserrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/uploadplaylisterrors.md b/docs/models/operations/uploadplaylisterrors.md
new file mode 100644
index 0000000..7e82bc5
--- /dev/null
+++ b/docs/models/operations/uploadplaylisterrors.md
@@ -0,0 +1,10 @@
+# UploadPlaylistErrors
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `code` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 1001 |
+| `message` | *T.nilable(String)* | :heavy_minus_sign: | N/A | User could not be authenticated |
+| `status` | *T.nilable(Float)* | :heavy_minus_sign: | N/A | 401 |
\ No newline at end of file
diff --git a/docs/models/operations/uploadplaylistrequest.md b/docs/models/operations/uploadplaylistrequest.md
new file mode 100644
index 0000000..4d6835f
--- /dev/null
+++ b/docs/models/operations/uploadplaylistrequest.md
@@ -0,0 +1,9 @@
+# UploadPlaylistRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `path` | *String* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
| /home/barkley/playlist.m3u |
+| `force` | [Operations::Force](../../models/operations/force.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
| |
\ No newline at end of file
diff --git a/docs/models/operations/uploadplaylistresponse.md b/docs/models/operations/uploadplaylistresponse.md
new file mode 100644
index 0000000..de3102e
--- /dev/null
+++ b/docs/models/operations/uploadplaylistresponse.md
@@ -0,0 +1,11 @@
+# UploadPlaylistResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `content_type` | *String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `object` | [T.nilable(Operations::UploadPlaylistResponseBody)](../../models/operations/uploadplaylistresponsebody.md) | :heavy_minus_sign: | Unauthorized - Returned if the X-Plex-Token is missing from the header or query. |
\ No newline at end of file
diff --git a/docs/models/operations/uploadplaylistresponsebody.md b/docs/models/operations/uploadplaylistresponsebody.md
new file mode 100644
index 0000000..73f8e0b
--- /dev/null
+++ b/docs/models/operations/uploadplaylistresponsebody.md
@@ -0,0 +1,10 @@
+# UploadPlaylistResponseBody
+
+Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `errors` | T::Array<[Operations::UploadPlaylistErrors](../../models/operations/uploadplaylisterrors.md)> | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/operations/upscale.md b/docs/models/operations/upscale.md
new file mode 100644
index 0000000..1622f51
--- /dev/null
+++ b/docs/models/operations/upscale.md
@@ -0,0 +1,11 @@
+# Upscale
+
+allow images to be resized beyond native dimensions.
+
+
+## Values
+
+| Name | Value |
+| ------ | ------ |
+| `ZERO` | 0 |
+| `ONE` | 1 |
\ No newline at end of file
diff --git a/docs/models/operations/user.md b/docs/models/operations/user.md
new file mode 100644
index 0000000..82af724
--- /dev/null
+++ b/docs/models/operations/user.md
@@ -0,0 +1,10 @@
+# User
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `id` | *T.nilable(String)* | :heavy_minus_sign: | N/A | 1 |
+| `thumb` | *T.nilable(String)* | :heavy_minus_sign: | N/A | https://plex.tv/users/844780fc6f8a26b5/avatar?c=1705853661 |
+| `title` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Blindkitty38 |
\ No newline at end of file
diff --git a/docs/models/operations/writer.md b/docs/models/operations/writer.md
new file mode 100644
index 0000000..3cda3de
--- /dev/null
+++ b/docs/models/operations/writer.md
@@ -0,0 +1,8 @@
+# Writer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| `tag` | *T.nilable(String)* | :heavy_minus_sign: | N/A | Jeff Loveness |
\ No newline at end of file
diff --git a/docs/models/shared/security.md b/docs/models/shared/security.md
new file mode 100644
index 0000000..3850008
--- /dev/null
+++ b/docs/models/shared/security.md
@@ -0,0 +1,8 @@
+# Security
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `access_token` | *String* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/sdks/activities/README.md b/docs/sdks/activities/README.md
new file mode 100644
index 0000000..d0ce579
--- /dev/null
+++ b/docs/sdks/activities/README.md
@@ -0,0 +1,88 @@
+# Activities
+
+
+## Overview
+
+Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.
+Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.
+Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details:
+- They can contain a `progress` (from 0 to 100) marking the percent completion of the activity.
+- They must contain an `type` which is used by clients to distinguish the specific activity.
+- They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.)
+- The may contain a `Response` object which attributes which represent the result of the asynchronous operation.
+
+
+### Available Operations
+
+* [get_server_activities](#get_server_activities) - Get Server Activities
+* [cancel_server_activities](#cancel_server_activities) - Cancel Server Activities
+
+## get_server_activities
+
+Get Server Activities
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.activities.get_server_activities()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetServerActivitiesResponse)](../../models/operations/getserveractivitiesresponse.md)**
+
+
+## cancel_server_activities
+
+Cancel Server Activities
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.activities.cancel_server_activities(activity_uuid="string")
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| `activity_uuid` | *String* | :heavy_check_mark: | The UUID of the activity to cancel. |
+
+
+### Response
+
+**[T.nilable(Operations::CancelServerActivitiesResponse)](../../models/operations/cancelserveractivitiesresponse.md)**
+
diff --git a/docs/sdks/butler/README.md b/docs/sdks/butler/README.md
new file mode 100644
index 0000000..675e797
--- /dev/null
+++ b/docs/sdks/butler/README.md
@@ -0,0 +1,199 @@
+# Butler
+
+
+## Overview
+
+Butler is the task manager of the Plex Media Server Ecosystem.
+
+
+### Available Operations
+
+* [get_butler_tasks](#get_butler_tasks) - Get Butler tasks
+* [start_all_tasks](#start_all_tasks) - Start all Butler tasks
+* [stop_all_tasks](#stop_all_tasks) - Stop all Butler tasks
+* [start_task](#start_task) - Start a single Butler task
+* [stop_task](#stop_task) - Stop a single Butler task
+
+## get_butler_tasks
+
+Returns a list of butler tasks
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.butler.get_butler_tasks()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetButlerTasksResponse)](../../models/operations/getbutlertasksresponse.md)**
+
+
+## start_all_tasks
+
+This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
+1. Any tasks not scheduled to run on the current day will be skipped.
+2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
+3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
+4. If we are outside the configured window, the task will start immediately.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.butler.start_all_tasks()
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::StartAllTasksResponse)](../../models/operations/startalltasksresponse.md)**
+
+
+## stop_all_tasks
+
+This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.butler.stop_all_tasks()
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::StopAllTasksResponse)](../../models/operations/stopalltasksresponse.md)**
+
+
+## start_task
+
+This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
+1. Any tasks not scheduled to run on the current day will be skipped.
+2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
+3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
+4. If we are outside the configured window, the task will start immediately.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.butler.start_task(task_name=Operations::TaskName::CLEAN_OLD_BUNDLES)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
+| `task_name` | [Operations::TaskName](../../models/operations/taskname.md) | :heavy_check_mark: | the name of the task to be started. |
+
+
+### Response
+
+**[T.nilable(Operations::StartTaskResponse)](../../models/operations/starttaskresponse.md)**
+
+
+## stop_task
+
+This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.butler.stop_task(task_name=Operations::PathParamTaskName::BACKUP_DATABASE)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `task_name` | [Operations::PathParamTaskName](../../models/operations/pathparamtaskname.md) | :heavy_check_mark: | The name of the task to be started. |
+
+
+### Response
+
+**[T.nilable(Operations::StopTaskResponse)](../../models/operations/stoptaskresponse.md)**
+
diff --git a/docs/sdks/hubs/README.md b/docs/sdks/hubs/README.md
new file mode 100644
index 0000000..e3927f0
--- /dev/null
+++ b/docs/sdks/hubs/README.md
@@ -0,0 +1,92 @@
+# Hubs
+
+
+## Overview
+
+Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows.
+
+
+### Available Operations
+
+* [get_global_hubs](#get_global_hubs) - Get Global Hubs
+* [get_library_hubs](#get_library_hubs) - Get library specific hubs
+
+## get_global_hubs
+
+Get Global Hubs filtered by the parameters provided.
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.hubs.get_global_hubs(count=1262.49, only_transient=Operations::OnlyTransient::ONE)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `count` | *Float* | :heavy_minus_sign: | The number of items to return with each hub. |
+| `only_transient` | [Operations::OnlyTransient](../../models/operations/onlytransient.md) | :heavy_minus_sign: | Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). |
+
+
+### Response
+
+**[T.nilable(Operations::GetGlobalHubsResponse)](../../models/operations/getglobalhubsresponse.md)**
+
+
+## get_library_hubs
+
+This endpoint will return a list of library specific hubs
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.hubs.get_library_hubs(section_id=6728.76, count=9010.22, only_transient=Operations::QueryParamOnlyTransient::ZERO)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `section_id` | *Float* | :heavy_check_mark: | the Id of the library to query |
+| `count` | *Float* | :heavy_minus_sign: | The number of items to return with each hub. |
+| `only_transient` | [Operations::QueryParamOnlyTransient](../../models/operations/queryparamonlytransient.md) | :heavy_minus_sign: | Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added). |
+
+
+### Response
+
+**[T.nilable(Operations::GetLibraryHubsResponse)](../../models/operations/getlibraryhubsresponse.md)**
+
diff --git a/docs/sdks/library/README.md b/docs/sdks/library/README.md
new file mode 100644
index 0000000..688dbd8
--- /dev/null
+++ b/docs/sdks/library/README.md
@@ -0,0 +1,513 @@
+# Library
+
+
+## Overview
+
+API Calls interacting with Plex Media Server Libraries
+
+
+### Available Operations
+
+* [get_file_hash](#get_file_hash) - Get Hash Value
+* [get_recently_added](#get_recently_added) - Get Recently Added
+* [get_libraries](#get_libraries) - Get All Libraries
+* [get_library](#get_library) - Get Library Details
+* [delete_library](#delete_library) - Delete Library Section
+* [get_library_items](#get_library_items) - Get Library Items
+* [refresh_library](#refresh_library) - Refresh Library
+* [search_library](#search_library) - Search Library
+* [get_metadata](#get_metadata) - Get Items Metadata
+* [get_metadata_children](#get_metadata_children) - Get Items Children
+* [get_on_deck](#get_on_deck) - Get On Deck
+
+## get_file_hash
+
+This resource returns hash values for local files
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.get_file_hash(url="file://C:\Image.png&type=13", type=4462.17)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
+| `url` | *String* | :heavy_check_mark: | This is the path to the local file, must be prefixed by `file://` | file://C:\Image.png&type=13 |
+| `type` | *Float* | :heavy_minus_sign: | Item type | |
+
+
+### Response
+
+**[T.nilable(Operations::GetFileHashResponse)](../../models/operations/getfilehashresponse.md)**
+
+
+## get_recently_added
+
+This endpoint will return the recently added content.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.get_recently_added()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetRecentlyAddedResponse)](../../models/operations/getrecentlyaddedresponse.md)**
+
+
+## get_libraries
+
+A library section (commonly referred to as just a library) is a collection of media.
+Libraries are typed, and depending on their type provide either a flat or a hierarchical view of the media.
+For example, a music library has an artist > albums > tracks structure, whereas a movie library is flat.
+
+Libraries have features beyond just being a collection of media; for starters, they include information about supported types, filters and sorts.
+This allows a client to provide a rich interface around the media (e.g. allow sorting movies by release year).
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.get_libraries()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetLibrariesResponse)](../../models/operations/getlibrariesresponse.md)**
+
+
+## get_library
+
+## Library Details Endpoint
+
+This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
+
+The details include:
+
+### Directories
+Organized into three categories:
+
+- **Primary Directories**:
+ - Used in some clients for quick access to media subsets (e.g., "All", "On Deck").
+ - Most can be replicated via media queries.
+ - Customizable by users.
+
+- **Secondary Directories**:
+ - Marked with `secondary="1"`.
+ - Used in older clients for structured navigation.
+
+- **Special Directories**:
+ - Includes a "By Folder" entry for filesystem-based browsing.
+ - Contains an obsolete `search="1"` entry for on-the-fly search dialog creation.
+
+### Types
+Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls:
+
+- **Type Object Attributes**:
+ - `key`: Endpoint for the media list of this type.
+ - `type`: Metadata type (if standard Plex type).
+ - `title`: Title for this content type (e.g., "Movies").
+
+- **Filter Objects**:
+ - Subset of the media query language.
+ - Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`.
+
+- **Sort Objects**:
+ - Description of sort fields.
+ - Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`.
+
+> **Note**: Filters and sorts are optional; without them, no filtering controls are rendered.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.get_library(section_id=1000, include_details=Operations::IncludeDetails::ZERO)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `section_id` | *Float* | :heavy_check_mark: | the Id of the library to query | 1000 |
+| `include_details` | [Operations::IncludeDetails](../../models/operations/includedetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).
Only exists for backwards compatibility, media providers other than the server libraries have it on always.
| |
+
+
+### Response
+
+**[T.nilable(Operations::GetLibraryResponse)](../../models/operations/getlibraryresponse.md)**
+
+
+## delete_library
+
+Delate a library using a specific section
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.delete_library(section_id=1000)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
+| `section_id` | *Float* | :heavy_check_mark: | the Id of the library to query | 1000 |
+
+
+### Response
+
+**[T.nilable(Operations::DeleteLibraryResponse)](../../models/operations/deletelibraryresponse.md)**
+
+
+## get_library_items
+
+Fetches details from a specific section of the library identified by a section key and a tag. The tag parameter accepts the following values:
+- `all`: All items in the section.
+- `unwatched`: Items that have not been played.
+- `newest`: Items that are recently released.
+- `recentlyAdded`: Items that are recently added to the library.
+- `recentlyViewed`: Items that were recently viewed.
+- `onDeck`: Items to continue watching.
+- `collection`: Items categorized by collection.
+- `edition`: Items categorized by edition.
+- `genre`: Items categorized by genre.
+- `year`: Items categorized by year of release.
+- `decade`: Items categorized by decade.
+- `director`: Items categorized by director.
+- `actor`: Items categorized by starring actor.
+- `country`: Items categorized by country of origin.
+- `contentRating`: Items categorized by content rating.
+- `rating`: Items categorized by rating.
+- `resolution`: Items categorized by resolution.
+- `firstCharacter`: Items categorized by the first letter.
+- `folder`: Items categorized by folder.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.get_library_items(section_id=451092, tag=Operations::Tag::UNWATCHED)
+
+if ! res.object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| `section_id` | *Integer* | :heavy_check_mark: | the Id of the library to query |
+| `tag` | [Operations::Tag](../../models/operations/tag.md) | :heavy_check_mark: | A key representing a specific tag within the section. |
+
+
+### Response
+
+**[T.nilable(Operations::GetLibraryItemsResponse)](../../models/operations/getlibraryitemsresponse.md)**
+
+
+## refresh_library
+
+This endpoint Refreshes the library.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.refresh_library(section_id=934.16)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- |
+| `section_id` | *Float* | :heavy_check_mark: | the Id of the library to refresh |
+
+
+### Response
+
+**[T.nilable(Operations::RefreshLibraryResponse)](../../models/operations/refreshlibraryresponse.md)**
+
+
+## search_library
+
+Search for content within a specific section of the library.
+
+### Types
+Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls:
+
+- **Type Object Attributes**:
+ - `type`: Metadata type (if standard Plex type).
+ - `title`: Title for this content type (e.g., "Movies").
+
+- **Filter Objects**:
+ - Subset of the media query language.
+ - Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`.
+
+- **Sort Objects**:
+ - Description of sort fields.
+ - Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`.
+
+> **Note**: Filters and sorts are optional; without them, no filtering controls are rendered.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.search_library(section_id=933505, type=Operations::Type::FOUR)
+
+if ! res.object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
+| `section_id` | *Integer* | :heavy_check_mark: | the Id of the library to query |
+| `type` | [Operations::Type](../../models/operations/type.md) | :heavy_check_mark: | Plex content type to search for |
+
+
+### Response
+
+**[T.nilable(Operations::SearchLibraryResponse)](../../models/operations/searchlibraryresponse.md)**
+
+
+## get_metadata
+
+This endpoint will return the metadata of a library item specified with the ratingKey.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.get_metadata(rating_key=8382.31)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| `rating_key` | *Float* | :heavy_check_mark: | the id of the library item to return the children of. |
+
+
+### Response
+
+**[T.nilable(Operations::GetMetadataResponse)](../../models/operations/getmetadataresponse.md)**
+
+
+## get_metadata_children
+
+This endpoint will return the children of of a library item specified with the ratingKey.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.get_metadata_children(rating_key=1539.14)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
+| `rating_key` | *Float* | :heavy_check_mark: | the id of the library item to return the children of. |
+
+
+### Response
+
+**[T.nilable(Operations::GetMetadataChildrenResponse)](../../models/operations/getmetadatachildrenresponse.md)**
+
+
+## get_on_deck
+
+This endpoint will return the on deck content.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.library.get_on_deck()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetOnDeckResponse)](../../models/operations/getondeckresponse.md)**
+
diff --git a/docs/sdks/log/README.md b/docs/sdks/log/README.md
new file mode 100644
index 0000000..527ec5a
--- /dev/null
+++ b/docs/sdks/log/README.md
@@ -0,0 +1,150 @@
+# Log
+
+
+## Overview
+
+Submit logs to the Log Handler for Plex Media Server
+
+
+### Available Operations
+
+* [log_line](#log_line) - Logging a single line message.
+* [log_multi_line](#log_multi_line) - Logging a multi-line message
+* [enable_paper_trail](#enable_paper_trail) - Enabling Papertrail
+
+## log_line
+
+This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.log.log_line(level=Operations::Level::THREE, message="Test log message", source="Postman")
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `level` | [Operations::Level](../../models/operations/level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.
0: Error
1: Warning
2: Info
3: Debug
4: Verbose
| |
+| `message` | *String* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
+| `source` | *String* | :heavy_check_mark: | a string indicating the source of the message. | Postman |
+
+
+### Response
+
+**[T.nilable(Operations::LogLineResponse)](../../models/operations/loglineresponse.md)**
+
+
+## log_multi_line
+
+This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
+It accepts a text/plain request body, where each line represents a distinct log entry.
+Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
+
+Log entries are separated by a newline character (`\n`).
+Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
+This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
+
+The 'level' parameter specifies the log entry's severity or importance, with the following integer values:
+- `0`: Error - Critical issues that require immediate attention.
+- `1`: Warning - Important events that are not critical but may indicate potential issues.
+- `2`: Info - General informational messages about system operation.
+- `3`: Debug - Detailed information useful for debugging purposes.
+- `4`: Verbose - Highly detailed diagnostic information for in-depth analysis.
+
+The 'message' parameter contains the log text, and 'source' identifies the log message's origin (e.g., an application name or module).
+
+Example of a single log entry format:
+`level=4&message=Sample%20log%20entry&source=applicationName`
+
+Ensure each parameter is properly URL-encoded to avoid interpretation issues.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+req = "level=4&message=Test%20message%201&source=postman
+level=3&message=Test%20message%202&source=postman
+level=1&message=Test%20message%203&source=postman"
+
+res = s.log.log_multi_line(req)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
+| `request` | [String](../../models//.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[T.nilable(Operations::LogMultiLineResponse)](../../models/operations/logmultilineresponse.md)**
+
+
+## enable_paper_trail
+
+This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail networked logging site for a period of time.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.log.enable_paper_trail()
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::EnablePaperTrailResponse)](../../models/operations/enablepapertrailresponse.md)**
+
diff --git a/docs/sdks/media/README.md b/docs/sdks/media/README.md
new file mode 100644
index 0000000..588ff36
--- /dev/null
+++ b/docs/sdks/media/README.md
@@ -0,0 +1,130 @@
+# Media
+
+
+## Overview
+
+API Calls interacting with Plex Media Server Media
+
+
+### Available Operations
+
+* [mark_played](#mark_played) - Mark Media Played
+* [mark_unplayed](#mark_unplayed) - Mark Media Unplayed
+* [update_play_progress](#update_play_progress) - Update Media Play Progress
+
+## mark_played
+
+This will mark the provided media key as Played.
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.media.mark_played(key=59398)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- |
+| `key` | *Float* | :heavy_check_mark: | The media key to mark as played | 59398 |
+
+
+### Response
+
+**[T.nilable(Operations::MarkPlayedResponse)](../../models/operations/markplayedresponse.md)**
+
+
+## mark_unplayed
+
+This will mark the provided media key as Unplayed.
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.media.mark_unplayed(key=59398)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- |
+| `key` | *Float* | :heavy_check_mark: | The media key to mark as Unplayed | 59398 |
+
+
+### Response
+
+**[T.nilable(Operations::MarkUnplayedResponse)](../../models/operations/markunplayedresponse.md)**
+
+
+## update_play_progress
+
+This API command can be used to update the play progress of a media item.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.media.update_play_progress(key="string", time=6900.91, state="string")
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `key` | *String* | :heavy_check_mark: | the media key |
+| `time` | *Float* | :heavy_check_mark: | The time, in milliseconds, used to set the media playback progress. |
+| `state` | *String* | :heavy_check_mark: | The playback state of the media item. |
+
+
+### Response
+
+**[T.nilable(Operations::UpdatePlayProgressResponse)](../../models/operations/updateplayprogressresponse.md)**
+
diff --git a/docs/sdks/playlists/README.md b/docs/sdks/playlists/README.md
new file mode 100644
index 0000000..b4501ad
--- /dev/null
+++ b/docs/sdks/playlists/README.md
@@ -0,0 +1,393 @@
+# Playlists
+
+
+## Overview
+
+Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
+They can be organized in (optionally nesting) folders.
+Retrieving a playlist, or its items, will trigger a refresh of its metadata.
+This may cause the duration and number of items to change.
+
+
+### Available Operations
+
+* [create_playlist](#create_playlist) - Create a Playlist
+* [get_playlists](#get_playlists) - Get All Playlists
+* [get_playlist](#get_playlist) - Retrieve Playlist
+* [delete_playlist](#delete_playlist) - Deletes a Playlist
+* [update_playlist](#update_playlist) - Update a Playlist
+* [get_playlist_contents](#get_playlist_contents) - Retrieve Playlist Contents
+* [clear_playlist_contents](#clear_playlist_contents) - Delete Playlist Contents
+* [add_playlist_contents](#add_playlist_contents) - Adding to a Playlist
+* [upload_playlist](#upload_playlist) - Upload Playlist
+
+## create_playlist
+
+Create a new playlist. By default the playlist is blank. To create a playlist along with a first item, pass:
+- `uri` - The content URI for what we're playing (e.g. `server://1234/com.plexapp.plugins.library/library/metadata/1`).
+- `playQueueID` - To create a playlist from an existing play queue.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+req = Operations::CreatePlaylistRequest.new(
+ title="string",
+ type=Operations::QueryParamType::PHOTO,
+ smart=Operations::Smart::ONE,
+ uri="https://inborn-brochure.biz",
+)
+
+res = s.playlists.create_playlist(req)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `request` | [Operations::CreatePlaylistRequest](../../models/operations/createplaylistrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[T.nilable(Operations::CreatePlaylistResponse)](../../models/operations/createplaylistresponse.md)**
+
+
+## get_playlists
+
+Get All Playlists given the specified filters.
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.playlists.get_playlists(playlist_type=Operations::PlaylistType::AUDIO, smart=Operations::QueryParamSmart::ZERO)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| `playlist_type` | [Operations::PlaylistType](../../models/operations/playlisttype.md) | :heavy_minus_sign: | limit to a type of playlist. |
+| `smart` | [Operations::QueryParamSmart](../../models/operations/queryparamsmart.md) | :heavy_minus_sign: | type of playlists to return (default is all). |
+
+
+### Response
+
+**[T.nilable(Operations::GetPlaylistsResponse)](../../models/operations/getplaylistsresponse.md)**
+
+
+## get_playlist
+
+Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item:
+Smart playlist details contain the `content` attribute. This is the content URI for the generator. This can then be parsed by a client to provide smart playlist editing.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.playlists.get_playlist(playlist_id=4109.48)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
+
+
+### Response
+
+**[T.nilable(Operations::GetPlaylistResponse)](../../models/operations/getplaylistresponse.md)**
+
+
+## delete_playlist
+
+This endpoint will delete a playlist
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.playlists.delete_playlist(playlist_id=216.22)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
+
+
+### Response
+
+**[T.nilable(Operations::DeletePlaylistResponse)](../../models/operations/deleteplaylistresponse.md)**
+
+
+## update_playlist
+
+From PMS version 1.9.1 clients can also edit playlist metadata using this endpoint as they would via `PUT /library/metadata/{playlistID}`
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.playlists.update_playlist(playlist_id=3915, title="string", summary="string")
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
+| `title` | *String* | :heavy_minus_sign: | name of the playlist |
+| `summary` | *String* | :heavy_minus_sign: | summary description of the playlist |
+
+
+### Response
+
+**[T.nilable(Operations::UpdatePlaylistResponse)](../../models/operations/updateplaylistresponse.md)**
+
+
+## get_playlist_contents
+
+Gets the contents of a playlist. Should be paged by clients via standard mechanisms.
+By default leaves are returned (e.g. episodes, movies). In order to return other types you can use the `type` parameter.
+For example, you could use this to display a list of recently added albums vis a smart playlist.
+Note that for dumb playlists, items have a `playlistItemID` attribute which is used for deleting or moving items.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.playlists.get_playlist_contents(playlist_id=5004.46, type=9403.59)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
+| `type` | *Float* | :heavy_check_mark: | the metadata type of the item to return |
+
+
+### Response
+
+**[T.nilable(Operations::GetPlaylistContentsResponse)](../../models/operations/getplaylistcontentsresponse.md)**
+
+
+## clear_playlist_contents
+
+Clears a playlist, only works with dumb playlists. Returns the playlist.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.playlists.clear_playlist_contents(playlist_id=1893.18)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist |
+
+
+### Response
+
+**[T.nilable(Operations::ClearPlaylistContentsResponse)](../../models/operations/clearplaylistcontentsresponse.md)**
+
+
+## add_playlist_contents
+
+Adds a generator to a playlist, same parameters as the POST to create. With a dumb playlist, this adds the specified items to the playlist.
+With a smart playlist, passing a new `uri` parameter replaces the rules for the playlist. Returns the playlist.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.playlists.add_playlist_contents(playlist_id=8502.01, uri="server://12345/com.plexapp.plugins.library/library/metadata/1", play_queue_id=123)
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- |
+| `playlist_id` | *Float* | :heavy_check_mark: | the ID of the playlist | |
+| `uri` | *String* | :heavy_check_mark: | the content URI for the playlist | server://12345/com.plexapp.plugins.library/library/metadata/1 |
+| `play_queue_id` | *Float* | :heavy_minus_sign: | the play queue to add to a playlist | 123 |
+
+
+### Response
+
+**[T.nilable(Operations::AddPlaylistContentsResponse)](../../models/operations/addplaylistcontentsresponse.md)**
+
+
+## upload_playlist
+
+Imports m3u playlists by passing a path on the server to scan for m3u-formatted playlist files, or a path to a single playlist file.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.playlists.upload_playlist(path="/home/barkley/playlist.m3u", force=Operations::Force::ZERO)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `path` | *String* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
The GUID of each playlist is based on the filename.
| /home/barkley/playlist.m3u |
+| `force` | [Operations::Force](../../models/operations/force.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
| |
+
+
+### Response
+
+**[T.nilable(Operations::UploadPlaylistResponse)](../../models/operations/uploadplaylistresponse.md)**
+
diff --git a/docs/sdks/plexapi/README.md b/docs/sdks/plexapi/README.md
new file mode 100644
index 0000000..8ee580c
--- /dev/null
+++ b/docs/sdks/plexapi/README.md
@@ -0,0 +1,9 @@
+# PlexAPI SDK
+
+
+## Overview
+
+An Open API Spec for interacting with Plex.tv and Plex Servers
+
+### Available Operations
+
diff --git a/docs/sdks/search/README.md b/docs/sdks/search/README.md
new file mode 100644
index 0000000..722013b
--- /dev/null
+++ b/docs/sdks/search/README.md
@@ -0,0 +1,147 @@
+# Search
+
+
+## Overview
+
+API Calls that perform search operations with Plex Media Server
+
+
+### Available Operations
+
+* [perform_search](#perform_search) - Perform a search
+* [perform_voice_search](#perform_voice_search) - Perform a voice search
+* [get_search_results](#get_search_results) - Get Search Results
+
+## perform_search
+
+This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor).
+
+In the response's items, the following extra attributes are returned to further describe or disambiguate the result:
+
+- `reason`: The reason for the result, if not because of a direct search term match; can be either:
+ - `section`: There are multiple identical results from different sections.
+ - `originalTitle`: There was a search term match from the original title field (sometimes those can be very different or in a foreign language).
+ - ``: If the reason for the result is due to a result in another hub, the source hub identifier is returned. For example, if the search is for "dylan" then Bob Dylan may be returned as an artist result, an a few of his albums returned as album results with a reason code of `artist` (the identifier of that particular hub). Or if the search is for "arnold", there might be movie results returned with a reason of `actor`
+- `reasonTitle`: The string associated with the reason code. For a section reason, it'll be the section name; For a hub identifier, it'll be a string associated with the match (e.g. `Arnold Schwarzenegger` for movies which were returned because the search was for "arnold").
+- `reasonID`: The ID of the item associated with the reason for the result. This might be a section ID, a tag ID, an artist ID, or a show ID.
+
+This request is intended to be very fast, and called as the user types.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.search.perform_search(query="dylan", section_id=1516.53, limit=5)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `query` | *String* | :heavy_check_mark: | The query term | arnold |
+| `section_id` | *Float* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | |
+| `limit` | *Float* | :heavy_minus_sign: | The number of items to return per hub | 5 |
+
+
+### Response
+
+**[T.nilable(Operations::PerformSearchResponse)](../../models/operations/performsearchresponse.md)**
+
+
+## perform_voice_search
+
+This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint.
+It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint.
+Whenever possible, clients should limit the search to the appropriate type.
+Results, as well as their containing per-type hubs, contain a `distance` attribute which can be used to judge result quality.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.search.perform_voice_search(query="dead+poop", section_id=4094.8, limit=5)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `query` | *String* | :heavy_check_mark: | The query term | dead+poop |
+| `section_id` | *Float* | :heavy_minus_sign: | This gives context to the search, and can result in re-ordering of search result hubs | |
+| `limit` | *Float* | :heavy_minus_sign: | The number of items to return per hub | 5 |
+
+
+### Response
+
+**[T.nilable(Operations::PerformVoiceSearchResponse)](../../models/operations/performvoicesearchresponse.md)**
+
+
+## get_search_results
+
+This will search the database for the string provided.
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.search.get_search_results(query="110")
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ |
+| `query` | *String* | :heavy_check_mark: | The search query string to use | 110 |
+
+
+### Response
+
+**[T.nilable(Operations::GetSearchResultsResponse)](../../models/operations/getsearchresultsresponse.md)**
+
diff --git a/docs/sdks/security/README.md b/docs/sdks/security/README.md
new file mode 100644
index 0000000..3de83be
--- /dev/null
+++ b/docs/sdks/security/README.md
@@ -0,0 +1,92 @@
+# Security
+
+
+## Overview
+
+API Calls against Security for Plex Media Server
+
+
+### Available Operations
+
+* [get_transient_token](#get_transient_token) - Get a Transient Token.
+* [get_source_connection_information](#get_source_connection_information) - Get Source Connection Information
+
+## get_transient_token
+
+This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.security.get_transient_token(type=Operations::GetTransientTokenQueryParamType::DELEGATION, scope=Operations::Scope::ALL)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `type` | [Operations::GetTransientTokenQueryParamType](../../models/operations/gettransienttokenqueryparamtype.md) | :heavy_check_mark: | `delegation` - This is the only supported `type` parameter. |
+| `scope` | [Operations::Scope](../../models/operations/scope.md) | :heavy_check_mark: | `all` - This is the only supported `scope` parameter. |
+
+
+### Response
+
+**[T.nilable(Operations::GetTransientTokenResponse)](../../models/operations/gettransienttokenresponse.md)**
+
+
+## get_source_connection_information
+
+If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token.
+Note: requires Plex Media Server >= 1.15.4.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.security.get_source_connection_information(source="server://client-identifier")
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
+| `source` | *String* | :heavy_check_mark: | The source identifier with an included prefix. | server://client-identifier |
+
+
+### Response
+
+**[T.nilable(Operations::GetSourceConnectionInformationResponse)](../../models/operations/getsourceconnectioninformationresponse.md)**
+
diff --git a/docs/sdks/server/README.md b/docs/sdks/server/README.md
new file mode 100644
index 0000000..858d72e
--- /dev/null
+++ b/docs/sdks/server/README.md
@@ -0,0 +1,291 @@
+# Server
+
+
+## Overview
+
+Operations against the Plex Media Server System.
+
+
+### Available Operations
+
+* [get_server_capabilities](#get_server_capabilities) - Server Capabilities
+* [get_server_preferences](#get_server_preferences) - Get Server Preferences
+* [get_available_clients](#get_available_clients) - Get Available Clients
+* [get_devices](#get_devices) - Get Devices
+* [get_server_identity](#get_server_identity) - Get Server Identity
+* [get_my_plex_account](#get_my_plex_account) - Get MyPlex Account
+* [get_resized_photo](#get_resized_photo) - Get a Resized Photo
+* [get_server_list](#get_server_list) - Get Server List
+
+## get_server_capabilities
+
+Server Capabilities
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_server_capabilities()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetServerCapabilitiesResponse)](../../models/operations/getservercapabilitiesresponse.md)**
+
+
+## get_server_preferences
+
+Get Server Preferences
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_server_preferences()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetServerPreferencesResponse)](../../models/operations/getserverpreferencesresponse.md)**
+
+
+## get_available_clients
+
+Get Available Clients
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_available_clients()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetAvailableClientsResponse)](../../models/operations/getavailableclientsresponse.md)**
+
+
+## get_devices
+
+Get Devices
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_devices()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetDevicesResponse)](../../models/operations/getdevicesresponse.md)**
+
+
+## get_server_identity
+
+Get Server Identity
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_server_identity()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetServerIdentityResponse)](../../models/operations/getserveridentityresponse.md)**
+
+
+## get_my_plex_account
+
+Returns MyPlex Account Information
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_my_plex_account()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetMyPlexAccountResponse)](../../models/operations/getmyplexaccountresponse.md)**
+
+
+## get_resized_photo
+
+Plex's Photo transcoder is used throughout the service to serve images at specified sizes.
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+req = Operations::GetResizedPhotoRequest.new(
+ width=110,
+ height=165,
+ opacity=643869,
+ blur=4000,
+ min_size=Operations::MinSize::ZERO,
+ upscale=Operations::Upscale::ZERO,
+ url="/library/metadata/49564/thumb/1654258204",
+)
+
+res = s.server.get_resized_photo(req)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `request` | [Operations::GetResizedPhotoRequest](../../models/operations/getresizedphotorequest.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[T.nilable(Operations::GetResizedPhotoResponse)](../../models/operations/getresizedphotoresponse.md)**
+
+
+## get_server_list
+
+Get Server List
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.server.get_server_list()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetServerListResponse)](../../models/operations/getserverlistresponse.md)**
+
diff --git a/docs/sdks/sessions/README.md b/docs/sdks/sessions/README.md
new file mode 100644
index 0000000..03692e5
--- /dev/null
+++ b/docs/sdks/sessions/README.md
@@ -0,0 +1,148 @@
+# Sessions
+
+
+## Overview
+
+API Calls that perform search operations with Plex Media Server Sessions
+
+
+### Available Operations
+
+* [get_sessions](#get_sessions) - Get Active Sessions
+* [get_session_history](#get_session_history) - Get Session History
+* [get_transcode_sessions](#get_transcode_sessions) - Get Transcode Sessions
+* [stop_transcode_session](#stop_transcode_session) - Stop a Transcode Session
+
+## get_sessions
+
+This will retrieve the "Now Playing" Information of the PMS.
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.sessions.get_sessions()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetSessionsResponse)](../../models/operations/getsessionsresponse.md)**
+
+
+## get_session_history
+
+This will Retrieve a listing of all history views.
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.sessions.get_session_history()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetSessionHistoryResponse)](../../models/operations/getsessionhistoryresponse.md)**
+
+
+## get_transcode_sessions
+
+Get Transcode Sessions
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.sessions.get_transcode_sessions()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetTranscodeSessionsResponse)](../../models/operations/gettranscodesessionsresponse.md)**
+
+
+## stop_transcode_session
+
+Stop a Transcode Session
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.sessions.stop_transcode_session(session_key="zz7llzqlx8w9vnrsbnwhbmep")
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
+| `session_key` | *String* | :heavy_check_mark: | the Key of the transcode session to stop | zz7llzqlx8w9vnrsbnwhbmep |
+
+
+### Response
+
+**[T.nilable(Operations::StopTranscodeSessionResponse)](../../models/operations/stoptranscodesessionresponse.md)**
+
diff --git a/docs/sdks/updater/README.md b/docs/sdks/updater/README.md
new file mode 100644
index 0000000..9225750
--- /dev/null
+++ b/docs/sdks/updater/README.md
@@ -0,0 +1,124 @@
+# Updater
+
+
+## Overview
+
+This describes the API for searching and applying updates to the Plex Media Server.
+Updates to the status can be observed via the Event API.
+
+
+### Available Operations
+
+* [get_update_status](#get_update_status) - Querying status of updates
+* [check_for_updates](#check_for_updates) - Checking for updates
+* [apply_updates](#apply_updates) - Apply Updates
+
+## get_update_status
+
+Querying status of updates
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.updater.get_update_status()
+
+if ! res.two_hundred_application_json_object.nil?
+ # handle response
+end
+
+```
+
+
+### Response
+
+**[T.nilable(Operations::GetUpdateStatusResponse)](../../models/operations/getupdatestatusresponse.md)**
+
+
+## check_for_updates
+
+Checking for updates
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.updater.check_for_updates(download=Operations::Download::ONE)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
+| `download` | [Operations::Download](../../models/operations/download.md) | :heavy_minus_sign: | Indicate that you want to start download any updates found. |
+
+
+### Response
+
+**[T.nilable(Operations::CheckForUpdatesResponse)](../../models/operations/checkforupdatesresponse.md)**
+
+
+## apply_updates
+
+Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed
+
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+res = s.updater.apply_updates(tonight=Operations::Tonight::ONE, skip=Operations::Skip::ZERO)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `tonight` | [Operations::Tonight](../../models/operations/tonight.md) | :heavy_minus_sign: | Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install |
+| `skip` | [Operations::Skip](../../models/operations/skip.md) | :heavy_minus_sign: | Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`. |
+
+
+### Response
+
+**[T.nilable(Operations::ApplyUpdatesResponse)](../../models/operations/applyupdatesresponse.md)**
+
diff --git a/docs/sdks/video/README.md b/docs/sdks/video/README.md
new file mode 100644
index 0000000..99b4cf5
--- /dev/null
+++ b/docs/sdks/video/README.md
@@ -0,0 +1,109 @@
+# Video
+
+
+## Overview
+
+API Calls that perform operations with Plex Media Server Videos
+
+
+### Available Operations
+
+* [start_universal_transcode](#start_universal_transcode) - Start Universal Transcode
+* [get_timeline](#get_timeline) - Get the timeline for a media item
+
+## start_universal_transcode
+
+Begin a Universal Transcode Session
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+req = Operations::StartUniversalTranscodeRequest.new(
+ has_mde=8924.99,
+ path="/etc/mail",
+ media_index=9962.95,
+ part_index=1232.82,
+ protocol="string",
+)
+
+res = s.video.start_universal_transcode(req)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
+| `request` | [Operations::StartUniversalTranscodeRequest](../../models/operations/startuniversaltranscoderequest.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[T.nilable(Operations::StartUniversalTranscodeResponse)](../../models/operations/startuniversaltranscoderesponse.md)**
+
+
+## get_timeline
+
+Get the timeline for a media item
+
+### Example Usage
+
+```ruby
+require_relative plexruby
+
+
+s = ::OpenApiSDK::PlexAPI.new
+s.config_security(
+ security=Shared::Security.new(
+ access_token="",
+ )
+)
+
+
+req = Operations::GetTimelineRequest.new(
+ rating_key=716.56,
+ key="",
+ state=Operations::State::PAUSED,
+ has_mde=7574.33,
+ time=3327.51,
+ duration=7585.39,
+ context="string",
+ play_queue_item_id=1406.21,
+ play_back_time=2699.34,
+ row=3536.42,
+)
+
+res = s.video.get_timeline(req)
+
+if res.status == 200
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| `request` | [Operations::GetTimelineRequest](../../models/operations/gettimelinerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+
+
+### Response
+
+**[T.nilable(Operations::GetTimelineResponse)](../../models/operations/gettimelineresponse.md)**
+
diff --git a/lib/plexapi/activities.rb b/lib/plexapi/activities.rb
new file mode 100644
index 0000000..e24fcbe
--- /dev/null
+++ b/lib/plexapi/activities.rb
@@ -0,0 +1,103 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Activities
+ # Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.
+ # Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.
+ # Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details:
+ # - They can contain a `progress` (from 0 to 100) marking the percent completion of the activity.
+ # - They must contain an `type` which is used by clients to distinguish the specific activity.
+ # - They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.)
+ # - The may contain a `Response` object which attributes which represent the result of the asynchronous operation.
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_server_activities
+ # get_server_activities - Get Server Activities
+ # Get Server Activities
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/activities"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetServerActivitiesResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerActivitiesResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerActivitiesActivitiesResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(activity_uuid: String).returns(Utils::FieldAugmented) }
+ def cancel_server_activities(activity_uuid)
+ # cancel_server_activities - Cancel Server Activities
+ # Cancel Server Activities
+ request = Operations::CancelServerActivitiesRequest.new(
+
+ activity_uuid: activity_uuid
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::CancelServerActivitiesRequest,
+ base_url,
+ '/activities/{activityUUID}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.delete(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::CancelServerActivitiesResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::CancelServerActivitiesResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/butler.rb b/lib/plexapi/butler.rb
new file mode 100644
index 0000000..42f6128
--- /dev/null
+++ b/lib/plexapi/butler.rb
@@ -0,0 +1,211 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Butler
+ # Butler is the task manager of the Plex Media Server Ecosystem.
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_butler_tasks
+ # get_butler_tasks - Get Butler tasks
+ # Returns a list of butler tasks
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/butler"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetButlerTasksResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetButlerTasksResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetButlerTasksButlerResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def start_all_tasks
+ # start_all_tasks - Start all Butler tasks
+ # This endpoint will attempt to start all Butler tasks that are enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
+ # 1. Any tasks not scheduled to run on the current day will be skipped.
+ # 2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
+ # 3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
+ # 4. If we are outside the configured window, the task will start immediately.
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/butler"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.post(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::StartAllTasksResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::StartAllTasksResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def stop_all_tasks
+ # stop_all_tasks - Stop all Butler tasks
+ # This endpoint will stop all currently running tasks and remove any scheduled tasks from the queue.
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/butler"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.delete(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::StopAllTasksResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::StopAllTasksResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(task_name: Operations::TaskName).returns(Utils::FieldAugmented) }
+ def start_task(task_name)
+ # start_task - Start a single Butler task
+ # This endpoint will attempt to start a single Butler task that is enabled in the settings. Butler tasks normally run automatically during a time window configured on the server's Settings page but can be manually started using this endpoint. Tasks will run with the following criteria:
+ # 1. Any tasks not scheduled to run on the current day will be skipped.
+ # 2. If a task is configured to run at a random time during the configured window and we are outside that window, the task will start immediately.
+ # 3. If a task is configured to run at a random time during the configured window and we are within that window, the task will be scheduled at a random time within the window.
+ # 4. If we are outside the configured window, the task will start immediately.
+ #
+ request = Operations::StartTaskRequest.new(
+
+ task_name: task_name
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::StartTaskRequest,
+ base_url,
+ '/butler/{taskName}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.post(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::StartTaskResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 202, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::StartTaskResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(task_name: Operations::PathParamTaskName).returns(Utils::FieldAugmented) }
+ def stop_task(task_name)
+ # stop_task - Stop a single Butler task
+ # This endpoint will stop a currently running task by name, or remove it from the list of scheduled tasks if it exists. See the section above for a list of task names for this endpoint.
+ #
+ request = Operations::StopTaskRequest.new(
+
+ task_name: task_name
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::StopTaskRequest,
+ base_url,
+ '/butler/{taskName}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.delete(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::StopTaskResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400, 404].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::StopTaskResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/hubs.rb b/lib/plexapi/hubs.rb
new file mode 100644
index 0000000..63cbc9b
--- /dev/null
+++ b/lib/plexapi/hubs.rb
@@ -0,0 +1,114 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Hubs
+ # Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows.
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { params(count: T.nilable(Float), only_transient: T.nilable(Operations::OnlyTransient)).returns(Utils::FieldAugmented) }
+ def get_global_hubs(count = nil, only_transient = nil)
+ # get_global_hubs - Get Global Hubs
+ # Get Global Hubs filtered by the parameters provided.
+ request = Operations::GetGlobalHubsRequest.new(
+
+ count: count,
+ only_transient: only_transient
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/hubs"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetGlobalHubsRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetGlobalHubsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetGlobalHubsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetGlobalHubsHubsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(section_id: Float, count: T.nilable(Float), only_transient: T.nilable(Operations::QueryParamOnlyTransient)).returns(Utils::FieldAugmented) }
+ def get_library_hubs(section_id, count = nil, only_transient = nil)
+ # get_library_hubs - Get library specific hubs
+ # This endpoint will return a list of library specific hubs
+ #
+ request = Operations::GetLibraryHubsRequest.new(
+
+ section_id: section_id,
+ count: count,
+ only_transient: only_transient
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::GetLibraryHubsRequest,
+ base_url,
+ '/hubs/sections/{sectionId}',
+ request
+ )
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetLibraryHubsRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetLibraryHubsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetLibraryHubsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetLibraryHubsHubsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/library.rb b/lib/plexapi/library.rb
new file mode 100644
index 0000000..a240996
--- /dev/null
+++ b/lib/plexapi/library.rb
@@ -0,0 +1,555 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Library
+ # API Calls interacting with Plex Media Server Libraries
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { params(url: String, type: T.nilable(Float)).returns(Utils::FieldAugmented) }
+ def get_file_hash(url, type = nil)
+ # get_file_hash - Get Hash Value
+ # This resource returns hash values for local files
+ request = Operations::GetFileHashRequest.new(
+
+ url: url,
+ type: type
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/library/hashes"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetFileHashRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetFileHashResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetFileHashResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_recently_added
+ # get_recently_added - Get Recently Added
+ # This endpoint will return the recently added content.
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/library/recentlyAdded"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetRecentlyAddedResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetRecentlyAddedResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetRecentlyAddedLibraryResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_libraries
+ # get_libraries - Get All Libraries
+ # A library section (commonly referred to as just a library) is a collection of media.
+ # Libraries are typed, and depending on their type provide either a flat or a hierarchical view of the media.
+ # For example, a music library has an artist > albums > tracks structure, whereas a movie library is flat.
+ #
+ # Libraries have features beyond just being a collection of media; for starters, they include information about supported types, filters and sorts.
+ # This allows a client to provide a rich interface around the media (e.g. allow sorting movies by release year).
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/library/sections"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetLibrariesResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetLibrariesResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetLibrariesLibraryResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(section_id: Float, include_details: T.nilable(Operations::IncludeDetails)).returns(Utils::FieldAugmented) }
+ def get_library(section_id, include_details = nil)
+ # get_library - Get Library Details
+ # ## Library Details Endpoint
+ #
+ # This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
+ #
+ # The details include:
+ #
+ # ### Directories
+ # Organized into three categories:
+ #
+ # - **Primary Directories**:
+ # - Used in some clients for quick access to media subsets (e.g., "All", "On Deck").
+ # - Most can be replicated via media queries.
+ # - Customizable by users.
+ #
+ # - **Secondary Directories**:
+ # - Marked with `secondary="1"`.
+ # - Used in older clients for structured navigation.
+ #
+ # - **Special Directories**:
+ # - Includes a "By Folder" entry for filesystem-based browsing.
+ # - Contains an obsolete `search="1"` entry for on-the-fly search dialog creation.
+ #
+ # ### Types
+ # Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls:
+ #
+ # - **Type Object Attributes**:
+ # - `key`: Endpoint for the media list of this type.
+ # - `type`: Metadata type (if standard Plex type).
+ # - `title`: Title for this content type (e.g., "Movies").
+ #
+ # - **Filter Objects**:
+ # - Subset of the media query language.
+ # - Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`.
+ #
+ # - **Sort Objects**:
+ # - Description of sort fields.
+ # - Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`.
+ #
+ # > **Note**: Filters and sorts are optional; without them, no filtering controls are rendered.
+ #
+ request = Operations::GetLibraryRequest.new(
+
+ section_id: section_id,
+ include_details: include_details
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::GetLibraryRequest,
+ base_url,
+ '/library/sections/{sectionId}',
+ request
+ )
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetLibraryRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetLibraryResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetLibraryResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetLibraryLibraryResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(section_id: Float).returns(Utils::FieldAugmented) }
+ def delete_library(section_id)
+ # delete_library - Delete Library Section
+ # Delate a library using a specific section
+ request = Operations::DeleteLibraryRequest.new(
+
+ section_id: section_id
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::DeleteLibraryRequest,
+ base_url,
+ '/library/sections/{sectionId}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.delete(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::DeleteLibraryResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::DeleteLibraryResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(section_id: Integer, tag: Operations::Tag).returns(Utils::FieldAugmented) }
+ def get_library_items(section_id, tag)
+ # get_library_items - Get Library Items
+ # Fetches details from a specific section of the library identified by a section key and a tag. The tag parameter accepts the following values:
+ # - `all`: All items in the section.
+ # - `unwatched`: Items that have not been played.
+ # - `newest`: Items that are recently released.
+ # - `recentlyAdded`: Items that are recently added to the library.
+ # - `recentlyViewed`: Items that were recently viewed.
+ # - `onDeck`: Items to continue watching.
+ # - `collection`: Items categorized by collection.
+ # - `edition`: Items categorized by edition.
+ # - `genre`: Items categorized by genre.
+ # - `year`: Items categorized by year of release.
+ # - `decade`: Items categorized by decade.
+ # - `director`: Items categorized by director.
+ # - `actor`: Items categorized by starring actor.
+ # - `country`: Items categorized by country of origin.
+ # - `contentRating`: Items categorized by content rating.
+ # - `rating`: Items categorized by rating.
+ # - `resolution`: Items categorized by resolution.
+ # - `firstCharacter`: Items categorized by the first letter.
+ # - `folder`: Items categorized by folder.
+ #
+ request = Operations::GetLibraryItemsRequest.new(
+
+ section_id: section_id,
+ tag: tag
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::GetLibraryItemsRequest,
+ base_url,
+ '/library/sections/{sectionId}/{tag}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetLibraryItemsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetLibraryItemsResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(section_id: Float).returns(Utils::FieldAugmented) }
+ def refresh_library(section_id)
+ # refresh_library - Refresh Library
+ # This endpoint Refreshes the library.
+ #
+ request = Operations::RefreshLibraryRequest.new(
+
+ section_id: section_id
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::RefreshLibraryRequest,
+ base_url,
+ '/library/sections/{sectionId}/refresh',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::RefreshLibraryResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::RefreshLibraryResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(section_id: Integer, type: Operations::Type).returns(Utils::FieldAugmented) }
+ def search_library(section_id, type)
+ # search_library - Search Library
+ # Search for content within a specific section of the library.
+ #
+ # ### Types
+ # Each type in the library comes with a set of filters and sorts, aiding in building dynamic media controls:
+ #
+ # - **Type Object Attributes**:
+ # - `type`: Metadata type (if standard Plex type).
+ # - `title`: Title for this content type (e.g., "Movies").
+ #
+ # - **Filter Objects**:
+ # - Subset of the media query language.
+ # - Attributes include `filter` (name), `filterType` (data type), `key` (endpoint for value range), and `title`.
+ #
+ # - **Sort Objects**:
+ # - Description of sort fields.
+ # - Attributes include `defaultDirection` (asc/desc), `descKey` and `key` (sort parameters), and `title`.
+ #
+ # > **Note**: Filters and sorts are optional; without them, no filtering controls are rendered.
+ #
+ request = Operations::SearchLibraryRequest.new(
+
+ section_id: section_id,
+ type: type
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::SearchLibraryRequest,
+ base_url,
+ '/library/sections/{sectionId}/search',
+ request
+ )
+ headers = {}
+ query_params = Utils.get_query_params(Operations::SearchLibraryRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::SearchLibraryResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::SearchLibraryResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(rating_key: Float).returns(Utils::FieldAugmented) }
+ def get_metadata(rating_key)
+ # get_metadata - Get Items Metadata
+ # This endpoint will return the metadata of a library item specified with the ratingKey.
+ #
+ request = Operations::GetMetadataRequest.new(
+
+ rating_key: rating_key
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::GetMetadataRequest,
+ base_url,
+ '/library/metadata/{ratingKey}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetMetadataResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetMetadataResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetMetadataLibraryResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(rating_key: Float).returns(Utils::FieldAugmented) }
+ def get_metadata_children(rating_key)
+ # get_metadata_children - Get Items Children
+ # This endpoint will return the children of of a library item specified with the ratingKey.
+ #
+ request = Operations::GetMetadataChildrenRequest.new(
+
+ rating_key: rating_key
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::GetMetadataChildrenRequest,
+ base_url,
+ '/library/metadata/{ratingKey}/children',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetMetadataChildrenResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetMetadataChildrenResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetMetadataChildrenLibraryResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_on_deck
+ # get_on_deck - Get On Deck
+ # This endpoint will return the on deck content.
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/library/onDeck"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetOnDeckResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetOnDeckResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetOnDeckLibraryResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/log.rb b/lib/plexapi/log.rb
new file mode 100644
index 0000000..207b3c8
--- /dev/null
+++ b/lib/plexapi/log.rb
@@ -0,0 +1,155 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Log
+ # Submit logs to the Log Handler for Plex Media Server
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { params(level: Operations::Level, message: String, source: String).returns(Utils::FieldAugmented) }
+ def log_line(level, message, source)
+ # log_line - Logging a single line message.
+ # This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
+ #
+ request = Operations::LogLineRequest.new(
+
+ level: level,
+ message: message,
+ source: source
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/log"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::LogLineRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::LogLineResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::LogLineResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(request: String).returns(Utils::FieldAugmented) }
+ def log_multi_line(request)
+ # log_multi_line - Logging a multi-line message
+ # This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
+ # It accepts a text/plain request body, where each line represents a distinct log entry.
+ # Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
+ #
+ # Log entries are separated by a newline character (`\n`).
+ # Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
+ # This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
+ #
+ # The 'level' parameter specifies the log entry's severity or importance, with the following integer values:
+ # - `0`: Error - Critical issues that require immediate attention.
+ # - `1`: Warning - Important events that are not critical but may indicate potential issues.
+ # - `2`: Info - General informational messages about system operation.
+ # - `3`: Debug - Detailed information useful for debugging purposes.
+ # - `4`: Verbose - Highly detailed diagnostic information for in-depth analysis.
+ #
+ # The 'message' parameter contains the log text, and 'source' identifies the log message's origin (e.g., an application name or module).
+ #
+ # Example of a single log entry format:
+ # `level=4&message=Sample%20log%20entry&source=applicationName`
+ #
+ # Ensure each parameter is properly URL-encoded to avoid interpretation issues.
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/log"
+ headers = {}
+ req_content_type, data, form = Utils.serialize_request_body(request, :request, :string)
+ headers['content-type'] = req_content_type
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.post(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ if form
+ req.body = Utils.encode_form(form)
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
+ req.body = URI.encode_www_form(data)
+ else
+ req.body = data
+ end
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::LogMultiLineResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::LogMultiLineResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def enable_paper_trail
+ # enable_paper_trail - Enabling Papertrail
+ # This endpoint will enable all Plex Media Serverlogs to be sent to the Papertrail networked logging site for a period of time.
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/log/networked"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::EnablePaperTrailResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400, 403].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::EnablePaperTrailResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/media.rb b/lib/plexapi/media.rb
new file mode 100644
index 0000000..e9012a4
--- /dev/null
+++ b/lib/plexapi/media.rb
@@ -0,0 +1,135 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Media
+ # API Calls interacting with Plex Media Server Media
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { params(key: Float).returns(Utils::FieldAugmented) }
+ def mark_played(key)
+ # mark_played - Mark Media Played
+ # This will mark the provided media key as Played.
+ request = Operations::MarkPlayedRequest.new(
+
+ key: key
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/:/scrobble"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::MarkPlayedRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::MarkPlayedResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::MarkPlayedResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(key: Float).returns(Utils::FieldAugmented) }
+ def mark_unplayed(key)
+ # mark_unplayed - Mark Media Unplayed
+ # This will mark the provided media key as Unplayed.
+ request = Operations::MarkUnplayedRequest.new(
+
+ key: key
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/:/unscrobble"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::MarkUnplayedRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::MarkUnplayedResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::MarkUnplayedResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(key: String, time: Float, state: String).returns(Utils::FieldAugmented) }
+ def update_play_progress(key, time, state)
+ # update_play_progress - Update Media Play Progress
+ # This API command can be used to update the play progress of a media item.
+ #
+ request = Operations::UpdatePlayProgressRequest.new(
+
+ key: key,
+ time: time,
+ state: state
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/:/progress"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::UpdatePlayProgressRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.post(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::UpdatePlayProgressResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::UpdatePlayProgressResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/addplaylistcontents.rb b/lib/plexapi/models/operations/addplaylistcontents.rb
new file mode 100644
index 0000000..1a87fc5
--- /dev/null
+++ b/lib/plexapi/models/operations/addplaylistcontents.rb
@@ -0,0 +1,178 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class AddPlaylistContentsRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the ID of the playlist
+ field :playlist_id, Float, { 'path_param': { 'field_name': 'playlistID', 'style': 'simple', 'explode': false } }
+ # the content URI for the playlist
+ field :uri, String, { 'query_param': { 'field_name': 'uri', 'style': 'form', 'explode': true } }
+ # the play queue to add to a playlist
+ field :play_queue_id, T.nilable(Float), { 'query_param': { 'field_name': 'playQueueID', 'style': 'form', 'explode': true } }
+
+
+ sig { params(playlist_id: Float, uri: String, play_queue_id: T.nilable(Float)).void }
+ def initialize(playlist_id: nil, uri: nil, play_queue_id: nil)
+ @playlist_id = playlist_id
+ @uri = uri
+ @play_queue_id = play_queue_id
+ end
+ end
+
+
+ class AddPlaylistContentsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class AddPlaylistContentsPlaylistsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::AddPlaylistContentsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::AddPlaylistContentsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class AddPlaylistContentsMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :composite, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('composite') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :playlist_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('playlistType') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :smart, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('smart') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+
+ sig { params(added_at: T.nilable(Integer), composite: T.nilable(String), duration: T.nilable(Integer), guid: T.nilable(String), key: T.nilable(String), leaf_count: T.nilable(Integer), playlist_type: T.nilable(String), rating_key: T.nilable(String), smart: T.nilable(T::Boolean), summary: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer)).void }
+ def initialize(added_at: nil, composite: nil, duration: nil, guid: nil, key: nil, leaf_count: nil, playlist_type: nil, rating_key: nil, smart: nil, summary: nil, title: nil, type: nil, updated_at: nil)
+ @added_at = added_at
+ @composite = composite
+ @duration = duration
+ @guid = guid
+ @key = key
+ @leaf_count = leaf_count
+ @playlist_type = playlist_type
+ @rating_key = rating_key
+ @smart = smart
+ @summary = summary
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ end
+ end
+
+
+ class AddPlaylistContentsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :leaf_count_added, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCountAdded') } }
+
+ field :leaf_count_requested, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCountRequested') } }
+
+ field :metadata, T.nilable(T::Array[Operations::AddPlaylistContentsMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(leaf_count_added: T.nilable(Integer), leaf_count_requested: T.nilable(Integer), metadata: T.nilable(T::Array[Operations::AddPlaylistContentsMetadata]), size: T.nilable(Integer)).void }
+ def initialize(leaf_count_added: nil, leaf_count_requested: nil, metadata: nil, size: nil)
+ @leaf_count_added = leaf_count_added
+ @leaf_count_requested = leaf_count_requested
+ @metadata = metadata
+ @size = size
+ end
+ end
+
+ # Playlist Updated
+ class AddPlaylistContentsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::AddPlaylistContentsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::AddPlaylistContentsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class AddPlaylistContentsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Playlist Updated
+ field :two_hundred_application_json_object, T.nilable(Operations::AddPlaylistContentsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::AddPlaylistContentsPlaylistsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::AddPlaylistContentsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::AddPlaylistContentsPlaylistsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/applyupdates.rb b/lib/plexapi/models/operations/applyupdates.rb
new file mode 100644
index 0000000..ab46b83
--- /dev/null
+++ b/lib/plexapi/models/operations/applyupdates.rb
@@ -0,0 +1,103 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # Tonight - Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install
+ class Tonight < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+ # Skip - Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`.
+ class Skip < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class ApplyUpdatesRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # Indicate that the latest version should be marked as skipped. The entry for this version will have the `state` set to `skipped`.
+ field :skip, T.nilable(Operations::Skip), { 'query_param': { 'field_name': 'skip', 'style': 'form', 'explode': true } }
+ # Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install
+ field :tonight, T.nilable(Operations::Tonight), { 'query_param': { 'field_name': 'tonight', 'style': 'form', 'explode': true } }
+
+
+ sig { params(skip: T.nilable(Operations::Skip), tonight: T.nilable(Operations::Tonight)).void }
+ def initialize(skip: nil, tonight: nil)
+ @skip = skip
+ @tonight = tonight
+ end
+ end
+
+
+ class ApplyUpdatesErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class ApplyUpdatesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::ApplyUpdatesErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::ApplyUpdatesErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class ApplyUpdatesResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::ApplyUpdatesResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::ApplyUpdatesResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/cancelserveractivities.rb b/lib/plexapi/models/operations/cancelserveractivities.rb
new file mode 100644
index 0000000..d27cc3c
--- /dev/null
+++ b/lib/plexapi/models/operations/cancelserveractivities.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class CancelServerActivitiesRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The UUID of the activity to cancel.
+ field :activity_uuid, String, { 'path_param': { 'field_name': 'activityUUID', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(activity_uuid: String).void }
+ def initialize(activity_uuid: nil)
+ @activity_uuid = activity_uuid
+ end
+ end
+
+
+ class CancelServerActivitiesErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class CancelServerActivitiesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::CancelServerActivitiesErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::CancelServerActivitiesErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class CancelServerActivitiesResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::CancelServerActivitiesResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::CancelServerActivitiesResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/checkforupdates.rb b/lib/plexapi/models/operations/checkforupdates.rb
new file mode 100644
index 0000000..9bb739e
--- /dev/null
+++ b/lib/plexapi/models/operations/checkforupdates.rb
@@ -0,0 +1,91 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # Download - Indicate that you want to start download any updates found.
+ class Download < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class CheckForUpdatesRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # Indicate that you want to start download any updates found.
+ field :download, T.nilable(Operations::Download), { 'query_param': { 'field_name': 'download', 'style': 'form', 'explode': true } }
+
+
+ sig { params(download: T.nilable(Operations::Download)).void }
+ def initialize(download: nil)
+ @download = download
+ end
+ end
+
+
+ class CheckForUpdatesErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class CheckForUpdatesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::CheckForUpdatesErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::CheckForUpdatesErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class CheckForUpdatesResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::CheckForUpdatesResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::CheckForUpdatesResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/clearplaylistcontents.rb b/lib/plexapi/models/operations/clearplaylistcontents.rb
new file mode 100644
index 0000000..5cbf1f7
--- /dev/null
+++ b/lib/plexapi/models/operations/clearplaylistcontents.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class ClearPlaylistContentsRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the ID of the playlist
+ field :playlist_id, Float, { 'path_param': { 'field_name': 'playlistID', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(playlist_id: Float).void }
+ def initialize(playlist_id: nil)
+ @playlist_id = playlist_id
+ end
+ end
+
+
+ class ClearPlaylistContentsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class ClearPlaylistContentsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::ClearPlaylistContentsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::ClearPlaylistContentsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class ClearPlaylistContentsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::ClearPlaylistContentsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::ClearPlaylistContentsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/createplaylist.rb b/lib/plexapi/models/operations/createplaylist.rb
new file mode 100644
index 0000000..ec4baab
--- /dev/null
+++ b/lib/plexapi/models/operations/createplaylist.rb
@@ -0,0 +1,206 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # QueryParamType - type of playlist to create
+ class QueryParamType < T::Enum
+ enums do
+ AUDIO = new('audio')
+ VIDEO = new('video')
+ PHOTO = new('photo')
+ end
+ end
+
+
+ # Smart - whether the playlist is smart or not
+ class Smart < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class CreatePlaylistRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # whether the playlist is smart or not
+ field :smart, Operations::Smart, { 'query_param': { 'field_name': 'smart', 'style': 'form', 'explode': true } }
+ # name of the playlist
+ field :title, String, { 'query_param': { 'field_name': 'title', 'style': 'form', 'explode': true } }
+ # type of playlist to create
+ field :type, Operations::QueryParamType, { 'query_param': { 'field_name': 'type', 'style': 'form', 'explode': true } }
+ # the content URI for the playlist
+ field :uri, String, { 'query_param': { 'field_name': 'uri', 'style': 'form', 'explode': true } }
+ # the play queue to copy to a playlist
+ field :play_queue_id, T.nilable(Float), { 'query_param': { 'field_name': 'playQueueID', 'style': 'form', 'explode': true } }
+
+
+ sig { params(smart: Operations::Smart, title: String, type: Operations::QueryParamType, uri: String, play_queue_id: T.nilable(Float)).void }
+ def initialize(smart: nil, title: nil, type: nil, uri: nil, play_queue_id: nil)
+ @smart = smart
+ @title = title
+ @type = type
+ @uri = uri
+ @play_queue_id = play_queue_id
+ end
+ end
+
+
+ class CreatePlaylistErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class CreatePlaylistPlaylistsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::CreatePlaylistErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::CreatePlaylistErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class CreatePlaylistMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :composite, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('composite') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :icon, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('icon') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :last_viewed_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lastViewedAt') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :playlist_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('playlistType') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :smart, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('smart') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :view_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewCount') } }
+
+
+ sig { params(added_at: T.nilable(Integer), composite: T.nilable(String), duration: T.nilable(Integer), guid: T.nilable(String), icon: T.nilable(String), key: T.nilable(String), last_viewed_at: T.nilable(Integer), leaf_count: T.nilable(Integer), playlist_type: T.nilable(String), rating_key: T.nilable(String), smart: T.nilable(T::Boolean), summary: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), view_count: T.nilable(Integer)).void }
+ def initialize(added_at: nil, composite: nil, duration: nil, guid: nil, icon: nil, key: nil, last_viewed_at: nil, leaf_count: nil, playlist_type: nil, rating_key: nil, smart: nil, summary: nil, title: nil, type: nil, updated_at: nil, view_count: nil)
+ @added_at = added_at
+ @composite = composite
+ @duration = duration
+ @guid = guid
+ @icon = icon
+ @key = key
+ @last_viewed_at = last_viewed_at
+ @leaf_count = leaf_count
+ @playlist_type = playlist_type
+ @rating_key = rating_key
+ @smart = smart
+ @summary = summary
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @view_count = view_count
+ end
+ end
+
+
+ class CreatePlaylistMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :metadata, T.nilable(T::Array[Operations::CreatePlaylistMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(metadata: T.nilable(T::Array[Operations::CreatePlaylistMetadata]), size: T.nilable(Integer)).void }
+ def initialize(metadata: nil, size: nil)
+ @metadata = metadata
+ @size = size
+ end
+ end
+
+ # returns all playlists
+ class CreatePlaylistResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::CreatePlaylistMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::CreatePlaylistMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class CreatePlaylistResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # returns all playlists
+ field :two_hundred_application_json_object, T.nilable(Operations::CreatePlaylistResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::CreatePlaylistPlaylistsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::CreatePlaylistResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::CreatePlaylistPlaylistsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/deletelibrary.rb b/lib/plexapi/models/operations/deletelibrary.rb
new file mode 100644
index 0000000..3bae085
--- /dev/null
+++ b/lib/plexapi/models/operations/deletelibrary.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class DeleteLibraryRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the Id of the library to query
+ field :section_id, Float, { 'path_param': { 'field_name': 'sectionId', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(section_id: Float).void }
+ def initialize(section_id: nil)
+ @section_id = section_id
+ end
+ end
+
+
+ class DeleteLibraryErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class DeleteLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::DeleteLibraryErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::DeleteLibraryErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class DeleteLibraryResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::DeleteLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::DeleteLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/deleteplaylist.rb b/lib/plexapi/models/operations/deleteplaylist.rb
new file mode 100644
index 0000000..9fd30ca
--- /dev/null
+++ b/lib/plexapi/models/operations/deleteplaylist.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class DeletePlaylistRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the ID of the playlist
+ field :playlist_id, Float, { 'path_param': { 'field_name': 'playlistID', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(playlist_id: Float).void }
+ def initialize(playlist_id: nil)
+ @playlist_id = playlist_id
+ end
+ end
+
+
+ class DeletePlaylistErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class DeletePlaylistResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::DeletePlaylistErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::DeletePlaylistErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class DeletePlaylistResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::DeletePlaylistResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::DeletePlaylistResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/enablepapertrail.rb b/lib/plexapi/models/operations/enablepapertrail.rb
new file mode 100644
index 0000000..e365b06
--- /dev/null
+++ b/lib/plexapi/models/operations/enablepapertrail.rb
@@ -0,0 +1,68 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class EnablePaperTrailErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class EnablePaperTrailResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::EnablePaperTrailErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::EnablePaperTrailErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class EnablePaperTrailResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::EnablePaperTrailResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::EnablePaperTrailResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getavailableclients.rb b/lib/plexapi/models/operations/getavailableclients.rb
new file mode 100644
index 0000000..f5d8ed4
--- /dev/null
+++ b/lib/plexapi/models/operations/getavailableclients.rb
@@ -0,0 +1,146 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetAvailableClientsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetAvailableClientsServerResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetAvailableClientsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetAvailableClientsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class Server < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :address, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('address') } }
+
+ field :device_class, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('deviceClass') } }
+
+ field :host, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('host') } }
+
+ field :machine_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('machineIdentifier') } }
+
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
+
+ field :port, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('port') } }
+
+ field :product, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('product') } }
+
+ field :protocol, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('protocol') } }
+
+ field :protocol_capabilities, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('protocolCapabilities') } }
+
+ field :protocol_version, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('protocolVersion') } }
+
+ field :version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('version') } }
+
+
+ sig { params(address: T.nilable(String), device_class: T.nilable(String), host: T.nilable(String), machine_identifier: T.nilable(String), name: T.nilable(String), port: T.nilable(Float), product: T.nilable(String), protocol: T.nilable(String), protocol_capabilities: T.nilable(String), protocol_version: T.nilable(Float), version: T.nilable(String)).void }
+ def initialize(address: nil, device_class: nil, host: nil, machine_identifier: nil, name: nil, port: nil, product: nil, protocol: nil, protocol_capabilities: nil, protocol_version: nil, version: nil)
+ @address = address
+ @device_class = device_class
+ @host = host
+ @machine_identifier = machine_identifier
+ @name = name
+ @port = port
+ @product = product
+ @protocol = protocol
+ @protocol_capabilities = protocol_capabilities
+ @protocol_version = protocol_version
+ @version = version
+ end
+ end
+
+
+ class GetAvailableClientsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :server, T.nilable(T::Array[Operations::Server]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Server') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(server: T.nilable(T::Array[Operations::Server]), size: T.nilable(Float)).void }
+ def initialize(server: nil, size: nil)
+ @server = server
+ @size = size
+ end
+ end
+
+ # Available Clients
+ class GetAvailableClientsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetAvailableClientsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetAvailableClientsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetAvailableClientsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Available Clients
+ field :two_hundred_application_json_object, T.nilable(Operations::GetAvailableClientsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetAvailableClientsServerResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetAvailableClientsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetAvailableClientsServerResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getbutlertasks.rb b/lib/plexapi/models/operations/getbutlertasks.rb
new file mode 100644
index 0000000..0fabb46
--- /dev/null
+++ b/lib/plexapi/models/operations/getbutlertasks.rb
@@ -0,0 +1,128 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetButlerTasksErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetButlerTasksButlerResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetButlerTasksErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetButlerTasksErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class ButlerTask < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :description, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
+
+ field :enabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('enabled') } }
+
+ field :interval, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('interval') } }
+
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
+
+ field :schedule_randomized, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('scheduleRandomized') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+
+ sig { params(description: T.nilable(String), enabled: T.nilable(T::Boolean), interval: T.nilable(Float), name: T.nilable(String), schedule_randomized: T.nilable(T::Boolean), title: T.nilable(String)).void }
+ def initialize(description: nil, enabled: nil, interval: nil, name: nil, schedule_randomized: nil, title: nil)
+ @description = description
+ @enabled = enabled
+ @interval = interval
+ @name = name
+ @schedule_randomized = schedule_randomized
+ @title = title
+ end
+ end
+
+
+ class ButlerTasks < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :butler_task, T.nilable(T::Array[Operations::ButlerTask]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ButlerTask') } }
+
+
+ sig { params(butler_task: T.nilable(T::Array[Operations::ButlerTask])).void }
+ def initialize(butler_task: nil)
+ @butler_task = butler_task
+ end
+ end
+
+ # All butler tasks
+ class GetButlerTasksResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :butler_tasks, T.nilable(Operations::ButlerTasks), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ButlerTasks') } }
+
+
+ sig { params(butler_tasks: T.nilable(Operations::ButlerTasks)).void }
+ def initialize(butler_tasks: nil)
+ @butler_tasks = butler_tasks
+ end
+ end
+
+
+ class GetButlerTasksResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # All butler tasks
+ field :two_hundred_application_json_object, T.nilable(Operations::GetButlerTasksResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetButlerTasksButlerResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetButlerTasksResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetButlerTasksButlerResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getdevices.rb b/lib/plexapi/models/operations/getdevices.rb
new file mode 100644
index 0000000..babbaa0
--- /dev/null
+++ b/lib/plexapi/models/operations/getdevices.rb
@@ -0,0 +1,131 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetDevicesErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetDevicesServerResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetDevicesErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetDevicesErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class Device < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :client_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clientIdentifier') } }
+
+ field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } }
+
+ field :id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
+
+ field :platform, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('platform') } }
+
+
+ sig { params(client_identifier: T.nilable(String), created_at: T.nilable(Float), id: T.nilable(Float), name: T.nilable(String), platform: T.nilable(String)).void }
+ def initialize(client_identifier: nil, created_at: nil, id: nil, name: nil, platform: nil)
+ @client_identifier = client_identifier
+ @created_at = created_at
+ @id = id
+ @name = name
+ @platform = platform
+ end
+ end
+
+
+ class GetDevicesMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :device, T.nilable(T::Array[Operations::Device]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Device') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(device: T.nilable(T::Array[Operations::Device]), identifier: T.nilable(String), size: T.nilable(Float)).void }
+ def initialize(device: nil, identifier: nil, size: nil)
+ @device = device
+ @identifier = identifier
+ @size = size
+ end
+ end
+
+ # Devices
+ class GetDevicesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetDevicesMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetDevicesMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetDevicesResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Devices
+ field :two_hundred_application_json_object, T.nilable(Operations::GetDevicesResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetDevicesServerResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetDevicesResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetDevicesServerResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getfilehash.rb b/lib/plexapi/models/operations/getfilehash.rb
new file mode 100644
index 0000000..cb42baa
--- /dev/null
+++ b/lib/plexapi/models/operations/getfilehash.rb
@@ -0,0 +1,85 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetFileHashRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # This is the path to the local file, must be prefixed by `file://`
+ field :url, String, { 'query_param': { 'field_name': 'url', 'style': 'form', 'explode': true } }
+ # Item type
+ field :type, T.nilable(Float), { 'query_param': { 'field_name': 'type', 'style': 'form', 'explode': true } }
+
+
+ sig { params(url: String, type: T.nilable(Float)).void }
+ def initialize(url: nil, type: nil)
+ @url = url
+ @type = type
+ end
+ end
+
+
+ class GetFileHashErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetFileHashResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetFileHashErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetFileHashErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetFileHashResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::GetFileHashResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::GetFileHashResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getglobalhubs.rb b/lib/plexapi/models/operations/getglobalhubs.rb
new file mode 100644
index 0000000..57910a4
--- /dev/null
+++ b/lib/plexapi/models/operations/getglobalhubs.rb
@@ -0,0 +1,240 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # OnlyTransient - Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
+ class OnlyTransient < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class GetGlobalHubsRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The number of items to return with each hub.
+ field :count, T.nilable(Float), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': true } }
+ # Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
+ field :only_transient, T.nilable(Operations::OnlyTransient), { 'query_param': { 'field_name': 'onlyTransient', 'style': 'form', 'explode': true } }
+
+
+ sig { params(count: T.nilable(Float), only_transient: T.nilable(Operations::OnlyTransient)).void }
+ def initialize(count: nil, only_transient: nil)
+ @count = count
+ @only_transient = only_transient
+ end
+ end
+
+
+ class GetGlobalHubsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetGlobalHubsHubsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetGlobalHubsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetGlobalHubsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetGlobalHubsMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :composite, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('composite') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :icon, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('icon') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :last_viewed_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lastViewedAt') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :playlist_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('playlistType') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :smart, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('smart') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :title_sort, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('titleSort') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :view_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewCount') } }
+
+
+ sig { params(added_at: T.nilable(Integer), composite: T.nilable(String), duration: T.nilable(Integer), guid: T.nilable(String), icon: T.nilable(String), key: T.nilable(String), last_viewed_at: T.nilable(Integer), leaf_count: T.nilable(Integer), playlist_type: T.nilable(String), rating_key: T.nilable(String), smart: T.nilable(T::Boolean), summary: T.nilable(String), title: T.nilable(String), title_sort: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), view_count: T.nilable(Integer)).void }
+ def initialize(added_at: nil, composite: nil, duration: nil, guid: nil, icon: nil, key: nil, last_viewed_at: nil, leaf_count: nil, playlist_type: nil, rating_key: nil, smart: nil, summary: nil, title: nil, title_sort: nil, type: nil, updated_at: nil, view_count: nil)
+ @added_at = added_at
+ @composite = composite
+ @duration = duration
+ @guid = guid
+ @icon = icon
+ @key = key
+ @last_viewed_at = last_viewed_at
+ @leaf_count = leaf_count
+ @playlist_type = playlist_type
+ @rating_key = rating_key
+ @smart = smart
+ @summary = summary
+ @title = title
+ @title_sort = title_sort
+ @type = type
+ @updated_at = updated_at
+ @view_count = view_count
+ end
+ end
+
+
+ class Hub < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :context, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('context') } }
+
+ field :hub_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hubIdentifier') } }
+
+ field :hub_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hubKey') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :metadata, T.nilable(T::Array[Operations::GetGlobalHubsMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :more, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('more') } }
+
+ field :promoted, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('promoted') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :style, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('style') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+
+ sig { params(context: T.nilable(String), hub_identifier: T.nilable(String), hub_key: T.nilable(String), key: T.nilable(String), metadata: T.nilable(T::Array[Operations::GetGlobalHubsMetadata]), more: T.nilable(T::Boolean), promoted: T.nilable(T::Boolean), size: T.nilable(Integer), style: T.nilable(String), title: T.nilable(String), type: T.nilable(String)).void }
+ def initialize(context: nil, hub_identifier: nil, hub_key: nil, key: nil, metadata: nil, more: nil, promoted: nil, size: nil, style: nil, title: nil, type: nil)
+ @context = context
+ @hub_identifier = hub_identifier
+ @hub_key = hub_key
+ @key = key
+ @metadata = metadata
+ @more = more
+ @promoted = promoted
+ @size = size
+ @style = style
+ @title = title
+ @type = type
+ end
+ end
+
+
+ class GetGlobalHubsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :hub, T.nilable(T::Array[Operations::Hub]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Hub') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), hub: T.nilable(T::Array[Operations::Hub]), identifier: T.nilable(String), size: T.nilable(Integer)).void }
+ def initialize(allow_sync: nil, hub: nil, identifier: nil, size: nil)
+ @allow_sync = allow_sync
+ @hub = hub
+ @identifier = identifier
+ @size = size
+ end
+ end
+
+ # returns global hubs
+ class GetGlobalHubsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetGlobalHubsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetGlobalHubsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetGlobalHubsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # returns global hubs
+ field :two_hundred_application_json_object, T.nilable(Operations::GetGlobalHubsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetGlobalHubsHubsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetGlobalHubsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetGlobalHubsHubsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getlibraries.rb b/lib/plexapi/models/operations/getlibraries.rb
new file mode 100644
index 0000000..7dfe002
--- /dev/null
+++ b/lib/plexapi/models/operations/getlibraries.rb
@@ -0,0 +1,199 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetLibrariesErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetLibrariesLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetLibrariesErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetLibrariesErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class Location < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :path, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('path') } }
+
+
+ sig { params(id: T.nilable(Integer), path: T.nilable(String)).void }
+ def initialize(id: nil, path: nil)
+ @id = id
+ @path = path
+ end
+ end
+
+
+ class GetLibrariesDirectory < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :agent, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('agent') } }
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :composite, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('composite') } }
+
+ field :content, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('content') } }
+
+ field :content_changed_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contentChangedAt') } }
+
+ field :created_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } }
+
+ field :directory, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('directory') } }
+
+ field :filters, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filters') } }
+
+ field :hidden, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hidden') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :language, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('language') } }
+
+ field :location, T.nilable(T::Array[Operations::Location]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Location') } }
+
+ field :refreshing, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('refreshing') } }
+
+ field :scanned_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('scannedAt') } }
+
+ field :scanner, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('scanner') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('uuid') } }
+
+
+ sig { params(agent: T.nilable(String), allow_sync: T.nilable(T::Boolean), art: T.nilable(String), composite: T.nilable(String), content: T.nilable(T::Boolean), content_changed_at: T.nilable(Integer), created_at: T.nilable(Integer), directory: T.nilable(T::Boolean), filters: T.nilable(T::Boolean), hidden: T.nilable(Integer), key: T.nilable(String), language: T.nilable(String), location: T.nilable(T::Array[Operations::Location]), refreshing: T.nilable(T::Boolean), scanned_at: T.nilable(Integer), scanner: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), uuid: T.nilable(String)).void }
+ def initialize(agent: nil, allow_sync: nil, art: nil, composite: nil, content: nil, content_changed_at: nil, created_at: nil, directory: nil, filters: nil, hidden: nil, key: nil, language: nil, location: nil, refreshing: nil, scanned_at: nil, scanner: nil, thumb: nil, title: nil, type: nil, updated_at: nil, uuid: nil)
+ @agent = agent
+ @allow_sync = allow_sync
+ @art = art
+ @composite = composite
+ @content = content
+ @content_changed_at = content_changed_at
+ @created_at = created_at
+ @directory = directory
+ @filters = filters
+ @hidden = hidden
+ @key = key
+ @language = language
+ @location = location
+ @refreshing = refreshing
+ @scanned_at = scanned_at
+ @scanner = scanner
+ @thumb = thumb
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @uuid = uuid
+ end
+ end
+
+
+ class GetLibrariesMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :directory, T.nilable(T::Array[Operations::GetLibrariesDirectory]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Directory') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :title1, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title1') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), directory: T.nilable(T::Array[Operations::GetLibrariesDirectory]), size: T.nilable(Integer), title1: T.nilable(String)).void }
+ def initialize(allow_sync: nil, directory: nil, size: nil, title1: nil)
+ @allow_sync = allow_sync
+ @directory = directory
+ @size = size
+ @title1 = title1
+ end
+ end
+
+ # The libraries available on the Server
+ class GetLibrariesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetLibrariesMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetLibrariesMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetLibrariesResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The libraries available on the Server
+ field :two_hundred_application_json_object, T.nilable(Operations::GetLibrariesResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetLibrariesLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetLibrariesResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetLibrariesLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getlibrary.rb b/lib/plexapi/models/operations/getlibrary.rb
new file mode 100644
index 0000000..846a8fd
--- /dev/null
+++ b/lib/plexapi/models/operations/getlibrary.rb
@@ -0,0 +1,341 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # IncludeDetails - Whether or not to include details for a section (types, filters, and sorts).
+ # Only exists for backwards compatibility, media providers other than the server libraries have it on always.
+ #
+ class IncludeDetails < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class GetLibraryRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the Id of the library to query
+ field :section_id, Float, { 'path_param': { 'field_name': 'sectionId', 'style': 'simple', 'explode': false } }
+ # Whether or not to include details for a section (types, filters, and sorts).
+ # Only exists for backwards compatibility, media providers other than the server libraries have it on always.
+ #
+ field :include_details, T.nilable(Operations::IncludeDetails), { 'query_param': { 'field_name': 'includeDetails', 'style': 'form', 'explode': true } }
+
+
+ sig { params(section_id: Float, include_details: T.nilable(Operations::IncludeDetails)).void }
+ def initialize(section_id: nil, include_details: nil)
+ @section_id = section_id
+ @include_details = include_details
+ end
+ end
+
+
+ class GetLibraryErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetLibraryLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetLibraryErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetLibraryErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetLibraryDirectory < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :prompt, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('prompt') } }
+
+ field :search, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('search') } }
+
+ field :secondary, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('secondary') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+
+ sig { params(key: T.nilable(String), prompt: T.nilable(String), search: T.nilable(T::Boolean), secondary: T.nilable(T::Boolean), title: T.nilable(String)).void }
+ def initialize(key: nil, prompt: nil, search: nil, secondary: nil, title: nil)
+ @key = key
+ @prompt = prompt
+ @search = search
+ @secondary = secondary
+ @title = title
+ end
+ end
+
+
+ class Filter < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :filter, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filter') } }
+
+ field :filter_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filterType') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+
+ sig { params(filter: T.nilable(String), filter_type: T.nilable(String), key: T.nilable(String), title: T.nilable(String), type: T.nilable(String)).void }
+ def initialize(filter: nil, filter_type: nil, key: nil, title: nil, type: nil)
+ @filter = filter
+ @filter_type = filter_type
+ @key = key
+ @title = title
+ @type = type
+ end
+ end
+
+
+ class Sort < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :default, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('default') } }
+
+ field :default_direction, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('defaultDirection') } }
+
+ field :desc_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('descKey') } }
+
+ field :first_character_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('firstCharacterKey') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+
+ sig { params(default: T.nilable(String), default_direction: T.nilable(String), desc_key: T.nilable(String), first_character_key: T.nilable(String), key: T.nilable(String), title: T.nilable(String)).void }
+ def initialize(default: nil, default_direction: nil, desc_key: nil, first_character_key: nil, key: nil, title: nil)
+ @default = default
+ @default_direction = default_direction
+ @desc_key = desc_key
+ @first_character_key = first_character_key
+ @key = key
+ @title = title
+ end
+ end
+
+
+ class Field < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :sub_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('subType') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+
+ sig { params(key: T.nilable(String), sub_type: T.nilable(String), title: T.nilable(String), type: T.nilable(String)).void }
+ def initialize(key: nil, sub_type: nil, title: nil, type: nil)
+ @key = key
+ @sub_type = sub_type
+ @title = title
+ @type = type
+ end
+ end
+
+
+ class GetLibraryType < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :active, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('active') } }
+
+ field :field, T.nilable(T::Array[Operations::Field]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Field') } }
+
+ field :filter, T.nilable(T::Array[Operations::Filter]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Filter') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :sort, T.nilable(T::Array[Operations::Sort]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Sort') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+
+ sig { params(active: T.nilable(T::Boolean), field: T.nilable(T::Array[Operations::Field]), filter: T.nilable(T::Array[Operations::Filter]), key: T.nilable(String), sort: T.nilable(T::Array[Operations::Sort]), title: T.nilable(String), type: T.nilable(String)).void }
+ def initialize(active: nil, field: nil, filter: nil, key: nil, sort: nil, title: nil, type: nil)
+ @active = active
+ @field = field
+ @filter = filter
+ @key = key
+ @sort = sort
+ @title = title
+ @type = type
+ end
+ end
+
+
+ class Operator < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+
+ sig { params(key: T.nilable(String), title: T.nilable(String)).void }
+ def initialize(key: nil, title: nil)
+ @key = key
+ @title = title
+ end
+ end
+
+
+ class FieldType < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :operator, T.nilable(T::Array[Operations::Operator]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Operator') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+
+ sig { params(operator: T.nilable(T::Array[Operations::Operator]), type: T.nilable(String)).void }
+ def initialize(operator: nil, type: nil)
+ @operator = operator
+ @type = type
+ end
+ end
+
+
+ class GetLibraryMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :content, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('content') } }
+
+ field :directory, T.nilable(T::Array[Operations::GetLibraryDirectory]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Directory') } }
+
+ field :field_type, T.nilable(T::Array[Operations::FieldType]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('FieldType') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :library_section_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :media_tag_prefix, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagPrefix') } }
+
+ field :media_tag_version, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagVersion') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title1, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title1') } }
+
+ field :type, T.nilable(T::Array[Operations::GetLibraryType]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Type') } }
+
+ field :view_group, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewGroup') } }
+
+ field :view_mode, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewMode') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), art: T.nilable(String), content: T.nilable(String), directory: T.nilable(T::Array[Operations::GetLibraryDirectory]), field_type: T.nilable(T::Array[Operations::FieldType]), identifier: T.nilable(String), library_section_id: T.nilable(Integer), media_tag_prefix: T.nilable(String), media_tag_version: T.nilable(Integer), size: T.nilable(Integer), thumb: T.nilable(String), title1: T.nilable(String), type: T.nilable(T::Array[Operations::GetLibraryType]), view_group: T.nilable(String), view_mode: T.nilable(Integer)).void }
+ def initialize(allow_sync: nil, art: nil, content: nil, directory: nil, field_type: nil, identifier: nil, library_section_id: nil, media_tag_prefix: nil, media_tag_version: nil, size: nil, thumb: nil, title1: nil, type: nil, view_group: nil, view_mode: nil)
+ @allow_sync = allow_sync
+ @art = art
+ @content = content
+ @directory = directory
+ @field_type = field_type
+ @identifier = identifier
+ @library_section_id = library_section_id
+ @media_tag_prefix = media_tag_prefix
+ @media_tag_version = media_tag_version
+ @size = size
+ @thumb = thumb
+ @title1 = title1
+ @type = type
+ @view_group = view_group
+ @view_mode = view_mode
+ end
+ end
+
+ # The details of the library
+ class GetLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetLibraryMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetLibraryMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetLibraryResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The details of the library
+ field :two_hundred_application_json_object, T.nilable(Operations::GetLibraryResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetLibraryLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetLibraryResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetLibraryLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getlibraryhubs.rb b/lib/plexapi/models/operations/getlibraryhubs.rb
new file mode 100644
index 0000000..43e0d61
--- /dev/null
+++ b/lib/plexapi/models/operations/getlibraryhubs.rb
@@ -0,0 +1,479 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # QueryParamOnlyTransient - Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
+ class QueryParamOnlyTransient < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class GetLibraryHubsRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the Id of the library to query
+ field :section_id, Float, { 'path_param': { 'field_name': 'sectionId', 'style': 'simple', 'explode': false } }
+ # The number of items to return with each hub.
+ field :count, T.nilable(Float), { 'query_param': { 'field_name': 'count', 'style': 'form', 'explode': true } }
+ # Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
+ field :only_transient, T.nilable(Operations::QueryParamOnlyTransient), { 'query_param': { 'field_name': 'onlyTransient', 'style': 'form', 'explode': true } }
+
+
+ sig { params(section_id: Float, count: T.nilable(Float), only_transient: T.nilable(Operations::QueryParamOnlyTransient)).void }
+ def initialize(section_id: nil, count: nil, only_transient: nil)
+ @section_id = section_id
+ @count = count
+ @only_transient = only_transient
+ end
+ end
+
+
+ class GetLibraryHubsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetLibraryHubsHubsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetLibraryHubsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetLibraryHubsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetLibraryHubsPart < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :file, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('file') } }
+
+ field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('has64bitOffsets') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :optimized_for_streaming, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('optimizedForStreaming') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+
+ sig { params(audio_profile: T.nilable(String), container: T.nilable(String), duration: T.nilable(Integer), file: T.nilable(String), has64bit_offsets: T.nilable(T::Boolean), id: T.nilable(Integer), key: T.nilable(String), optimized_for_streaming: T.nilable(T::Boolean), size: T.nilable(Integer), video_profile: T.nilable(String)).void }
+ def initialize(audio_profile: nil, container: nil, duration: nil, file: nil, has64bit_offsets: nil, id: nil, key: nil, optimized_for_streaming: nil, size: nil, video_profile: nil)
+ @audio_profile = audio_profile
+ @container = container
+ @duration = duration
+ @file = file
+ @has64bit_offsets = has64bit_offsets
+ @id = id
+ @key = key
+ @optimized_for_streaming = optimized_for_streaming
+ @size = size
+ @video_profile = video_profile
+ end
+ end
+
+
+ class GetLibraryHubsMedia < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :aspect_ratio, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('aspectRatio') } }
+
+ field :audio_channels, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :bitrate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('has64bitOffsets') } }
+
+ field :height, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :optimized_for_streaming, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('optimizedForStreaming') } }
+
+ field :part, T.nilable(T::Array[Operations::GetLibraryHubsPart]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Part') } }
+
+ field :video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoCodec') } }
+
+ field :video_frame_rate, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoFrameRate') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+ field :video_resolution, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoResolution') } }
+
+ field :width, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(aspect_ratio: T.nilable(Float), audio_channels: T.nilable(Integer), audio_codec: T.nilable(String), audio_profile: T.nilable(String), bitrate: T.nilable(Integer), container: T.nilable(String), duration: T.nilable(Integer), has64bit_offsets: T.nilable(T::Boolean), height: T.nilable(Integer), id: T.nilable(Integer), optimized_for_streaming: T.nilable(Integer), part: T.nilable(T::Array[Operations::GetLibraryHubsPart]), video_codec: T.nilable(String), video_frame_rate: T.nilable(String), video_profile: T.nilable(String), video_resolution: T.nilable(String), width: T.nilable(Integer)).void }
+ def initialize(aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, duration: nil, has64bit_offsets: nil, height: nil, id: nil, optimized_for_streaming: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil)
+ @aspect_ratio = aspect_ratio
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @audio_profile = audio_profile
+ @bitrate = bitrate
+ @container = container
+ @duration = duration
+ @has64bit_offsets = has64bit_offsets
+ @height = height
+ @id = id
+ @optimized_for_streaming = optimized_for_streaming
+ @part = part
+ @video_codec = video_codec
+ @video_frame_rate = video_frame_rate
+ @video_profile = video_profile
+ @video_resolution = video_resolution
+ @width = width
+ end
+ end
+
+
+ class GetLibraryHubsGenre < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryHubsCountry < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryHubsDirector < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryHubsRole < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryHubsWriter < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryHubsMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :audience_rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRating') } }
+
+ field :audience_rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRatingImage') } }
+
+ field :chapter_source, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('chapterSource') } }
+
+ field :content_rating, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contentRating') } }
+
+ field :country, T.nilable(T::Array[Operations::GetLibraryHubsCountry]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Country') } }
+
+ field :director, T.nilable(T::Array[Operations::GetLibraryHubsDirector]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Director') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :genre, T.nilable(T::Array[Operations::GetLibraryHubsGenre]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Genre') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :last_viewed_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lastViewedAt') } }
+
+ field :library_section_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionKey') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :media, T.nilable(T::Array[Operations::GetLibraryHubsMedia]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Media') } }
+
+ field :originally_available_at, T.nilable(Date), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } }
+
+ field :primary_extra_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('primaryExtraKey') } }
+
+ field :rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('rating') } }
+
+ field :rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingImage') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :role, T.nilable(T::Array[Operations::GetLibraryHubsRole]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Role') } }
+
+ field :skip_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('skipCount') } }
+
+ field :studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('studio') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :tagline, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagline') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :view_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewCount') } }
+
+ field :writer, T.nilable(T::Array[Operations::GetLibraryHubsWriter]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Writer') } }
+
+ field :year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('year') } }
+
+
+ sig { params(added_at: T.nilable(Integer), art: T.nilable(String), audience_rating: T.nilable(Float), audience_rating_image: T.nilable(String), chapter_source: T.nilable(String), content_rating: T.nilable(String), country: T.nilable(T::Array[Operations::GetLibraryHubsCountry]), director: T.nilable(T::Array[Operations::GetLibraryHubsDirector]), duration: T.nilable(Integer), genre: T.nilable(T::Array[Operations::GetLibraryHubsGenre]), guid: T.nilable(String), key: T.nilable(String), last_viewed_at: T.nilable(Integer), library_section_id: T.nilable(Integer), library_section_key: T.nilable(String), library_section_title: T.nilable(String), media: T.nilable(T::Array[Operations::GetLibraryHubsMedia]), originally_available_at: T.nilable(Date), primary_extra_key: T.nilable(String), rating: T.nilable(Float), rating_image: T.nilable(String), rating_key: T.nilable(String), role: T.nilable(T::Array[Operations::GetLibraryHubsRole]), skip_count: T.nilable(Integer), studio: T.nilable(String), summary: T.nilable(String), tagline: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), view_count: T.nilable(Integer), writer: T.nilable(T::Array[Operations::GetLibraryHubsWriter]), year: T.nilable(Integer)).void }
+ def initialize(added_at: nil, art: nil, audience_rating: nil, audience_rating_image: nil, chapter_source: nil, content_rating: nil, country: nil, director: nil, duration: nil, genre: nil, guid: nil, key: nil, last_viewed_at: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, media: nil, originally_available_at: nil, primary_extra_key: nil, rating: nil, rating_image: nil, rating_key: nil, role: nil, skip_count: nil, studio: nil, summary: nil, tagline: nil, thumb: nil, title: nil, type: nil, updated_at: nil, view_count: nil, writer: nil, year: nil)
+ @added_at = added_at
+ @art = art
+ @audience_rating = audience_rating
+ @audience_rating_image = audience_rating_image
+ @chapter_source = chapter_source
+ @content_rating = content_rating
+ @country = country
+ @director = director
+ @duration = duration
+ @genre = genre
+ @guid = guid
+ @key = key
+ @last_viewed_at = last_viewed_at
+ @library_section_id = library_section_id
+ @library_section_key = library_section_key
+ @library_section_title = library_section_title
+ @media = media
+ @originally_available_at = originally_available_at
+ @primary_extra_key = primary_extra_key
+ @rating = rating
+ @rating_image = rating_image
+ @rating_key = rating_key
+ @role = role
+ @skip_count = skip_count
+ @studio = studio
+ @summary = summary
+ @tagline = tagline
+ @thumb = thumb
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @view_count = view_count
+ @writer = writer
+ @year = year
+ end
+ end
+
+
+ class GetLibraryHubsHub < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :context, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('context') } }
+
+ field :hub_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hubIdentifier') } }
+
+ field :hub_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hubKey') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :metadata, T.nilable(T::Array[Operations::GetLibraryHubsMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :more, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('more') } }
+
+ field :promoted, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('promoted') } }
+
+ field :random, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('random') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :style, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('style') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+
+ sig { params(context: T.nilable(String), hub_identifier: T.nilable(String), hub_key: T.nilable(String), key: T.nilable(String), metadata: T.nilable(T::Array[Operations::GetLibraryHubsMetadata]), more: T.nilable(T::Boolean), promoted: T.nilable(T::Boolean), random: T.nilable(T::Boolean), size: T.nilable(Integer), style: T.nilable(String), title: T.nilable(String), type: T.nilable(String)).void }
+ def initialize(context: nil, hub_identifier: nil, hub_key: nil, key: nil, metadata: nil, more: nil, promoted: nil, random: nil, size: nil, style: nil, title: nil, type: nil)
+ @context = context
+ @hub_identifier = hub_identifier
+ @hub_key = hub_key
+ @key = key
+ @metadata = metadata
+ @more = more
+ @promoted = promoted
+ @random = random
+ @size = size
+ @style = style
+ @title = title
+ @type = type
+ end
+ end
+
+
+ class GetLibraryHubsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :hub, T.nilable(T::Array[Operations::GetLibraryHubsHub]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Hub') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :library_section_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :library_section_uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionUUID') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), hub: T.nilable(T::Array[Operations::GetLibraryHubsHub]), identifier: T.nilable(String), library_section_id: T.nilable(Integer), library_section_title: T.nilable(String), library_section_uuid: T.nilable(String), size: T.nilable(Integer)).void }
+ def initialize(allow_sync: nil, hub: nil, identifier: nil, library_section_id: nil, library_section_title: nil, library_section_uuid: nil, size: nil)
+ @allow_sync = allow_sync
+ @hub = hub
+ @identifier = identifier
+ @library_section_id = library_section_id
+ @library_section_title = library_section_title
+ @library_section_uuid = library_section_uuid
+ @size = size
+ end
+ end
+
+ # The hubs specific to the library
+ class GetLibraryHubsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetLibraryHubsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetLibraryHubsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetLibraryHubsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The hubs specific to the library
+ field :two_hundred_application_json_object, T.nilable(Operations::GetLibraryHubsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetLibraryHubsHubsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetLibraryHubsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetLibraryHubsHubsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getlibraryitems.rb b/lib/plexapi/models/operations/getlibraryitems.rb
new file mode 100644
index 0000000..62d6f43
--- /dev/null
+++ b/lib/plexapi/models/operations/getlibraryitems.rb
@@ -0,0 +1,487 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # Tag - A key representing a specific tag within the section.
+ class Tag < T::Enum
+ enums do
+ ALL = new('all')
+ UNWATCHED = new('unwatched')
+ NEWEST = new('newest')
+ RECENTLY_ADDED = new('recentlyAdded')
+ RECENTLY_VIEWED = new('recentlyViewed')
+ ON_DECK = new('onDeck')
+ COLLECTION = new('collection')
+ EDITION = new('edition')
+ GENRE = new('genre')
+ YEAR = new('year')
+ DECADE = new('decade')
+ DIRECTOR = new('director')
+ ACTOR = new('actor')
+ COUNTRY = new('country')
+ CONTENT_RATING = new('contentRating')
+ RATING = new('rating')
+ RESOLUTION = new('resolution')
+ FIRST_CHARACTER = new('firstCharacter')
+ FOLDER = new('folder')
+ end
+ end
+
+
+
+ class GetLibraryItemsRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the Id of the library to query
+ field :section_id, Integer, { 'path_param': { 'field_name': 'sectionId', 'style': 'simple', 'explode': false } }
+ # A key representing a specific tag within the section.
+ field :tag, Operations::Tag, { 'path_param': { 'field_name': 'tag', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(section_id: Integer, tag: Operations::Tag).void }
+ def initialize(section_id: nil, tag: nil)
+ @section_id = section_id
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryItemsPart < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :file, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('file') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+
+ sig { params(container: T.nilable(String), duration: T.nilable(Integer), file: T.nilable(String), id: T.nilable(Integer), key: T.nilable(String), size: T.nilable(Integer), video_profile: T.nilable(String)).void }
+ def initialize(container: nil, duration: nil, file: nil, id: nil, key: nil, size: nil, video_profile: nil)
+ @container = container
+ @duration = duration
+ @file = file
+ @id = id
+ @key = key
+ @size = size
+ @video_profile = video_profile
+ end
+ end
+
+
+ class GetLibraryItemsMedia < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :aspect_ratio, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('aspectRatio') } }
+
+ field :audio_channels, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :bitrate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :height, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :part, T.nilable(T::Array[Operations::GetLibraryItemsPart]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Part') } }
+
+ field :video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoCodec') } }
+
+ field :video_frame_rate, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoFrameRate') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+ field :video_resolution, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoResolution') } }
+
+ field :width, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(aspect_ratio: T.nilable(Float), audio_channels: T.nilable(Integer), audio_codec: T.nilable(String), bitrate: T.nilable(Integer), container: T.nilable(String), duration: T.nilable(Integer), height: T.nilable(Integer), id: T.nilable(Integer), part: T.nilable(T::Array[Operations::GetLibraryItemsPart]), video_codec: T.nilable(String), video_frame_rate: T.nilable(String), video_profile: T.nilable(String), video_resolution: T.nilable(String), width: T.nilable(Integer)).void }
+ def initialize(aspect_ratio: nil, audio_channels: nil, audio_codec: nil, bitrate: nil, container: nil, duration: nil, height: nil, id: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil)
+ @aspect_ratio = aspect_ratio
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @bitrate = bitrate
+ @container = container
+ @duration = duration
+ @height = height
+ @id = id
+ @part = part
+ @video_codec = video_codec
+ @video_frame_rate = video_frame_rate
+ @video_profile = video_profile
+ @video_resolution = video_resolution
+ @width = width
+ end
+ end
+
+
+ class GetLibraryItemsGenre < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryItemsCountry < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryItemsDirector < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryItemsWriter < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryItemsRole < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetLibraryItemsMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :audience_rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRating') } }
+
+ field :audience_rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRatingImage') } }
+
+ field :chapter_source, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('chapterSource') } }
+
+ field :child_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('childCount') } }
+
+ field :content_rating, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contentRating') } }
+
+ field :country, T.nilable(T::Array[Operations::GetLibraryItemsCountry]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Country') } }
+
+ field :director, T.nilable(T::Array[Operations::GetLibraryItemsDirector]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Director') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :genre, T.nilable(T::Array[Operations::GetLibraryItemsGenre]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Genre') } }
+
+ field :grandparent_art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentArt') } }
+
+ field :grandparent_guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentGuid') } }
+
+ field :grandparent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentKey') } }
+
+ field :grandparent_rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentRatingKey') } }
+
+ field :grandparent_theme, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentTheme') } }
+
+ field :grandparent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentThumb') } }
+
+ field :grandparent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentTitle') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :has_premium_extras, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hasPremiumExtras') } }
+
+ field :has_premium_primary_extra, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hasPremiumPrimaryExtra') } }
+
+ field :index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :last_viewed_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lastViewedAt') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :media, T.nilable(T::Array[Operations::GetLibraryItemsMedia]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Media') } }
+
+ field :originally_available_at, T.nilable(Date), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } }
+
+ field :original_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originalTitle') } }
+
+ field :parent_guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentGuid') } }
+
+ field :parent_index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentIndex') } }
+
+ field :parent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentKey') } }
+
+ field :parent_rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentRatingKey') } }
+
+ field :parent_studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentStudio') } }
+
+ field :parent_theme, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTheme') } }
+
+ field :parent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentThumb') } }
+
+ field :parent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTitle') } }
+
+ field :parent_year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentYear') } }
+
+ field :primary_extra_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('primaryExtraKey') } }
+
+ field :rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('rating') } }
+
+ field :rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingImage') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :role, T.nilable(T::Array[Operations::GetLibraryItemsRole]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Role') } }
+
+ field :skip_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('skipCount') } }
+
+ field :studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('studio') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :tagline, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagline') } }
+
+ field :theme, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('theme') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :title_sort, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('titleSort') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :view_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewCount') } }
+
+ field :viewed_leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewedLeafCount') } }
+
+ field :view_offset, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewOffset') } }
+
+ field :writer, T.nilable(T::Array[Operations::GetLibraryItemsWriter]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Writer') } }
+
+ field :year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('year') } }
+
+
+ sig { params(added_at: T.nilable(Integer), art: T.nilable(String), audience_rating: T.nilable(Float), audience_rating_image: T.nilable(String), chapter_source: T.nilable(String), child_count: T.nilable(Integer), content_rating: T.nilable(String), country: T.nilable(T::Array[Operations::GetLibraryItemsCountry]), director: T.nilable(T::Array[Operations::GetLibraryItemsDirector]), duration: T.nilable(Integer), genre: T.nilable(T::Array[Operations::GetLibraryItemsGenre]), grandparent_art: T.nilable(String), grandparent_guid: T.nilable(String), grandparent_key: T.nilable(String), grandparent_rating_key: T.nilable(String), grandparent_theme: T.nilable(String), grandparent_thumb: T.nilable(String), grandparent_title: T.nilable(String), guid: T.nilable(String), has_premium_extras: T.nilable(String), has_premium_primary_extra: T.nilable(String), index: T.nilable(Integer), key: T.nilable(String), last_viewed_at: T.nilable(Integer), leaf_count: T.nilable(Integer), media: T.nilable(T::Array[Operations::GetLibraryItemsMedia]), originally_available_at: T.nilable(Date), original_title: T.nilable(String), parent_guid: T.nilable(String), parent_index: T.nilable(Integer), parent_key: T.nilable(String), parent_rating_key: T.nilable(String), parent_studio: T.nilable(String), parent_theme: T.nilable(String), parent_thumb: T.nilable(String), parent_title: T.nilable(String), parent_year: T.nilable(Integer), primary_extra_key: T.nilable(String), rating: T.nilable(Float), rating_image: T.nilable(String), rating_key: T.nilable(String), role: T.nilable(T::Array[Operations::GetLibraryItemsRole]), skip_count: T.nilable(Integer), studio: T.nilable(String), summary: T.nilable(String), tagline: T.nilable(String), theme: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), title_sort: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), view_count: T.nilable(Integer), viewed_leaf_count: T.nilable(Integer), view_offset: T.nilable(Integer), writer: T.nilable(T::Array[Operations::GetLibraryItemsWriter]), year: T.nilable(Integer)).void }
+ def initialize(added_at: nil, art: nil, audience_rating: nil, audience_rating_image: nil, chapter_source: nil, child_count: nil, content_rating: nil, country: nil, director: nil, duration: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, guid: nil, has_premium_extras: nil, has_premium_primary_extra: nil, index: nil, key: nil, last_viewed_at: nil, leaf_count: nil, media: nil, originally_available_at: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_studio: nil, parent_theme: nil, parent_thumb: nil, parent_title: nil, parent_year: nil, primary_extra_key: nil, rating: nil, rating_image: nil, rating_key: nil, role: nil, skip_count: nil, studio: nil, summary: nil, tagline: nil, theme: nil, thumb: nil, title: nil, title_sort: nil, type: nil, updated_at: nil, view_count: nil, viewed_leaf_count: nil, view_offset: nil, writer: nil, year: nil)
+ @added_at = added_at
+ @art = art
+ @audience_rating = audience_rating
+ @audience_rating_image = audience_rating_image
+ @chapter_source = chapter_source
+ @child_count = child_count
+ @content_rating = content_rating
+ @country = country
+ @director = director
+ @duration = duration
+ @genre = genre
+ @grandparent_art = grandparent_art
+ @grandparent_guid = grandparent_guid
+ @grandparent_key = grandparent_key
+ @grandparent_rating_key = grandparent_rating_key
+ @grandparent_theme = grandparent_theme
+ @grandparent_thumb = grandparent_thumb
+ @grandparent_title = grandparent_title
+ @guid = guid
+ @has_premium_extras = has_premium_extras
+ @has_premium_primary_extra = has_premium_primary_extra
+ @index = index
+ @key = key
+ @last_viewed_at = last_viewed_at
+ @leaf_count = leaf_count
+ @media = media
+ @originally_available_at = originally_available_at
+ @original_title = original_title
+ @parent_guid = parent_guid
+ @parent_index = parent_index
+ @parent_key = parent_key
+ @parent_rating_key = parent_rating_key
+ @parent_studio = parent_studio
+ @parent_theme = parent_theme
+ @parent_thumb = parent_thumb
+ @parent_title = parent_title
+ @parent_year = parent_year
+ @primary_extra_key = primary_extra_key
+ @rating = rating
+ @rating_image = rating_image
+ @rating_key = rating_key
+ @role = role
+ @skip_count = skip_count
+ @studio = studio
+ @summary = summary
+ @tagline = tagline
+ @theme = theme
+ @thumb = thumb
+ @title = title
+ @title_sort = title_sort
+ @type = type
+ @updated_at = updated_at
+ @view_count = view_count
+ @viewed_leaf_count = viewed_leaf_count
+ @view_offset = view_offset
+ @writer = writer
+ @year = year
+ end
+ end
+
+
+ class GetLibraryItemsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :library_section_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :library_section_uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionUUID') } }
+
+ field :media_tag_prefix, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagPrefix') } }
+
+ field :media_tag_version, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagVersion') } }
+
+ field :metadata, T.nilable(T::Array[Operations::GetLibraryItemsMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :mixed_parents, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mixedParents') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title1, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title1') } }
+
+ field :title2, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title2') } }
+
+ field :view_group, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewGroup') } }
+
+ field :view_mode, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewMode') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), art: T.nilable(String), identifier: T.nilable(String), library_section_id: T.nilable(Integer), library_section_title: T.nilable(String), library_section_uuid: T.nilable(String), media_tag_prefix: T.nilable(String), media_tag_version: T.nilable(Integer), metadata: T.nilable(T::Array[Operations::GetLibraryItemsMetadata]), mixed_parents: T.nilable(T::Boolean), size: T.nilable(Integer), thumb: T.nilable(String), title1: T.nilable(String), title2: T.nilable(String), view_group: T.nilable(String), view_mode: T.nilable(Integer)).void }
+ def initialize(allow_sync: nil, art: nil, identifier: nil, library_section_id: nil, library_section_title: nil, library_section_uuid: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, mixed_parents: nil, size: nil, thumb: nil, title1: nil, title2: nil, view_group: nil, view_mode: nil)
+ @allow_sync = allow_sync
+ @art = art
+ @identifier = identifier
+ @library_section_id = library_section_id
+ @library_section_title = library_section_title
+ @library_section_uuid = library_section_uuid
+ @media_tag_prefix = media_tag_prefix
+ @media_tag_version = media_tag_version
+ @metadata = metadata
+ @mixed_parents = mixed_parents
+ @size = size
+ @thumb = thumb
+ @title1 = title1
+ @title2 = title2
+ @view_group = view_group
+ @view_mode = view_mode
+ end
+ end
+
+ # The contents of the library by section and tag
+ class GetLibraryItemsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetLibraryItemsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetLibraryItemsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetLibraryItemsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The contents of the library by section and tag
+ field :object, T.nilable(Operations::GetLibraryItemsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::GetLibraryItemsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getmetadata.rb b/lib/plexapi/models/operations/getmetadata.rb
new file mode 100644
index 0000000..f148fad
--- /dev/null
+++ b/lib/plexapi/models/operations/getmetadata.rb
@@ -0,0 +1,641 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetMetadataRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the id of the library item to return the children of.
+ field :rating_key, Float, { 'path_param': { 'field_name': 'ratingKey', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(rating_key: Float).void }
+ def initialize(rating_key: nil)
+ @rating_key = rating_key
+ end
+ end
+
+
+ class GetMetadataErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetMetadataLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetMetadataErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetMetadataErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class Stream < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :bit_depth, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitDepth') } }
+
+ field :bitrate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :channels, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('channels') } }
+
+ field :chroma_location, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('chromaLocation') } }
+
+ field :chroma_subsampling, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('chromaSubsampling') } }
+
+ field :codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('codec') } }
+
+ field :coded_height, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('codedHeight') } }
+
+ field :coded_width, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('codedWidth') } }
+
+ field :color_primaries, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('colorPrimaries') } }
+
+ field :color_range, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('colorRange') } }
+
+ field :color_space, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('colorSpace') } }
+
+ field :color_trc, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('colorTrc') } }
+
+ field :default, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('default') } }
+
+ field :display_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('displayTitle') } }
+
+ field :extended_display_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('extendedDisplayTitle') } }
+
+ field :frame_rate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('frameRate') } }
+
+ field :has_scaling_matrix, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hasScalingMatrix') } }
+
+ field :height, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :language, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('language') } }
+
+ field :language_code, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('languageCode') } }
+
+ field :language_tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('languageTag') } }
+
+ field :level, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('level') } }
+
+ field :profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('profile') } }
+
+ field :ref_frames, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('refFrames') } }
+
+ field :sampling_rate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('samplingRate') } }
+
+ field :scan_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('scanType') } }
+
+ field :selected, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('selected') } }
+
+ field :stream_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('streamIdentifier') } }
+
+ field :stream_type, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('streamType') } }
+
+ field :width, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(bit_depth: T.nilable(Integer), bitrate: T.nilable(Integer), channels: T.nilable(Integer), chroma_location: T.nilable(String), chroma_subsampling: T.nilable(String), codec: T.nilable(String), coded_height: T.nilable(Integer), coded_width: T.nilable(Integer), color_primaries: T.nilable(String), color_range: T.nilable(String), color_space: T.nilable(String), color_trc: T.nilable(String), default: T.nilable(T::Boolean), display_title: T.nilable(String), extended_display_title: T.nilable(String), frame_rate: T.nilable(Integer), has_scaling_matrix: T.nilable(T::Boolean), height: T.nilable(Integer), id: T.nilable(Integer), index: T.nilable(Integer), language: T.nilable(String), language_code: T.nilable(String), language_tag: T.nilable(String), level: T.nilable(Integer), profile: T.nilable(String), ref_frames: T.nilable(Integer), sampling_rate: T.nilable(Integer), scan_type: T.nilable(String), selected: T.nilable(T::Boolean), stream_identifier: T.nilable(String), stream_type: T.nilable(Integer), width: T.nilable(Integer)).void }
+ def initialize(bit_depth: nil, bitrate: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, codec: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, display_title: nil, extended_display_title: nil, frame_rate: nil, has_scaling_matrix: nil, height: nil, id: nil, index: nil, language: nil, language_code: nil, language_tag: nil, level: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, stream_identifier: nil, stream_type: nil, width: nil)
+ @bit_depth = bit_depth
+ @bitrate = bitrate
+ @channels = channels
+ @chroma_location = chroma_location
+ @chroma_subsampling = chroma_subsampling
+ @codec = codec
+ @coded_height = coded_height
+ @coded_width = coded_width
+ @color_primaries = color_primaries
+ @color_range = color_range
+ @color_space = color_space
+ @color_trc = color_trc
+ @default = default
+ @display_title = display_title
+ @extended_display_title = extended_display_title
+ @frame_rate = frame_rate
+ @has_scaling_matrix = has_scaling_matrix
+ @height = height
+ @id = id
+ @index = index
+ @language = language
+ @language_code = language_code
+ @language_tag = language_tag
+ @level = level
+ @profile = profile
+ @ref_frames = ref_frames
+ @sampling_rate = sampling_rate
+ @scan_type = scan_type
+ @selected = selected
+ @stream_identifier = stream_identifier
+ @stream_type = stream_type
+ @width = width
+ end
+ end
+
+
+ class GetMetadataPart < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :file, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('file') } }
+
+ field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('has64bitOffsets') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :optimized_for_streaming, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('optimizedForStreaming') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :stream, T.nilable(T::Array[Operations::Stream]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Stream') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+
+ sig { params(audio_profile: T.nilable(String), container: T.nilable(String), duration: T.nilable(Integer), file: T.nilable(String), has64bit_offsets: T.nilable(T::Boolean), id: T.nilable(Integer), key: T.nilable(String), optimized_for_streaming: T.nilable(T::Boolean), size: T.nilable(Integer), stream: T.nilable(T::Array[Operations::Stream]), video_profile: T.nilable(String)).void }
+ def initialize(audio_profile: nil, container: nil, duration: nil, file: nil, has64bit_offsets: nil, id: nil, key: nil, optimized_for_streaming: nil, size: nil, stream: nil, video_profile: nil)
+ @audio_profile = audio_profile
+ @container = container
+ @duration = duration
+ @file = file
+ @has64bit_offsets = has64bit_offsets
+ @id = id
+ @key = key
+ @optimized_for_streaming = optimized_for_streaming
+ @size = size
+ @stream = stream
+ @video_profile = video_profile
+ end
+ end
+
+
+ class GetMetadataMedia < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :aspect_ratio, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('aspectRatio') } }
+
+ field :audio_channels, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :bitrate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('has64bitOffsets') } }
+
+ field :height, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :optimized_for_streaming, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('optimizedForStreaming') } }
+
+ field :part, T.nilable(T::Array[Operations::GetMetadataPart]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Part') } }
+
+ field :video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoCodec') } }
+
+ field :video_frame_rate, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoFrameRate') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+ field :video_resolution, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoResolution') } }
+
+ field :width, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(aspect_ratio: T.nilable(Float), audio_channels: T.nilable(Integer), audio_codec: T.nilable(String), audio_profile: T.nilable(String), bitrate: T.nilable(Integer), container: T.nilable(String), duration: T.nilable(Integer), has64bit_offsets: T.nilable(T::Boolean), height: T.nilable(Integer), id: T.nilable(Integer), optimized_for_streaming: T.nilable(Integer), part: T.nilable(T::Array[Operations::GetMetadataPart]), video_codec: T.nilable(String), video_frame_rate: T.nilable(String), video_profile: T.nilable(String), video_resolution: T.nilable(String), width: T.nilable(Integer)).void }
+ def initialize(aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, duration: nil, has64bit_offsets: nil, height: nil, id: nil, optimized_for_streaming: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil)
+ @aspect_ratio = aspect_ratio
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @audio_profile = audio_profile
+ @bitrate = bitrate
+ @container = container
+ @duration = duration
+ @has64bit_offsets = has64bit_offsets
+ @height = height
+ @id = id
+ @optimized_for_streaming = optimized_for_streaming
+ @part = part
+ @video_codec = video_codec
+ @video_frame_rate = video_frame_rate
+ @video_profile = video_profile
+ @video_resolution = video_resolution
+ @width = width
+ end
+ end
+
+
+ class GetMetadataGenre < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :filter, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filter') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(filter: T.nilable(String), id: T.nilable(Integer), tag: T.nilable(String)).void }
+ def initialize(filter: nil, id: nil, tag: nil)
+ @filter = filter
+ @id = id
+ @tag = tag
+ end
+ end
+
+
+ class GetMetadataCountry < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :filter, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filter') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(filter: T.nilable(String), id: T.nilable(Integer), tag: T.nilable(String)).void }
+ def initialize(filter: nil, id: nil, tag: nil)
+ @filter = filter
+ @id = id
+ @tag = tag
+ end
+ end
+
+
+ class Guids < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+
+ sig { params(id: T.nilable(String)).void }
+ def initialize(id: nil)
+ @id = id
+ end
+ end
+
+
+ class Ratings < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :value, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('value') } }
+
+
+ sig { params(image: T.nilable(String), type: T.nilable(String), value: T.nilable(Float)).void }
+ def initialize(image: nil, type: nil, value: nil)
+ @image = image
+ @type = type
+ @value = value
+ end
+ end
+
+
+ class GetMetadataDirector < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :filter, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filter') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+ field :tag_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagKey') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+
+ sig { params(filter: T.nilable(String), id: T.nilable(Integer), tag: T.nilable(String), tag_key: T.nilable(String), thumb: T.nilable(String)).void }
+ def initialize(filter: nil, id: nil, tag: nil, tag_key: nil, thumb: nil)
+ @filter = filter
+ @id = id
+ @tag = tag
+ @tag_key = tag_key
+ @thumb = thumb
+ end
+ end
+
+
+ class GetMetadataWriter < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :filter, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filter') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+ field :tag_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagKey') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+
+ sig { params(filter: T.nilable(String), id: T.nilable(Integer), tag: T.nilable(String), tag_key: T.nilable(String), thumb: T.nilable(String)).void }
+ def initialize(filter: nil, id: nil, tag: nil, tag_key: nil, thumb: nil)
+ @filter = filter
+ @id = id
+ @tag = tag
+ @tag_key = tag_key
+ @thumb = thumb
+ end
+ end
+
+
+ class GetMetadataRole < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :filter, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filter') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :role, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('role') } }
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+ field :tag_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagKey') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+
+ sig { params(filter: T.nilable(String), id: T.nilable(Integer), role: T.nilable(String), tag: T.nilable(String), tag_key: T.nilable(String), thumb: T.nilable(String)).void }
+ def initialize(filter: nil, id: nil, role: nil, tag: nil, tag_key: nil, thumb: nil)
+ @filter = filter
+ @id = id
+ @role = role
+ @tag = tag
+ @tag_key = tag_key
+ @thumb = thumb
+ end
+ end
+
+
+ class Producer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :filter, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('filter') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+ field :tag_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagKey') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+
+ sig { params(filter: T.nilable(String), id: T.nilable(Integer), tag: T.nilable(String), tag_key: T.nilable(String), thumb: T.nilable(String)).void }
+ def initialize(filter: nil, id: nil, tag: nil, tag_key: nil, thumb: nil)
+ @filter = filter
+ @id = id
+ @tag = tag
+ @tag_key = tag_key
+ @thumb = thumb
+ end
+ end
+
+
+ class GetMetadataMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :audience_rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRating') } }
+
+ field :audience_rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRatingImage') } }
+
+ field :content_rating, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contentRating') } }
+
+ field :country, T.nilable(T::Array[Operations::GetMetadataCountry]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Country') } }
+
+ field :director, T.nilable(T::Array[Operations::GetMetadataDirector]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Director') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :genre, T.nilable(T::Array[Operations::GetMetadataGenre]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Genre') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :guids, T.nilable(T::Array[Operations::Guids]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Guid') } }
+
+ field :has_premium_primary_extra, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hasPremiumPrimaryExtra') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :library_section_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionKey') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :media, T.nilable(T::Array[Operations::GetMetadataMedia]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Media') } }
+
+ field :originally_available_at, T.nilable(Date), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } }
+
+ field :producer, T.nilable(T::Array[Operations::Producer]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Producer') } }
+
+ field :rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('rating') } }
+
+ field :rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingImage') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :ratings, T.nilable(T::Array[Operations::Ratings]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Rating') } }
+
+ field :role, T.nilable(T::Array[Operations::GetMetadataRole]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Role') } }
+
+ field :studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('studio') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :tagline, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagline') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :writer, T.nilable(T::Array[Operations::GetMetadataWriter]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Writer') } }
+
+ field :year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('year') } }
+
+
+ sig { params(added_at: T.nilable(Integer), art: T.nilable(String), audience_rating: T.nilable(Float), audience_rating_image: T.nilable(String), content_rating: T.nilable(String), country: T.nilable(T::Array[Operations::GetMetadataCountry]), director: T.nilable(T::Array[Operations::GetMetadataDirector]), duration: T.nilable(Integer), genre: T.nilable(T::Array[Operations::GetMetadataGenre]), guid: T.nilable(String), guids: T.nilable(T::Array[Operations::Guids]), has_premium_primary_extra: T.nilable(String), key: T.nilable(String), library_section_id: T.nilable(Integer), library_section_key: T.nilable(String), library_section_title: T.nilable(String), media: T.nilable(T::Array[Operations::GetMetadataMedia]), originally_available_at: T.nilable(Date), producer: T.nilable(T::Array[Operations::Producer]), rating: T.nilable(Float), rating_image: T.nilable(String), rating_key: T.nilable(String), ratings: T.nilable(T::Array[Operations::Ratings]), role: T.nilable(T::Array[Operations::GetMetadataRole]), studio: T.nilable(String), summary: T.nilable(String), tagline: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), writer: T.nilable(T::Array[Operations::GetMetadataWriter]), year: T.nilable(Integer)).void }
+ def initialize(added_at: nil, art: nil, audience_rating: nil, audience_rating_image: nil, content_rating: nil, country: nil, director: nil, duration: nil, genre: nil, guid: nil, guids: nil, has_premium_primary_extra: nil, key: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, media: nil, originally_available_at: nil, producer: nil, rating: nil, rating_image: nil, rating_key: nil, ratings: nil, role: nil, studio: nil, summary: nil, tagline: nil, thumb: nil, title: nil, type: nil, updated_at: nil, writer: nil, year: nil)
+ @added_at = added_at
+ @art = art
+ @audience_rating = audience_rating
+ @audience_rating_image = audience_rating_image
+ @content_rating = content_rating
+ @country = country
+ @director = director
+ @duration = duration
+ @genre = genre
+ @guid = guid
+ @guids = guids
+ @has_premium_primary_extra = has_premium_primary_extra
+ @key = key
+ @library_section_id = library_section_id
+ @library_section_key = library_section_key
+ @library_section_title = library_section_title
+ @media = media
+ @originally_available_at = originally_available_at
+ @producer = producer
+ @rating = rating
+ @rating_image = rating_image
+ @rating_key = rating_key
+ @ratings = ratings
+ @role = role
+ @studio = studio
+ @summary = summary
+ @tagline = tagline
+ @thumb = thumb
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @writer = writer
+ @year = year
+ end
+ end
+
+
+ class GetMetadataMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :library_section_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :library_section_uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionUUID') } }
+
+ field :media_tag_prefix, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagPrefix') } }
+
+ field :media_tag_version, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagVersion') } }
+
+ field :metadata, T.nilable(T::Array[Operations::GetMetadataMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), identifier: T.nilable(String), library_section_id: T.nilable(Integer), library_section_title: T.nilable(String), library_section_uuid: T.nilable(String), media_tag_prefix: T.nilable(String), media_tag_version: T.nilable(Integer), metadata: T.nilable(T::Array[Operations::GetMetadataMetadata]), size: T.nilable(Integer)).void }
+ def initialize(allow_sync: nil, identifier: nil, library_section_id: nil, library_section_title: nil, library_section_uuid: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, size: nil)
+ @allow_sync = allow_sync
+ @identifier = identifier
+ @library_section_id = library_section_id
+ @library_section_title = library_section_title
+ @library_section_uuid = library_section_uuid
+ @media_tag_prefix = media_tag_prefix
+ @media_tag_version = media_tag_version
+ @metadata = metadata
+ @size = size
+ end
+ end
+
+ # The metadata of the library item.
+ class GetMetadataResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetMetadataMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetMetadataMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetMetadataResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The metadata of the library item.
+ field :two_hundred_application_json_object, T.nilable(Operations::GetMetadataResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetMetadataLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetMetadataResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetMetadataLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getmetadatachildren.rb b/lib/plexapi/models/operations/getmetadatachildren.rb
new file mode 100644
index 0000000..d141438
--- /dev/null
+++ b/lib/plexapi/models/operations/getmetadatachildren.rb
@@ -0,0 +1,297 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetMetadataChildrenRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the id of the library item to return the children of.
+ field :rating_key, Float, { 'path_param': { 'field_name': 'ratingKey', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(rating_key: Float).void }
+ def initialize(rating_key: nil)
+ @rating_key = rating_key
+ end
+ end
+
+
+ class GetMetadataChildrenErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetMetadataChildrenLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetMetadataChildrenErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetMetadataChildrenErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetMetadataChildrenDirectory < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :viewed_leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewedLeafCount') } }
+
+
+ sig { params(key: T.nilable(String), leaf_count: T.nilable(Integer), thumb: T.nilable(String), title: T.nilable(String), viewed_leaf_count: T.nilable(Integer)).void }
+ def initialize(key: nil, leaf_count: nil, thumb: nil, title: nil, viewed_leaf_count: nil)
+ @key = key
+ @leaf_count = leaf_count
+ @thumb = thumb
+ @title = title
+ @viewed_leaf_count = viewed_leaf_count
+ end
+ end
+
+
+ class GetMetadataChildrenMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :last_rated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lastRatedAt') } }
+
+ field :last_viewed_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lastViewedAt') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :parent_guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentGuid') } }
+
+ field :parent_index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentIndex') } }
+
+ field :parent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentKey') } }
+
+ field :parent_rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentRatingKey') } }
+
+ field :parent_studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentStudio') } }
+
+ field :parent_theme, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTheme') } }
+
+ field :parent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentThumb') } }
+
+ field :parent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTitle') } }
+
+ field :parent_year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentYear') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :skip_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('skipCount') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :user_rating, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('userRating') } }
+
+ field :view_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewCount') } }
+
+ field :viewed_leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewedLeafCount') } }
+
+
+ sig { params(added_at: T.nilable(Integer), art: T.nilable(String), guid: T.nilable(String), index: T.nilable(Integer), key: T.nilable(String), last_rated_at: T.nilable(Integer), last_viewed_at: T.nilable(Integer), leaf_count: T.nilable(Integer), parent_guid: T.nilable(String), parent_index: T.nilable(Integer), parent_key: T.nilable(String), parent_rating_key: T.nilable(String), parent_studio: T.nilable(String), parent_theme: T.nilable(String), parent_thumb: T.nilable(String), parent_title: T.nilable(String), parent_year: T.nilable(Integer), rating_key: T.nilable(String), skip_count: T.nilable(Integer), summary: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), user_rating: T.nilable(Integer), view_count: T.nilable(Integer), viewed_leaf_count: T.nilable(Integer)).void }
+ def initialize(added_at: nil, art: nil, guid: nil, index: nil, key: nil, last_rated_at: nil, last_viewed_at: nil, leaf_count: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_studio: nil, parent_theme: nil, parent_thumb: nil, parent_title: nil, parent_year: nil, rating_key: nil, skip_count: nil, summary: nil, thumb: nil, title: nil, type: nil, updated_at: nil, user_rating: nil, view_count: nil, viewed_leaf_count: nil)
+ @added_at = added_at
+ @art = art
+ @guid = guid
+ @index = index
+ @key = key
+ @last_rated_at = last_rated_at
+ @last_viewed_at = last_viewed_at
+ @leaf_count = leaf_count
+ @parent_guid = parent_guid
+ @parent_index = parent_index
+ @parent_key = parent_key
+ @parent_rating_key = parent_rating_key
+ @parent_studio = parent_studio
+ @parent_theme = parent_theme
+ @parent_thumb = parent_thumb
+ @parent_title = parent_title
+ @parent_year = parent_year
+ @rating_key = rating_key
+ @skip_count = skip_count
+ @summary = summary
+ @thumb = thumb
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @user_rating = user_rating
+ @view_count = view_count
+ @viewed_leaf_count = viewed_leaf_count
+ end
+ end
+
+
+ class GetMetadataChildrenMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :directory, T.nilable(T::Array[Operations::GetMetadataChildrenDirectory]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Directory') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :library_section_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :library_section_uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionUUID') } }
+
+ field :media_tag_prefix, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagPrefix') } }
+
+ field :media_tag_version, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagVersion') } }
+
+ field :metadata, T.nilable(T::Array[Operations::GetMetadataChildrenMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :nocache, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('nocache') } }
+
+ field :parent_index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentIndex') } }
+
+ field :parent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTitle') } }
+
+ field :parent_year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentYear') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :theme, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('theme') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title1, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title1') } }
+
+ field :title2, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title2') } }
+
+ field :view_group, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewGroup') } }
+
+ field :view_mode, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewMode') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), art: T.nilable(String), directory: T.nilable(T::Array[Operations::GetMetadataChildrenDirectory]), identifier: T.nilable(String), key: T.nilable(String), library_section_id: T.nilable(Integer), library_section_title: T.nilable(String), library_section_uuid: T.nilable(String), media_tag_prefix: T.nilable(String), media_tag_version: T.nilable(Integer), metadata: T.nilable(T::Array[Operations::GetMetadataChildrenMetadata]), nocache: T.nilable(T::Boolean), parent_index: T.nilable(Integer), parent_title: T.nilable(String), parent_year: T.nilable(Integer), size: T.nilable(Integer), summary: T.nilable(String), theme: T.nilable(String), thumb: T.nilable(String), title1: T.nilable(String), title2: T.nilable(String), view_group: T.nilable(String), view_mode: T.nilable(Integer)).void }
+ def initialize(allow_sync: nil, art: nil, directory: nil, identifier: nil, key: nil, library_section_id: nil, library_section_title: nil, library_section_uuid: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, nocache: nil, parent_index: nil, parent_title: nil, parent_year: nil, size: nil, summary: nil, theme: nil, thumb: nil, title1: nil, title2: nil, view_group: nil, view_mode: nil)
+ @allow_sync = allow_sync
+ @art = art
+ @directory = directory
+ @identifier = identifier
+ @key = key
+ @library_section_id = library_section_id
+ @library_section_title = library_section_title
+ @library_section_uuid = library_section_uuid
+ @media_tag_prefix = media_tag_prefix
+ @media_tag_version = media_tag_version
+ @metadata = metadata
+ @nocache = nocache
+ @parent_index = parent_index
+ @parent_title = parent_title
+ @parent_year = parent_year
+ @size = size
+ @summary = summary
+ @theme = theme
+ @thumb = thumb
+ @title1 = title1
+ @title2 = title2
+ @view_group = view_group
+ @view_mode = view_mode
+ end
+ end
+
+ # The children of the library item.
+ class GetMetadataChildrenResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetMetadataChildrenMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetMetadataChildrenMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetMetadataChildrenResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The children of the library item.
+ field :two_hundred_application_json_object, T.nilable(Operations::GetMetadataChildrenResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetMetadataChildrenLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetMetadataChildrenResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetMetadataChildrenLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getmyplexaccount.rb b/lib/plexapi/models/operations/getmyplexaccount.rb
new file mode 100644
index 0000000..0337d90
--- /dev/null
+++ b/lib/plexapi/models/operations/getmyplexaccount.rb
@@ -0,0 +1,132 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetMyPlexAccountErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetMyPlexAccountServerResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetMyPlexAccountErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetMyPlexAccountErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class MyPlex < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :auth_token, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('authToken') } }
+
+ field :mapping_error, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mappingError') } }
+
+ field :mapping_state, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mappingState') } }
+
+ field :private_address, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('privateAddress') } }
+
+ field :private_port, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('privatePort') } }
+
+ field :public_address, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('publicAddress') } }
+
+ field :public_port, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('publicPort') } }
+
+ field :sign_in_state, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('signInState') } }
+
+ field :subscription_active, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('subscriptionActive') } }
+
+ field :subscription_features, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('subscriptionFeatures') } }
+
+ field :subscription_state, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('subscriptionState') } }
+
+ field :username, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('username') } }
+
+
+ sig { params(auth_token: T.nilable(String), mapping_error: T.nilable(String), mapping_state: T.nilable(String), private_address: T.nilable(String), private_port: T.nilable(Float), public_address: T.nilable(String), public_port: T.nilable(Float), sign_in_state: T.nilable(String), subscription_active: T.nilable(T::Boolean), subscription_features: T.nilable(String), subscription_state: T.nilable(String), username: T.nilable(String)).void }
+ def initialize(auth_token: nil, mapping_error: nil, mapping_state: nil, private_address: nil, private_port: nil, public_address: nil, public_port: nil, sign_in_state: nil, subscription_active: nil, subscription_features: nil, subscription_state: nil, username: nil)
+ @auth_token = auth_token
+ @mapping_error = mapping_error
+ @mapping_state = mapping_state
+ @private_address = private_address
+ @private_port = private_port
+ @public_address = public_address
+ @public_port = public_port
+ @sign_in_state = sign_in_state
+ @subscription_active = subscription_active
+ @subscription_features = subscription_features
+ @subscription_state = subscription_state
+ @username = username
+ end
+ end
+
+ # MyPlex Account
+ class GetMyPlexAccountResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :my_plex, T.nilable(Operations::MyPlex), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MyPlex') } }
+
+
+ sig { params(my_plex: T.nilable(Operations::MyPlex)).void }
+ def initialize(my_plex: nil)
+ @my_plex = my_plex
+ end
+ end
+
+
+ class GetMyPlexAccountResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # MyPlex Account
+ field :two_hundred_application_json_object, T.nilable(Operations::GetMyPlexAccountResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetMyPlexAccountServerResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetMyPlexAccountResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetMyPlexAccountServerResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getondeck.rb b/lib/plexapi/models/operations/getondeck.rb
new file mode 100644
index 0000000..0c91bfb
--- /dev/null
+++ b/lib/plexapi/models/operations/getondeck.rb
@@ -0,0 +1,424 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetOnDeckErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetOnDeckLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetOnDeckErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetOnDeckErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetOnDeckStream < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :bit_depth, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitDepth') } }
+
+ field :bitrate, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :chroma_location, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('chromaLocation') } }
+
+ field :chroma_subsampling, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('chromaSubsampling') } }
+
+ field :codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('codec') } }
+
+ field :coded_height, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('codedHeight') } }
+
+ field :coded_width, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('codedWidth') } }
+
+ field :color_range, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('colorRange') } }
+
+ field :default, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('default') } }
+
+ field :display_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('displayTitle') } }
+
+ field :extended_display_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('extendedDisplayTitle') } }
+
+ field :frame_rate, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('frameRate') } }
+
+ field :height, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :index, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :language, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('language') } }
+
+ field :language_code, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('languageCode') } }
+
+ field :language_tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('languageTag') } }
+
+ field :level, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('level') } }
+
+ field :profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('profile') } }
+
+ field :ref_frames, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('refFrames') } }
+
+ field :stream_type, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('streamType') } }
+
+ field :width, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(bit_depth: T.nilable(Float), bitrate: T.nilable(Float), chroma_location: T.nilable(String), chroma_subsampling: T.nilable(String), codec: T.nilable(String), coded_height: T.nilable(Float), coded_width: T.nilable(Float), color_range: T.nilable(String), default: T.nilable(T::Boolean), display_title: T.nilable(String), extended_display_title: T.nilable(String), frame_rate: T.nilable(Float), height: T.nilable(Float), id: T.nilable(Float), index: T.nilable(Float), language: T.nilable(String), language_code: T.nilable(String), language_tag: T.nilable(String), level: T.nilable(Float), profile: T.nilable(String), ref_frames: T.nilable(Float), stream_type: T.nilable(Float), width: T.nilable(Float)).void }
+ def initialize(bit_depth: nil, bitrate: nil, chroma_location: nil, chroma_subsampling: nil, codec: nil, coded_height: nil, coded_width: nil, color_range: nil, default: nil, display_title: nil, extended_display_title: nil, frame_rate: nil, height: nil, id: nil, index: nil, language: nil, language_code: nil, language_tag: nil, level: nil, profile: nil, ref_frames: nil, stream_type: nil, width: nil)
+ @bit_depth = bit_depth
+ @bitrate = bitrate
+ @chroma_location = chroma_location
+ @chroma_subsampling = chroma_subsampling
+ @codec = codec
+ @coded_height = coded_height
+ @coded_width = coded_width
+ @color_range = color_range
+ @default = default
+ @display_title = display_title
+ @extended_display_title = extended_display_title
+ @frame_rate = frame_rate
+ @height = height
+ @id = id
+ @index = index
+ @language = language
+ @language_code = language_code
+ @language_tag = language_tag
+ @level = level
+ @profile = profile
+ @ref_frames = ref_frames
+ @stream_type = stream_type
+ @width = width
+ end
+ end
+
+
+ class GetOnDeckPart < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :file, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('file') } }
+
+ field :id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :stream, T.nilable(T::Array[Operations::GetOnDeckStream]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Stream') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+
+ sig { params(audio_profile: T.nilable(String), container: T.nilable(String), duration: T.nilable(Float), file: T.nilable(String), id: T.nilable(Float), key: T.nilable(String), size: T.nilable(Float), stream: T.nilable(T::Array[Operations::GetOnDeckStream]), video_profile: T.nilable(String)).void }
+ def initialize(audio_profile: nil, container: nil, duration: nil, file: nil, id: nil, key: nil, size: nil, stream: nil, video_profile: nil)
+ @audio_profile = audio_profile
+ @container = container
+ @duration = duration
+ @file = file
+ @id = id
+ @key = key
+ @size = size
+ @stream = stream
+ @video_profile = video_profile
+ end
+ end
+
+
+ class GetOnDeckMedia < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :aspect_ratio, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('aspectRatio') } }
+
+ field :audio_channels, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :bitrate, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :height, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :part, T.nilable(T::Array[Operations::GetOnDeckPart]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Part') } }
+
+ field :video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoCodec') } }
+
+ field :video_frame_rate, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoFrameRate') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+ field :video_resolution, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoResolution') } }
+
+ field :width, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(aspect_ratio: T.nilable(Float), audio_channels: T.nilable(Float), audio_codec: T.nilable(String), audio_profile: T.nilable(String), bitrate: T.nilable(Float), container: T.nilable(String), duration: T.nilable(Float), height: T.nilable(Float), id: T.nilable(Float), part: T.nilable(T::Array[Operations::GetOnDeckPart]), video_codec: T.nilable(String), video_frame_rate: T.nilable(String), video_profile: T.nilable(String), video_resolution: T.nilable(String), width: T.nilable(Float)).void }
+ def initialize(aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, duration: nil, height: nil, id: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil)
+ @aspect_ratio = aspect_ratio
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @audio_profile = audio_profile
+ @bitrate = bitrate
+ @container = container
+ @duration = duration
+ @height = height
+ @id = id
+ @part = part
+ @video_codec = video_codec
+ @video_frame_rate = video_frame_rate
+ @video_profile = video_profile
+ @video_resolution = video_resolution
+ @width = width
+ end
+ end
+
+
+ class GetOnDeckGuids < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+
+ sig { params(id: T.nilable(String)).void }
+ def initialize(id: nil)
+ @id = id
+ end
+ end
+
+
+ class GetOnDeckMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :content_rating, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contentRating') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :grandparent_art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentArt') } }
+
+ field :grandparent_guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentGuid') } }
+
+ field :grandparent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentKey') } }
+
+ field :grandparent_rating_key, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentRatingKey') } }
+
+ field :grandparent_theme, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentTheme') } }
+
+ field :grandparent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentThumb') } }
+
+ field :grandparent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentTitle') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :guids, T.nilable(T::Array[Operations::GetOnDeckGuids]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Guid') } }
+
+ field :index, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :last_viewed_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lastViewedAt') } }
+
+ field :library_section_id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionKey') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :library_section_uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionUUID') } }
+
+ field :media, T.nilable(T::Array[Operations::GetOnDeckMedia]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Media') } }
+
+ field :originally_available_at, T.nilable(DateTime), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.datetime_from_iso_format(true) } }
+
+ field :parent_guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentGuid') } }
+
+ field :parent_index, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentIndex') } }
+
+ field :parent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentKey') } }
+
+ field :parent_rating_key, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentRatingKey') } }
+
+ field :parent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentThumb') } }
+
+ field :parent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTitle') } }
+
+ field :rating_key, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :year, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('year') } }
+
+
+ sig { params(added_at: T.nilable(Float), allow_sync: T.nilable(T::Boolean), art: T.nilable(String), content_rating: T.nilable(String), duration: T.nilable(Float), grandparent_art: T.nilable(String), grandparent_guid: T.nilable(String), grandparent_key: T.nilable(String), grandparent_rating_key: T.nilable(Float), grandparent_theme: T.nilable(String), grandparent_thumb: T.nilable(String), grandparent_title: T.nilable(String), guid: T.nilable(String), guids: T.nilable(T::Array[Operations::GetOnDeckGuids]), index: T.nilable(Float), key: T.nilable(String), last_viewed_at: T.nilable(Float), library_section_id: T.nilable(Float), library_section_key: T.nilable(String), library_section_title: T.nilable(String), library_section_uuid: T.nilable(String), media: T.nilable(T::Array[Operations::GetOnDeckMedia]), originally_available_at: T.nilable(DateTime), parent_guid: T.nilable(String), parent_index: T.nilable(Float), parent_key: T.nilable(String), parent_rating_key: T.nilable(Float), parent_thumb: T.nilable(String), parent_title: T.nilable(String), rating_key: T.nilable(Float), summary: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Float), year: T.nilable(Float)).void }
+ def initialize(added_at: nil, allow_sync: nil, art: nil, content_rating: nil, duration: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, guid: nil, guids: nil, index: nil, key: nil, last_viewed_at: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, library_section_uuid: nil, media: nil, originally_available_at: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_thumb: nil, parent_title: nil, rating_key: nil, summary: nil, thumb: nil, title: nil, type: nil, updated_at: nil, year: nil)
+ @added_at = added_at
+ @allow_sync = allow_sync
+ @art = art
+ @content_rating = content_rating
+ @duration = duration
+ @grandparent_art = grandparent_art
+ @grandparent_guid = grandparent_guid
+ @grandparent_key = grandparent_key
+ @grandparent_rating_key = grandparent_rating_key
+ @grandparent_theme = grandparent_theme
+ @grandparent_thumb = grandparent_thumb
+ @grandparent_title = grandparent_title
+ @guid = guid
+ @guids = guids
+ @index = index
+ @key = key
+ @last_viewed_at = last_viewed_at
+ @library_section_id = library_section_id
+ @library_section_key = library_section_key
+ @library_section_title = library_section_title
+ @library_section_uuid = library_section_uuid
+ @media = media
+ @originally_available_at = originally_available_at
+ @parent_guid = parent_guid
+ @parent_index = parent_index
+ @parent_key = parent_key
+ @parent_rating_key = parent_rating_key
+ @parent_thumb = parent_thumb
+ @parent_title = parent_title
+ @rating_key = rating_key
+ @summary = summary
+ @thumb = thumb
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @year = year
+ end
+ end
+
+
+ class GetOnDeckMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :media_tag_prefix, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagPrefix') } }
+
+ field :media_tag_version, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagVersion') } }
+
+ field :metadata, T.nilable(T::Array[Operations::GetOnDeckMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :mixed_parents, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mixedParents') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), identifier: T.nilable(String), media_tag_prefix: T.nilable(String), media_tag_version: T.nilable(Float), metadata: T.nilable(T::Array[Operations::GetOnDeckMetadata]), mixed_parents: T.nilable(T::Boolean), size: T.nilable(Float)).void }
+ def initialize(allow_sync: nil, identifier: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, mixed_parents: nil, size: nil)
+ @allow_sync = allow_sync
+ @identifier = identifier
+ @media_tag_prefix = media_tag_prefix
+ @media_tag_version = media_tag_version
+ @metadata = metadata
+ @mixed_parents = mixed_parents
+ @size = size
+ end
+ end
+
+ # The on Deck content
+ class GetOnDeckResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetOnDeckMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetOnDeckMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetOnDeckResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The on Deck content
+ field :two_hundred_application_json_object, T.nilable(Operations::GetOnDeckResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetOnDeckLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetOnDeckResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetOnDeckLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getplaylist.rb b/lib/plexapi/models/operations/getplaylist.rb
new file mode 100644
index 0000000..eb0d1f8
--- /dev/null
+++ b/lib/plexapi/models/operations/getplaylist.rb
@@ -0,0 +1,172 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetPlaylistRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the ID of the playlist
+ field :playlist_id, Float, { 'path_param': { 'field_name': 'playlistID', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(playlist_id: Float).void }
+ def initialize(playlist_id: nil)
+ @playlist_id = playlist_id
+ end
+ end
+
+
+ class GetPlaylistErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetPlaylistPlaylistsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetPlaylistErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetPlaylistErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetPlaylistMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :composite, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('composite') } }
+
+ field :content, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('content') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :icon, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('icon') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :playlist_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('playlistType') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :smart, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('smart') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+
+ sig { params(added_at: T.nilable(Integer), composite: T.nilable(String), content: T.nilable(String), duration: T.nilable(Integer), guid: T.nilable(String), icon: T.nilable(String), key: T.nilable(String), leaf_count: T.nilable(Integer), playlist_type: T.nilable(String), rating_key: T.nilable(String), smart: T.nilable(T::Boolean), summary: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer)).void }
+ def initialize(added_at: nil, composite: nil, content: nil, duration: nil, guid: nil, icon: nil, key: nil, leaf_count: nil, playlist_type: nil, rating_key: nil, smart: nil, summary: nil, title: nil, type: nil, updated_at: nil)
+ @added_at = added_at
+ @composite = composite
+ @content = content
+ @duration = duration
+ @guid = guid
+ @icon = icon
+ @key = key
+ @leaf_count = leaf_count
+ @playlist_type = playlist_type
+ @rating_key = rating_key
+ @smart = smart
+ @summary = summary
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ end
+ end
+
+
+ class GetPlaylistMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :metadata, T.nilable(T::Array[Operations::GetPlaylistMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(metadata: T.nilable(T::Array[Operations::GetPlaylistMetadata]), size: T.nilable(Integer)).void }
+ def initialize(metadata: nil, size: nil)
+ @metadata = metadata
+ @size = size
+ end
+ end
+
+ # The playlist
+ class GetPlaylistResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetPlaylistMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetPlaylistMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetPlaylistResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The playlist
+ field :two_hundred_application_json_object, T.nilable(Operations::GetPlaylistResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetPlaylistPlaylistsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetPlaylistResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetPlaylistPlaylistsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getplaylistcontents.rb b/lib/plexapi/models/operations/getplaylistcontents.rb
new file mode 100644
index 0000000..0ad5d61
--- /dev/null
+++ b/lib/plexapi/models/operations/getplaylistcontents.rb
@@ -0,0 +1,420 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetPlaylistContentsRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the ID of the playlist
+ field :playlist_id, Float, { 'path_param': { 'field_name': 'playlistID', 'style': 'simple', 'explode': false } }
+ # the metadata type of the item to return
+ field :type, Float, { 'query_param': { 'field_name': 'type', 'style': 'form', 'explode': true } }
+
+
+ sig { params(playlist_id: Float, type: Float).void }
+ def initialize(playlist_id: nil, type: nil)
+ @playlist_id = playlist_id
+ @type = type
+ end
+ end
+
+
+ class GetPlaylistContentsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetPlaylistContentsPlaylistsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetPlaylistContentsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetPlaylistContentsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetPlaylistContentsPart < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :file, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('file') } }
+
+ field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('has64bitOffsets') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :optimized_for_streaming, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('optimizedForStreaming') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+
+ sig { params(audio_profile: T.nilable(String), container: T.nilable(String), duration: T.nilable(Integer), file: T.nilable(String), has64bit_offsets: T.nilable(T::Boolean), id: T.nilable(Integer), key: T.nilable(String), optimized_for_streaming: T.nilable(T::Boolean), size: T.nilable(Integer), video_profile: T.nilable(String)).void }
+ def initialize(audio_profile: nil, container: nil, duration: nil, file: nil, has64bit_offsets: nil, id: nil, key: nil, optimized_for_streaming: nil, size: nil, video_profile: nil)
+ @audio_profile = audio_profile
+ @container = container
+ @duration = duration
+ @file = file
+ @has64bit_offsets = has64bit_offsets
+ @id = id
+ @key = key
+ @optimized_for_streaming = optimized_for_streaming
+ @size = size
+ @video_profile = video_profile
+ end
+ end
+
+
+ class GetPlaylistContentsMedia < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :aspect_ratio, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('aspectRatio') } }
+
+ field :audio_channels, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :bitrate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('has64bitOffsets') } }
+
+ field :height, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :optimized_for_streaming, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('optimizedForStreaming') } }
+
+ field :part, T.nilable(T::Array[Operations::GetPlaylistContentsPart]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Part') } }
+
+ field :video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoCodec') } }
+
+ field :video_frame_rate, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoFrameRate') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+ field :video_resolution, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoResolution') } }
+
+ field :width, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(aspect_ratio: T.nilable(Float), audio_channels: T.nilable(Integer), audio_codec: T.nilable(String), audio_profile: T.nilable(String), bitrate: T.nilable(Integer), container: T.nilable(String), duration: T.nilable(Integer), has64bit_offsets: T.nilable(T::Boolean), height: T.nilable(Integer), id: T.nilable(Integer), optimized_for_streaming: T.nilable(Integer), part: T.nilable(T::Array[Operations::GetPlaylistContentsPart]), video_codec: T.nilable(String), video_frame_rate: T.nilable(String), video_profile: T.nilable(String), video_resolution: T.nilable(String), width: T.nilable(Integer)).void }
+ def initialize(aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, duration: nil, has64bit_offsets: nil, height: nil, id: nil, optimized_for_streaming: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil)
+ @aspect_ratio = aspect_ratio
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @audio_profile = audio_profile
+ @bitrate = bitrate
+ @container = container
+ @duration = duration
+ @has64bit_offsets = has64bit_offsets
+ @height = height
+ @id = id
+ @optimized_for_streaming = optimized_for_streaming
+ @part = part
+ @video_codec = video_codec
+ @video_frame_rate = video_frame_rate
+ @video_profile = video_profile
+ @video_resolution = video_resolution
+ @width = width
+ end
+ end
+
+
+ class GetPlaylistContentsGenre < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetPlaylistContentsCountry < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetPlaylistContentsDirector < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetPlaylistContentsWriter < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetPlaylistContentsRole < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetPlaylistContentsMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :audience_rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRating') } }
+
+ field :audience_rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRatingImage') } }
+
+ field :content_rating, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contentRating') } }
+
+ field :country, T.nilable(T::Array[Operations::GetPlaylistContentsCountry]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Country') } }
+
+ field :director, T.nilable(T::Array[Operations::GetPlaylistContentsDirector]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Director') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :genre, T.nilable(T::Array[Operations::GetPlaylistContentsGenre]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Genre') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :has_premium_extras, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hasPremiumExtras') } }
+
+ field :has_premium_primary_extra, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hasPremiumPrimaryExtra') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :library_section_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionKey') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :media, T.nilable(T::Array[Operations::GetPlaylistContentsMedia]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Media') } }
+
+ field :originally_available_at, T.nilable(Date), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } }
+
+ field :rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('rating') } }
+
+ field :rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingImage') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :role, T.nilable(T::Array[Operations::GetPlaylistContentsRole]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Role') } }
+
+ field :studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('studio') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :tagline, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagline') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :title_sort, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('titleSort') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :writer, T.nilable(T::Array[Operations::GetPlaylistContentsWriter]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Writer') } }
+
+ field :year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('year') } }
+
+
+ sig { params(added_at: T.nilable(Integer), art: T.nilable(String), audience_rating: T.nilable(Float), audience_rating_image: T.nilable(String), content_rating: T.nilable(String), country: T.nilable(T::Array[Operations::GetPlaylistContentsCountry]), director: T.nilable(T::Array[Operations::GetPlaylistContentsDirector]), duration: T.nilable(Integer), genre: T.nilable(T::Array[Operations::GetPlaylistContentsGenre]), guid: T.nilable(String), has_premium_extras: T.nilable(String), has_premium_primary_extra: T.nilable(String), key: T.nilable(String), library_section_id: T.nilable(Integer), library_section_key: T.nilable(String), library_section_title: T.nilable(String), media: T.nilable(T::Array[Operations::GetPlaylistContentsMedia]), originally_available_at: T.nilable(Date), rating: T.nilable(Float), rating_image: T.nilable(String), rating_key: T.nilable(String), role: T.nilable(T::Array[Operations::GetPlaylistContentsRole]), studio: T.nilable(String), summary: T.nilable(String), tagline: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), title_sort: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), writer: T.nilable(T::Array[Operations::GetPlaylistContentsWriter]), year: T.nilable(Integer)).void }
+ def initialize(added_at: nil, art: nil, audience_rating: nil, audience_rating_image: nil, content_rating: nil, country: nil, director: nil, duration: nil, genre: nil, guid: nil, has_premium_extras: nil, has_premium_primary_extra: nil, key: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, media: nil, originally_available_at: nil, rating: nil, rating_image: nil, rating_key: nil, role: nil, studio: nil, summary: nil, tagline: nil, thumb: nil, title: nil, title_sort: nil, type: nil, updated_at: nil, writer: nil, year: nil)
+ @added_at = added_at
+ @art = art
+ @audience_rating = audience_rating
+ @audience_rating_image = audience_rating_image
+ @content_rating = content_rating
+ @country = country
+ @director = director
+ @duration = duration
+ @genre = genre
+ @guid = guid
+ @has_premium_extras = has_premium_extras
+ @has_premium_primary_extra = has_premium_primary_extra
+ @key = key
+ @library_section_id = library_section_id
+ @library_section_key = library_section_key
+ @library_section_title = library_section_title
+ @media = media
+ @originally_available_at = originally_available_at
+ @rating = rating
+ @rating_image = rating_image
+ @rating_key = rating_key
+ @role = role
+ @studio = studio
+ @summary = summary
+ @tagline = tagline
+ @thumb = thumb
+ @title = title
+ @title_sort = title_sort
+ @type = type
+ @updated_at = updated_at
+ @writer = writer
+ @year = year
+ end
+ end
+
+
+ class GetPlaylistContentsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :composite, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('composite') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :metadata, T.nilable(T::Array[Operations::GetPlaylistContentsMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :playlist_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('playlistType') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :smart, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('smart') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+
+ sig { params(composite: T.nilable(String), duration: T.nilable(Integer), leaf_count: T.nilable(Integer), metadata: T.nilable(T::Array[Operations::GetPlaylistContentsMetadata]), playlist_type: T.nilable(String), rating_key: T.nilable(String), size: T.nilable(Integer), smart: T.nilable(T::Boolean), title: T.nilable(String)).void }
+ def initialize(composite: nil, duration: nil, leaf_count: nil, metadata: nil, playlist_type: nil, rating_key: nil, size: nil, smart: nil, title: nil)
+ @composite = composite
+ @duration = duration
+ @leaf_count = leaf_count
+ @metadata = metadata
+ @playlist_type = playlist_type
+ @rating_key = rating_key
+ @size = size
+ @smart = smart
+ @title = title
+ end
+ end
+
+ # The playlist contents
+ class GetPlaylistContentsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetPlaylistContentsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetPlaylistContentsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetPlaylistContentsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The playlist contents
+ field :two_hundred_application_json_object, T.nilable(Operations::GetPlaylistContentsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetPlaylistContentsPlaylistsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetPlaylistContentsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetPlaylistContentsPlaylistsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getplaylists.rb b/lib/plexapi/models/operations/getplaylists.rb
new file mode 100644
index 0000000..f51b633
--- /dev/null
+++ b/lib/plexapi/models/operations/getplaylists.rb
@@ -0,0 +1,197 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # PlaylistType - limit to a type of playlist.
+ class PlaylistType < T::Enum
+ enums do
+ AUDIO = new('audio')
+ VIDEO = new('video')
+ PHOTO = new('photo')
+ end
+ end
+
+
+ # QueryParamSmart - type of playlists to return (default is all).
+ class QueryParamSmart < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class GetPlaylistsRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # limit to a type of playlist.
+ field :playlist_type, T.nilable(Operations::PlaylistType), { 'query_param': { 'field_name': 'playlistType', 'style': 'form', 'explode': true } }
+ # type of playlists to return (default is all).
+ field :smart, T.nilable(Operations::QueryParamSmart), { 'query_param': { 'field_name': 'smart', 'style': 'form', 'explode': true } }
+
+
+ sig { params(playlist_type: T.nilable(Operations::PlaylistType), smart: T.nilable(Operations::QueryParamSmart)).void }
+ def initialize(playlist_type: nil, smart: nil)
+ @playlist_type = playlist_type
+ @smart = smart
+ end
+ end
+
+
+ class GetPlaylistsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetPlaylistsPlaylistsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetPlaylistsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetPlaylistsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetPlaylistsMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :composite, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('composite') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :icon, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('icon') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :last_viewed_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lastViewedAt') } }
+
+ field :leaf_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leafCount') } }
+
+ field :playlist_type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('playlistType') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :smart, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('smart') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :view_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewCount') } }
+
+
+ sig { params(added_at: T.nilable(Integer), composite: T.nilable(String), duration: T.nilable(Integer), guid: T.nilable(String), icon: T.nilable(String), key: T.nilable(String), last_viewed_at: T.nilable(Integer), leaf_count: T.nilable(Integer), playlist_type: T.nilable(String), rating_key: T.nilable(String), smart: T.nilable(T::Boolean), summary: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), view_count: T.nilable(Integer)).void }
+ def initialize(added_at: nil, composite: nil, duration: nil, guid: nil, icon: nil, key: nil, last_viewed_at: nil, leaf_count: nil, playlist_type: nil, rating_key: nil, smart: nil, summary: nil, title: nil, type: nil, updated_at: nil, view_count: nil)
+ @added_at = added_at
+ @composite = composite
+ @duration = duration
+ @guid = guid
+ @icon = icon
+ @key = key
+ @last_viewed_at = last_viewed_at
+ @leaf_count = leaf_count
+ @playlist_type = playlist_type
+ @rating_key = rating_key
+ @smart = smart
+ @summary = summary
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @view_count = view_count
+ end
+ end
+
+
+ class GetPlaylistsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :metadata, T.nilable(T::Array[Operations::GetPlaylistsMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(metadata: T.nilable(T::Array[Operations::GetPlaylistsMetadata]), size: T.nilable(Integer)).void }
+ def initialize(metadata: nil, size: nil)
+ @metadata = metadata
+ @size = size
+ end
+ end
+
+ # returns all playlists
+ class GetPlaylistsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetPlaylistsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetPlaylistsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetPlaylistsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # returns all playlists
+ field :two_hundred_application_json_object, T.nilable(Operations::GetPlaylistsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetPlaylistsPlaylistsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetPlaylistsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetPlaylistsPlaylistsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getrecentlyadded.rb b/lib/plexapi/models/operations/getrecentlyadded.rb
new file mode 100644
index 0000000..3c9b7c3
--- /dev/null
+++ b/lib/plexapi/models/operations/getrecentlyadded.rb
@@ -0,0 +1,394 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetRecentlyAddedErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetRecentlyAddedLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetRecentlyAddedErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetRecentlyAddedErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class Part < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :file, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('file') } }
+
+ field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('has64bitOffsets') } }
+
+ field :has_thumbnail, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hasThumbnail') } }
+
+ field :id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :optimized_for_streaming, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('optimizedForStreaming') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+
+ sig { params(container: T.nilable(String), duration: T.nilable(Float), file: T.nilable(String), has64bit_offsets: T.nilable(T::Boolean), has_thumbnail: T.nilable(Float), id: T.nilable(Float), key: T.nilable(String), optimized_for_streaming: T.nilable(T::Boolean), size: T.nilable(Float), video_profile: T.nilable(String)).void }
+ def initialize(container: nil, duration: nil, file: nil, has64bit_offsets: nil, has_thumbnail: nil, id: nil, key: nil, optimized_for_streaming: nil, size: nil, video_profile: nil)
+ @container = container
+ @duration = duration
+ @file = file
+ @has64bit_offsets = has64bit_offsets
+ @has_thumbnail = has_thumbnail
+ @id = id
+ @key = key
+ @optimized_for_streaming = optimized_for_streaming
+ @size = size
+ @video_profile = video_profile
+ end
+ end
+
+
+ class Media < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :aspect_ratio, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('aspectRatio') } }
+
+ field :audio_channels, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :bitrate, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('has64bitOffsets') } }
+
+ field :height, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :optimized_for_streaming, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('optimizedForStreaming') } }
+
+ field :part, T.nilable(T::Array[Operations::Part]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Part') } }
+
+ field :video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoCodec') } }
+
+ field :video_frame_rate, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoFrameRate') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+ field :video_resolution, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoResolution') } }
+
+ field :width, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(aspect_ratio: T.nilable(Float), audio_channels: T.nilable(Float), audio_codec: T.nilable(String), bitrate: T.nilable(Float), container: T.nilable(String), duration: T.nilable(Float), has64bit_offsets: T.nilable(T::Boolean), height: T.nilable(Float), id: T.nilable(Float), optimized_for_streaming: T.nilable(Float), part: T.nilable(T::Array[Operations::Part]), video_codec: T.nilable(String), video_frame_rate: T.nilable(String), video_profile: T.nilable(String), video_resolution: T.nilable(Float), width: T.nilable(Float)).void }
+ def initialize(aspect_ratio: nil, audio_channels: nil, audio_codec: nil, bitrate: nil, container: nil, duration: nil, has64bit_offsets: nil, height: nil, id: nil, optimized_for_streaming: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil)
+ @aspect_ratio = aspect_ratio
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @bitrate = bitrate
+ @container = container
+ @duration = duration
+ @has64bit_offsets = has64bit_offsets
+ @height = height
+ @id = id
+ @optimized_for_streaming = optimized_for_streaming
+ @part = part
+ @video_codec = video_codec
+ @video_frame_rate = video_frame_rate
+ @video_profile = video_profile
+ @video_resolution = video_resolution
+ @width = width
+ end
+ end
+
+
+ class Genre < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class Director < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class Writer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class Country < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class Role < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class Metadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :audience_rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRating') } }
+
+ field :audience_rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRatingImage') } }
+
+ field :chapter_source, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('chapterSource') } }
+
+ field :content_rating, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contentRating') } }
+
+ field :country, T.nilable(T::Array[Operations::Country]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Country') } }
+
+ field :director, T.nilable(T::Array[Operations::Director]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Director') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :genre, T.nilable(T::Array[Operations::Genre]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Genre') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :library_section_id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :library_section_uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionUUID') } }
+
+ field :media, T.nilable(T::Array[Operations::Media]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Media') } }
+
+ field :originally_available_at, T.nilable(DateTime), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.datetime_from_iso_format(true) } }
+
+ field :primary_extra_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('primaryExtraKey') } }
+
+ field :rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('rating') } }
+
+ field :rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingImage') } }
+
+ field :rating_key, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :role, T.nilable(T::Array[Operations::Role]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Role') } }
+
+ field :studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('studio') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :tagline, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagline') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :writer, T.nilable(T::Array[Operations::Writer]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Writer') } }
+
+ field :year, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('year') } }
+
+
+ sig { params(added_at: T.nilable(Float), allow_sync: T.nilable(T::Boolean), art: T.nilable(String), audience_rating: T.nilable(Float), audience_rating_image: T.nilable(String), chapter_source: T.nilable(String), content_rating: T.nilable(String), country: T.nilable(T::Array[Operations::Country]), director: T.nilable(T::Array[Operations::Director]), duration: T.nilable(Float), genre: T.nilable(T::Array[Operations::Genre]), guid: T.nilable(String), key: T.nilable(String), library_section_id: T.nilable(Float), library_section_title: T.nilable(String), library_section_uuid: T.nilable(String), media: T.nilable(T::Array[Operations::Media]), originally_available_at: T.nilable(DateTime), primary_extra_key: T.nilable(String), rating: T.nilable(Float), rating_image: T.nilable(String), rating_key: T.nilable(Float), role: T.nilable(T::Array[Operations::Role]), studio: T.nilable(String), summary: T.nilable(String), tagline: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Float), writer: T.nilable(T::Array[Operations::Writer]), year: T.nilable(Float)).void }
+ def initialize(added_at: nil, allow_sync: nil, art: nil, audience_rating: nil, audience_rating_image: nil, chapter_source: nil, content_rating: nil, country: nil, director: nil, duration: nil, genre: nil, guid: nil, key: nil, library_section_id: nil, library_section_title: nil, library_section_uuid: nil, media: nil, originally_available_at: nil, primary_extra_key: nil, rating: nil, rating_image: nil, rating_key: nil, role: nil, studio: nil, summary: nil, tagline: nil, thumb: nil, title: nil, type: nil, updated_at: nil, writer: nil, year: nil)
+ @added_at = added_at
+ @allow_sync = allow_sync
+ @art = art
+ @audience_rating = audience_rating
+ @audience_rating_image = audience_rating_image
+ @chapter_source = chapter_source
+ @content_rating = content_rating
+ @country = country
+ @director = director
+ @duration = duration
+ @genre = genre
+ @guid = guid
+ @key = key
+ @library_section_id = library_section_id
+ @library_section_title = library_section_title
+ @library_section_uuid = library_section_uuid
+ @media = media
+ @originally_available_at = originally_available_at
+ @primary_extra_key = primary_extra_key
+ @rating = rating
+ @rating_image = rating_image
+ @rating_key = rating_key
+ @role = role
+ @studio = studio
+ @summary = summary
+ @tagline = tagline
+ @thumb = thumb
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @writer = writer
+ @year = year
+ end
+ end
+
+
+ class GetRecentlyAddedMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :media_tag_prefix, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagPrefix') } }
+
+ field :media_tag_version, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagVersion') } }
+
+ field :metadata, T.nilable(T::Array[Operations::Metadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :mixed_parents, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mixedParents') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), identifier: T.nilable(String), media_tag_prefix: T.nilable(String), media_tag_version: T.nilable(Float), metadata: T.nilable(T::Array[Operations::Metadata]), mixed_parents: T.nilable(T::Boolean), size: T.nilable(Float)).void }
+ def initialize(allow_sync: nil, identifier: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, mixed_parents: nil, size: nil)
+ @allow_sync = allow_sync
+ @identifier = identifier
+ @media_tag_prefix = media_tag_prefix
+ @media_tag_version = media_tag_version
+ @metadata = metadata
+ @mixed_parents = mixed_parents
+ @size = size
+ end
+ end
+
+ # The recently added content
+ class GetRecentlyAddedResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetRecentlyAddedMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetRecentlyAddedMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetRecentlyAddedResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The recently added content
+ field :two_hundred_application_json_object, T.nilable(Operations::GetRecentlyAddedResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetRecentlyAddedLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetRecentlyAddedResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetRecentlyAddedLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getresizedphoto.rb b/lib/plexapi/models/operations/getresizedphoto.rb
new file mode 100644
index 0000000..6a37d53
--- /dev/null
+++ b/lib/plexapi/models/operations/getresizedphoto.rb
@@ -0,0 +1,118 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # MinSize - images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against.
+ class MinSize < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+ # Upscale - allow images to be resized beyond native dimensions.
+ class Upscale < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class GetResizedPhotoRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The width for the resized photo
+ field :blur, Float, { 'query_param': { 'field_name': 'blur', 'style': 'form', 'explode': true } }
+ # The height for the resized photo
+ field :height, Float, { 'query_param': { 'field_name': 'height', 'style': 'form', 'explode': true } }
+ # images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against.
+ field :min_size, Operations::MinSize, { 'query_param': { 'field_name': 'minSize', 'style': 'form', 'explode': true } }
+ # The opacity for the resized photo
+ field :opacity, Integer, { 'query_param': { 'field_name': 'opacity', 'style': 'form', 'explode': true } }
+ # allow images to be resized beyond native dimensions.
+ field :upscale, Operations::Upscale, { 'query_param': { 'field_name': 'upscale', 'style': 'form', 'explode': true } }
+ # path to image within Plex
+ field :url, String, { 'query_param': { 'field_name': 'url', 'style': 'form', 'explode': true } }
+ # The width for the resized photo
+ field :width, Float, { 'query_param': { 'field_name': 'width', 'style': 'form', 'explode': true } }
+
+
+ sig { params(blur: Float, height: Float, min_size: Operations::MinSize, opacity: Integer, upscale: Operations::Upscale, url: String, width: Float).void }
+ def initialize(blur: nil, height: nil, min_size: nil, opacity: nil, upscale: nil, url: nil, width: nil)
+ @blur = blur
+ @height = height
+ @min_size = min_size
+ @opacity = opacity
+ @upscale = upscale
+ @url = url
+ @width = width
+ end
+ end
+
+
+ class GetResizedPhotoErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetResizedPhotoResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetResizedPhotoErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetResizedPhotoErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetResizedPhotoResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::GetResizedPhotoResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::GetResizedPhotoResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getsearchresults.rb b/lib/plexapi/models/operations/getsearchresults.rb
new file mode 100644
index 0000000..ec8e012
--- /dev/null
+++ b/lib/plexapi/models/operations/getsearchresults.rb
@@ -0,0 +1,422 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetSearchResultsRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The search query string to use
+ field :query, String, { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
+
+
+ sig { params(query: String).void }
+ def initialize(query: nil)
+ @query = query
+ end
+ end
+
+
+ class GetSearchResultsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetSearchResultsSearchResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetSearchResultsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetSearchResultsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetSearchResultsPart < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :file, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('file') } }
+
+ field :id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+
+ sig { params(audio_profile: T.nilable(String), container: T.nilable(String), duration: T.nilable(Float), file: T.nilable(String), id: T.nilable(Float), key: T.nilable(String), size: T.nilable(Float), video_profile: T.nilable(String)).void }
+ def initialize(audio_profile: nil, container: nil, duration: nil, file: nil, id: nil, key: nil, size: nil, video_profile: nil)
+ @audio_profile = audio_profile
+ @container = container
+ @duration = duration
+ @file = file
+ @id = id
+ @key = key
+ @size = size
+ @video_profile = video_profile
+ end
+ end
+
+
+ class GetSearchResultsMedia < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :aspect_ratio, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('aspectRatio') } }
+
+ field :audio_channels, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :audio_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioProfile') } }
+
+ field :bitrate, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :height, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('height') } }
+
+ field :id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :part, T.nilable(T::Array[Operations::GetSearchResultsPart]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Part') } }
+
+ field :video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoCodec') } }
+
+ field :video_frame_rate, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoFrameRate') } }
+
+ field :video_profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoProfile') } }
+
+ field :video_resolution, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoResolution') } }
+
+ field :width, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('width') } }
+
+
+ sig { params(aspect_ratio: T.nilable(Float), audio_channels: T.nilable(Float), audio_codec: T.nilable(String), audio_profile: T.nilable(String), bitrate: T.nilable(Float), container: T.nilable(String), duration: T.nilable(Float), height: T.nilable(Float), id: T.nilable(Float), part: T.nilable(T::Array[Operations::GetSearchResultsPart]), video_codec: T.nilable(String), video_frame_rate: T.nilable(String), video_profile: T.nilable(String), video_resolution: T.nilable(Float), width: T.nilable(Float)).void }
+ def initialize(aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, duration: nil, height: nil, id: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil)
+ @aspect_ratio = aspect_ratio
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @audio_profile = audio_profile
+ @bitrate = bitrate
+ @container = container
+ @duration = duration
+ @height = height
+ @id = id
+ @part = part
+ @video_codec = video_codec
+ @video_frame_rate = video_frame_rate
+ @video_profile = video_profile
+ @video_resolution = video_resolution
+ @width = width
+ end
+ end
+
+
+ class GetSearchResultsGenre < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetSearchResultsDirector < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetSearchResultsWriter < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetSearchResultsCountry < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetSearchResultsRole < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :tag, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tag') } }
+
+
+ sig { params(tag: T.nilable(String)).void }
+ def initialize(tag: nil)
+ @tag = tag
+ end
+ end
+
+
+ class GetSearchResultsMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :audience_rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRating') } }
+
+ field :audience_rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audienceRatingImage') } }
+
+ field :chapter_source, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('chapterSource') } }
+
+ field :content_rating, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contentRating') } }
+
+ field :country, T.nilable(T::Array[Operations::GetSearchResultsCountry]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Country') } }
+
+ field :director, T.nilable(T::Array[Operations::GetSearchResultsDirector]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Director') } }
+
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :genre, T.nilable(T::Array[Operations::GetSearchResultsGenre]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Genre') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :library_section_id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :library_section_uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionUUID') } }
+
+ field :media, T.nilable(T::Array[Operations::GetSearchResultsMedia]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Media') } }
+
+ field :originally_available_at, T.nilable(DateTime), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.datetime_from_iso_format(true) } }
+
+ field :personal, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('personal') } }
+
+ field :primary_extra_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('primaryExtraKey') } }
+
+ field :rating, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('rating') } }
+
+ field :rating_image, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingImage') } }
+
+ field :rating_key, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :role, T.nilable(T::Array[Operations::GetSearchResultsRole]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Role') } }
+
+ field :source_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sourceTitle') } }
+
+ field :studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('studio') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :tagline, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tagline') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :writer, T.nilable(T::Array[Operations::GetSearchResultsWriter]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Writer') } }
+
+ field :year, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('year') } }
+
+
+ sig { params(added_at: T.nilable(Float), allow_sync: T.nilable(T::Boolean), art: T.nilable(String), audience_rating: T.nilable(Float), audience_rating_image: T.nilable(String), chapter_source: T.nilable(String), content_rating: T.nilable(String), country: T.nilable(T::Array[Operations::GetSearchResultsCountry]), director: T.nilable(T::Array[Operations::GetSearchResultsDirector]), duration: T.nilable(Float), genre: T.nilable(T::Array[Operations::GetSearchResultsGenre]), guid: T.nilable(String), key: T.nilable(String), library_section_id: T.nilable(Float), library_section_title: T.nilable(String), library_section_uuid: T.nilable(String), media: T.nilable(T::Array[Operations::GetSearchResultsMedia]), originally_available_at: T.nilable(DateTime), personal: T.nilable(T::Boolean), primary_extra_key: T.nilable(String), rating: T.nilable(Float), rating_image: T.nilable(String), rating_key: T.nilable(Float), role: T.nilable(T::Array[Operations::GetSearchResultsRole]), source_title: T.nilable(String), studio: T.nilable(String), summary: T.nilable(String), tagline: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Float), writer: T.nilable(T::Array[Operations::GetSearchResultsWriter]), year: T.nilable(Float)).void }
+ def initialize(added_at: nil, allow_sync: nil, art: nil, audience_rating: nil, audience_rating_image: nil, chapter_source: nil, content_rating: nil, country: nil, director: nil, duration: nil, genre: nil, guid: nil, key: nil, library_section_id: nil, library_section_title: nil, library_section_uuid: nil, media: nil, originally_available_at: nil, personal: nil, primary_extra_key: nil, rating: nil, rating_image: nil, rating_key: nil, role: nil, source_title: nil, studio: nil, summary: nil, tagline: nil, thumb: nil, title: nil, type: nil, updated_at: nil, writer: nil, year: nil)
+ @added_at = added_at
+ @allow_sync = allow_sync
+ @art = art
+ @audience_rating = audience_rating
+ @audience_rating_image = audience_rating_image
+ @chapter_source = chapter_source
+ @content_rating = content_rating
+ @country = country
+ @director = director
+ @duration = duration
+ @genre = genre
+ @guid = guid
+ @key = key
+ @library_section_id = library_section_id
+ @library_section_title = library_section_title
+ @library_section_uuid = library_section_uuid
+ @media = media
+ @originally_available_at = originally_available_at
+ @personal = personal
+ @primary_extra_key = primary_extra_key
+ @rating = rating
+ @rating_image = rating_image
+ @rating_key = rating_key
+ @role = role
+ @source_title = source_title
+ @studio = studio
+ @summary = summary
+ @tagline = tagline
+ @thumb = thumb
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ @writer = writer
+ @year = year
+ end
+ end
+
+
+ class Provider < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+
+ sig { params(key: T.nilable(String), title: T.nilable(String), type: T.nilable(String)).void }
+ def initialize(key: nil, title: nil, type: nil)
+ @key = key
+ @title = title
+ @type = type
+ end
+ end
+
+
+ class GetSearchResultsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :media_tag_prefix, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagPrefix') } }
+
+ field :media_tag_version, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagVersion') } }
+
+ field :metadata, T.nilable(T::Array[Operations::GetSearchResultsMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :provider, T.nilable(T::Array[Operations::Provider]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Provider') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(identifier: T.nilable(String), media_tag_prefix: T.nilable(String), media_tag_version: T.nilable(Float), metadata: T.nilable(T::Array[Operations::GetSearchResultsMetadata]), provider: T.nilable(T::Array[Operations::Provider]), size: T.nilable(Float)).void }
+ def initialize(identifier: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, provider: nil, size: nil)
+ @identifier = identifier
+ @media_tag_prefix = media_tag_prefix
+ @media_tag_version = media_tag_version
+ @metadata = metadata
+ @provider = provider
+ @size = size
+ end
+ end
+
+ # Search Results
+ class GetSearchResultsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetSearchResultsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetSearchResultsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetSearchResultsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Search Results
+ field :two_hundred_application_json_object, T.nilable(Operations::GetSearchResultsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetSearchResultsSearchResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetSearchResultsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetSearchResultsSearchResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getserveractivities.rb b/lib/plexapi/models/operations/getserveractivities.rb
new file mode 100644
index 0000000..3b657e6
--- /dev/null
+++ b/lib/plexapi/models/operations/getserveractivities.rb
@@ -0,0 +1,151 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetServerActivitiesErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetServerActivitiesActivitiesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetServerActivitiesErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetServerActivitiesErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class Context < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :library_section_id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+
+ sig { params(library_section_id: T.nilable(String)).void }
+ def initialize(library_section_id: nil)
+ @library_section_id = library_section_id
+ end
+ end
+
+
+ class Activity < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :cancellable, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('cancellable') } }
+
+ field :context, T.nilable(Operations::Context), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Context') } }
+
+ field :progress, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('progress') } }
+
+ field :subtitle, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('subtitle') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :user_id, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('userID') } }
+
+ field :uuid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('uuid') } }
+
+
+ sig { params(cancellable: T.nilable(T::Boolean), context: T.nilable(Operations::Context), progress: T.nilable(Float), subtitle: T.nilable(String), title: T.nilable(String), type: T.nilable(String), user_id: T.nilable(Float), uuid: T.nilable(String)).void }
+ def initialize(cancellable: nil, context: nil, progress: nil, subtitle: nil, title: nil, type: nil, user_id: nil, uuid: nil)
+ @cancellable = cancellable
+ @context = context
+ @progress = progress
+ @subtitle = subtitle
+ @title = title
+ @type = type
+ @user_id = user_id
+ @uuid = uuid
+ end
+ end
+
+
+ class GetServerActivitiesMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :activity, T.nilable(T::Array[Operations::Activity]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Activity') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(activity: T.nilable(T::Array[Operations::Activity]), size: T.nilable(Float)).void }
+ def initialize(activity: nil, size: nil)
+ @activity = activity
+ @size = size
+ end
+ end
+
+ # The Server Activities
+ class GetServerActivitiesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetServerActivitiesMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetServerActivitiesMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetServerActivitiesResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The Server Activities
+ field :two_hundred_application_json_object, T.nilable(Operations::GetServerActivitiesResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetServerActivitiesActivitiesResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetServerActivitiesResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetServerActivitiesActivitiesResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getservercapabilities.rb b/lib/plexapi/models/operations/getservercapabilities.rb
new file mode 100644
index 0000000..5ce02b2
--- /dev/null
+++ b/lib/plexapi/models/operations/getservercapabilities.rb
@@ -0,0 +1,269 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class Errors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetServerCapabilitiesServerResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::Errors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::Errors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class Directory < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :count, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('count') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+
+ sig { params(count: T.nilable(Float), key: T.nilable(String), title: T.nilable(String)).void }
+ def initialize(count: nil, key: nil, title: nil)
+ @count = count
+ @key = key
+ @title = title
+ end
+ end
+
+
+ class MediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_camera_upload, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowCameraUpload') } }
+
+ field :allow_channel_access, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowChannelAccess') } }
+
+ field :allow_media_deletion, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowMediaDeletion') } }
+
+ field :allow_sharing, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSharing') } }
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :allow_tuners, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowTuners') } }
+
+ field :background_processing, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('backgroundProcessing') } }
+
+ field :certificate, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('certificate') } }
+
+ field :companion_proxy, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('companionProxy') } }
+
+ field :country_code, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('countryCode') } }
+
+ field :diagnostics, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('diagnostics') } }
+
+ field :directory, T.nilable(T::Array[Operations::Directory]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Directory') } }
+
+ field :event_stream, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('eventStream') } }
+
+ field :friendly_name, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('friendlyName') } }
+
+ field :hub_search, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hubSearch') } }
+
+ field :item_clusters, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('itemClusters') } }
+
+ field :livetv, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('livetv') } }
+
+ field :machine_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('machineIdentifier') } }
+
+ field :media_providers, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaProviders') } }
+
+ field :multiuser, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('multiuser') } }
+
+ field :music_analysis, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('musicAnalysis') } }
+
+ field :my_plex, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('myPlex') } }
+
+ field :my_plex_mapping_state, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('myPlexMappingState') } }
+
+ field :my_plex_signin_state, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('myPlexSigninState') } }
+
+ field :my_plex_subscription, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('myPlexSubscription') } }
+
+ field :my_plex_username, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('myPlexUsername') } }
+
+ field :offline_transcode, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('offlineTranscode') } }
+
+ field :owner_features, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ownerFeatures') } }
+
+ field :photo_auto_tag, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('photoAutoTag') } }
+
+ field :platform, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('platform') } }
+
+ field :platform_version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('platformVersion') } }
+
+ field :plugin_host, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('pluginHost') } }
+
+ field :push_notifications, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('pushNotifications') } }
+
+ field :read_only_libraries, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('readOnlyLibraries') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :streaming_brain_abr_version, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('streamingBrainABRVersion') } }
+
+ field :streaming_brain_version, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('streamingBrainVersion') } }
+
+ field :sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sync') } }
+
+ field :transcoder_active_video_sessions, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderActiveVideoSessions') } }
+
+ field :transcoder_audio, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderAudio') } }
+
+ field :transcoder_lyrics, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderLyrics') } }
+
+ field :transcoder_photo, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderPhoto') } }
+
+ field :transcoder_subtitles, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderSubtitles') } }
+
+ field :transcoder_video, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderVideo') } }
+
+ field :transcoder_video_bitrates, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderVideoBitrates') } }
+
+ field :transcoder_video_qualities, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderVideoQualities') } }
+
+ field :transcoder_video_resolutions, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcoderVideoResolutions') } }
+
+ field :updated_at, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :updater, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updater') } }
+
+ field :version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('version') } }
+
+ field :voice_search, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('voiceSearch') } }
+
+
+ sig { params(allow_camera_upload: T.nilable(T::Boolean), allow_channel_access: T.nilable(T::Boolean), allow_media_deletion: T.nilable(T::Boolean), allow_sharing: T.nilable(T::Boolean), allow_sync: T.nilable(T::Boolean), allow_tuners: T.nilable(T::Boolean), background_processing: T.nilable(T::Boolean), certificate: T.nilable(T::Boolean), companion_proxy: T.nilable(T::Boolean), country_code: T.nilable(String), diagnostics: T.nilable(String), directory: T.nilable(T::Array[Operations::Directory]), event_stream: T.nilable(T::Boolean), friendly_name: T.nilable(String), hub_search: T.nilable(T::Boolean), item_clusters: T.nilable(T::Boolean), livetv: T.nilable(Float), machine_identifier: T.nilable(String), media_providers: T.nilable(T::Boolean), multiuser: T.nilable(T::Boolean), music_analysis: T.nilable(Float), my_plex: T.nilable(T::Boolean), my_plex_mapping_state: T.nilable(String), my_plex_signin_state: T.nilable(String), my_plex_subscription: T.nilable(T::Boolean), my_plex_username: T.nilable(String), offline_transcode: T.nilable(Float), owner_features: T.nilable(String), photo_auto_tag: T.nilable(T::Boolean), platform: T.nilable(String), platform_version: T.nilable(String), plugin_host: T.nilable(T::Boolean), push_notifications: T.nilable(T::Boolean), read_only_libraries: T.nilable(T::Boolean), size: T.nilable(Float), streaming_brain_abr_version: T.nilable(Float), streaming_brain_version: T.nilable(Float), sync: T.nilable(T::Boolean), transcoder_active_video_sessions: T.nilable(Float), transcoder_audio: T.nilable(T::Boolean), transcoder_lyrics: T.nilable(T::Boolean), transcoder_photo: T.nilable(T::Boolean), transcoder_subtitles: T.nilable(T::Boolean), transcoder_video: T.nilable(T::Boolean), transcoder_video_bitrates: T.nilable(String), transcoder_video_qualities: T.nilable(String), transcoder_video_resolutions: T.nilable(String), updated_at: T.nilable(Float), updater: T.nilable(T::Boolean), version: T.nilable(String), voice_search: T.nilable(T::Boolean)).void }
+ def initialize(allow_camera_upload: nil, allow_channel_access: nil, allow_media_deletion: nil, allow_sharing: nil, allow_sync: nil, allow_tuners: nil, background_processing: nil, certificate: nil, companion_proxy: nil, country_code: nil, diagnostics: nil, directory: nil, event_stream: nil, friendly_name: nil, hub_search: nil, item_clusters: nil, livetv: nil, machine_identifier: nil, media_providers: nil, multiuser: nil, music_analysis: nil, my_plex: nil, my_plex_mapping_state: nil, my_plex_signin_state: nil, my_plex_subscription: nil, my_plex_username: nil, offline_transcode: nil, owner_features: nil, photo_auto_tag: nil, platform: nil, platform_version: nil, plugin_host: nil, push_notifications: nil, read_only_libraries: nil, size: nil, streaming_brain_abr_version: nil, streaming_brain_version: nil, sync: nil, transcoder_active_video_sessions: nil, transcoder_audio: nil, transcoder_lyrics: nil, transcoder_photo: nil, transcoder_subtitles: nil, transcoder_video: nil, transcoder_video_bitrates: nil, transcoder_video_qualities: nil, transcoder_video_resolutions: nil, updated_at: nil, updater: nil, version: nil, voice_search: nil)
+ @allow_camera_upload = allow_camera_upload
+ @allow_channel_access = allow_channel_access
+ @allow_media_deletion = allow_media_deletion
+ @allow_sharing = allow_sharing
+ @allow_sync = allow_sync
+ @allow_tuners = allow_tuners
+ @background_processing = background_processing
+ @certificate = certificate
+ @companion_proxy = companion_proxy
+ @country_code = country_code
+ @diagnostics = diagnostics
+ @directory = directory
+ @event_stream = event_stream
+ @friendly_name = friendly_name
+ @hub_search = hub_search
+ @item_clusters = item_clusters
+ @livetv = livetv
+ @machine_identifier = machine_identifier
+ @media_providers = media_providers
+ @multiuser = multiuser
+ @music_analysis = music_analysis
+ @my_plex = my_plex
+ @my_plex_mapping_state = my_plex_mapping_state
+ @my_plex_signin_state = my_plex_signin_state
+ @my_plex_subscription = my_plex_subscription
+ @my_plex_username = my_plex_username
+ @offline_transcode = offline_transcode
+ @owner_features = owner_features
+ @photo_auto_tag = photo_auto_tag
+ @platform = platform
+ @platform_version = platform_version
+ @plugin_host = plugin_host
+ @push_notifications = push_notifications
+ @read_only_libraries = read_only_libraries
+ @size = size
+ @streaming_brain_abr_version = streaming_brain_abr_version
+ @streaming_brain_version = streaming_brain_version
+ @sync = sync
+ @transcoder_active_video_sessions = transcoder_active_video_sessions
+ @transcoder_audio = transcoder_audio
+ @transcoder_lyrics = transcoder_lyrics
+ @transcoder_photo = transcoder_photo
+ @transcoder_subtitles = transcoder_subtitles
+ @transcoder_video = transcoder_video
+ @transcoder_video_bitrates = transcoder_video_bitrates
+ @transcoder_video_qualities = transcoder_video_qualities
+ @transcoder_video_resolutions = transcoder_video_resolutions
+ @updated_at = updated_at
+ @updater = updater
+ @version = version
+ @voice_search = voice_search
+ end
+ end
+
+ # The Server Capabilities
+ class GetServerCapabilitiesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::MediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::MediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetServerCapabilitiesResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The Server Capabilities
+ field :two_hundred_application_json_object, T.nilable(Operations::GetServerCapabilitiesResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetServerCapabilitiesServerResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetServerCapabilitiesResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetServerCapabilitiesServerResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getserveridentity.rb b/lib/plexapi/models/operations/getserveridentity.rb
new file mode 100644
index 0000000..f6d7339
--- /dev/null
+++ b/lib/plexapi/models/operations/getserveridentity.rb
@@ -0,0 +1,108 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetServerIdentityErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetServerIdentityServerResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetServerIdentityErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetServerIdentityErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetServerIdentityMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :claimed, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('claimed') } }
+
+ field :machine_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('machineIdentifier') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('version') } }
+
+
+ sig { params(claimed: T.nilable(T::Boolean), machine_identifier: T.nilable(String), size: T.nilable(Float), version: T.nilable(String)).void }
+ def initialize(claimed: nil, machine_identifier: nil, size: nil, version: nil)
+ @claimed = claimed
+ @machine_identifier = machine_identifier
+ @size = size
+ @version = version
+ end
+ end
+
+ # The Server Identity information
+ class GetServerIdentityResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetServerIdentityMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetServerIdentityMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetServerIdentityResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The Server Identity information
+ field :two_hundred_application_json_object, T.nilable(Operations::GetServerIdentityResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetServerIdentityServerResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetServerIdentityResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetServerIdentityServerResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getserverlist.rb b/lib/plexapi/models/operations/getserverlist.rb
new file mode 100644
index 0000000..2c69588
--- /dev/null
+++ b/lib/plexapi/models/operations/getserverlist.rb
@@ -0,0 +1,131 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetServerListErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetServerListServerResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetServerListErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetServerListErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetServerListServer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :address, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('address') } }
+
+ field :host, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('host') } }
+
+ field :machine_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('machineIdentifier') } }
+
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
+
+ field :port, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('port') } }
+
+ field :version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('version') } }
+
+
+ sig { params(address: T.nilable(String), host: T.nilable(String), machine_identifier: T.nilable(String), name: T.nilable(String), port: T.nilable(Float), version: T.nilable(String)).void }
+ def initialize(address: nil, host: nil, machine_identifier: nil, name: nil, port: nil, version: nil)
+ @address = address
+ @host = host
+ @machine_identifier = machine_identifier
+ @name = name
+ @port = port
+ @version = version
+ end
+ end
+
+
+ class GetServerListMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :server, T.nilable(T::Array[Operations::GetServerListServer]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Server') } }
+
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(server: T.nilable(T::Array[Operations::GetServerListServer]), size: T.nilable(Float)).void }
+ def initialize(server: nil, size: nil)
+ @server = server
+ @size = size
+ end
+ end
+
+ # List of Servers
+ class GetServerListResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetServerListMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetServerListMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetServerListResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # List of Servers
+ field :two_hundred_application_json_object, T.nilable(Operations::GetServerListResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetServerListServerResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetServerListResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetServerListServerResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getserverpreferences.rb b/lib/plexapi/models/operations/getserverpreferences.rb
new file mode 100644
index 0000000..dbce3e2
--- /dev/null
+++ b/lib/plexapi/models/operations/getserverpreferences.rb
@@ -0,0 +1,102 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetServerPreferencesErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetServerPreferencesServerResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetServerPreferencesErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetServerPreferencesErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetServerPreferencesMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :setting, T.nilable(T::Array[Object]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Setting') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(setting: T.nilable(T::Array[Object]), size: T.nilable(Integer)).void }
+ def initialize(setting: nil, size: nil)
+ @setting = setting
+ @size = size
+ end
+ end
+
+ # Server Preferences
+ class GetServerPreferencesResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetServerPreferencesMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetServerPreferencesMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetServerPreferencesResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Server Preferences
+ field :two_hundred_application_json_object, T.nilable(Operations::GetServerPreferencesResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetServerPreferencesServerResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetServerPreferencesResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetServerPreferencesServerResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getsessionhistory.rb b/lib/plexapi/models/operations/getsessionhistory.rb
new file mode 100644
index 0000000..f7034f9
--- /dev/null
+++ b/lib/plexapi/models/operations/getsessionhistory.rb
@@ -0,0 +1,170 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetSessionHistoryErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetSessionHistorySessionsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetSessionHistoryErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetSessionHistoryErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetSessionHistoryMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :account_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accountID') } }
+
+ field :device_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('deviceID') } }
+
+ field :grandparent_art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentArt') } }
+
+ field :grandparent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentKey') } }
+
+ field :grandparent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentThumb') } }
+
+ field :grandparent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentTitle') } }
+
+ field :history_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('historyKey') } }
+
+ field :index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :library_section_id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :originally_available_at, T.nilable(Date), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } }
+
+ field :parent_index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentIndex') } }
+
+ field :parent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentKey') } }
+
+ field :parent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentThumb') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :viewed_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewedAt') } }
+
+
+ sig { params(account_id: T.nilable(Integer), device_id: T.nilable(Integer), grandparent_art: T.nilable(String), grandparent_key: T.nilable(String), grandparent_thumb: T.nilable(String), grandparent_title: T.nilable(String), history_key: T.nilable(String), index: T.nilable(Integer), key: T.nilable(String), library_section_id: T.nilable(String), originally_available_at: T.nilable(Date), parent_index: T.nilable(Integer), parent_key: T.nilable(String), parent_thumb: T.nilable(String), rating_key: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), viewed_at: T.nilable(Integer)).void }
+ def initialize(account_id: nil, device_id: nil, grandparent_art: nil, grandparent_key: nil, grandparent_thumb: nil, grandparent_title: nil, history_key: nil, index: nil, key: nil, library_section_id: nil, originally_available_at: nil, parent_index: nil, parent_key: nil, parent_thumb: nil, rating_key: nil, thumb: nil, title: nil, type: nil, viewed_at: nil)
+ @account_id = account_id
+ @device_id = device_id
+ @grandparent_art = grandparent_art
+ @grandparent_key = grandparent_key
+ @grandparent_thumb = grandparent_thumb
+ @grandparent_title = grandparent_title
+ @history_key = history_key
+ @index = index
+ @key = key
+ @library_section_id = library_section_id
+ @originally_available_at = originally_available_at
+ @parent_index = parent_index
+ @parent_key = parent_key
+ @parent_thumb = parent_thumb
+ @rating_key = rating_key
+ @thumb = thumb
+ @title = title
+ @type = type
+ @viewed_at = viewed_at
+ end
+ end
+
+
+ class GetSessionHistoryMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :metadata, T.nilable(T::Array[Operations::GetSessionHistoryMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(metadata: T.nilable(T::Array[Operations::GetSessionHistoryMetadata]), size: T.nilable(Integer)).void }
+ def initialize(metadata: nil, size: nil)
+ @metadata = metadata
+ @size = size
+ end
+ end
+
+ # List of Plex Sessions
+ class GetSessionHistoryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetSessionHistoryMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetSessionHistoryMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetSessionHistoryResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # List of Plex Sessions
+ field :two_hundred_application_json_object, T.nilable(Operations::GetSessionHistoryResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetSessionHistorySessionsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetSessionHistoryResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetSessionHistorySessionsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getsessions.rb b/lib/plexapi/models/operations/getsessions.rb
new file mode 100644
index 0000000..26d02e9
--- /dev/null
+++ b/lib/plexapi/models/operations/getsessions.rb
@@ -0,0 +1,467 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetSessionsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetSessionsSessionsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetSessionsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetSessionsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetSessionsStream < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :album_gain, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('albumGain') } }
+
+ field :album_peak, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('albumPeak') } }
+
+ field :album_range, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('albumRange') } }
+
+ field :audio_channel_layout, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannelLayout') } }
+
+ field :bit_depth, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitDepth') } }
+
+ field :bitrate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :channels, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('channels') } }
+
+ field :codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('codec') } }
+
+ field :display_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('displayTitle') } }
+
+ field :extended_display_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('extendedDisplayTitle') } }
+
+ field :gain, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('gain') } }
+
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :location, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('location') } }
+
+ field :loudness, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('loudness') } }
+
+ field :lra, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('lra') } }
+
+ field :peak, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('peak') } }
+
+ field :sampling_rate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('samplingRate') } }
+
+ field :selected, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('selected') } }
+
+ field :stream_type, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('streamType') } }
+
+
+ sig { params(album_gain: T.nilable(String), album_peak: T.nilable(String), album_range: T.nilable(String), audio_channel_layout: T.nilable(String), bit_depth: T.nilable(Integer), bitrate: T.nilable(Integer), channels: T.nilable(Integer), codec: T.nilable(String), display_title: T.nilable(String), extended_display_title: T.nilable(String), gain: T.nilable(String), id: T.nilable(String), index: T.nilable(Integer), location: T.nilable(String), loudness: T.nilable(String), lra: T.nilable(String), peak: T.nilable(String), sampling_rate: T.nilable(Integer), selected: T.nilable(T::Boolean), stream_type: T.nilable(Integer)).void }
+ def initialize(album_gain: nil, album_peak: nil, album_range: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, channels: nil, codec: nil, display_title: nil, extended_display_title: nil, gain: nil, id: nil, index: nil, location: nil, loudness: nil, lra: nil, peak: nil, sampling_rate: nil, selected: nil, stream_type: nil)
+ @album_gain = album_gain
+ @album_peak = album_peak
+ @album_range = album_range
+ @audio_channel_layout = audio_channel_layout
+ @bit_depth = bit_depth
+ @bitrate = bitrate
+ @channels = channels
+ @codec = codec
+ @display_title = display_title
+ @extended_display_title = extended_display_title
+ @gain = gain
+ @id = id
+ @index = index
+ @location = location
+ @loudness = loudness
+ @lra = lra
+ @peak = peak
+ @sampling_rate = sampling_rate
+ @selected = selected
+ @stream_type = stream_type
+ end
+ end
+
+
+ class GetSessionsPart < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :decision, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('decision') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :file, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('file') } }
+
+ field :has_thumbnail, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('hasThumbnail') } }
+
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :selected, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('selected') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :stream, T.nilable(T::Array[Operations::GetSessionsStream]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Stream') } }
+
+
+ sig { params(container: T.nilable(String), decision: T.nilable(String), duration: T.nilable(Integer), file: T.nilable(String), has_thumbnail: T.nilable(String), id: T.nilable(String), key: T.nilable(String), selected: T.nilable(T::Boolean), size: T.nilable(Integer), stream: T.nilable(T::Array[Operations::GetSessionsStream])).void }
+ def initialize(container: nil, decision: nil, duration: nil, file: nil, has_thumbnail: nil, id: nil, key: nil, selected: nil, size: nil, stream: nil)
+ @container = container
+ @decision = decision
+ @duration = duration
+ @file = file
+ @has_thumbnail = has_thumbnail
+ @id = id
+ @key = key
+ @selected = selected
+ @size = size
+ @stream = stream
+ end
+ end
+
+
+ class GetSessionsMedia < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :audio_channels, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :bitrate, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bitrate') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :part, T.nilable(T::Array[Operations::GetSessionsPart]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Part') } }
+
+ field :selected, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('selected') } }
+
+
+ sig { params(audio_channels: T.nilable(Integer), audio_codec: T.nilable(String), bitrate: T.nilable(Integer), container: T.nilable(String), duration: T.nilable(Integer), id: T.nilable(String), part: T.nilable(T::Array[Operations::GetSessionsPart]), selected: T.nilable(T::Boolean)).void }
+ def initialize(audio_channels: nil, audio_codec: nil, bitrate: nil, container: nil, duration: nil, id: nil, part: nil, selected: nil)
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @bitrate = bitrate
+ @container = container
+ @duration = duration
+ @id = id
+ @part = part
+ @selected = selected
+ end
+ end
+
+
+ class User < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+
+ sig { params(id: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String)).void }
+ def initialize(id: nil, thumb: nil, title: nil)
+ @id = id
+ @thumb = thumb
+ @title = title
+ end
+ end
+
+
+ class Player < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :address, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('address') } }
+
+ field :local, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('local') } }
+
+ field :machine_identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('machineIdentifier') } }
+
+ field :model, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('model') } }
+
+ field :platform, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('platform') } }
+
+ field :platform_version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('platformVersion') } }
+
+ field :product, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('product') } }
+
+ field :profile, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('profile') } }
+
+ field :relayed, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('relayed') } }
+
+ field :remote_public_address, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('remotePublicAddress') } }
+
+ field :secure, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('secure') } }
+
+ field :state, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('state') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :user_id, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('userID') } }
+
+ field :version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('version') } }
+
+
+ sig { params(address: T.nilable(String), local: T.nilable(T::Boolean), machine_identifier: T.nilable(String), model: T.nilable(String), platform: T.nilable(String), platform_version: T.nilable(String), product: T.nilable(String), profile: T.nilable(String), relayed: T.nilable(T::Boolean), remote_public_address: T.nilable(String), secure: T.nilable(T::Boolean), state: T.nilable(String), title: T.nilable(String), user_id: T.nilable(Integer), version: T.nilable(String)).void }
+ def initialize(address: nil, local: nil, machine_identifier: nil, model: nil, platform: nil, platform_version: nil, product: nil, profile: nil, relayed: nil, remote_public_address: nil, secure: nil, state: nil, title: nil, user_id: nil, version: nil)
+ @address = address
+ @local = local
+ @machine_identifier = machine_identifier
+ @model = model
+ @platform = platform
+ @platform_version = platform_version
+ @product = product
+ @profile = profile
+ @relayed = relayed
+ @remote_public_address = remote_public_address
+ @secure = secure
+ @state = state
+ @title = title
+ @user_id = user_id
+ @version = version
+ end
+ end
+
+
+ class Session < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :bandwidth, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bandwidth') } }
+
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
+
+ field :location, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('location') } }
+
+
+ sig { params(bandwidth: T.nilable(Integer), id: T.nilable(String), location: T.nilable(String)).void }
+ def initialize(bandwidth: nil, id: nil, location: nil)
+ @bandwidth = bandwidth
+ @id = id
+ @location = location
+ end
+ end
+
+
+ class GetSessionsMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :grandparent_art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentArt') } }
+
+ field :grandparent_guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentGuid') } }
+
+ field :grandparent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentKey') } }
+
+ field :grandparent_rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentRatingKey') } }
+
+ field :grandparent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentThumb') } }
+
+ field :grandparent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('grandparentTitle') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :library_section_id, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionID') } }
+
+ field :library_section_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionKey') } }
+
+ field :library_section_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('librarySectionTitle') } }
+
+ field :media, T.nilable(T::Array[Operations::GetSessionsMedia]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Media') } }
+
+ field :music_analysis_version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('musicAnalysisVersion') } }
+
+ field :parent_guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentGuid') } }
+
+ field :parent_index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentIndex') } }
+
+ field :parent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentKey') } }
+
+ field :parent_rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentRatingKey') } }
+
+ field :parent_studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentStudio') } }
+
+ field :parent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentThumb') } }
+
+ field :parent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTitle') } }
+
+ field :parent_year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentYear') } }
+
+ field :player, T.nilable(Operations::Player), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Player') } }
+
+ field :rating_count, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingCount') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :session, T.nilable(Operations::Session), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Session') } }
+
+ field :session_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sessionKey') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :title_sort, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('titleSort') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+ field :user, T.nilable(Operations::User), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('User') } }
+
+ field :view_offset, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewOffset') } }
+
+
+ sig { params(added_at: T.nilable(Integer), art: T.nilable(String), duration: T.nilable(Integer), grandparent_art: T.nilable(String), grandparent_guid: T.nilable(String), grandparent_key: T.nilable(String), grandparent_rating_key: T.nilable(String), grandparent_thumb: T.nilable(String), grandparent_title: T.nilable(String), guid: T.nilable(String), index: T.nilable(Integer), key: T.nilable(String), library_section_id: T.nilable(String), library_section_key: T.nilable(String), library_section_title: T.nilable(String), media: T.nilable(T::Array[Operations::GetSessionsMedia]), music_analysis_version: T.nilable(String), parent_guid: T.nilable(String), parent_index: T.nilable(Integer), parent_key: T.nilable(String), parent_rating_key: T.nilable(String), parent_studio: T.nilable(String), parent_thumb: T.nilable(String), parent_title: T.nilable(String), parent_year: T.nilable(Integer), player: T.nilable(Operations::Player), rating_count: T.nilable(Integer), rating_key: T.nilable(String), session: T.nilable(Operations::Session), session_key: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), title_sort: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer), user: T.nilable(Operations::User), view_offset: T.nilable(Integer)).void }
+ def initialize(added_at: nil, art: nil, duration: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_thumb: nil, grandparent_title: nil, guid: nil, index: nil, key: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, media: nil, music_analysis_version: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_studio: nil, parent_thumb: nil, parent_title: nil, parent_year: nil, player: nil, rating_count: nil, rating_key: nil, session: nil, session_key: nil, thumb: nil, title: nil, title_sort: nil, type: nil, updated_at: nil, user: nil, view_offset: nil)
+ @added_at = added_at
+ @art = art
+ @duration = duration
+ @grandparent_art = grandparent_art
+ @grandparent_guid = grandparent_guid
+ @grandparent_key = grandparent_key
+ @grandparent_rating_key = grandparent_rating_key
+ @grandparent_thumb = grandparent_thumb
+ @grandparent_title = grandparent_title
+ @guid = guid
+ @index = index
+ @key = key
+ @library_section_id = library_section_id
+ @library_section_key = library_section_key
+ @library_section_title = library_section_title
+ @media = media
+ @music_analysis_version = music_analysis_version
+ @parent_guid = parent_guid
+ @parent_index = parent_index
+ @parent_key = parent_key
+ @parent_rating_key = parent_rating_key
+ @parent_studio = parent_studio
+ @parent_thumb = parent_thumb
+ @parent_title = parent_title
+ @parent_year = parent_year
+ @player = player
+ @rating_count = rating_count
+ @rating_key = rating_key
+ @session = session
+ @session_key = session_key
+ @thumb = thumb
+ @title = title
+ @title_sort = title_sort
+ @type = type
+ @updated_at = updated_at
+ @user = user
+ @view_offset = view_offset
+ end
+ end
+
+
+ class GetSessionsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :metadata, T.nilable(T::Array[Operations::GetSessionsMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+
+ sig { params(metadata: T.nilable(T::Array[Operations::GetSessionsMetadata]), size: T.nilable(Integer)).void }
+ def initialize(metadata: nil, size: nil)
+ @metadata = metadata
+ @size = size
+ end
+ end
+
+ # List of Active Plex Sessions
+ class GetSessionsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetSessionsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetSessionsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetSessionsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # List of Active Plex Sessions
+ field :two_hundred_application_json_object, T.nilable(Operations::GetSessionsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetSessionsSessionsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetSessionsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetSessionsSessionsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getsourceconnectioninformation.rb b/lib/plexapi/models/operations/getsourceconnectioninformation.rb
new file mode 100644
index 0000000..5c83df5
--- /dev/null
+++ b/lib/plexapi/models/operations/getsourceconnectioninformation.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetSourceConnectionInformationRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The source identifier with an included prefix.
+ field :source, String, { 'query_param': { 'field_name': 'source', 'style': 'form', 'explode': true } }
+
+
+ sig { params(source: String).void }
+ def initialize(source: nil)
+ @source = source
+ end
+ end
+
+
+ class GetSourceConnectionInformationErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetSourceConnectionInformationResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetSourceConnectionInformationErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetSourceConnectionInformationErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetSourceConnectionInformationResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::GetSourceConnectionInformationResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::GetSourceConnectionInformationResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/gettimeline.rb b/lib/plexapi/models/operations/gettimeline.rb
new file mode 100644
index 0000000..291d89c
--- /dev/null
+++ b/lib/plexapi/models/operations/gettimeline.rb
@@ -0,0 +1,119 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # State - The state of the media item
+ class State < T::Enum
+ enums do
+ PLAYING = new('playing')
+ PAUSED = new('paused')
+ STOPPED = new('stopped')
+ end
+ end
+
+
+
+ class GetTimelineRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The context of the media item
+ field :context, String, { 'query_param': { 'field_name': 'context', 'style': 'form', 'explode': true } }
+ # The duration of the media item
+ field :duration, Float, { 'query_param': { 'field_name': 'duration', 'style': 'form', 'explode': true } }
+ # Whether the media item has MDE
+ field :has_mde, Float, { 'query_param': { 'field_name': 'hasMDE', 'style': 'form', 'explode': true } }
+ # The key of the media item to get the timeline for
+ field :key, String, { 'query_param': { 'field_name': 'key', 'style': 'form', 'explode': true } }
+ # The playback time of the media item
+ field :play_back_time, Float, { 'query_param': { 'field_name': 'playBackTime', 'style': 'form', 'explode': true } }
+ # The play queue item ID of the media item
+ field :play_queue_item_id, Float, { 'query_param': { 'field_name': 'playQueueItemID', 'style': 'form', 'explode': true } }
+ # The rating key of the media item
+ field :rating_key, Float, { 'query_param': { 'field_name': 'ratingKey', 'style': 'form', 'explode': true } }
+ # The row of the media item
+ field :row, Float, { 'query_param': { 'field_name': 'row', 'style': 'form', 'explode': true } }
+ # The state of the media item
+ field :state, Operations::State, { 'query_param': { 'field_name': 'state', 'style': 'form', 'explode': true } }
+ # The time of the media item
+ field :time, Float, { 'query_param': { 'field_name': 'time', 'style': 'form', 'explode': true } }
+
+
+ sig { params(context: String, duration: Float, has_mde: Float, key: String, play_back_time: Float, play_queue_item_id: Float, rating_key: Float, row: Float, state: Operations::State, time: Float).void }
+ def initialize(context: nil, duration: nil, has_mde: nil, key: nil, play_back_time: nil, play_queue_item_id: nil, rating_key: nil, row: nil, state: nil, time: nil)
+ @context = context
+ @duration = duration
+ @has_mde = has_mde
+ @key = key
+ @play_back_time = play_back_time
+ @play_queue_item_id = play_queue_item_id
+ @rating_key = rating_key
+ @row = row
+ @state = state
+ @time = time
+ end
+ end
+
+
+ class GetTimelineErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetTimelineResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetTimelineErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetTimelineErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetTimelineResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::GetTimelineResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::GetTimelineResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/gettranscodesessions.rb b/lib/plexapi/models/operations/gettranscodesessions.rb
new file mode 100644
index 0000000..caf848c
--- /dev/null
+++ b/lib/plexapi/models/operations/gettranscodesessions.rb
@@ -0,0 +1,185 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetTranscodeSessionsErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetTranscodeSessionsSessionsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetTranscodeSessionsErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetTranscodeSessionsErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class TranscodeSession < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :audio_channels, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioChannels') } }
+
+ field :audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioCodec') } }
+
+ field :audio_decision, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('audioDecision') } }
+
+ field :complete, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('complete') } }
+
+ field :container, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('container') } }
+
+ field :context, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('context') } }
+
+ field :duration, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('duration') } }
+
+ field :error, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('error') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :max_offset_available, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('maxOffsetAvailable') } }
+
+ field :min_offset_available, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('minOffsetAvailable') } }
+
+ field :progress, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('progress') } }
+
+ field :protocol, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('protocol') } }
+
+ field :remaining, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('remaining') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :source_audio_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sourceAudioCodec') } }
+
+ field :source_video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sourceVideoCodec') } }
+
+ field :speed, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('speed') } }
+
+ field :subtitle_decision, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('subtitleDecision') } }
+
+ field :throttled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('throttled') } }
+
+ field :time_stamp, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('timeStamp') } }
+
+ field :transcode_hw_requested, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('transcodeHwRequested') } }
+
+ field :video_codec, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoCodec') } }
+
+ field :video_decision, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('videoDecision') } }
+
+
+ sig { params(audio_channels: T.nilable(Integer), audio_codec: T.nilable(String), audio_decision: T.nilable(String), complete: T.nilable(T::Boolean), container: T.nilable(String), context: T.nilable(String), duration: T.nilable(Integer), error: T.nilable(T::Boolean), key: T.nilable(String), max_offset_available: T.nilable(Float), min_offset_available: T.nilable(Float), progress: T.nilable(Float), protocol: T.nilable(String), remaining: T.nilable(Integer), size: T.nilable(Integer), source_audio_codec: T.nilable(String), source_video_codec: T.nilable(String), speed: T.nilable(Float), subtitle_decision: T.nilable(String), throttled: T.nilable(T::Boolean), time_stamp: T.nilable(Float), transcode_hw_requested: T.nilable(T::Boolean), video_codec: T.nilable(String), video_decision: T.nilable(String)).void }
+ def initialize(audio_channels: nil, audio_codec: nil, audio_decision: nil, complete: nil, container: nil, context: nil, duration: nil, error: nil, key: nil, max_offset_available: nil, min_offset_available: nil, progress: nil, protocol: nil, remaining: nil, size: nil, source_audio_codec: nil, source_video_codec: nil, speed: nil, subtitle_decision: nil, throttled: nil, time_stamp: nil, transcode_hw_requested: nil, video_codec: nil, video_decision: nil)
+ @audio_channels = audio_channels
+ @audio_codec = audio_codec
+ @audio_decision = audio_decision
+ @complete = complete
+ @container = container
+ @context = context
+ @duration = duration
+ @error = error
+ @key = key
+ @max_offset_available = max_offset_available
+ @min_offset_available = min_offset_available
+ @progress = progress
+ @protocol = protocol
+ @remaining = remaining
+ @size = size
+ @source_audio_codec = source_audio_codec
+ @source_video_codec = source_video_codec
+ @speed = speed
+ @subtitle_decision = subtitle_decision
+ @throttled = throttled
+ @time_stamp = time_stamp
+ @transcode_hw_requested = transcode_hw_requested
+ @video_codec = video_codec
+ @video_decision = video_decision
+ end
+ end
+
+
+ class GetTranscodeSessionsMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :transcode_session, T.nilable(T::Array[Operations::TranscodeSession]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('TranscodeSession') } }
+
+
+ sig { params(size: T.nilable(Integer), transcode_session: T.nilable(T::Array[Operations::TranscodeSession])).void }
+ def initialize(size: nil, transcode_session: nil)
+ @size = size
+ @transcode_session = transcode_session
+ end
+ end
+
+ # The Transcode Sessions
+ class GetTranscodeSessionsResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetTranscodeSessionsMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetTranscodeSessionsMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetTranscodeSessionsResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The Transcode Sessions
+ field :two_hundred_application_json_object, T.nilable(Operations::GetTranscodeSessionsResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetTranscodeSessionsSessionsResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetTranscodeSessionsResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetTranscodeSessionsSessionsResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/gettransienttoken.rb b/lib/plexapi/models/operations/gettransienttoken.rb
new file mode 100644
index 0000000..9ae1090
--- /dev/null
+++ b/lib/plexapi/models/operations/gettransienttoken.rb
@@ -0,0 +1,101 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # GetTransientTokenQueryParamType - `delegation` - This is the only supported `type` parameter.
+ class GetTransientTokenQueryParamType < T::Enum
+ enums do
+ DELEGATION = new('delegation')
+ end
+ end
+
+
+ # Scope - `all` - This is the only supported `scope` parameter.
+ class Scope < T::Enum
+ enums do
+ ALL = new('all')
+ end
+ end
+
+
+
+ class GetTransientTokenRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # `all` - This is the only supported `scope` parameter.
+ field :scope, Operations::Scope, { 'query_param': { 'field_name': 'scope', 'style': 'form', 'explode': true } }
+ # `delegation` - This is the only supported `type` parameter.
+ field :type, Operations::GetTransientTokenQueryParamType, { 'query_param': { 'field_name': 'type', 'style': 'form', 'explode': true } }
+
+
+ sig { params(scope: Operations::Scope, type: Operations::GetTransientTokenQueryParamType).void }
+ def initialize(scope: nil, type: nil)
+ @scope = scope
+ @type = type
+ end
+ end
+
+
+ class GetTransientTokenErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetTransientTokenResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetTransientTokenErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetTransientTokenErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class GetTransientTokenResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::GetTransientTokenResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::GetTransientTokenResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/getupdatestatus.rb b/lib/plexapi/models/operations/getupdatestatus.rb
new file mode 100644
index 0000000..4b466ba
--- /dev/null
+++ b/lib/plexapi/models/operations/getupdatestatus.rb
@@ -0,0 +1,143 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class GetUpdateStatusErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class GetUpdateStatusUpdaterResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::GetUpdateStatusErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::GetUpdateStatusErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class Release < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('added') } }
+
+ field :download_url, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('downloadURL') } }
+
+ field :fixed, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('fixed') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :state, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('state') } }
+
+ field :version, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('version') } }
+
+
+ sig { params(added: T.nilable(String), download_url: T.nilable(String), fixed: T.nilable(String), key: T.nilable(String), state: T.nilable(String), version: T.nilable(String)).void }
+ def initialize(added: nil, download_url: nil, fixed: nil, key: nil, state: nil, version: nil)
+ @added = added
+ @download_url = download_url
+ @fixed = fixed
+ @key = key
+ @state = state
+ @version = version
+ end
+ end
+
+
+ class GetUpdateStatusMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :can_install, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('canInstall') } }
+
+ field :checked_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('checkedAt') } }
+
+ field :download_url, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('downloadURL') } }
+
+ field :release, T.nilable(T::Array[Operations::Release]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Release') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :status, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(can_install: T.nilable(T::Boolean), checked_at: T.nilable(Integer), download_url: T.nilable(String), release: T.nilable(T::Array[Operations::Release]), size: T.nilable(Integer), status: T.nilable(Integer)).void }
+ def initialize(can_install: nil, checked_at: nil, download_url: nil, release: nil, size: nil, status: nil)
+ @can_install = can_install
+ @checked_at = checked_at
+ @download_url = download_url
+ @release = release
+ @size = size
+ @status = status
+ end
+ end
+
+ # The Server Updates
+ class GetUpdateStatusResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::GetUpdateStatusMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::GetUpdateStatusMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class GetUpdateStatusResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The Server Updates
+ field :two_hundred_application_json_object, T.nilable(Operations::GetUpdateStatusResponseBody)
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :four_hundred_and_one_application_json_object, T.nilable(Operations::GetUpdateStatusUpdaterResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, two_hundred_application_json_object: T.nilable(Operations::GetUpdateStatusResponseBody), four_hundred_and_one_application_json_object: T.nilable(Operations::GetUpdateStatusUpdaterResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, two_hundred_application_json_object: nil, four_hundred_and_one_application_json_object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @two_hundred_application_json_object = two_hundred_application_json_object
+ @four_hundred_and_one_application_json_object = four_hundred_and_one_application_json_object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/logline.rb b/lib/plexapi/models/operations/logline.rb
new file mode 100644
index 0000000..b98c498
--- /dev/null
+++ b/lib/plexapi/models/operations/logline.rb
@@ -0,0 +1,112 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # Level - An integer log level to write to the PMS log with.
+ # 0: Error
+ # 1: Warning
+ # 2: Info
+ # 3: Debug
+ # 4: Verbose
+ #
+ class Level < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ TWO = new(2)
+ THREE = new(3)
+ FOUR = new(4)
+ end
+ end
+
+
+
+ class LogLineRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # An integer log level to write to the PMS log with.
+ # 0: Error
+ # 1: Warning
+ # 2: Info
+ # 3: Debug
+ # 4: Verbose
+ #
+ field :level, Operations::Level, { 'query_param': { 'field_name': 'level', 'style': 'form', 'explode': true } }
+ # The text of the message to write to the log.
+ field :message, String, { 'query_param': { 'field_name': 'message', 'style': 'form', 'explode': true } }
+ # a string indicating the source of the message.
+ field :source, String, { 'query_param': { 'field_name': 'source', 'style': 'form', 'explode': true } }
+
+
+ sig { params(level: Operations::Level, message: String, source: String).void }
+ def initialize(level: nil, message: nil, source: nil)
+ @level = level
+ @message = message
+ @source = source
+ end
+ end
+
+
+ class LogLineErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class LogLineResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::LogLineErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::LogLineErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class LogLineResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::LogLineResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::LogLineResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/logmultiline.rb b/lib/plexapi/models/operations/logmultiline.rb
new file mode 100644
index 0000000..889b20a
--- /dev/null
+++ b/lib/plexapi/models/operations/logmultiline.rb
@@ -0,0 +1,68 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class LogMultiLineErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class LogMultiLineResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::LogMultiLineErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::LogMultiLineErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class LogMultiLineResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::LogMultiLineResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::LogMultiLineResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/markplayed.rb b/lib/plexapi/models/operations/markplayed.rb
new file mode 100644
index 0000000..f82f5a9
--- /dev/null
+++ b/lib/plexapi/models/operations/markplayed.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class MarkPlayedRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The media key to mark as played
+ field :key, Float, { 'query_param': { 'field_name': 'key', 'style': 'form', 'explode': true } }
+
+
+ sig { params(key: Float).void }
+ def initialize(key: nil)
+ @key = key
+ end
+ end
+
+
+ class MarkPlayedErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class MarkPlayedResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::MarkPlayedErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::MarkPlayedErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class MarkPlayedResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::MarkPlayedResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::MarkPlayedResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/markunplayed.rb b/lib/plexapi/models/operations/markunplayed.rb
new file mode 100644
index 0000000..a9aeccf
--- /dev/null
+++ b/lib/plexapi/models/operations/markunplayed.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class MarkUnplayedRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The media key to mark as Unplayed
+ field :key, Float, { 'query_param': { 'field_name': 'key', 'style': 'form', 'explode': true } }
+
+
+ sig { params(key: Float).void }
+ def initialize(key: nil)
+ @key = key
+ end
+ end
+
+
+ class MarkUnplayedErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class MarkUnplayedResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::MarkUnplayedErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::MarkUnplayedErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class MarkUnplayedResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::MarkUnplayedResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::MarkUnplayedResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/performsearch.rb b/lib/plexapi/models/operations/performsearch.rb
new file mode 100644
index 0000000..2ad25e5
--- /dev/null
+++ b/lib/plexapi/models/operations/performsearch.rb
@@ -0,0 +1,88 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class PerformSearchRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The query term
+ field :query, String, { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
+ # The number of items to return per hub
+ field :limit, T.nilable(Float), { 'query_param': { 'field_name': 'limit', 'style': 'form', 'explode': true } }
+ # This gives context to the search, and can result in re-ordering of search result hubs
+ field :section_id, T.nilable(Float), { 'query_param': { 'field_name': 'sectionId', 'style': 'form', 'explode': true } }
+
+
+ sig { params(query: String, limit: T.nilable(Float), section_id: T.nilable(Float)).void }
+ def initialize(query: nil, limit: nil, section_id: nil)
+ @query = query
+ @limit = limit
+ @section_id = section_id
+ end
+ end
+
+
+ class PerformSearchErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class PerformSearchResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::PerformSearchErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::PerformSearchErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class PerformSearchResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::PerformSearchResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::PerformSearchResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/performvoicesearch.rb b/lib/plexapi/models/operations/performvoicesearch.rb
new file mode 100644
index 0000000..0709f75
--- /dev/null
+++ b/lib/plexapi/models/operations/performvoicesearch.rb
@@ -0,0 +1,88 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class PerformVoiceSearchRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The query term
+ field :query, String, { 'query_param': { 'field_name': 'query', 'style': 'form', 'explode': true } }
+ # The number of items to return per hub
+ field :limit, T.nilable(Float), { 'query_param': { 'field_name': 'limit', 'style': 'form', 'explode': true } }
+ # This gives context to the search, and can result in re-ordering of search result hubs
+ field :section_id, T.nilable(Float), { 'query_param': { 'field_name': 'sectionId', 'style': 'form', 'explode': true } }
+
+
+ sig { params(query: String, limit: T.nilable(Float), section_id: T.nilable(Float)).void }
+ def initialize(query: nil, limit: nil, section_id: nil)
+ @query = query
+ @limit = limit
+ @section_id = section_id
+ end
+ end
+
+
+ class PerformVoiceSearchErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class PerformVoiceSearchResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::PerformVoiceSearchErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::PerformVoiceSearchErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class PerformVoiceSearchResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::PerformVoiceSearchResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::PerformVoiceSearchResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/refreshlibrary.rb b/lib/plexapi/models/operations/refreshlibrary.rb
new file mode 100644
index 0000000..1e92b82
--- /dev/null
+++ b/lib/plexapi/models/operations/refreshlibrary.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class RefreshLibraryRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the Id of the library to refresh
+ field :section_id, Float, { 'path_param': { 'field_name': 'sectionId', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(section_id: Float).void }
+ def initialize(section_id: nil)
+ @section_id = section_id
+ end
+ end
+
+
+ class RefreshLibraryErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class RefreshLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::RefreshLibraryErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::RefreshLibraryErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class RefreshLibraryResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::RefreshLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::RefreshLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/searchlibrary.rb b/lib/plexapi/models/operations/searchlibrary.rb
new file mode 100644
index 0000000..8cf06f0
--- /dev/null
+++ b/lib/plexapi/models/operations/searchlibrary.rb
@@ -0,0 +1,197 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # Type - Plex content type to search for
+ class Type < T::Enum
+ enums do
+ ONE = new(1)
+ TWO = new(2)
+ THREE = new(3)
+ FOUR = new(4)
+ end
+ end
+
+
+
+ class SearchLibraryRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the Id of the library to query
+ field :section_id, Integer, { 'path_param': { 'field_name': 'sectionId', 'style': 'simple', 'explode': false } }
+ # Plex content type to search for
+ field :type, Operations::Type, { 'query_param': { 'field_name': 'type', 'style': 'form', 'explode': true } }
+
+
+ sig { params(section_id: Integer, type: Operations::Type).void }
+ def initialize(section_id: nil, type: nil)
+ @section_id = section_id
+ @type = type
+ end
+ end
+
+
+ class SearchLibraryMetadata < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :added_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('addedAt') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('guid') } }
+
+ field :index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('index') } }
+
+ field :key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
+
+ field :parent_guid, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentGuid') } }
+
+ field :parent_index, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentIndex') } }
+
+ field :parent_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentKey') } }
+
+ field :parent_rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentRatingKey') } }
+
+ field :parent_studio, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentStudio') } }
+
+ field :parent_theme, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTheme') } }
+
+ field :parent_thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentThumb') } }
+
+ field :parent_title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentTitle') } }
+
+ field :parent_year, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('parentYear') } }
+
+ field :rating_key, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('ratingKey') } }
+
+ field :summary, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('summary') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title') } }
+
+ field :type, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } }
+
+ field :updated_at, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
+
+
+ sig { params(added_at: T.nilable(Integer), art: T.nilable(String), guid: T.nilable(String), index: T.nilable(Integer), key: T.nilable(String), parent_guid: T.nilable(String), parent_index: T.nilable(Integer), parent_key: T.nilable(String), parent_rating_key: T.nilable(String), parent_studio: T.nilable(String), parent_theme: T.nilable(String), parent_thumb: T.nilable(String), parent_title: T.nilable(String), parent_year: T.nilable(Integer), rating_key: T.nilable(String), summary: T.nilable(String), thumb: T.nilable(String), title: T.nilable(String), type: T.nilable(String), updated_at: T.nilable(Integer)).void }
+ def initialize(added_at: nil, art: nil, guid: nil, index: nil, key: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_studio: nil, parent_theme: nil, parent_thumb: nil, parent_title: nil, parent_year: nil, rating_key: nil, summary: nil, thumb: nil, title: nil, type: nil, updated_at: nil)
+ @added_at = added_at
+ @art = art
+ @guid = guid
+ @index = index
+ @key = key
+ @parent_guid = parent_guid
+ @parent_index = parent_index
+ @parent_key = parent_key
+ @parent_rating_key = parent_rating_key
+ @parent_studio = parent_studio
+ @parent_theme = parent_theme
+ @parent_thumb = parent_thumb
+ @parent_title = parent_title
+ @parent_year = parent_year
+ @rating_key = rating_key
+ @summary = summary
+ @thumb = thumb
+ @title = title
+ @type = type
+ @updated_at = updated_at
+ end
+ end
+
+
+ class SearchLibraryMediaContainer < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :allow_sync, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('allowSync') } }
+
+ field :art, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('art') } }
+
+ field :identifier, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('identifier') } }
+
+ field :media_tag_prefix, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagPrefix') } }
+
+ field :media_tag_version, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('mediaTagVersion') } }
+
+ field :metadata, T.nilable(T::Array[Operations::SearchLibraryMetadata]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('Metadata') } }
+
+ field :nocache, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('nocache') } }
+
+ field :size, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('size') } }
+
+ field :thumb, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('thumb') } }
+
+ field :title1, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title1') } }
+
+ field :title2, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('title2') } }
+
+ field :view_group, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewGroup') } }
+
+ field :view_mode, T.nilable(Integer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('viewMode') } }
+
+
+ sig { params(allow_sync: T.nilable(T::Boolean), art: T.nilable(String), identifier: T.nilable(String), media_tag_prefix: T.nilable(String), media_tag_version: T.nilable(Integer), metadata: T.nilable(T::Array[Operations::SearchLibraryMetadata]), nocache: T.nilable(T::Boolean), size: T.nilable(Integer), thumb: T.nilable(String), title1: T.nilable(String), title2: T.nilable(String), view_group: T.nilable(String), view_mode: T.nilable(Integer)).void }
+ def initialize(allow_sync: nil, art: nil, identifier: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, nocache: nil, size: nil, thumb: nil, title1: nil, title2: nil, view_group: nil, view_mode: nil)
+ @allow_sync = allow_sync
+ @art = art
+ @identifier = identifier
+ @media_tag_prefix = media_tag_prefix
+ @media_tag_version = media_tag_version
+ @metadata = metadata
+ @nocache = nocache
+ @size = size
+ @thumb = thumb
+ @title1 = title1
+ @title2 = title2
+ @view_group = view_group
+ @view_mode = view_mode
+ end
+ end
+
+ # The contents of the library by section and type
+ class SearchLibraryResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :media_container, T.nilable(Operations::SearchLibraryMediaContainer), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('MediaContainer') } }
+
+
+ sig { params(media_container: T.nilable(Operations::SearchLibraryMediaContainer)).void }
+ def initialize(media_container: nil)
+ @media_container = media_container
+ end
+ end
+
+
+ class SearchLibraryResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # The contents of the library by section and type
+ field :object, T.nilable(Operations::SearchLibraryResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::SearchLibraryResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/startalltasks.rb b/lib/plexapi/models/operations/startalltasks.rb
new file mode 100644
index 0000000..6fca94e
--- /dev/null
+++ b/lib/plexapi/models/operations/startalltasks.rb
@@ -0,0 +1,68 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class StartAllTasksErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class StartAllTasksResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::StartAllTasksErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::StartAllTasksErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class StartAllTasksResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::StartAllTasksResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::StartAllTasksResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/starttask.rb b/lib/plexapi/models/operations/starttask.rb
new file mode 100644
index 0000000..b92afb6
--- /dev/null
+++ b/lib/plexapi/models/operations/starttask.rb
@@ -0,0 +1,103 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # TaskName - the name of the task to be started.
+ class TaskName < T::Enum
+ enums do
+ BACKUP_DATABASE = new('BackupDatabase')
+ BUILD_GRACENOTE_COLLECTIONS = new('BuildGracenoteCollections')
+ CHECK_FOR_UPDATES = new('CheckForUpdates')
+ CLEAN_OLD_BUNDLES = new('CleanOldBundles')
+ CLEAN_OLD_CACHE_FILES = new('CleanOldCacheFiles')
+ DEEP_MEDIA_ANALYSIS = new('DeepMediaAnalysis')
+ GENERATE_AUTO_TAGS = new('GenerateAutoTags')
+ GENERATE_CHAPTER_THUMBS = new('GenerateChapterThumbs')
+ GENERATE_MEDIA_INDEX_FILES = new('GenerateMediaIndexFiles')
+ OPTIMIZE_DATABASE = new('OptimizeDatabase')
+ REFRESH_LIBRARIES = new('RefreshLibraries')
+ REFRESH_LOCAL_MEDIA = new('RefreshLocalMedia')
+ REFRESH_PERIODIC_METADATA = new('RefreshPeriodicMetadata')
+ UPGRADE_MEDIA_ANALYSIS = new('UpgradeMediaAnalysis')
+ end
+ end
+
+
+
+ class StartTaskRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the name of the task to be started.
+ field :task_name, Operations::TaskName, { 'path_param': { 'field_name': 'taskName', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(task_name: Operations::TaskName).void }
+ def initialize(task_name: nil)
+ @task_name = task_name
+ end
+ end
+
+
+ class StartTaskErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class StartTaskResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::StartTaskErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::StartTaskErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class StartTaskResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::StartTaskResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::StartTaskResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/startuniversaltranscode.rb b/lib/plexapi/models/operations/startuniversaltranscode.rb
new file mode 100644
index 0000000..60cd456
--- /dev/null
+++ b/lib/plexapi/models/operations/startuniversaltranscode.rb
@@ -0,0 +1,127 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class StartUniversalTranscodeRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # Whether the media item has MDE
+ field :has_mde, Float, { 'query_param': { 'field_name': 'hasMDE', 'style': 'form', 'explode': true } }
+ # The index of the media item to transcode
+ field :media_index, Float, { 'query_param': { 'field_name': 'mediaIndex', 'style': 'form', 'explode': true } }
+ # The index of the part to transcode
+ field :part_index, Float, { 'query_param': { 'field_name': 'partIndex', 'style': 'form', 'explode': true } }
+ # The path to the media item to transcode
+ field :path, String, { 'query_param': { 'field_name': 'path', 'style': 'form', 'explode': true } }
+ # The protocol to use for the transcode session
+ field :protocol, String, { 'query_param': { 'field_name': 'protocol', 'style': 'form', 'explode': true } }
+ # Whether to add a debug overlay or not
+ field :add_debug_overlay, T.nilable(Float), { 'query_param': { 'field_name': 'addDebugOverlay', 'style': 'form', 'explode': true } }
+ # The audio boost
+ field :audio_boost, T.nilable(Float), { 'query_param': { 'field_name': 'audioBoost', 'style': 'form', 'explode': true } }
+ # Whether to auto adjust quality or not
+ field :auto_adjust_quality, T.nilable(Float), { 'query_param': { 'field_name': 'autoAdjustQuality', 'style': 'form', 'explode': true } }
+ # Whether to use direct play or not
+ field :direct_play, T.nilable(Float), { 'query_param': { 'field_name': 'directPlay', 'style': 'form', 'explode': true } }
+ # Whether to use direct stream or not
+ field :direct_stream, T.nilable(Float), { 'query_param': { 'field_name': 'directStream', 'style': 'form', 'explode': true } }
+ # Whether to use fast seek or not
+ field :fast_seek, T.nilable(Float), { 'query_param': { 'field_name': 'fastSeek', 'style': 'form', 'explode': true } }
+ # The location of the transcode session
+ field :location, T.nilable(String), { 'query_param': { 'field_name': 'location', 'style': 'form', 'explode': true } }
+ # The size of the media buffer
+ field :media_buffer_size, T.nilable(Float), { 'query_param': { 'field_name': 'mediaBufferSize', 'style': 'form', 'explode': true } }
+ # The session ID
+ field :session, T.nilable(String), { 'query_param': { 'field_name': 'session', 'style': 'form', 'explode': true } }
+ # The subtitles
+ field :subtites, T.nilable(String), { 'query_param': { 'field_name': 'subtites', 'style': 'form', 'explode': true } }
+ # The size of the subtitles
+ field :subtitle_size, T.nilable(Float), { 'query_param': { 'field_name': 'subtitleSize', 'style': 'form', 'explode': true } }
+
+
+ sig { params(has_mde: Float, media_index: Float, part_index: Float, path: String, protocol: String, add_debug_overlay: T.nilable(Float), audio_boost: T.nilable(Float), auto_adjust_quality: T.nilable(Float), direct_play: T.nilable(Float), direct_stream: T.nilable(Float), fast_seek: T.nilable(Float), location: T.nilable(String), media_buffer_size: T.nilable(Float), session: T.nilable(String), subtites: T.nilable(String), subtitle_size: T.nilable(Float)).void }
+ def initialize(has_mde: nil, media_index: nil, part_index: nil, path: nil, protocol: nil, add_debug_overlay: nil, audio_boost: nil, auto_adjust_quality: nil, direct_play: nil, direct_stream: nil, fast_seek: nil, location: nil, media_buffer_size: nil, session: nil, subtites: nil, subtitle_size: nil)
+ @has_mde = has_mde
+ @media_index = media_index
+ @part_index = part_index
+ @path = path
+ @protocol = protocol
+ @add_debug_overlay = add_debug_overlay
+ @audio_boost = audio_boost
+ @auto_adjust_quality = auto_adjust_quality
+ @direct_play = direct_play
+ @direct_stream = direct_stream
+ @fast_seek = fast_seek
+ @location = location
+ @media_buffer_size = media_buffer_size
+ @session = session
+ @subtites = subtites
+ @subtitle_size = subtitle_size
+ end
+ end
+
+
+ class StartUniversalTranscodeErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class StartUniversalTranscodeResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::StartUniversalTranscodeErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::StartUniversalTranscodeErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class StartUniversalTranscodeResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::StartUniversalTranscodeResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::StartUniversalTranscodeResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/stopalltasks.rb b/lib/plexapi/models/operations/stopalltasks.rb
new file mode 100644
index 0000000..7c00f01
--- /dev/null
+++ b/lib/plexapi/models/operations/stopalltasks.rb
@@ -0,0 +1,68 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class StopAllTasksErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class StopAllTasksResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::StopAllTasksErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::StopAllTasksErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class StopAllTasksResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::StopAllTasksResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::StopAllTasksResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/stoptask.rb b/lib/plexapi/models/operations/stoptask.rb
new file mode 100644
index 0000000..f11bd4e
--- /dev/null
+++ b/lib/plexapi/models/operations/stoptask.rb
@@ -0,0 +1,103 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # PathParamTaskName - The name of the task to be started.
+ class PathParamTaskName < T::Enum
+ enums do
+ BACKUP_DATABASE = new('BackupDatabase')
+ BUILD_GRACENOTE_COLLECTIONS = new('BuildGracenoteCollections')
+ CHECK_FOR_UPDATES = new('CheckForUpdates')
+ CLEAN_OLD_BUNDLES = new('CleanOldBundles')
+ CLEAN_OLD_CACHE_FILES = new('CleanOldCacheFiles')
+ DEEP_MEDIA_ANALYSIS = new('DeepMediaAnalysis')
+ GENERATE_AUTO_TAGS = new('GenerateAutoTags')
+ GENERATE_CHAPTER_THUMBS = new('GenerateChapterThumbs')
+ GENERATE_MEDIA_INDEX_FILES = new('GenerateMediaIndexFiles')
+ OPTIMIZE_DATABASE = new('OptimizeDatabase')
+ REFRESH_LIBRARIES = new('RefreshLibraries')
+ REFRESH_LOCAL_MEDIA = new('RefreshLocalMedia')
+ REFRESH_PERIODIC_METADATA = new('RefreshPeriodicMetadata')
+ UPGRADE_MEDIA_ANALYSIS = new('UpgradeMediaAnalysis')
+ end
+ end
+
+
+
+ class StopTaskRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # The name of the task to be started.
+ field :task_name, Operations::PathParamTaskName, { 'path_param': { 'field_name': 'taskName', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(task_name: Operations::PathParamTaskName).void }
+ def initialize(task_name: nil)
+ @task_name = task_name
+ end
+ end
+
+
+ class StopTaskErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class StopTaskResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::StopTaskErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::StopTaskErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class StopTaskResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::StopTaskResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::StopTaskResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/stoptranscodesession.rb b/lib/plexapi/models/operations/stoptranscodesession.rb
new file mode 100644
index 0000000..3f7818a
--- /dev/null
+++ b/lib/plexapi/models/operations/stoptranscodesession.rb
@@ -0,0 +1,82 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class StopTranscodeSessionRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the Key of the transcode session to stop
+ field :session_key, String, { 'path_param': { 'field_name': 'sessionKey', 'style': 'simple', 'explode': false } }
+
+
+ sig { params(session_key: String).void }
+ def initialize(session_key: nil)
+ @session_key = session_key
+ end
+ end
+
+
+ class StopTranscodeSessionErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class StopTranscodeSessionResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::StopTranscodeSessionErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::StopTranscodeSessionErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class StopTranscodeSessionResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::StopTranscodeSessionResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::StopTranscodeSessionResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/updateplaylist.rb b/lib/plexapi/models/operations/updateplaylist.rb
new file mode 100644
index 0000000..5322b63
--- /dev/null
+++ b/lib/plexapi/models/operations/updateplaylist.rb
@@ -0,0 +1,88 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class UpdatePlaylistRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the ID of the playlist
+ field :playlist_id, Float, { 'path_param': { 'field_name': 'playlistID', 'style': 'simple', 'explode': false } }
+ # summary description of the playlist
+ field :summary, T.nilable(String), { 'query_param': { 'field_name': 'summary', 'style': 'form', 'explode': true } }
+ # name of the playlist
+ field :title, T.nilable(String), { 'query_param': { 'field_name': 'title', 'style': 'form', 'explode': true } }
+
+
+ sig { params(playlist_id: Float, summary: T.nilable(String), title: T.nilable(String)).void }
+ def initialize(playlist_id: nil, summary: nil, title: nil)
+ @playlist_id = playlist_id
+ @summary = summary
+ @title = title
+ end
+ end
+
+
+ class UpdatePlaylistErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class UpdatePlaylistResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::UpdatePlaylistErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::UpdatePlaylistErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class UpdatePlaylistResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::UpdatePlaylistResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::UpdatePlaylistResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/updateplayprogress.rb b/lib/plexapi/models/operations/updateplayprogress.rb
new file mode 100644
index 0000000..15b10dc
--- /dev/null
+++ b/lib/plexapi/models/operations/updateplayprogress.rb
@@ -0,0 +1,88 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+
+ class UpdatePlayProgressRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # the media key
+ field :key, String, { 'query_param': { 'field_name': 'key', 'style': 'form', 'explode': true } }
+ # The playback state of the media item.
+ field :state, String, { 'query_param': { 'field_name': 'state', 'style': 'form', 'explode': true } }
+ # The time, in milliseconds, used to set the media playback progress.
+ field :time, Float, { 'query_param': { 'field_name': 'time', 'style': 'form', 'explode': true } }
+
+
+ sig { params(key: String, state: String, time: Float).void }
+ def initialize(key: nil, state: nil, time: nil)
+ @key = key
+ @state = state
+ @time = time
+ end
+ end
+
+
+ class UpdatePlayProgressErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class UpdatePlayProgressResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::UpdatePlayProgressErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::UpdatePlayProgressErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class UpdatePlayProgressResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::UpdatePlayProgressResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::UpdatePlayProgressResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/operations/uploadplaylist.rb b/lib/plexapi/models/operations/uploadplaylist.rb
new file mode 100644
index 0000000..e6ccb0a
--- /dev/null
+++ b/lib/plexapi/models/operations/uploadplaylist.rb
@@ -0,0 +1,108 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Operations
+ # Force - Force overwriting of duplicate playlists.
+ # By default, a playlist file uploaded with the same path will overwrite the existing playlist.
+ # The `force` argument is used to disable overwriting.
+ # If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
+ #
+ class Force < T::Enum
+ enums do
+ ZERO = new(0)
+ ONE = new(1)
+ end
+ end
+
+
+
+ class UploadPlaylistRequest < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # Force overwriting of duplicate playlists.
+ # By default, a playlist file uploaded with the same path will overwrite the existing playlist.
+ # The `force` argument is used to disable overwriting.
+ # If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
+ #
+ field :force, Operations::Force, { 'query_param': { 'field_name': 'force', 'style': 'form', 'explode': true } }
+ # absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
+ # If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
+ # Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
+ # The GUID of each playlist is based on the filename.
+ # If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
+ # The GUID of each playlist is based on the filename.
+ #
+ field :path, String, { 'query_param': { 'field_name': 'path', 'style': 'form', 'explode': true } }
+
+
+ sig { params(force: Operations::Force, path: String).void }
+ def initialize(force: nil, path: nil)
+ @force = force
+ @path = path
+ end
+ end
+
+
+ class UploadPlaylistErrors < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :code, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('code') } }
+
+ field :message, T.nilable(String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('message') } }
+
+ field :status, T.nilable(Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } }
+
+
+ sig { params(code: T.nilable(Float), message: T.nilable(String), status: T.nilable(Float)).void }
+ def initialize(code: nil, message: nil, status: nil)
+ @code = code
+ @message = message
+ @status = status
+ end
+ end
+
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ class UploadPlaylistResponseBody < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :errors, T.nilable(T::Array[Operations::UploadPlaylistErrors]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('errors') } }
+
+
+ sig { params(errors: T.nilable(T::Array[Operations::UploadPlaylistErrors])).void }
+ def initialize(errors: nil)
+ @errors = errors
+ end
+ end
+
+
+ class UploadPlaylistResponse < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ # HTTP response content type for this operation
+ field :content_type, String
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, Faraday::Response
+ # HTTP response status code for this operation
+ field :status_code, Integer
+ # Unauthorized - Returned if the X-Plex-Token is missing from the header or query.
+ field :object, T.nilable(Operations::UploadPlaylistResponseBody)
+
+
+ sig { params(content_type: String, raw_response: Faraday::Response, status_code: Integer, object: T.nilable(Operations::UploadPlaylistResponseBody)).void }
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
+ @content_type = content_type
+ @raw_response = raw_response
+ @status_code = status_code
+ @object = object
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/models/shared/security.rb b/lib/plexapi/models/shared/security.rb
new file mode 100644
index 0000000..e4c0942
--- /dev/null
+++ b/lib/plexapi/models/shared/security.rb
@@ -0,0 +1,25 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'sorbet-runtime'
+require 'faraday'
+
+module OpenApiSDK
+ module Shared
+
+ class Security < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+
+ field :access_token, String, { 'security': { 'scheme': true, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'X-Plex-Token' } }
+
+
+ sig { params(access_token: String).void }
+ def initialize(access_token: nil)
+ @access_token = access_token
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/playlists.rb b/lib/plexapi/playlists.rb
new file mode 100644
index 0000000..1cf6a30
--- /dev/null
+++ b/lib/plexapi/playlists.rb
@@ -0,0 +1,424 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Playlists
+ # Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
+ # They can be organized in (optionally nesting) folders.
+ # Retrieving a playlist, or its items, will trigger a refresh of its metadata.
+ # This may cause the duration and number of items to change.
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { params(request: T.nilable(Operations::CreatePlaylistRequest)).returns(Utils::FieldAugmented) }
+ def create_playlist(request)
+ # create_playlist - Create a Playlist
+ # Create a new playlist. By default the playlist is blank. To create a playlist along with a first item, pass:
+ # - `uri` - The content URI for what we're playing (e.g. `server://1234/com.plexapp.plugins.library/library/metadata/1`).
+ # - `playQueueID` - To create a playlist from an existing play queue.
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/playlists"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::CreatePlaylistRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.post(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::CreatePlaylistResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::CreatePlaylistResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::CreatePlaylistPlaylistsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(playlist_type: T.nilable(Operations::PlaylistType), smart: T.nilable(Operations::QueryParamSmart)).returns(Utils::FieldAugmented) }
+ def get_playlists(playlist_type = nil, smart = nil)
+ # get_playlists - Get All Playlists
+ # Get All Playlists given the specified filters.
+ request = Operations::GetPlaylistsRequest.new(
+
+ playlist_type: playlist_type,
+ smart: smart
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/playlists"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetPlaylistsRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetPlaylistsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetPlaylistsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetPlaylistsPlaylistsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(playlist_id: Float).returns(Utils::FieldAugmented) }
+ def get_playlist(playlist_id)
+ # get_playlist - Retrieve Playlist
+ # Gets detailed metadata for a playlist. A playlist for many purposes (rating, editing metadata, tagging), can be treated like a regular metadata item:
+ # Smart playlist details contain the `content` attribute. This is the content URI for the generator. This can then be parsed by a client to provide smart playlist editing.
+ #
+ request = Operations::GetPlaylistRequest.new(
+
+ playlist_id: playlist_id
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::GetPlaylistRequest,
+ base_url,
+ '/playlists/{playlistID}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetPlaylistResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetPlaylistResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetPlaylistPlaylistsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(playlist_id: Float).returns(Utils::FieldAugmented) }
+ def delete_playlist(playlist_id)
+ # delete_playlist - Deletes a Playlist
+ # This endpoint will delete a playlist
+ #
+ request = Operations::DeletePlaylistRequest.new(
+
+ playlist_id: playlist_id
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::DeletePlaylistRequest,
+ base_url,
+ '/playlists/{playlistID}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.delete(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::DeletePlaylistResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::DeletePlaylistResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(playlist_id: Float, title: T.nilable(String), summary: T.nilable(String)).returns(Utils::FieldAugmented) }
+ def update_playlist(playlist_id, title = nil, summary = nil)
+ # update_playlist - Update a Playlist
+ # From PMS version 1.9.1 clients can also edit playlist metadata using this endpoint as they would via `PUT /library/metadata/{playlistID}`
+ #
+ request = Operations::UpdatePlaylistRequest.new(
+
+ playlist_id: playlist_id,
+ title: title,
+ summary: summary
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::UpdatePlaylistRequest,
+ base_url,
+ '/playlists/{playlistID}',
+ request
+ )
+ headers = {}
+ query_params = Utils.get_query_params(Operations::UpdatePlaylistRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.put(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::UpdatePlaylistResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::UpdatePlaylistResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(playlist_id: Float, type: Float).returns(Utils::FieldAugmented) }
+ def get_playlist_contents(playlist_id, type)
+ # get_playlist_contents - Retrieve Playlist Contents
+ # Gets the contents of a playlist. Should be paged by clients via standard mechanisms.
+ # By default leaves are returned (e.g. episodes, movies). In order to return other types you can use the `type` parameter.
+ # For example, you could use this to display a list of recently added albums vis a smart playlist.
+ # Note that for dumb playlists, items have a `playlistItemID` attribute which is used for deleting or moving items.
+ #
+ request = Operations::GetPlaylistContentsRequest.new(
+
+ playlist_id: playlist_id,
+ type: type
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::GetPlaylistContentsRequest,
+ base_url,
+ '/playlists/{playlistID}/items',
+ request
+ )
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetPlaylistContentsRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetPlaylistContentsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetPlaylistContentsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetPlaylistContentsPlaylistsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(playlist_id: Float).returns(Utils::FieldAugmented) }
+ def clear_playlist_contents(playlist_id)
+ # clear_playlist_contents - Delete Playlist Contents
+ # Clears a playlist, only works with dumb playlists. Returns the playlist.
+ #
+ request = Operations::ClearPlaylistContentsRequest.new(
+
+ playlist_id: playlist_id
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::ClearPlaylistContentsRequest,
+ base_url,
+ '/playlists/{playlistID}/items',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.delete(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::ClearPlaylistContentsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::ClearPlaylistContentsResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(playlist_id: Float, uri: String, play_queue_id: T.nilable(Float)).returns(Utils::FieldAugmented) }
+ def add_playlist_contents(playlist_id, uri, play_queue_id = nil)
+ # add_playlist_contents - Adding to a Playlist
+ # Adds a generator to a playlist, same parameters as the POST to create. With a dumb playlist, this adds the specified items to the playlist.
+ # With a smart playlist, passing a new `uri` parameter replaces the rules for the playlist. Returns the playlist.
+ #
+ request = Operations::AddPlaylistContentsRequest.new(
+
+ playlist_id: playlist_id,
+ uri: uri,
+ play_queue_id: play_queue_id
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::AddPlaylistContentsRequest,
+ base_url,
+ '/playlists/{playlistID}/items',
+ request
+ )
+ headers = {}
+ query_params = Utils.get_query_params(Operations::AddPlaylistContentsRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.put(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::AddPlaylistContentsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::AddPlaylistContentsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::AddPlaylistContentsPlaylistsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(path: String, force: Operations::Force).returns(Utils::FieldAugmented) }
+ def upload_playlist(path, force)
+ # upload_playlist - Upload Playlist
+ # Imports m3u playlists by passing a path on the server to scan for m3u-formatted playlist files, or a path to a single playlist file.
+ #
+ request = Operations::UploadPlaylistRequest.new(
+
+ path: path,
+ force: force
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/playlists/upload"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::UploadPlaylistRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.post(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::UploadPlaylistResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::UploadPlaylistResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/sdk.rb b/lib/plexapi/sdk.rb
new file mode 100644
index 0000000..7884f5e
--- /dev/null
+++ b/lib/plexapi/sdk.rb
@@ -0,0 +1,108 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+module OpenApiSDK
+ extend T::Sig
+
+ class PlexAPI
+ extend T::Sig
+
+ attr_accessor :server, :media, :activities, :butler, :hubs, :search, :library, :log, :playlists, :security, :sessions, :updater, :video
+
+ attr_accessor :security, :language, :sdk_version, :gen_version
+
+ sig do
+ params(security: T.nilable(Shared::Security),
+ protocol: T.nilable(ServerProtocol),
+ ip: T.nilable(String),
+ port: T.nilable(String),
+ server_idx: Integer,
+ server_url: String,
+ url_params: T::Hash[Symbol, String],
+ client: Faraday::Request).void
+ end
+ def initialize(security: nil,
+ protocol: nil,
+ ip: nil,
+ port: nil,
+ server_idx: nil,
+ server_url: nil,
+ url_params: nil,
+ client: nil)
+
+ ## Instantiates the SDK configuring it with the provided parameters.
+ # @param [Shared::Security] security The security details required for authentication
+ # @param [T.nilable(ServerProtocol)] protocol: Allows setting the protocol variable for url substitution
+ # @param [T.nilable(String)] ip: Allows setting the ip variable for url substitution
+ # @param [T.nilable(String)] port: Allows setting the port variable for url substitution
+ # @param [Integer] server_idx The index of the server to use for all operations
+ # @param [String] server_url The server URL to use for all operations
+ # @param [Hash] url_params Parameters to optionally template the server URL with
+ # @param [Faraday::Request] client The faraday HTTP client to use for all operations
+
+ if client.nil?
+ client = Faraday.new(request: {
+ params_encoder: Faraday::FlatParamsEncoder
+ }) do |f|
+ f.request :multipart, {}
+ # f.response :logger
+ end
+ end
+
+ if !server_url.nil?
+ if !url_params.nil?
+ server_url = Utils.template_url(server_url, url_params)
+ end
+ end
+ server_idx = 0 if server_idx.nil?
+ server_defaults = [
+ {
+ 'protocol': protocol || 'http',
+ 'ip': ip || '10.10.10.47',
+ 'port': port || '32400',
+ },
+ ]
+
+
+
+ @sdk_configuration = SDKConfiguration.new(client, security, server_url, server_idx, server_defaults)
+ init_sdks
+ end
+
+ sig { params(params: T.nilable(T::Hash[Symbol, String])).void }
+ def config_server_url(params)
+ if !params.nil?
+ @server_url = Utils.template_url(@server_url, params)
+ end
+ init_sdks
+ end
+
+ sig { params(security: Shared::Security).void }
+ def config_security(security)
+ @security = security
+ @sdk_configuration.security = security
+ end
+
+ sig { void }
+ def init_sdks
+ @server = Server.new(@sdk_configuration)
+ @media = Media.new(@sdk_configuration)
+ @activities = Activities.new(@sdk_configuration)
+ @butler = Butler.new(@sdk_configuration)
+ @hubs = Hubs.new(@sdk_configuration)
+ @search = Search.new(@sdk_configuration)
+ @library = Library.new(@sdk_configuration)
+ @log = Log.new(@sdk_configuration)
+ @playlists = Playlists.new(@sdk_configuration)
+ @security = Security.new(@sdk_configuration)
+ @sessions = Sessions.new(@sdk_configuration)
+ @updater = Updater.new(@sdk_configuration)
+ @video = Video.new(@sdk_configuration)
+ end
+ end
+end
diff --git a/lib/plexapi/sdkconfiguration.rb b/lib/plexapi/sdkconfiguration.rb
new file mode 100644
index 0000000..8029367
--- /dev/null
+++ b/lib/plexapi/sdkconfiguration.rb
@@ -0,0 +1,63 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+
+
+ SERVERS = [
+ '{protocol}://{ip}:{port}', # 1 - The full address of your Plex Server
+ ].freeze
+ # Contains the list of servers available to the SDK
+ # ServerProtocol - The protocol to use when connecting to your plex server.
+ class ServerProtocol < T::Enum
+ enums do
+ HTTP = new('http')
+ HTTPS = new('https')
+ end
+ end
+
+
+ class SDKConfiguration < ::OpenApiSDK::Utils::FieldAugmented
+ extend T::Sig
+
+ field :client, T.nilable(Faraday::Connection)
+ field :security, Shared::Security
+ field :server_url, T.nilable(String)
+ field :server, T.nilable(String)
+ field :server_defaults, Array[Hash[Symbol, String]], { 'default_factory': Array}
+ field :language, String
+ field :openapi_doc_version, String
+ field :sdk_version, String
+ field :gen_version, String
+ field :user_agent, String
+
+
+ sig { params(client: Faraday::Connection, security: T.nilable(Shared::Security), server_url: T.nilable(String), server_idx: T.nilable(Integer), server_defaults: T::Array[String]).void }
+ def initialize(client, security, server_url, server_idx, server_defaults)
+ @client = client
+ @server_idx = server_idx.nil? ? 0 : server_idx
+ @server_defaults = server_defaults.nil? ? [] : server_defaults
+ @language = 'ruby'
+ @openapi_doc_version = '0.0.3'
+ @sdk_version = '0.0.1'
+ @gen_version = '2.239.4'
+ @user_agent = 'speakeasy-sdk/ruby 0.0.1 2.239.4 0.0.3 plexruby'
+ end
+
+ sig { returns([String, T::Hash[Symbol, String]]) }
+ def get_server_details
+ return [@server_url.delete_suffix('/'), {}] if !@server_url.nil?
+ @server_idx = 0 if @server_idx.nil?
+
+
+ [SERVERS[@server_idx], @server_defaults[@server_idx]]
+ end
+ end
+end
diff --git a/lib/plexapi/search.rb b/lib/plexapi/search.rb
new file mode 100644
index 0000000..dd177ad
--- /dev/null
+++ b/lib/plexapi/search.rb
@@ -0,0 +1,157 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Search
+ # API Calls that perform search operations with Plex Media Server
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { params(query: String, section_id: T.nilable(Float), limit: T.nilable(Float)).returns(Utils::FieldAugmented) }
+ def perform_search(query, section_id = nil, limit = nil)
+ # perform_search - Perform a search
+ # This endpoint performs a search across all library sections, or a single section, and returns matches as hubs, split up by type. It performs spell checking, looks for partial matches, and orders the hubs based on quality of results. In addition, based on matches, it will return other related matches (e.g. for a genre match, it may return movies in that genre, or for an actor match, movies with that actor).
+ #
+ # In the response's items, the following extra attributes are returned to further describe or disambiguate the result:
+ #
+ # - `reason`: The reason for the result, if not because of a direct search term match; can be either:
+ # - `section`: There are multiple identical results from different sections.
+ # - `originalTitle`: There was a search term match from the original title field (sometimes those can be very different or in a foreign language).
+ # - ``: If the reason for the result is due to a result in another hub, the source hub identifier is returned. For example, if the search is for "dylan" then Bob Dylan may be returned as an artist result, an a few of his albums returned as album results with a reason code of `artist` (the identifier of that particular hub). Or if the search is for "arnold", there might be movie results returned with a reason of `actor`
+ # - `reasonTitle`: The string associated with the reason code. For a section reason, it'll be the section name; For a hub identifier, it'll be a string associated with the match (e.g. `Arnold Schwarzenegger` for movies which were returned because the search was for "arnold").
+ # - `reasonID`: The ID of the item associated with the reason for the result. This might be a section ID, a tag ID, an artist ID, or a show ID.
+ #
+ # This request is intended to be very fast, and called as the user types.
+ #
+ request = Operations::PerformSearchRequest.new(
+
+ query: query,
+ section_id: section_id,
+ limit: limit
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/hubs/search"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::PerformSearchRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::PerformSearchResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::PerformSearchResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(query: String, section_id: T.nilable(Float), limit: T.nilable(Float)).returns(Utils::FieldAugmented) }
+ def perform_voice_search(query, section_id = nil, limit = nil)
+ # perform_voice_search - Perform a voice search
+ # This endpoint performs a search specifically tailored towards voice or other imprecise input which may work badly with the substring and spell-checking heuristics used by the `/hubs/search` endpoint.
+ # It uses a [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) heuristic to search titles, and as such is much slower than the other search endpoint.
+ # Whenever possible, clients should limit the search to the appropriate type.
+ # Results, as well as their containing per-type hubs, contain a `distance` attribute which can be used to judge result quality.
+ #
+ request = Operations::PerformVoiceSearchRequest.new(
+
+ query: query,
+ section_id: section_id,
+ limit: limit
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/hubs/search/voice"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::PerformVoiceSearchRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::PerformVoiceSearchResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::PerformVoiceSearchResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(query: String).returns(Utils::FieldAugmented) }
+ def get_search_results(query)
+ # get_search_results - Get Search Results
+ # This will search the database for the string provided.
+ request = Operations::GetSearchResultsRequest.new(
+
+ query: query
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/search"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetSearchResultsRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetSearchResultsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetSearchResultsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetSearchResultsSearchResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/security.rb b/lib/plexapi/security.rb
new file mode 100644
index 0000000..b1443e8
--- /dev/null
+++ b/lib/plexapi/security.rb
@@ -0,0 +1,99 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Security
+ # API Calls against Security for Plex Media Server
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { params(type: Operations::GetTransientTokenQueryParamType, scope: Operations::Scope).returns(Utils::FieldAugmented) }
+ def get_transient_token(type, scope)
+ # get_transient_token - Get a Transient Token.
+ # This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted.
+ #
+ request = Operations::GetTransientTokenRequest.new(
+
+ type: type,
+ scope: scope
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/security/token"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetTransientTokenRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetTransientTokenResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetTransientTokenResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(source: String).returns(Utils::FieldAugmented) }
+ def get_source_connection_information(source)
+ # get_source_connection_information - Get Source Connection Information
+ # If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token.
+ # Note: requires Plex Media Server >= 1.15.4.
+ #
+ request = Operations::GetSourceConnectionInformationRequest.new(
+
+ source: source
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/security/resources"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetSourceConnectionInformationRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetSourceConnectionInformationResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetSourceConnectionInformationResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/server.rb b/lib/plexapi/server.rb
new file mode 100644
index 0000000..0c840f1
--- /dev/null
+++ b/lib/plexapi/server.rb
@@ -0,0 +1,307 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Server
+ # Operations against the Plex Media Server System.
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_server_capabilities
+ # get_server_capabilities - Server Capabilities
+ # Server Capabilities
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetServerCapabilitiesResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerCapabilitiesResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerCapabilitiesServerResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_server_preferences
+ # get_server_preferences - Get Server Preferences
+ # Get Server Preferences
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/:/prefs"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetServerPreferencesResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerPreferencesResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerPreferencesServerResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_available_clients
+ # get_available_clients - Get Available Clients
+ # Get Available Clients
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/clients"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetAvailableClientsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetAvailableClientsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetAvailableClientsServerResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_devices
+ # get_devices - Get Devices
+ # Get Devices
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/devices"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetDevicesResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetDevicesResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetDevicesServerResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_server_identity
+ # get_server_identity - Get Server Identity
+ # Get Server Identity
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/identity"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetServerIdentityResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerIdentityResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerIdentityServerResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_my_plex_account
+ # get_my_plex_account - Get MyPlex Account
+ # Returns MyPlex Account Information
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/myplex/account"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetMyPlexAccountResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetMyPlexAccountResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetMyPlexAccountServerResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(request: T.nilable(Operations::GetResizedPhotoRequest)).returns(Utils::FieldAugmented) }
+ def get_resized_photo(request)
+ # get_resized_photo - Get a Resized Photo
+ # Plex's Photo transcoder is used throughout the service to serve images at specified sizes.
+ #
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/photo/:/transcode"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetResizedPhotoRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetResizedPhotoResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetResizedPhotoResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_server_list
+ # get_server_list - Get Server List
+ # Get Server List
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/servers"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetServerListResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerListResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetServerListServerResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/sessions.rb b/lib/plexapi/sessions.rb
new file mode 100644
index 0000000..6ab214d
--- /dev/null
+++ b/lib/plexapi/sessions.rb
@@ -0,0 +1,169 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Sessions
+ # API Calls that perform search operations with Plex Media Server Sessions
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_sessions
+ # get_sessions - Get Active Sessions
+ # This will retrieve the "Now Playing" Information of the PMS.
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/status/sessions"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetSessionsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetSessionsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetSessionsSessionsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_session_history
+ # get_session_history - Get Session History
+ # This will Retrieve a listing of all history views.
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/status/sessions/history/all"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetSessionHistoryResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetSessionHistoryResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetSessionHistorySessionsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_transcode_sessions
+ # get_transcode_sessions - Get Transcode Sessions
+ # Get Transcode Sessions
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/transcode/sessions"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetTranscodeSessionsResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetTranscodeSessionsResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetTranscodeSessionsSessionsResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(session_key: String).returns(Utils::FieldAugmented) }
+ def stop_transcode_session(session_key)
+ # stop_transcode_session - Stop a Transcode Session
+ # Stop a Transcode Session
+ request = Operations::StopTranscodeSessionRequest.new(
+
+ session_key: session_key
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = Utils.generate_url(
+ Operations::StopTranscodeSessionRequest,
+ base_url,
+ '/transcode/sessions/{sessionKey}',
+ request
+ )
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.delete(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::StopTranscodeSessionResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [204, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::StopTranscodeSessionResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/updater.rb b/lib/plexapi/updater.rb
new file mode 100644
index 0000000..b2d3e7d
--- /dev/null
+++ b/lib/plexapi/updater.rb
@@ -0,0 +1,134 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Updater
+ # This describes the API for searching and applying updates to the Plex Media Server.
+ # Updates to the status can be observed via the Event API.
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { returns(::OpenApiSDK::Utils::FieldAugmented) }
+ def get_update_status
+ # get_update_status - Querying status of updates
+ # Querying status of updates
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/updater/status"
+ headers = {}
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetUpdateStatusResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if r.status == 200
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetUpdateStatusResponseBody)
+ res.two_hundred_application_json_object = out
+ end
+ elsif r.status == 400
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetUpdateStatusUpdaterResponseBody)
+ res.four_hundred_and_one_application_json_object = out
+ end
+ end
+ res
+ end
+
+ sig { params(download: T.nilable(Operations::Download)).returns(Utils::FieldAugmented) }
+ def check_for_updates(download = nil)
+ # check_for_updates - Checking for updates
+ # Checking for updates
+ request = Operations::CheckForUpdatesRequest.new(
+
+ download: download
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/updater/check"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::CheckForUpdatesRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.put(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::CheckForUpdatesResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::CheckForUpdatesResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(tonight: T.nilable(Operations::Tonight), skip: T.nilable(Operations::Skip)).returns(Utils::FieldAugmented) }
+ def apply_updates(tonight = nil, skip = nil)
+ # apply_updates - Apply Updates
+ # Note that these two parameters are effectively mutually exclusive. The `tonight` parameter takes precedence and `skip` will be ignored if `tonight` is also passed
+ #
+ request = Operations::ApplyUpdatesRequest.new(
+
+ tonight: tonight,
+ skip: skip
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/updater/apply"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::ApplyUpdatesRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.put(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::ApplyUpdatesResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400, 500].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::ApplyUpdatesResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexapi/utils/metadata_fields.rb b/lib/plexapi/utils/metadata_fields.rb
new file mode 100644
index 0000000..2342c15
--- /dev/null
+++ b/lib/plexapi/utils/metadata_fields.rb
@@ -0,0 +1,154 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+module OpenApiSDK
+ module MetadataFields
+ extend T::Sig
+
+ class Field
+ attr_accessor :name, :type, :metadata
+
+ def initialize(name, type, metadata)
+ @name = name
+ @type = type
+ @metadata = metadata
+ end
+ end
+
+ module ClassMethods
+ extend T::Sig
+
+ def fields
+ @__fields__ = [] if @__fields__.nil?
+
+ @__fields__
+ end
+
+ def field(field_name, type, metadata = {})
+ attr_accessor field_name
+
+ fields << Field.new(field_name, type, metadata)
+ end
+
+ def unmarshal_single(field_type, value, decoder = nil)
+ if field_type.respond_to? :unmarshal_json
+ unmarshalled = field_type.unmarshal_json(value)
+ return unmarshalled
+ elsif field_type.to_s == 'Object'
+ # rubocop:disable Lint/SuppressedException
+ begin
+ value = JSON.parse(value)
+ rescue TypeError, JSON::ParserError
+ end
+ # rubocop:enable Lint/SuppressedException
+ return value
+ end
+ if decoder.nil?
+ value
+ else
+ decoder.call(value)
+ end
+ end
+
+ sig { params(json_obj: T.any(String, T::Hash[Symbol, String])).returns(Utils::FieldAugmented) }
+ def unmarshal_json(json_obj)
+ to_build = new
+ begin
+ d = JSON.parse(json_obj)
+ rescue TypeError, JSON::ParserError
+ d = json_obj
+ end
+ fields.each do |field|
+ field_type = field.type
+ if field.type.respond_to?(:types) && field.type.types.length == 2
+ type2 = field.type.types[1]
+ if type2.raw_type == NilClass
+ field_type = field.type.types[0]
+ field_type = field_type.raw_type if field_type.respond_to? :raw_type
+ end
+ end
+
+
+ key = "#{field.name}="
+ lookup = field.metadata.fetch(:format_json, {}).fetch(:letter_case, nil).call
+ value = d[lookup]
+ next if value.nil?
+
+ if field_type.to_s.start_with? 'T::Array'
+ inner_type = field_type.type.raw_type
+ unmarshalled_array = value.map { |f| unmarshal_single(inner_type, f) }
+ to_build.send(key, unmarshalled_array)
+ elsif field_type.to_s.start_with? 'T::Hash'
+ _, val_type = field_type.type.types
+ # rubocop:disable Style/HashTransformValues
+ unmarshalled_hash = value.map { |k, v| [k, unmarshal_single(val_type.raw_type, v)] }.to_h
+ # rubocop:enable Style/HashTransformValues
+ to_build.send(key, unmarshalled_hash)
+ else
+ decoder = field.metadata.fetch(:format_json, {}).fetch(:decoder, nil)
+ final_value = unmarshal_single(field_type, value, decoder)
+ to_build.send(key, final_value)
+ end
+ end
+ to_build
+ end
+ end
+
+ def initialize
+ instance = allocate
+ fields.each { |mod| instance.singleton_class.include(mod) }
+ instance.send(:initialize)
+ end
+
+ def self.included(base)
+ base.extend(ClassMethods)
+ end
+
+ def fields
+ self.class.fields
+ end
+
+ def field(field_name)
+ fields.each do |f|
+ return f if f.name == field_name
+ end
+ end
+
+ def marshal_single(field)
+ if field.respond_to? :marshal_json
+ field.marshal_json(encode: false)
+ else
+ Utils.val_to_string(field, primitives: false)
+ end
+ end
+
+ def marshal_json(encode: true)
+ d = {}
+ fields.sort_by(&:name).each do |field|
+ f = send(field.name)
+ next if f.nil?
+
+ format_json_meta = field.metadata[:format_json]
+ if !format_json_meta.nil? && format_json_meta.include?(:letter_case)
+ key = format_json_meta[:letter_case].call(field.name)
+ else
+ key = field.name
+ end
+ if f.is_a? Array
+ d[key] = f.map { |o| marshal_single(o) }
+ elsif f.is_a? Hash
+ d[key] = f.map { |k, v| [k, marshal_single(v)] }
+ else
+ d[key] = marshal_single(f)
+ end
+ end
+ if encode
+ JSON.dump(d)
+ else
+ d
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/utils/utils.rb b/lib/plexapi/utils/utils.rb
new file mode 100644
index 0000000..f4c5d51
--- /dev/null
+++ b/lib/plexapi/utils/utils.rb
@@ -0,0 +1,774 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'date'
+require 'sorbet-runtime'
+require 'base64'
+require_relative './metadata_fields'
+
+module OpenApiSDK
+ module Utils
+ extend T::Sig
+
+ class FieldAugmented
+ include MetadataFields
+ end
+
+ sig { params(val: Object, primitives: T::Boolean).returns(Object) }
+ def self.val_to_string(val, primitives: true)
+ if val.is_a? T::Enum
+ val.serialize
+ elsif val.is_a? DateTime
+ val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
+ elsif primitives
+ val.to_s
+ else
+ val
+ end
+ end
+
+ sig { params(headers_params: FieldAugmented).returns(T::Hash[Symbol, String]) }
+ def self.get_headers(headers_params)
+ return {} if headers_params.nil?
+
+ headers = {}
+ param_fields = headers_params.fields
+ param_fields.each do |f|
+ metadata = f.metadata[:header]
+ next if metadata.nil?
+
+ value = _serialize_header(metadata.fetch(:explode, false), headers_params.send(f.name))
+ headers[metadata.fetch(:field_name, f.name)] = value if !value.empty?
+ end
+ headers
+ end
+
+ sig { params(explode: T::Boolean, obj: Object).returns(String) }
+ def self._serialize_header(explode, obj)
+ return '' if obj.nil?
+
+ if obj.respond_to? :fields
+ items = []
+ obj_fields = obj.fields
+ obj_fields.each do |obj_field|
+ obj_param_metadata = obj_field.metadata[:header]
+ next if obj_param_metadata.nil?
+
+ obj_field_name = obj_param_metadata.fetch(:field_name, obj_field.name)
+ next if obj_field_name == ''
+
+ val = obj.send(obj_field.name)
+ next if val.nil?
+
+ if explode
+ items.append("#{obj_field_name}=#{val_to_string(val)}")
+ else
+ items.append(obj_field_name)
+ items.append(val_to_string(val))
+ end
+ end
+
+ items.join(',') if !items.empty?
+ elsif obj.is_a? Hash
+ items = []
+ obj.each do |key, value|
+ next if value.nil?
+
+ if explode
+ items.append("#{key}=#{val_to_string(value)}")
+ else
+ items.append(key)
+ items.append(val_to_string(value))
+ end
+ end
+
+ items.join(',') if !items.empty?
+ elsif obj.is_a? Array
+ items = obj.filter { |v| !v.nil? }.map { |v| val_to_string(v) }.join(',')
+ else
+ val_to_string(obj)
+ end
+ end
+
+ sig do
+ params(field_name: String, explode: T::Boolean, obj: Object, delimiter: String,
+ get_field_name_lambda: T.proc.params(obj_field: MetadataFields::Field).returns(String))
+ .returns(T::Hash[Symbol, T::Array[String]])
+ end
+ def self._populate_form(field_name, explode, obj, delimiter, &get_field_name_lambda)
+ params = {}
+
+ return params if obj.nil?
+
+ if obj.respond_to? :fields
+ items = []
+ obj_fields = obj.fields
+ obj_fields.each do |obj_field|
+ obj_field_name = get_field_name_lambda.call(obj_field)
+ next if obj_field_name == ''
+
+ val = obj.send(obj_field.name.to_sym)
+ next if val.nil?
+
+ if explode
+ params[obj_field_name] = [val_to_string(val)]
+ else
+ items.append("#{obj_field_name}#{delimiter}#{val_to_string(val)}")
+ end
+ end
+
+ params[field_name] = [items.join(delimiter)] if !items.empty?
+ elsif obj.is_a? Hash
+ items = []
+ obj.each do |key, value|
+ next if value.nil?
+
+ if explode
+ params[key] = val_to_string(value)
+ else
+ items.append("#{key}#{delimiter}#{val_to_string(value)}")
+ end
+ end
+ params[field_name] = [items.join(delimiter)] if !items.empty?
+
+ elsif obj.is_a? Array
+ items = []
+ obj.each do |value|
+ next if value.nil?
+
+ if explode
+ params[field_name] = [] if !params.key? field_name
+
+ params[field_name].append(val_to_string(value))
+ else
+ items.append(val_to_string(value))
+ end
+ end
+ params[field_name] = items.map(&:to_s).join(delimiter) if !items.empty?
+
+ else
+ params[field_name] = val_to_string(obj)
+ end
+ params
+ end
+
+ sig do
+ params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object)
+ .returns(T::Hash[Symbol, T::Array[String]])
+ end
+ def self._get_deep_object_query_params(metadata, field_name, obj)
+ params = {}
+
+ return params if obj.nil?
+
+ if obj.respond_to? :fields
+ obj_fields = obj.fields
+ obj_fields.each do |obj_field|
+ obj_param_metadata = obj_field.metadata[:query_param]
+ next if obj_param_metadata.nil?
+
+ val = obj.send(obj_field.name)
+ next if val.nil?
+
+ key = "#{metadata.fetch(:field_name, field_name)}[#{obj_param_metadata.fetch(:field_name, obj_field.name)}]"
+ if val.is_a? Array
+ val.each do |v|
+ next if v.nil?
+
+ params[key] = [] if !params.include? key
+
+ params[key] << val_to_string(v)
+ end
+ else
+ params[key] = [val_to_string(val)]
+ end
+ end
+ elsif obj.is_a? Hash
+ obj.each do |key, value|
+ next if value.nil?
+
+ param_key = "#{metadata.fetch(:field_name, field_name)}[#{key}]"
+ if value.is_a? Array
+ value.each do |val|
+ next if val.nil?
+
+ params[param_key] = [] if !params.include? param_key
+
+ params[param_key].append(val_to_string(val))
+ end
+ else
+ params[param_key] = [val_to_string(value)]
+ end
+ end
+ end
+ params
+ end
+
+ sig do
+ params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object)
+ .returns(T::Hash[Symbol, T::Array[String]])
+ end
+ def self._get_serialized_params(metadata, field_name, obj)
+ params = {}
+
+ serialization = metadata.fetch(:serialization, '')
+ params[metadata.fetch(:field_name, field_name)] = obj.marshal_json if serialization == 'json'
+
+ params
+ end
+
+ sig do
+ params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object, delimiter: String)
+ .returns(T::Hash[Symbol, T::Array[String]])
+ end
+ def self._get_delimited_query_params(metadata, field_name, obj, delimiter)
+ get_query_param_field_name = lambda do |obj_field|
+ obj_param_metadata = obj_field.metadata[:query_param]
+
+ return '' if obj_param_metadata.nil?
+
+ return obj_param_metadata.fetch(:field_name, obj_field.name)
+ end
+
+ _populate_form(field_name, metadata.fetch(:explode, true), obj, delimiter, &get_query_param_field_name)
+ end
+
+ sig { params(clazz: Class, query_params: FieldAugmented, gbls: T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]]).returns(T::Hash[Symbol, T::Array[String]]) }
+ def self.get_query_params(clazz, query_params, gbls)
+ params = {}
+ param_fields = clazz.fields
+ param_fields.each do |f|
+ request_metadata = f.metadata[:request]
+ next if !request_metadata.nil?
+
+ metadata = f.metadata[:query_param]
+ next if metadata.nil?
+
+ param_name = f.name
+ value = query_params&.send(param_name.to_sym)
+ value = _populate_from_globals(param_name, value, 'queryParam', gbls)
+
+ f_name = metadata[:field_name]
+ serialization = metadata.fetch(:serialization, '')
+ if serialization != ''
+ params = params.merge _get_serialized_params(
+ metadata, f_name, value
+ )
+ else
+ style = metadata.fetch(:style, 'form')
+ case style
+ when 'deepObject'
+ params = params.merge _get_deep_object_query_params(
+ metadata, f_name, value
+ )
+ when 'form'
+ params = params.merge _get_delimited_query_params(
+ metadata, f_name, value, ','
+ )
+ when 'pipeDelimited'
+ params = params.merge _get_delimited_query_params(
+ metadata, f_name, value, '|'
+ )
+ else
+ raise StandardError, 'not yet implemented'
+ end
+ end
+ end
+ params
+ end
+
+ sig { params(clazz: Class, server_url: String, path: String, path_params: FieldAugmented, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(String) }
+ def self.generate_url(clazz, server_url, path, path_params, gbls = nil)
+ clazz.fields.each do |f|
+ param_metadata = f.metadata[:path_param]
+ next if param_metadata.nil?
+
+ if param_metadata.fetch(:style, 'simple') == 'simple'
+ param = path_params.send(f.name) if !path_params.nil?
+ param = _populate_from_globals(f.name, param, 'pathParam', gbls)
+ end
+
+ f_name = param_metadata.fetch(:field_name, f.name)
+ serialization = param_metadata.fetch(:serialization, '')
+ if serialization != ''
+ serialized_params = _get_serialized_params(param_metadata, f_name, param)
+ serialized_params.each do |k, v|
+ path = path.sub("{#{k}}", v)
+ end
+ else
+ if param.is_a? Array
+ pp_vals = []
+ param.each do |pp_val|
+ pp_vals.append(pp_val.to_s)
+ end
+ path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
+ elsif param.is_a? Hash
+ pp_vals = []
+ param.each do |pp_key, pp_val|
+ value = val_to_string(pp_val)
+
+ if param_metadata.fetch(:explode, false)
+ pp_vals.append("#{pp_key}=#{value}")
+ else
+ pp_vals.append("#{pp_key},#{value}")
+ end
+ end
+ path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
+ elsif !(param.is_a?(String) || param.is_a?(Integer) ||
+ param.is_a?(Float) || param.is_a?(Complex) || param.is_a?(TrueClass) ||
+ param.is_a?(FalseClass))
+ pp_vals = []
+ attrs = param.fields.filter { |field| field.name && param.respond_to?(field.name.to_sym) }.map(&:name)
+ attrs.each do |attr|
+ field = param.field(attr)
+
+ param_value_metadata = field.metadata[:path_param]
+
+ next if param_value_metadata.nil?
+
+ parm_name = param_value_metadata.fetch(:field_name, f.name)
+
+ param_field_val = param.send(attr)
+
+ if param_field_val.is_a? T::Enum
+ param_field_val = param_field_val.serialize
+ elsif param_field_val.is_a? DateTime
+ param_field_val = param_field_val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
+ end
+ if !field.nil? && T::Utils::Nilable.is_union_with_nilclass(field.type) && param_field_val.nil?
+ next
+ elsif param_metadata.fetch(:explode, false)
+ pp_vals.append("#{parm_name}=#{param_field_val}")
+ else
+ pp_vals.append("#{parm_name},#{param_field_val}")
+ end
+ end
+ path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
+ else
+ path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", param.to_s)
+ end
+ end
+ end
+
+ server_url.delete_suffix('/') + path
+ end
+
+ sig { params(content_type: String, pattern: String).returns(T::Boolean) }
+ def self.match_content_type(content_type, pattern)
+ return true if content_type == pattern || pattern == '*' || pattern == '*/*'
+
+ pieces = content_type.split(';')
+ pieces.each do |piece|
+ return true if pattern == piece.strip
+ end
+
+ false
+ end
+
+ sig { params(req: Faraday::Request, security: Object).void }
+ def self.configure_request_security(req, security)
+ sec_fields = security.fields
+ sec_fields.each do |sec_field|
+ value = security.send(sec_field.name)
+ next if value.nil?
+
+ metadata = sec_field.metadata[:security]
+ next if metadata.nil?
+
+ _parse_security_option(req, value) if metadata[:option]
+
+ if metadata[:scheme]
+ # Special case for basic auth which could be a flattened struct
+ if metadata[:sub_type] == 'basic' && !value.respond_to?(:fields)
+ _parse_security_scheme(req, metadata, security)
+ else
+ _parse_security_scheme(req, metadata, value)
+ end
+ end
+ end
+ end
+
+ sig { params(req: Faraday::Request, option: Object).void }
+ def self._parse_security_option(req, option)
+ opt_fields = option.fields
+ opt_fields.each do |opt_field|
+ metadata = opt_field.metadata[:security]
+ next if metadata.nil? || !metadata.include?(:scheme)
+
+ _parse_security_scheme(req, metadata, option.send(opt_field.name))
+ end
+ end
+
+ sig { params(req: Faraday::Request, scheme_metadata: T::Hash[Symbol, String], scheme: Object).void }
+ def self._parse_security_scheme(req, scheme_metadata, scheme)
+ scheme_type = scheme_metadata[:type]
+ sub_type = scheme_metadata[:sub_type]
+
+ if scheme.respond_to? :fields
+ if scheme_type == 'http' && sub_type == 'basic'
+ _parse_basic_auth_scheme(req, scheme)
+ return
+ end
+
+ scheme_fields = scheme.fields
+ scheme_fields.each do |field|
+ metadata = field.metadata[:security]
+ next if metadata.nil? || metadata[:field_name].nil?
+
+ value = scheme.send(field.name)
+ _parse_security_scheme_value(req, scheme_metadata, metadata, value)
+ end
+ else
+ _parse_security_scheme_value(req, scheme_metadata, scheme_metadata, scheme)
+ end
+ end
+
+ sig do
+ params(req: Faraday::Request, scheme_metadata: T::Hash[Symbol, String],
+ security_metadata: T::Hash[Symbol, String], value: Object).void
+ end
+ def self._parse_security_scheme_value(req, scheme_metadata, security_metadata, value)
+ scheme_type = scheme_metadata[:type]
+ sub_type = scheme_metadata[:sub_type]
+
+ header_name = security_metadata[:field_name]
+
+ case scheme_type
+ when 'apiKey'
+ case sub_type
+ when 'header'
+ req.headers[header_name] = value
+ when 'query'
+ req.params[header_name] = value
+ when 'cookie'
+ req.cookies[header_name] = value
+ else
+ raise StandardError, 'not supported'
+ end
+ when 'openIdConnect'
+ req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
+ when 'oauth2'
+ req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
+ when 'http'
+ if sub_type == 'bearer'
+ req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
+ else
+ raise StandardError, 'not supported'
+ end
+ else
+ raise StandardError, 'not supported'
+ end
+ end
+
+ sig { params(req: Faraday::Request, scheme: FieldAugmented).void }
+ def self._parse_basic_auth_scheme(req, scheme)
+ username, password = ''
+
+ scheme_fields = scheme.fields
+ scheme_fields.each do |scheme_field|
+ metadata = scheme_field.metadata[:security]
+ next if metadata.nil? || !metadata.include?(:field_name)
+
+ field_name = metadata[:field_name]
+ value = scheme.send(scheme_field.name)
+
+ username = value if field_name == 'username'
+ password = value if field_name == 'password'
+ end
+
+ data = "#{username}:#{password}".encode
+ req.headers['Authorization'] = "Basic #{Base64.encode64(data)}"
+ end
+
+ sig { params(optional: T::Boolean).returns(T.proc.params(s: String).returns(DateTime)) }
+ def self.datetime_from_iso_format(optional)
+ lambda do |s|
+ return nil if optional && s.nil?
+
+ return DateTime.strptime(s, '%Y-%m-%dT%H:%M:%S.%NZ')
+ end
+ end
+
+ sig { params(optional: T::Boolean).returns(T.proc.params(s: String).returns(Date)) }
+ def self.date_from_iso_format(optional)
+ lambda do |s|
+ return nil if optional && s.nil?
+
+ return Date.iso8601(s)
+ end
+ end
+
+ sig do
+ params(enum_type: T.class_of(T::Enum), optional: T::Boolean)
+ .returns(T.proc.params(s: String).returns(T::Enum))
+ end
+ def self.enum_from_string(enum_type, optional)
+ lambda do |s|
+ return nil if optional && s.nil?
+
+ return enum_type.deserialize(s)
+ end
+ end
+
+ sig { params(name: String).returns(T.proc.returns(String)) }
+ def self.field_name(name)
+ proc { |_, field_name = name| field_name }
+ end
+
+ SERIALIZATION_METHOD_TO_CONTENT_TYPE = {
+ 'json': 'application/json',
+ 'form': 'application/x-www-form-urlencoded',
+ 'multipart': 'multipart/form-data',
+ 'raw': 'application/octet-stream',
+ 'string': 'text/plain'
+ }.freeze
+
+ sig do
+ params(request: Object, request_field_name: Symbol, serialization_method: Symbol)
+ .returns([String, Object, Object])
+ end
+ def self.serialize_request_body(request, request_field_name, serialization_method)
+ return ['', nil, nil] if request.nil?
+
+ return serialize_content_type(request_field_name, SERIALIZATION_METHOD_TO_CONTENT_TYPE[serialization_method], request) if !request.respond_to?(:fields) || !request.respond_to?(request_field_name)
+
+ request_val = request.send(request_field_name)
+
+ request_fields = request.fields
+ request_metadata = nil
+ request_fields.each do |f|
+ if f.name == request_field_name
+ request_metadata = f.metadata[:request]
+ break
+ end
+ end
+ raise StandardError, 'invalid request type' if request_metadata.nil?
+
+ serialize_content_type(
+ :request, request_metadata.fetch(:media_type, 'application/octet-stream'), request_val
+ )
+ end
+
+ sig do
+ params(field_name: Symbol, media_type: String, request: Object)
+ .returns([String, Object, T.nilable(T::Array[T::Array[Object]])])
+ end
+ def self.serialize_content_type(field_name, media_type, request)
+ return media_type, marshal_json_complex(request), nil if media_type.match('(application|text)\/.*?\+*json.*')
+ return serialize_multipart_form(media_type, request) if media_type.match('multipart\/.*')
+ return media_type, serialize_form_data(field_name, request), nil if media_type.match('application\/x-www-form-urlencoded.*')
+ return media_type, request, nil if request.is_a?(String) || request.is_a?(Array)
+
+ raise StandardError, "invalid request body type #{type(request)} for mediaType {metadata['media_type']}"
+ end
+
+ sig { params(field: MetadataFields::Field, data_class: FieldAugmented).returns(Object) }
+ def self.parse_field(field, data_class)
+ field_metadata = field.metadata[:metadata_string]
+ return nil if field_metadata.nil?
+
+ field_value = data_class.send(field.name)
+ return nil if field_value.nil?
+
+ field_value
+ end
+
+ sig { params(media_type: String, request: FieldAugmented).returns([String, Object, T::Array[T::Array[Object]]]) }
+ def self.serialize_multipart_form(media_type, request)
+ form = []
+ request_fields = request.fields
+ request_fields.each do |field|
+ val = request.send(field.name)
+ next if val.nil?
+
+ field_metadata = field.metadata[:multipart_form]
+ next if field_metadata.nil?
+
+ if field_metadata[:file] == true
+ file_fields = val.fields
+
+ file_name = ''
+ field_name = ''
+ content = nil
+
+ file_fields.each do |file_field|
+ file_metadata = file_field.metadata[:multipart_form]
+ next if file_metadata.nil?
+
+ if file_metadata[:content] == true
+ content = val.send(file_field.name)
+ else
+ field_name = file_metadata.fetch(:field_name, file_field.name)
+ file_name = val.send(file_field.name)
+ end
+ end
+ raise StandardError, 'invalid multipart/form-data file' if field_name == '' || file_name == '' || content == nil?
+
+ form.append([field_name, [file_name, content]])
+ elsif field_metadata[:json] == true
+ to_append = [
+ field_metadata.fetch(:field_name, field.name), [
+ nil, marshal_json_complex(val), 'application/json'
+ ]
+ ]
+ form.append(to_append)
+ else
+ field_name = field_metadata.fetch(
+ :field_name, field.name
+ )
+ if val.is_a? Array
+ val.each do |value|
+ next if value.nil?
+
+ form.append(
+ ["#{field_name}[]", [nil, val_to_string(value)]]
+ )
+ end
+ else
+ form.append([field_name, [nil, val_to_string(val)]])
+ end
+ end
+ end
+ [media_type, nil, form]
+ end
+
+ sig do
+ params(form: T::Array[T::Array[T.any(String, T::Array[T.nilable(String)])]])
+ .returns(T::Hash[Symbol, Object])
+ end
+ def self.encode_form(form)
+ payload = {}
+ form.each do |field_name, field|
+ if field.length == 2
+ if field[0].nil?
+ payload[field_name] = field[1]
+ else
+ payload[field_name] = Faraday::Multipart::FilePart.new(field[0], '', field[1])
+ end
+ elsif field.length == 3
+ payload[field_name] = Faraday::Multipart::ParamPart.new(field[1].to_json, field[2])
+ end
+ end
+ payload
+ end
+
+ sig do
+ params(field_name: Symbol, data: T.any(FieldAugmented, T::Hash[Symbol, String]))
+ .returns(T::Hash[Symbol, Object])
+ end
+ def self.serialize_form_data(field_name, data)
+ get_form_field_name = lambda do |obj_field|
+ obj_param_metadata = obj_field.metadata[:form]
+
+ return '' if obj_param_metadata.nil?
+
+ return obj_param_metadata.fetch(:field_name, obj_field.name)
+ end
+
+ form = {}
+ if data.respond_to? :fields
+ data.fields.each do |field|
+ val = data.send(field.name)
+ next if val.nil?
+
+ metadata = field.metadata[:form]
+
+ next if metadata.nil?
+
+ field_name = metadata.fetch(:field_name, field.name)
+
+ if metadata[:json]
+ form[field_name] = marshal_json_complex(val)
+ else
+ if metadata.fetch(:style, 'form') == 'form'
+ form = form.merge(
+ _populate_form(
+ field_name, metadata.fetch(:explode, true), val, ',', &get_form_field_name
+ )
+ )
+ else
+ raise StandardError, "Invalid form style for field #{field.name}"
+ end
+ end
+ end
+ elsif data.is_a? Hash
+ data.each do |key, value|
+ form[key] = [val_to_string(value)]
+ end
+ else
+ raise StandardError, "Invalid request body type for field #{field_name}"
+ end
+
+ form
+ end
+
+ sig { params(url_with_params: String, params: T::Hash[Symbol, String]).returns(String) }
+ def self.template_url(url_with_params, params)
+ params.each do |key, value|
+ if value.respond_to? :serialize
+ val_str = value.serialize
+ else
+ val_str = value
+ end
+ url_with_params = url_with_params.gsub("{#{key}}", val_str)
+ end
+
+ url_with_params
+ end
+
+ sig { params(param_name: Symbol, value: Object, param_type: String, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(Object) }
+ def self._populate_from_globals(param_name, value, param_type, gbls)
+ if value.nil? && !gbls.nil?
+ global_value = gbls.dig(:parameters, param_type.to_sym, param_name.to_sym)
+ value = global_value if !global_value.nil?
+ end
+ value
+ end
+
+ sig { params(complex: Object).returns(Object) }
+ def self.marshal_json_complex(complex)
+ if complex.is_a? Array
+ complex.map { |v| Utils.marshal_json_complex(v) }.to_json
+ elsif complex.is_a? Hash
+ complex.transform_values { |v| Utils.marshal_json_complex(v) }.to_json
+ elsif complex.respond_to? :marshal_json
+ complex.marshal_json
+ else
+ complex.to_json
+ end
+ end
+
+ sig { params(data: String, type: Object).returns(Object) }
+ def self.unmarshal_complex(data, type)
+ begin
+ value = unmarshal_json(JSON.parse(data), type)
+ rescue TypeError, JSON::ParserError
+ value = unmarshal_json(data, type)
+ end
+ value
+ end
+
+ sig { params(data: Object, type: Object).returns(Object) }
+ def self.unmarshal_json(data, type)
+ if type.respond_to? :unmarshal_json
+ type.unmarshal_json(data)
+ elsif type.to_s.start_with? 'T::Array'
+ if type.type.respond_to? :raw_type
+ data.map { |v| Utils.unmarshal_complex(v, type.type.raw_type) }
+ else
+ data.map { |v| Utils.unmarshal_complex(v, type.type) }
+ end
+ elsif type.to_s.start_with? 'T::Hash'
+ if type.type.types[1].respond_to? :raw_type
+ data.transform_values { |v| Utils.unmarshal_complex(v, type.type.types[1].raw_type) }
+ else
+ data.transform_values { |v| Utils.unmarshal_complex(v, type.type.types[1]) }
+ end
+ else
+ data
+ end
+ end
+ end
+end
diff --git a/lib/plexapi/video.rb b/lib/plexapi/video.rb
new file mode 100644
index 0000000..f4c7acc
--- /dev/null
+++ b/lib/plexapi/video.rb
@@ -0,0 +1,87 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require 'faraday'
+require 'faraday/multipart'
+require 'sorbet-runtime'
+
+module OpenApiSDK
+ extend T::Sig
+ class Video
+ # API Calls that perform operations with Plex Media Server Videos
+ #
+ extend T::Sig
+ sig { params(sdk_config: SDKConfiguration).void }
+ def initialize(sdk_config)
+ @sdk_configuration = sdk_config
+ end
+
+ sig { params(request: T.nilable(Operations::StartUniversalTranscodeRequest)).returns(Utils::FieldAugmented) }
+ def start_universal_transcode(request)
+ # start_universal_transcode - Start Universal Transcode
+ # Begin a Universal Transcode Session
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/video/:/transcode/universal/start.mpd"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::StartUniversalTranscodeRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::StartUniversalTranscodeResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::StartUniversalTranscodeResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+
+ sig { params(request: T.nilable(Operations::GetTimelineRequest)).returns(Utils::FieldAugmented) }
+ def get_timeline(request)
+ # get_timeline - Get the timeline for a media item
+ # Get the timeline for a media item
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/:/timeline"
+ headers = {}
+ query_params = Utils.get_query_params(Operations::GetTimelineRequest, request)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ r = @sdk_configuration.client.get(url) do |req|
+ req.headers = headers
+ req.params = query_params
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
+ end
+
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
+
+ res = Operations::GetTimelineResponse.new(
+ status_code: r.status, content_type: content_type, raw_response: r
+ )
+ if [200, 400].include?(r.status)
+ elsif r.status == 401
+ if Utils.match_content_type(content_type, 'application/json')
+ out = Utils.unmarshal_complex(r.env.response_body, Operations::GetTimelineResponseBody)
+ res.object = out
+ end
+ end
+ res
+ end
+ end
+end
diff --git a/lib/plexruby.rb b/lib/plexruby.rb
new file mode 100644
index 0000000..f26c2d0
--- /dev/null
+++ b/lib/plexruby.rb
@@ -0,0 +1,83 @@
+# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+require_relative 'plex-api/utils/utils'
+require_relative 'plex-api/utils/metadata_fields'
+require_relative 'plex-api/sdk'
+require_relative 'plex-api/models/shared/security'
+require_relative 'plex-api/models/operations/addplaylistcontents'
+require_relative 'plex-api/models/operations/applyupdates'
+require_relative 'plex-api/models/operations/cancelserveractivities'
+require_relative 'plex-api/models/operations/checkforupdates'
+require_relative 'plex-api/models/operations/clearplaylistcontents'
+require_relative 'plex-api/models/operations/createplaylist'
+require_relative 'plex-api/models/operations/deletelibrary'
+require_relative 'plex-api/models/operations/deleteplaylist'
+require_relative 'plex-api/models/operations/enablepapertrail'
+require_relative 'plex-api/models/operations/getavailableclients'
+require_relative 'plex-api/models/operations/getbutlertasks'
+require_relative 'plex-api/models/operations/getdevices'
+require_relative 'plex-api/models/operations/getfilehash'
+require_relative 'plex-api/models/operations/getglobalhubs'
+require_relative 'plex-api/models/operations/getlibraries'
+require_relative 'plex-api/models/operations/getlibrary'
+require_relative 'plex-api/models/operations/getlibraryhubs'
+require_relative 'plex-api/models/operations/getlibraryitems'
+require_relative 'plex-api/models/operations/getmetadata'
+require_relative 'plex-api/models/operations/getmetadatachildren'
+require_relative 'plex-api/models/operations/getmyplexaccount'
+require_relative 'plex-api/models/operations/getondeck'
+require_relative 'plex-api/models/operations/getplaylist'
+require_relative 'plex-api/models/operations/getplaylistcontents'
+require_relative 'plex-api/models/operations/getplaylists'
+require_relative 'plex-api/models/operations/getrecentlyadded'
+require_relative 'plex-api/models/operations/getresizedphoto'
+require_relative 'plex-api/models/operations/getsearchresults'
+require_relative 'plex-api/models/operations/getserveractivities'
+require_relative 'plex-api/models/operations/getservercapabilities'
+require_relative 'plex-api/models/operations/getserveridentity'
+require_relative 'plex-api/models/operations/getserverlist'
+require_relative 'plex-api/models/operations/getserverpreferences'
+require_relative 'plex-api/models/operations/getsessionhistory'
+require_relative 'plex-api/models/operations/getsessions'
+require_relative 'plex-api/models/operations/getsourceconnectioninformation'
+require_relative 'plex-api/models/operations/gettimeline'
+require_relative 'plex-api/models/operations/gettranscodesessions'
+require_relative 'plex-api/models/operations/gettransienttoken'
+require_relative 'plex-api/models/operations/getupdatestatus'
+require_relative 'plex-api/models/operations/logline'
+require_relative 'plex-api/models/operations/logmultiline'
+require_relative 'plex-api/models/operations/markplayed'
+require_relative 'plex-api/models/operations/markunplayed'
+require_relative 'plex-api/models/operations/performsearch'
+require_relative 'plex-api/models/operations/performvoicesearch'
+require_relative 'plex-api/models/operations/refreshlibrary'
+require_relative 'plex-api/models/operations/searchlibrary'
+require_relative 'plex-api/models/operations/startalltasks'
+require_relative 'plex-api/models/operations/starttask'
+require_relative 'plex-api/models/operations/startuniversaltranscode'
+require_relative 'plex-api/models/operations/stopalltasks'
+require_relative 'plex-api/models/operations/stoptask'
+require_relative 'plex-api/models/operations/stoptranscodesession'
+require_relative 'plex-api/models/operations/updateplaylist'
+require_relative 'plex-api/models/operations/updateplayprogress'
+require_relative 'plex-api/models/operations/uploadplaylist'
+require_relative 'plex-api/sdkconfiguration'
+require_relative 'plex-api/server'
+require_relative 'plex-api/media'
+require_relative 'plex-api/activities'
+require_relative 'plex-api/butler'
+require_relative 'plex-api/hubs'
+require_relative 'plex-api/search'
+require_relative 'plex-api/library'
+require_relative 'plex-api/log'
+require_relative 'plex-api/playlists'
+require_relative 'plex-api/security'
+require_relative 'plex-api/sessions'
+require_relative 'plex-api/updater'
+require_relative 'plex-api/video'
+
+module OpenApiSDK
+end
diff --git a/plexruby.gemspec b/plexruby.gemspec
new file mode 100644
index 0000000..e39a9e6
--- /dev/null
+++ b/plexruby.gemspec
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+$LOAD_PATH.push File.expand_path('lib', __dir__)
+
+Gem::Specification.new do |s|
+ s.name = 'plexruby'
+ s.version = '0.0.1'
+ s.platform = Gem::Platform::RUBY
+ s.licenses = ['Apache-2.0']
+ s.summary = ''
+ s.homepage = 'https://github.com/speakeasy-api/openapi-generation'
+ s.description = 'Ruby Client SDK Generated by Speakeasy'
+ s.authors = ['LukeHagar']
+ s.metadata = {
+ 'homepage_uri' => 'https://github.com/speakeasy-api/openapi-generation',
+ 'documentation_uri' => 'https://github.com/speakeasy-api/openapi-generation',
+ 'source_code_uri' => 'https://github.com/speakeasy-api/openapi-generation'
+ }
+
+ s.files = Dir['{lib,test}/**/*']
+ s.require_paths = ['lib']
+ s.required_ruby_version = '>= 3.0'
+
+ s.add_dependency('faraday')
+ s.add_dependency('faraday-multipart')
+ s.add_dependency('rack')
+ s.add_dependency('rake')
+ s.add_dependency('sorbet')
+
+
+ s.add_development_dependency('minitest')
+ s.add_development_dependency('rubocop')
+ s.add_development_dependency('sorbet-runtime')
+ s.add_development_dependency('tapioca')
+end
diff --git a/sorbet/config b/sorbet/config
new file mode 100644
index 0000000..983d2f1
--- /dev/null
+++ b/sorbet/config
@@ -0,0 +1,4 @@
+--dir
+.
+--ignore=tmp/
+--ignore=vendor/
diff --git a/sorbet/rbi/annotations/.gitattributes b/sorbet/rbi/annotations/.gitattributes
new file mode 100644
index 0000000..d2eacd2
--- /dev/null
+++ b/sorbet/rbi/annotations/.gitattributes
@@ -0,0 +1 @@
+**/*.rbi linguist-vendored=true
diff --git a/sorbet/rbi/annotations/faraday.rbi b/sorbet/rbi/annotations/faraday.rbi
new file mode 100644
index 0000000..c992c1a
--- /dev/null
+++ b/sorbet/rbi/annotations/faraday.rbi
@@ -0,0 +1,17 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This file was pulled from a central RBI files repository.
+# Please run `bin/tapioca annotations` to update it.
+
+module Faraday
+ class << self
+ sig { params(url: T.untyped, options: T::Hash[Symbol, T.untyped], block: T.nilable(T.proc.params(connection: Faraday::Connection).void)).returns(Faraday::Connection) }
+ def new(url = nil, options = {}, &block); end
+ end
+end
+
+class Faraday::Response
+ sig { returns(T::Boolean) }
+ def success?; end
+end
diff --git a/sorbet/rbi/annotations/rainbow.rbi b/sorbet/rbi/annotations/rainbow.rbi
new file mode 100644
index 0000000..227f879
--- /dev/null
+++ b/sorbet/rbi/annotations/rainbow.rbi
@@ -0,0 +1,269 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This file was pulled from a central RBI files repository.
+# Please run `bin/tapioca annotations` to update it.
+
+module Rainbow
+ # @shim: https://github.com/sickill/rainbow/blob/master/lib/rainbow.rb#L10-L12
+ sig { returns(T::Boolean) }
+ attr_accessor :enabled
+
+ class Color
+ sig { returns(Symbol) }
+ attr_reader :ground
+
+ sig { params(ground: Symbol, values: T.any([Integer], [Integer, Integer, Integer])).returns(Color) }
+ def self.build(ground, values); end
+
+ sig { params(hex: String).returns([Integer, Integer, Integer]) }
+ def self.parse_hex_color(hex); end
+
+ class Indexed < Rainbow::Color
+ sig { returns(Integer) }
+ attr_reader :num
+
+ sig { params(ground: Symbol, num: Integer).void }
+ def initialize(ground, num); end
+
+ sig { returns(T::Array[Integer]) }
+ def codes; end
+ end
+
+ class Named < Rainbow::Color::Indexed
+ NAMES = T.let(nil, T::Hash[Symbol, Integer])
+
+ sig { params(ground: Symbol, name: Symbol).void }
+ def initialize(ground, name); end
+
+ sig { returns(T::Array[Symbol]) }
+ def self.color_names; end
+
+ sig { returns(String) }
+ def self.valid_names; end
+ end
+
+ class RGB < Rainbow::Color::Indexed
+ sig { returns(Integer) }
+ attr_reader :r, :g, :b
+
+ sig { params(ground: Symbol, values: Integer).void }
+ def initialize(ground, *values); end
+
+ sig { returns(T::Array[Integer]) }
+ def codes; end
+
+ sig { params(value: Numeric).returns(Integer) }
+ def self.to_ansi_domain(value); end
+ end
+
+ class X11Named < Rainbow::Color::RGB
+ include Rainbow::X11ColorNames
+
+ sig { returns(T::Array[Symbol]) }
+ def self.color_names; end
+
+ sig { returns(String) }
+ def self.valid_names; end
+
+ sig { params(ground: Symbol, name: Symbol).void }
+ def initialize(ground, name); end
+ end
+ end
+
+ sig { returns(Wrapper) }
+ def self.global; end
+
+ sig { returns(T::Boolean) }
+ def self.enabled; end
+
+ sig { params(value: T::Boolean).returns(T::Boolean) }
+ def self.enabled=(value); end
+
+ sig { params(string: String).returns(String) }
+ def self.uncolor(string); end
+
+ class NullPresenter < String
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
+ def color(*values); end
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
+ def foreground(*values); end
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
+ def fg(*values); end
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
+ def background(*values); end
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
+ def bg(*values); end
+
+ sig { returns(NullPresenter) }
+ def reset; end
+
+ sig { returns(NullPresenter) }
+ def bright; end
+
+ sig { returns(NullPresenter) }
+ def faint; end
+
+ sig { returns(NullPresenter) }
+ def italic; end
+
+ sig { returns(NullPresenter) }
+ def underline; end
+
+ sig { returns(NullPresenter) }
+ def blink; end
+
+ sig { returns(NullPresenter) }
+ def inverse; end
+
+ sig { returns(NullPresenter) }
+ def hide; end
+
+ sig { returns(NullPresenter) }
+ def cross_out; end
+
+ sig { returns(NullPresenter) }
+ def black; end
+
+ sig { returns(NullPresenter) }
+ def red; end
+
+ sig { returns(NullPresenter) }
+ def green; end
+
+ sig { returns(NullPresenter) }
+ def yellow; end
+
+ sig { returns(NullPresenter) }
+ def blue; end
+
+ sig { returns(NullPresenter) }
+ def magenta; end
+
+ sig { returns(NullPresenter) }
+ def cyan; end
+
+ sig { returns(NullPresenter) }
+ def white; end
+
+ sig { returns(NullPresenter) }
+ def bold; end
+
+ sig { returns(NullPresenter) }
+ def dark; end
+
+ sig { returns(NullPresenter) }
+ def strike; end
+ end
+
+ class Presenter < String
+ TERM_EFFECTS = T.let(nil, T::Hash[Symbol, Integer])
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
+ def color(*values); end
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
+ def foreground(*values); end
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
+ def fg(*values); end
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
+ def background(*values); end
+
+ sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
+ def bg(*values); end
+
+ sig { returns(Presenter) }
+ def reset; end
+
+ sig { returns(Presenter) }
+ def bright; end
+
+ sig { returns(Presenter) }
+ def faint; end
+
+ sig { returns(Presenter) }
+ def italic; end
+
+ sig { returns(Presenter) }
+ def underline; end
+
+ sig { returns(Presenter) }
+ def blink; end
+
+ sig { returns(Presenter) }
+ def inverse; end
+
+ sig { returns(Presenter) }
+ def hide; end
+
+ sig { returns(Presenter) }
+ def cross_out; end
+
+ sig { returns(Presenter) }
+ def black; end
+
+ sig { returns(Presenter) }
+ def red; end
+
+ sig { returns(Presenter) }
+ def green; end
+
+ sig { returns(Presenter) }
+ def yellow; end
+
+ sig { returns(Presenter) }
+ def blue; end
+
+ sig { returns(Presenter) }
+ def magenta; end
+
+ sig { returns(Presenter) }
+ def cyan; end
+
+ sig { returns(Presenter) }
+ def white; end
+
+ sig { returns(Presenter) }
+ def bold; end
+
+ sig { returns(Presenter) }
+ def dark; end
+
+ sig { returns(Presenter) }
+ def strike; end
+ end
+
+ class StringUtils
+ sig { params(string: String, codes: T::Array[Integer]).returns(String) }
+ def self.wrap_with_sgr(string, codes); end
+
+ sig { params(string: String).returns(String) }
+ def self.uncolor(string); end
+ end
+
+ VERSION = T.let(nil, String)
+
+ class Wrapper
+ sig { returns(T::Boolean) }
+ attr_accessor :enabled
+
+ sig { params(enabled: T::Boolean).void }
+ def initialize(enabled = true); end
+
+ sig { params(string: String).returns(T.any(Rainbow::Presenter, Rainbow::NullPresenter)) }
+ def wrap(string); end
+ end
+
+ module X11ColorNames
+ NAMES = T.let(nil, T::Hash[Symbol, [Integer, Integer, Integer]])
+ end
+end
+
+sig { params(string: String).returns(Rainbow::Presenter) }
+def Rainbow(string); end
diff --git a/sorbet/rbi/gems/.gitattributes b/sorbet/rbi/gems/.gitattributes
new file mode 100644
index 0000000..d9bb82a
--- /dev/null
+++ b/sorbet/rbi/gems/.gitattributes
@@ -0,0 +1 @@
+**/*.rbi linguist-generated=true
diff --git a/sorbet/rbi/gems/ast@2.4.2.rbi b/sorbet/rbi/gems/ast@2.4.2.rbi
new file mode 100644
index 0000000..3fc4495
--- /dev/null
+++ b/sorbet/rbi/gems/ast@2.4.2.rbi
@@ -0,0 +1,584 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `ast` gem.
+# Please instead update this file by running `bin/tapioca gem ast`.
+
+# {AST} is a library for manipulating abstract syntax trees.
+#
+# It embraces immutability; each AST node is inherently frozen at
+# creation, and updating a child node requires recreating that node
+# and its every parent, recursively.
+# This is a design choice. It does create some pressure on
+# garbage collector, but completely eliminates all concurrency
+# and aliasing problems.
+#
+# See also {AST::Node}, {AST::Processor::Mixin} and {AST::Sexp} for
+# additional recommendations and design patterns.
+#
+# source://ast//lib/ast.rb#13
+module AST; end
+
+# Node is an immutable class, instances of which represent abstract
+# syntax tree nodes. It combines semantic information (i.e. anything
+# that affects the algorithmic properties of a program) with
+# meta-information (line numbers or compiler intermediates).
+#
+# Notes on inheritance
+# ====================
+#
+# The distinction between semantics and metadata is important. Complete
+# semantic information should be contained within just the {#type} and
+# {#children} of a Node instance; in other words, if an AST was to be
+# stripped of all meta-information, it should remain a valid AST which
+# could be successfully processed to yield a result with the same
+# algorithmic properties.
+#
+# Thus, Node should never be inherited in order to define methods which
+# affect or return semantic information, such as getters for `class_name`,
+# `superclass` and `body` in the case of a hypothetical `ClassNode`. The
+# correct solution is to use a generic Node with a {#type} of `:class`
+# and three children. See also {Processor} for tips on working with such
+# ASTs.
+#
+# On the other hand, Node can and should be inherited to define
+# application-specific metadata (see also {#initialize}) or customize the
+# printing format. It is expected that an application would have one or two
+# such classes and use them across the entire codebase.
+#
+# The rationale for this pattern is extensibility and maintainability.
+# Unlike static ones, dynamic languages do not require the presence of a
+# predefined, rigid structure, nor does it improve dispatch efficiency,
+# and while such a structure can certainly be defined, it does not add
+# any value but incurs a maintaining cost.
+# For example, extending the AST even with a transformation-local
+# temporary node type requires making globally visible changes to
+# the codebase.
+#
+# source://ast//lib/ast/node.rb#40
+class AST::Node
+ # Constructs a new instance of Node.
+ #
+ # The arguments `type` and `children` are converted with `to_sym` and
+ # `to_a` respectively. Additionally, the result of converting `children`
+ # is frozen. While mutating the arguments is generally considered harmful,
+ # the most common case is to pass an array literal to the constructor. If
+ # your code does not expect the argument to be frozen, use `#dup`.
+ #
+ # The `properties` hash is passed to {#assign_properties}.
+ #
+ # @return [Node] a new instance of Node
+ #
+ # source://ast//lib/ast/node.rb#72
+ def initialize(type, children = T.unsafe(nil), properties = T.unsafe(nil)); end
+
+ # Concatenates `array` with `children` and returns the resulting node.
+ #
+ # @return [AST::Node]
+ #
+ # source://ast//lib/ast/node.rb#168
+ def +(array); end
+
+ # Appends `element` to `children` and returns the resulting node.
+ #
+ # @return [AST::Node]
+ #
+ # source://ast//lib/ast/node.rb#177
+ def <<(element); end
+
+ # Compares `self` to `other`, possibly converting with `to_ast`. Only
+ # `type` and `children` are compared; metadata is deliberately ignored.
+ #
+ # @return [Boolean]
+ #
+ # source://ast//lib/ast/node.rb#153
+ def ==(other); end
+
+ # Appends `element` to `children` and returns the resulting node.
+ #
+ # @return [AST::Node]
+ #
+ # source://ast//lib/ast/node.rb#177
+ def append(element); end
+
+ # Returns the children of this node.
+ # The returned value is frozen.
+ # The to_a alias is useful for decomposing nodes concisely.
+ # For example:
+ #
+ # node = s(:gasgn, :$foo, s(:integer, 1))
+ # var_name, value = *node
+ # p var_name # => :$foo
+ # p value # => (integer 1)
+ #
+ # @return [Array]
+ #
+ # source://ast//lib/ast/node.rb#56
+ def children; end
+
+ # Nodes are already frozen, so there is no harm in returning the
+ # current node as opposed to initializing from scratch and freezing
+ # another one.
+ #
+ # @return self
+ #
+ # source://ast//lib/ast/node.rb#115
+ def clone; end
+
+ # Concatenates `array` with `children` and returns the resulting node.
+ #
+ # @return [AST::Node]
+ #
+ # source://ast//lib/ast/node.rb#168
+ def concat(array); end
+
+ # Enables matching for Node, where type is the first element
+ # and the children are remaining items.
+ #
+ # @return [Array]
+ #
+ # source://ast//lib/ast/node.rb#253
+ def deconstruct; end
+
+ # Nodes are already frozen, so there is no harm in returning the
+ # current node as opposed to initializing from scratch and freezing
+ # another one.
+ #
+ # @return self
+ #
+ # source://ast//lib/ast/node.rb#115
+ def dup; end
+
+ # Test if other object is equal to
+ #
+ # @param other [Object]
+ # @return [Boolean]
+ #
+ # source://ast//lib/ast/node.rb#85
+ def eql?(other); end
+
+ # Returns the precomputed hash value for this node
+ #
+ # @return [Fixnum]
+ #
+ # source://ast//lib/ast/node.rb#61
+ def hash; end
+
+ # Converts `self` to a s-expression ruby string.
+ # The code return will recreate the node, using the sexp module s()
+ #
+ # @param indent [Integer] Base indentation level.
+ # @return [String]
+ #
+ # source://ast//lib/ast/node.rb#211
+ def inspect(indent = T.unsafe(nil)); end
+
+ # Returns the children of this node.
+ # The returned value is frozen.
+ # The to_a alias is useful for decomposing nodes concisely.
+ # For example:
+ #
+ # node = s(:gasgn, :$foo, s(:integer, 1))
+ # var_name, value = *node
+ # p var_name # => :$foo
+ # p value # => (integer 1)
+ #
+ # @return [Array]
+ #
+ # source://ast//lib/ast/node.rb#56
+ def to_a; end
+
+ # @return [AST::Node] self
+ #
+ # source://ast//lib/ast/node.rb#229
+ def to_ast; end
+
+ # Converts `self` to a pretty-printed s-expression.
+ #
+ # @param indent [Integer] Base indentation level.
+ # @return [String]
+ #
+ # source://ast//lib/ast/node.rb#187
+ def to_s(indent = T.unsafe(nil)); end
+
+ # Converts `self` to a pretty-printed s-expression.
+ #
+ # @param indent [Integer] Base indentation level.
+ # @return [String]
+ #
+ # source://ast//lib/ast/node.rb#187
+ def to_sexp(indent = T.unsafe(nil)); end
+
+ # Converts `self` to an Array where the first element is the type as a Symbol,
+ # and subsequent elements are the same representation of its children.
+ #
+ # @return [Array]
+ #
+ # source://ast//lib/ast/node.rb#237
+ def to_sexp_array; end
+
+ # Returns the type of this node.
+ #
+ # @return [Symbol]
+ #
+ # source://ast//lib/ast/node.rb#43
+ def type; end
+
+ # Returns a new instance of Node where non-nil arguments replace the
+ # corresponding fields of `self`.
+ #
+ # For example, `Node.new(:foo, [ 1, 2 ]).updated(:bar)` would yield
+ # `(bar 1 2)`, and `Node.new(:foo, [ 1, 2 ]).updated(nil, [])` would
+ # yield `(foo)`.
+ #
+ # If the resulting node would be identical to `self`, does nothing.
+ #
+ # @param type [Symbol, nil]
+ # @param children [Array, nil]
+ # @param properties [Hash, nil]
+ # @return [AST::Node]
+ #
+ # source://ast//lib/ast/node.rb#133
+ def updated(type = T.unsafe(nil), children = T.unsafe(nil), properties = T.unsafe(nil)); end
+
+ protected
+
+ # By default, each entry in the `properties` hash is assigned to
+ # an instance variable in this instance of Node. A subclass should define
+ # attribute readers for such variables. The values passed in the hash
+ # are not frozen or whitelisted; such behavior can also be implemented
+ # by subclassing Node and overriding this method.
+ #
+ # @return [nil]
+ #
+ # source://ast//lib/ast/node.rb#98
+ def assign_properties(properties); end
+
+ # Returns `@type` with all underscores replaced by dashes. This allows
+ # to write symbol literals without quotes in Ruby sources and yet have
+ # nicely looking s-expressions.
+ #
+ # @return [String]
+ #
+ # source://ast//lib/ast/node.rb#264
+ def fancy_type; end
+
+ private
+
+ def original_dup; end
+end
+
+# This class includes {AST::Processor::Mixin}; however, it is
+# deprecated, since the module defines all of the behaviors that
+# the processor includes. Any new libraries should use
+# {AST::Processor::Mixin} instead of subclassing this.
+#
+# @deprecated Use {AST::Processor::Mixin} instead.
+#
+# source://ast//lib/ast/processor.rb#8
+class AST::Processor
+ include ::AST::Processor::Mixin
+end
+
+# The processor module is a module which helps transforming one
+# AST into another. In a nutshell, the {#process} method accepts
+# a {Node} and dispatches it to a handler corresponding to its
+# type, and returns a (possibly) updated variant of the node.
+#
+# The processor module has a set of associated design patterns.
+# They are best explained with a concrete example. Let's define a
+# simple arithmetic language and an AST format for it:
+#
+# Terminals (AST nodes which do not have other AST nodes inside):
+#
+# * `(integer )`,
+#
+# Nonterminals (AST nodes with other nodes as children):
+#
+# * `(add )`,
+# * `(multiply )`,
+# * `(divide )`,
+# * `(negate )`,
+# * `(store )`: stores value of ``
+# into a variable named ``,
+# * `(load )`: loads value of a variable named
+# ``,
+# * `(each ...)`: computes each of the ``s and
+# prints the result.
+#
+# All AST nodes have the same Ruby class, and therefore they don't
+# know how to traverse themselves. (A solution which dynamically
+# checks the type of children is possible, but is slow and
+# error-prone.) So, a class including the module which knows how
+# to traverse the entire tree should be defined. Such classes
+# have a handler for each nonterminal node which recursively
+# processes children nodes:
+#
+# require 'ast'
+#
+# class ArithmeticsProcessor
+# include AST::Processor::Mixin
+# # This method traverses any binary operators such as (add)
+# # or (multiply).
+# def process_binary_op(node)
+# # Children aren't decomposed automatically; it is
+# # suggested to use Ruby multiple assignment expansion,
+# # as it is very convenient here.
+# left_expr, right_expr = *node
+#
+# # AST::Node#updated won't change node type if nil is
+# # passed as a first argument, which allows to reuse the
+# # same handler for multiple node types using `alias'
+# # (below).
+# node.updated(nil, [
+# process(left_expr),
+# process(right_expr)
+# ])
+# end
+# alias_method :on_add, :process_binary_op
+# alias_method :on_multiply, :process_binary_op
+# alias_method :on_divide, :process_binary_op
+#
+# def on_negate(node)
+# # It is also possible to use #process_all for more
+# # compact code if every child is a Node.
+# node.updated(nil, process_all(node))
+# end
+#
+# def on_store(node)
+# expr, variable_name = *node
+#
+# # Note that variable_name is not a Node and thus isn't
+# # passed to #process.
+# node.updated(nil, [
+# process(expr),
+# variable_name
+# ])
+# end
+#
+# # (load) is effectively a terminal node, and so it does
+# # not need an explicit handler, as the following is the
+# # default behavior. Essentially, for any nodes that don't
+# # have a defined handler, the node remains unchanged.
+# def on_load(node)
+# nil
+# end
+#
+# def on_each(node)
+# node.updated(nil, process_all(node))
+# end
+# end
+#
+# Let's test our ArithmeticsProcessor:
+#
+# include AST::Sexp
+# expr = s(:add, s(:integer, 2), s(:integer, 2))
+#
+# p ArithmeticsProcessor.new.process(expr) == expr # => true
+#
+# As expected, it does not change anything at all. This isn't
+# actually very useful, so let's now define a Calculator, which
+# will compute the expression values:
+#
+# # This Processor folds nonterminal nodes and returns an
+# # (integer) terminal node.
+# class ArithmeticsCalculator < ArithmeticsProcessor
+# def compute_op(node)
+# # First, node children are processed and then unpacked
+# # to local variables.
+# nodes = process_all(node)
+#
+# if nodes.all? { |node| node.type == :integer }
+# # If each of those nodes represents a literal, we can
+# # fold this node!
+# values = nodes.map { |node| node.children.first }
+# AST::Node.new(:integer, [
+# yield(values)
+# ])
+# else
+# # Otherwise, we can just leave the current node in the
+# # tree and only update it with processed children
+# # nodes, which can be partially folded.
+# node.updated(nil, nodes)
+# end
+# end
+#
+# def on_add(node)
+# compute_op(node) { |left, right| left + right }
+# end
+#
+# def on_multiply(node)
+# compute_op(node) { |left, right| left * right }
+# end
+# end
+#
+# Let's check:
+#
+# p ArithmeticsCalculator.new.process(expr) # => (integer 4)
+#
+# Excellent, the calculator works! Now, a careful reader could
+# notice that the ArithmeticsCalculator does not know how to
+# divide numbers. What if we pass an expression with division to
+# it?
+#
+# expr_with_division = \
+# s(:add,
+# s(:integer, 1),
+# s(:divide,
+# s(:add, s(:integer, 8), s(:integer, 4)),
+# s(:integer, 3))) # 1 + (8 + 4) / 3
+#
+# folded_expr_with_division = ArithmeticsCalculator.new.process(expr_with_division)
+# p folded_expr_with_division
+# # => (add
+# # (integer 1)
+# # (divide
+# # (integer 12)
+# # (integer 3)))
+#
+# As you can see, the expression was folded _partially_: the inner
+# `(add)` node which could be computed was folded to
+# `(integer 12)`, the `(divide)` node is left as-is because there
+# is no computing handler for it, and the root `(add)` node was
+# also left as it is because some of its children were not
+# literals.
+#
+# Note that this partial folding is only possible because the
+# _data_ format, i.e. the format in which the computed values of
+# the nodes are represented, is the same as the AST itself.
+#
+# Let's extend our ArithmeticsCalculator class further.
+#
+# class ArithmeticsCalculator
+# def on_divide(node)
+# compute_op(node) { |left, right| left / right }
+# end
+#
+# def on_negate(node)
+# # Note how #compute_op works regardless of the operator
+# # arity.
+# compute_op(node) { |value| -value }
+# end
+# end
+#
+# Now, let's apply our renewed ArithmeticsCalculator to a partial
+# result of previous evaluation:
+#
+# p ArithmeticsCalculator.new.process(expr_with_division) # => (integer 5)
+#
+# Five! Excellent. This is also pretty much how CRuby 1.8 executed
+# its programs.
+#
+# Now, let's do some automated bug searching. Division by zero is
+# an error, right? So if we could detect that someone has divided
+# by zero before the program is even run, that could save some
+# debugging time.
+#
+# class DivisionByZeroVerifier < ArithmeticsProcessor
+# class VerificationFailure < Exception; end
+#
+# def on_divide(node)
+# # You need to process the children to handle nested divisions
+# # such as:
+# # (divide
+# # (integer 1)
+# # (divide (integer 1) (integer 0))
+# left, right = process_all(node)
+#
+# if right.type == :integer &&
+# right.children.first == 0
+# raise VerificationFailure, "Ouch! This code divides by zero."
+# end
+# end
+#
+# def divides_by_zero?(ast)
+# process(ast)
+# false
+# rescue VerificationFailure
+# true
+# end
+# end
+#
+# nice_expr = \
+# s(:divide,
+# s(:add, s(:integer, 10), s(:integer, 2)),
+# s(:integer, 4))
+#
+# p DivisionByZeroVerifier.new.divides_by_zero?(nice_expr)
+# # => false. Good.
+#
+# bad_expr = \
+# s(:add, s(:integer, 10),
+# s(:divide, s(:integer, 1), s(:integer, 0)))
+#
+# p DivisionByZeroVerifier.new.divides_by_zero?(bad_expr)
+# # => true. WHOOPS. DO NOT RUN THIS.
+#
+# Of course, this won't detect more complex cases... unless you
+# use some partial evaluation before! The possibilites are
+# endless. Have fun.
+#
+# source://ast//lib/ast/processor/mixin.rb#240
+module AST::Processor::Mixin
+ # Default handler. Does nothing.
+ #
+ # @param node [AST::Node]
+ # @return [AST::Node, nil]
+ #
+ # source://ast//lib/ast/processor/mixin.rb#284
+ def handler_missing(node); end
+
+ # Dispatches `node`. If a node has type `:foo`, then a handler
+ # named `on_foo` is invoked with one argument, the `node`; if
+ # there isn't such a handler, {#handler_missing} is invoked
+ # with the same argument.
+ #
+ # If the handler returns `nil`, `node` is returned; otherwise,
+ # the return value of the handler is passed along.
+ #
+ # @param node [AST::Node, nil]
+ # @return [AST::Node, nil]
+ #
+ # source://ast//lib/ast/processor/mixin.rb#251
+ def process(node); end
+
+ # {#process}es each node from `nodes` and returns an array of
+ # results.
+ #
+ # @param nodes [Array]
+ # @return [Array]
+ #
+ # source://ast//lib/ast/processor/mixin.rb#274
+ def process_all(nodes); end
+end
+
+# This simple module is very useful in the cases where one needs
+# to define deeply nested ASTs from Ruby code, for example, in
+# tests. It should be used like this:
+#
+# describe YourLanguage::AST do
+# include Sexp
+#
+# it "should correctly parse expressions" do
+# YourLanguage.parse("1 + 2 * 3").should ==
+# s(:add,
+# s(:integer, 1),
+# s(:multiply,
+# s(:integer, 2),
+# s(:integer, 3)))
+# end
+# end
+#
+# This way the amount of boilerplate code is greatly reduced.
+#
+# source://ast//lib/ast/sexp.rb#20
+module AST::Sexp
+ # Creates a {Node} with type `type` and children `children`.
+ # Note that the resulting node is of the type AST::Node and not a
+ # subclass.
+ # This would not pose a problem with comparisons, as {Node#==}
+ # ignores metadata.
+ #
+ # source://ast//lib/ast/sexp.rb#26
+ def s(type, *children); end
+end
diff --git a/sorbet/rbi/gems/base64@0.1.1.rbi b/sorbet/rbi/gems/base64@0.1.1.rbi
new file mode 100644
index 0000000..58bcecc
--- /dev/null
+++ b/sorbet/rbi/gems/base64@0.1.1.rbi
@@ -0,0 +1,172 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `base64` gem.
+# Please instead update this file by running `bin/tapioca gem base64`.
+
+# The Base64 module provides for the encoding (#encode64, #strict_encode64,
+# #urlsafe_encode64) and decoding (#decode64, #strict_decode64,
+# #urlsafe_decode64) of binary data using a Base64 representation.
+#
+# == Example
+#
+# A simple encoding and decoding.
+#
+# require "base64"
+#
+# enc = Base64.encode64('Send reinforcements')
+# # -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
+# plain = Base64.decode64(enc)
+# # -> "Send reinforcements"
+#
+# The purpose of using base64 to encode data is that it translates any
+# binary data into purely printable characters.
+module Base64
+ private
+
+ # Returns the Base64-decoded version of +str+.
+ # This method complies with RFC 2045.
+ # Characters outside the base alphabet are ignored.
+ #
+ # require 'base64'
+ # str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
+ # 'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
+ # 'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
+ # puts Base64.decode64(str)
+ #
+ # Generates:
+ #
+ # This is line one
+ # This is line two
+ # This is line three
+ # And so on...
+ #
+ # source://base64//base64.rb#58
+ def decode64(str); end
+
+ # Returns the Base64-encoded version of +bin+.
+ # This method complies with RFC 2045.
+ # Line feeds are added to every 60 encoded characters.
+ #
+ # require 'base64'
+ # Base64.encode64("Now is the time for all good coders\nto learn Ruby")
+ #
+ # Generates:
+ #
+ # Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
+ # UnVieQ==
+ #
+ # source://base64//base64.rb#38
+ def encode64(bin); end
+
+ # Returns the Base64-decoded version of +str+.
+ # This method complies with RFC 4648.
+ # ArgumentError is raised if +str+ is incorrectly padded or contains
+ # non-alphabet characters. Note that CR or LF are also rejected.
+ #
+ # source://base64//base64.rb#73
+ def strict_decode64(str); end
+
+ # Returns the Base64-encoded version of +bin+.
+ # This method complies with RFC 4648.
+ # No line feeds are added.
+ #
+ # source://base64//base64.rb#65
+ def strict_encode64(bin); end
+
+ # Returns the Base64-decoded version of +str+.
+ # This method complies with ``Base 64 Encoding with URL and Filename Safe
+ # Alphabet'' in RFC 4648.
+ # The alphabet uses '-' instead of '+' and '_' instead of '/'.
+ #
+ # The padding character is optional.
+ # This method accepts both correctly-padded and unpadded input.
+ # Note that it still rejects incorrectly-padded input.
+ #
+ # source://base64//base64.rb#98
+ def urlsafe_decode64(str); end
+
+ # Returns the Base64-encoded version of +bin+.
+ # This method complies with ``Base 64 Encoding with URL and Filename Safe
+ # Alphabet'' in RFC 4648.
+ # The alphabet uses '-' instead of '+' and '_' instead of '/'.
+ # Note that the result can still contain '='.
+ # You can remove the padding by setting +padding+ as false.
+ #
+ # source://base64//base64.rb#83
+ def urlsafe_encode64(bin, padding: T.unsafe(nil)); end
+
+ class << self
+ # Returns the Base64-decoded version of +str+.
+ # This method complies with RFC 2045.
+ # Characters outside the base alphabet are ignored.
+ #
+ # require 'base64'
+ # str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
+ # 'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
+ # 'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
+ # puts Base64.decode64(str)
+ #
+ # Generates:
+ #
+ # This is line one
+ # This is line two
+ # This is line three
+ # And so on...
+ #
+ # source://base64//base64.rb#58
+ def decode64(str); end
+
+ # Returns the Base64-encoded version of +bin+.
+ # This method complies with RFC 2045.
+ # Line feeds are added to every 60 encoded characters.
+ #
+ # require 'base64'
+ # Base64.encode64("Now is the time for all good coders\nto learn Ruby")
+ #
+ # Generates:
+ #
+ # Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
+ # UnVieQ==
+ #
+ # source://base64//base64.rb#38
+ def encode64(bin); end
+
+ # Returns the Base64-decoded version of +str+.
+ # This method complies with RFC 4648.
+ # ArgumentError is raised if +str+ is incorrectly padded or contains
+ # non-alphabet characters. Note that CR or LF are also rejected.
+ #
+ # source://base64//base64.rb#73
+ def strict_decode64(str); end
+
+ # Returns the Base64-encoded version of +bin+.
+ # This method complies with RFC 4648.
+ # No line feeds are added.
+ #
+ # source://base64//base64.rb#65
+ def strict_encode64(bin); end
+
+ # Returns the Base64-decoded version of +str+.
+ # This method complies with ``Base 64 Encoding with URL and Filename Safe
+ # Alphabet'' in RFC 4648.
+ # The alphabet uses '-' instead of '+' and '_' instead of '/'.
+ #
+ # The padding character is optional.
+ # This method accepts both correctly-padded and unpadded input.
+ # Note that it still rejects incorrectly-padded input.
+ #
+ # source://base64//base64.rb#98
+ def urlsafe_decode64(str); end
+
+ # Returns the Base64-encoded version of +bin+.
+ # This method complies with ``Base 64 Encoding with URL and Filename Safe
+ # Alphabet'' in RFC 4648.
+ # The alphabet uses '-' instead of '+' and '_' instead of '/'.
+ # Note that the result can still contain '='.
+ # You can remove the padding by setting +padding+ as false.
+ #
+ # source://base64//base64.rb#83
+ def urlsafe_encode64(bin, padding: T.unsafe(nil)); end
+ end
+end
diff --git a/sorbet/rbi/gems/erubi@1.12.0.rbi b/sorbet/rbi/gems/erubi@1.12.0.rbi
new file mode 100644
index 0000000..c52738f
--- /dev/null
+++ b/sorbet/rbi/gems/erubi@1.12.0.rbi
@@ -0,0 +1,145 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `erubi` gem.
+# Please instead update this file by running `bin/tapioca gem erubi`.
+
+# source://erubi//lib/erubi.rb#3
+module Erubi
+ class << self
+ def h(_arg0); end
+ end
+end
+
+# source://erubi//lib/erubi.rb#54
+class Erubi::Engine
+ # Initialize a new Erubi::Engine. Options:
+ # +:bufval+ :: The value to use for the buffer variable, as a string (default '::String.new').
+ # +:bufvar+ :: The variable name to use for the buffer variable, as a string.
+ # +:chain_appends+ :: Whether to chain << calls to the buffer variable. Offers better
+ # performance, but can cause issues when the buffer variable is reassigned during
+ # template rendering (default +false+).
+ # +:ensure+ :: Wrap the template in a begin/ensure block restoring the previous value of bufvar.
+ # +:escapefunc+ :: The function to use for escaping, as a string (default: '::Erubi.h').
+ # +:escape+ :: Whether to make <%= escape by default, and <%== not escape by default.
+ # +:escape_html+ :: Same as +:escape+, with lower priority.
+ # +:filename+ :: The filename for the template.
+ # the resulting source code. Note this may cause problems if you are wrapping the resulting
+ # source code in other code, because the magic comment only has an effect at the beginning of
+ # the file, and having the magic comment later in the file can trigger warnings.
+ # +:freeze_template_literals+ :: Whether to suffix all literal strings for template code with .freeze
+ # (default: +true+ on Ruby 2.1+, +false+ on Ruby 2.0 and older).
+ # Can be set to +false+ on Ruby 2.3+ when frozen string literals are enabled
+ # in order to improve performance.
+ # +:literal_prefix+ :: The prefix to output when using escaped tag delimiters (default '<%').
+ # +:literal_postfix+ :: The postfix to output when using escaped tag delimiters (default '%>').
+ # +:outvar+ :: Same as +:bufvar+, with lower priority.
+ # +:postamble+ :: The postamble for the template, by default returns the resulting source code.
+ # +:preamble+ :: The preamble for the template, by default initializes the buffer variable.
+ # +:regexp+ :: The regexp to use for scanning.
+ # +:src+ :: The initial value to use for the source code, an empty string by default.
+ # +:trim+ :: Whether to trim leading and trailing whitespace, true by default.
+ #
+ # @return [Engine] a new instance of Engine
+ #
+ # source://erubi//lib/erubi.rb#94
+ def initialize(input, properties = T.unsafe(nil)); end
+
+ # The variable name used for the buffer variable.
+ #
+ # source://erubi//lib/erubi.rb#65
+ def bufvar; end
+
+ # The filename of the template, if one was given.
+ #
+ # source://erubi//lib/erubi.rb#62
+ def filename; end
+
+ # The frozen ruby source code generated from the template, which can be evaled.
+ #
+ # source://erubi//lib/erubi.rb#59
+ def src; end
+
+ private
+
+ # Add ruby code to the template
+ #
+ # source://erubi//lib/erubi.rb#226
+ def add_code(code); end
+
+ # Add the given ruby expression result to the template,
+ # escaping it based on the indicator given and escape flag.
+ #
+ # source://erubi//lib/erubi.rb#235
+ def add_expression(indicator, code); end
+
+ # Add the result of Ruby expression to the template
+ #
+ # source://erubi//lib/erubi.rb#244
+ def add_expression_result(code); end
+
+ # Add the escaped result of Ruby expression to the template
+ #
+ # source://erubi//lib/erubi.rb#249
+ def add_expression_result_escaped(code); end
+
+ # Add the given postamble to the src. Can be overridden in subclasses
+ # to make additional changes to src that depend on the current state.
+ #
+ # source://erubi//lib/erubi.rb#255
+ def add_postamble(postamble); end
+
+ # Add raw text to the template. Modifies argument if argument is mutable as a memory optimization.
+ # Must be called with a string, cannot be called with nil (Rails's subclass depends on it).
+ #
+ # source://erubi//lib/erubi.rb#213
+ def add_text(text); end
+
+ # Raise an exception, as the base engine class does not support handling other indicators.
+ #
+ # @raise [ArgumentError]
+ #
+ # source://erubi//lib/erubi.rb#261
+ def handle(indicator, code, tailch, rspace, lspace); end
+
+ # Make sure that any current expression has been terminated.
+ # The default is to terminate all expressions, but when
+ # the chain_appends option is used, expressions may not be
+ # terminated.
+ #
+ # source://erubi//lib/erubi.rb#289
+ def terminate_expression; end
+
+ # Make sure the buffer variable is the target of the next append
+ # before yielding to the block. Mark that the buffer is the target
+ # of the next append after the block executes.
+ #
+ # This method should only be called if the block will result in
+ # code where << will append to the bufvar.
+ #
+ # source://erubi//lib/erubi.rb#271
+ def with_buffer; end
+end
+
+# The default regular expression used for scanning.
+#
+# source://erubi//lib/erubi.rb#56
+Erubi::Engine::DEFAULT_REGEXP = T.let(T.unsafe(nil), Regexp)
+
+# source://erubi//lib/erubi.rb#17
+Erubi::FREEZE_TEMPLATE_LITERALS = T.let(T.unsafe(nil), TrueClass)
+
+# source://erubi//lib/erubi.rb#15
+Erubi::MATCH_METHOD = T.let(T.unsafe(nil), Symbol)
+
+# source://erubi//lib/erubi.rb#8
+Erubi::RANGE_FIRST = T.let(T.unsafe(nil), Integer)
+
+# source://erubi//lib/erubi.rb#9
+Erubi::RANGE_LAST = T.let(T.unsafe(nil), Integer)
+
+# source://erubi//lib/erubi.rb#16
+Erubi::SKIP_DEFINED_FOR_INSTANCE_VARIABLE = T.let(T.unsafe(nil), TrueClass)
+
+# source://erubi//lib/erubi.rb#4
+Erubi::VERSION = T.let(T.unsafe(nil), String)
diff --git a/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi b/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi
new file mode 100644
index 0000000..dbc83e9
--- /dev/null
+++ b/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi
@@ -0,0 +1,258 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `faraday-multipart` gem.
+# Please instead update this file by running `bin/tapioca gem faraday-multipart`.
+
+# source://faraday-multipart//lib/faraday/multipart/version.rb#3
+module Faraday
+ class << self
+ # source://faraday/2.7.11/lib/faraday.rb#55
+ def default_adapter; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#102
+ def default_adapter=(adapter); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#59
+ def default_adapter_options; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#59
+ def default_adapter_options=(_arg0); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#120
+ def default_connection; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#62
+ def default_connection=(_arg0); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#127
+ def default_connection_options; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#134
+ def default_connection_options=(options); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#67
+ def ignore_env_proxy; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#67
+ def ignore_env_proxy=(_arg0); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#46
+ def lib_path; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#46
+ def lib_path=(_arg0); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#96
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#107
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#42
+ def root_path; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#42
+ def root_path=(_arg0); end
+
+ private
+
+ # source://faraday/2.7.11/lib/faraday.rb#143
+ def method_missing(name, *args, &block); end
+ end
+end
+
+# source://faraday-multipart//lib/faraday/multipart.rb#18
+Faraday::CompositeReadIO = Faraday::Multipart::CompositeReadIO
+
+# Aliases for Faraday v1, these are all deprecated and will be removed in v2 of this middleware
+#
+# source://faraday-multipart//lib/faraday/multipart.rb#15
+Faraday::FilePart = Multipart::Post::UploadIO
+
+# Main Faraday::Multipart module.
+#
+# source://faraday-multipart//lib/faraday/multipart/version.rb#5
+module Faraday::Multipart
+ class << self
+ # source://faraday-multipart//lib/faraday/multipart/version.rb#8
+ def multipart_post_version; end
+ end
+end
+
+# Similar to, but not compatible with CompositeReadIO provided by the
+# multipart-post gem.
+# https://github.com/nicksieger/multipart-post/blob/master/lib/composite_io.rb
+#
+# source://faraday-multipart//lib/faraday/multipart/file_part.rb#67
+class Faraday::Multipart::CompositeReadIO
+ # @return [CompositeReadIO] a new instance of CompositeReadIO
+ #
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#68
+ def initialize(*parts); end
+
+ # Close each of the IOs.
+ #
+ # @return [void]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#111
+ def close; end
+
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#115
+ def ensure_open_and_readable; end
+
+ # @return [Integer] sum of the lengths of all the parts
+ #
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#75
+ def length; end
+
+ # Read from IOs in order until `length` bytes have been received.
+ #
+ # @param length [Integer, nil]
+ # @param outbuf [String, nil]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#91
+ def read(length = T.unsafe(nil), outbuf = T.unsafe(nil)); end
+
+ # Rewind each of the IOs and reset the index to 0.
+ #
+ # @return [void]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#82
+ def rewind; end
+
+ private
+
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#125
+ def advance_io; end
+
+ # source://faraday-multipart//lib/faraday/multipart/file_part.rb#121
+ def current_io; end
+end
+
+# source://faraday-multipart//lib/faraday/multipart/file_part.rb#55
+Faraday::Multipart::FilePart = Multipart::Post::UploadIO
+
+# Middleware for supporting multi-part requests.
+#
+# source://faraday-multipart//lib/faraday/multipart/middleware.rb#8
+class Faraday::Multipart::Middleware < ::Faraday::Request::UrlEncoded
+ # @return [Middleware] a new instance of Middleware
+ #
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#13
+ def initialize(app = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # Checks for files in the payload, otherwise leaves everything untouched.
+ #
+ # @param env [Faraday::Env]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#21
+ def call(env); end
+
+ # @param env [Faraday::Env]
+ # @param params [Hash]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#55
+ def create_multipart(env, params); end
+
+ # Returns true if obj is an enumerable with values that are multipart.
+ #
+ # @param obj [Object]
+ # @return [Boolean]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#44
+ def has_multipart?(obj); end
+
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#67
+ def part(boundary, key, value); end
+
+ # @param params [Hash]
+ # @param prefix [String]
+ # @param pieces [Array]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#83
+ def process_params(params, prefix = T.unsafe(nil), pieces = T.unsafe(nil), &block); end
+
+ # @param env [Faraday::Env]
+ # @return [Boolean]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#32
+ def process_request?(env); end
+
+ # @return [String]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/middleware.rb#76
+ def unique_boundary; end
+end
+
+# source://faraday-multipart//lib/faraday/multipart/middleware.rb#9
+Faraday::Multipart::Middleware::DEFAULT_BOUNDARY_PREFIX = T.let(T.unsafe(nil), String)
+
+# Multipart value used to POST data with a content type.
+#
+# source://faraday-multipart//lib/faraday/multipart/param_part.rb#6
+class Faraday::Multipart::ParamPart
+ # @param value [String] Uploaded content as a String.
+ # @param content_type [String] String content type of the value.
+ # @param content_id [String] Optional String of this value's Content-ID.
+ # @return [Faraday::ParamPart]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#12
+ def initialize(value, content_type, content_id = T.unsafe(nil)); end
+
+ # The value's content ID, if given.
+ #
+ # @return [String, nil]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#52
+ def content_id; end
+
+ # The value's content type.
+ #
+ # @return [String]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#47
+ def content_type; end
+
+ # Returns a Hash of String key/value pairs.
+ #
+ # @return [Hash]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#32
+ def headers; end
+
+ # Converts this value to a form part.
+ #
+ # @param boundary [String] String multipart boundary that must not exist in
+ # the content exactly.
+ # @param key [String] String key name for this value.
+ # @return [Faraday::Parts::Part]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#25
+ def to_part(boundary, key); end
+
+ # The content to upload.
+ #
+ # @return [String]
+ #
+ # source://faraday-multipart//lib/faraday/multipart/param_part.rb#42
+ def value; end
+end
+
+# source://faraday-multipart//lib/faraday/multipart/file_part.rb#56
+Faraday::Multipart::Parts = Multipart::Post::Parts
+
+# source://faraday-multipart//lib/faraday/multipart/version.rb#6
+Faraday::Multipart::VERSION = T.let(T.unsafe(nil), String)
+
+# source://faraday-multipart//lib/faraday/multipart.rb#16
+Faraday::ParamPart = Faraday::Multipart::ParamPart
+
+# source://faraday-multipart//lib/faraday/multipart.rb#17
+Faraday::Parts = Multipart::Post::Parts
+
+# multipart-post v2.2.0 introduces a new class hierarchy for classes like Parts and UploadIO
+# For backwards compatibility, detect the gem version and use the right class
+#
+# source://faraday-multipart//lib/faraday/multipart.rb#21
+Faraday::UploadIO = Multipart::Post::UploadIO
diff --git a/sorbet/rbi/gems/faraday-net_http@3.0.2.rbi b/sorbet/rbi/gems/faraday-net_http@3.0.2.rbi
new file mode 100644
index 0000000..aa059e0
--- /dev/null
+++ b/sorbet/rbi/gems/faraday-net_http@3.0.2.rbi
@@ -0,0 +1,146 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `faraday-net_http` gem.
+# Please instead update this file by running `bin/tapioca gem faraday-net_http`.
+
+# source://faraday-net_http//lib/faraday/adapter/net_http.rb#12
+module Faraday
+ class << self
+ # source://faraday/2.7.11/lib/faraday.rb#55
+ def default_adapter; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#102
+ def default_adapter=(adapter); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#59
+ def default_adapter_options; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#59
+ def default_adapter_options=(_arg0); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#120
+ def default_connection; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#62
+ def default_connection=(_arg0); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#127
+ def default_connection_options; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#134
+ def default_connection_options=(options); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#67
+ def ignore_env_proxy; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#67
+ def ignore_env_proxy=(_arg0); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#46
+ def lib_path; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#46
+ def lib_path=(_arg0); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#96
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#107
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
+
+ # source://faraday/2.7.11/lib/faraday.rb#42
+ def root_path; end
+
+ # source://faraday/2.7.11/lib/faraday.rb#42
+ def root_path=(_arg0); end
+
+ private
+
+ # source://faraday/2.7.11/lib/faraday.rb#143
+ def method_missing(name, *args, &block); end
+ end
+end
+
+# source://faraday-net_http//lib/faraday/adapter/net_http.rb#13
+class Faraday::Adapter
+ # source://faraday/2.7.11/lib/faraday/adapter.rb#28
+ def initialize(_app = T.unsafe(nil), opts = T.unsafe(nil), &block); end
+
+ # source://faraday/2.7.11/lib/faraday/adapter.rb#55
+ def call(env); end
+
+ # source://faraday/2.7.11/lib/faraday/adapter.rb#50
+ def close; end
+
+ # source://faraday/2.7.11/lib/faraday/adapter.rb#41
+ def connection(env); end
+
+ private
+
+ # source://faraday/2.7.11/lib/faraday/adapter.rb#85
+ def request_timeout(type, options); end
+
+ # source://faraday/2.7.11/lib/faraday/adapter.rb#62
+ def save_response(env, status, body, headers = T.unsafe(nil), reason_phrase = T.unsafe(nil), finished: T.unsafe(nil)); end
+end
+
+# source://faraday-net_http//lib/faraday/adapter/net_http.rb#14
+class Faraday::Adapter::NetHttp < ::Faraday::Adapter
+ # @return [NetHttp] a new instance of NetHttp
+ #
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#38
+ def initialize(app = T.unsafe(nil), opts = T.unsafe(nil), &block); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#43
+ def build_connection(env); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#63
+ def call(env); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#51
+ def net_http_connection(env); end
+
+ private
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#152
+ def configure_request(http, req); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#135
+ def configure_ssl(http, ssl); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#79
+ def create_request(env); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#191
+ def encoded_body(http_response); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#95
+ def perform_request(http, env); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#109
+ def request_with_wrapped_block(http, env); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#125
+ def save_http_response(env, http_response); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#172
+ def ssl_cert_store(ssl); end
+
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#181
+ def ssl_verify_mode(ssl); end
+
+ # @return [Boolean]
+ #
+ # source://faraday-net_http//lib/faraday/adapter/net_http.rb#203
+ def verify_hostname_enabled?(http, ssl); end
+end
+
+# source://faraday-net_http//lib/faraday/adapter/net_http.rb#36
+Faraday::Adapter::NetHttp::NET_HTTP_EXCEPTIONS = T.let(T.unsafe(nil), Array)
+
+# source://faraday-net_http//lib/faraday/net_http/version.rb#4
+module Faraday::NetHttp; end
+
+# source://faraday-net_http//lib/faraday/net_http/version.rb#5
+Faraday::NetHttp::VERSION = T.let(T.unsafe(nil), String)
diff --git a/sorbet/rbi/gems/faraday@2.7.11.rbi b/sorbet/rbi/gems/faraday@2.7.11.rbi
new file mode 100644
index 0000000..5a017f2
--- /dev/null
+++ b/sorbet/rbi/gems/faraday@2.7.11.rbi
@@ -0,0 +1,2903 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `faraday` gem.
+# Please instead update this file by running `bin/tapioca gem faraday`.
+
+# conn.get '/'
+#
+# source://faraday//lib/faraday/version.rb#3
+module Faraday
+ class << self
+ # @overload default_adapter
+ # @overload default_adapter=
+ #
+ # source://faraday//lib/faraday.rb#55
+ def default_adapter; end
+
+ # Documented elsewhere, see default_adapter reader
+ #
+ # source://faraday//lib/faraday.rb#102
+ def default_adapter=(adapter); end
+
+ # Option for the default_adapter
+ # @return [Hash] default_adapter options
+ #
+ # source://faraday//lib/faraday.rb#59
+ def default_adapter_options; end
+
+ # Option for the default_adapter
+ # @return [Hash] default_adapter options
+ #
+ # source://faraday//lib/faraday.rb#59
+ def default_adapter_options=(_arg0); end
+
+ # @overload default_connection
+ # @overload default_connection=
+ #
+ # source://faraday//lib/faraday.rb#120
+ def default_connection; end
+
+ # Documented below, see default_connection
+ #
+ # source://faraday//lib/faraday.rb#62
+ def default_connection=(_arg0); end
+
+ # Gets the default connection options used when calling {Faraday#new}.
+ #
+ # @return [Faraday::ConnectionOptions]
+ #
+ # source://faraday//lib/faraday.rb#127
+ def default_connection_options; end
+
+ # Sets the default options used when calling {Faraday#new}.
+ #
+ # @param options [Hash, Faraday::ConnectionOptions]
+ #
+ # source://faraday//lib/faraday.rb#134
+ def default_connection_options=(options); end
+
+ # Tells Faraday to ignore the environment proxy (http_proxy).
+ # Defaults to `false`.
+ #
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday.rb#67
+ def ignore_env_proxy; end
+
+ # Tells Faraday to ignore the environment proxy (http_proxy).
+ # Defaults to `false`.
+ #
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday.rb#67
+ def ignore_env_proxy=(_arg0); end
+
+ # Gets or sets the path that the Faraday libs are loaded from.
+ #
+ # @return [String]
+ #
+ # source://faraday//lib/faraday.rb#46
+ def lib_path; end
+
+ # Gets or sets the path that the Faraday libs are loaded from.
+ #
+ # @return [String]
+ #
+ # source://faraday//lib/faraday.rb#46
+ def lib_path=(_arg0); end
+
+ # Initializes a new {Connection}.
+ #
+ # @example With an URL argument
+ # Faraday.new 'http://faraday.com'
+ # # => Faraday::Connection to http://faraday.com
+ # @example With an URL argument and an options hash
+ # Faraday.new 'http://faraday.com', params: { page: 1 }
+ # # => Faraday::Connection to http://faraday.com?page=1
+ # @example With everything in an options hash
+ # Faraday.new url: 'http://faraday.com',
+ # params: { page: 1 }
+ # # => Faraday::Connection to http://faraday.com?page=1
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @param url [String, Hash] The optional String base URL to use as a prefix
+ # for all requests. Can also be the options Hash. Any of these
+ # values will be set on every request made, unless overridden
+ # for a specific request.
+ # @param options [Hash]
+ # @return [Faraday::Connection]
+ #
+ # source://faraday//lib/faraday.rb#96
+ def new(url = T.unsafe(nil), options = T.unsafe(nil), &block); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday.rb#107
+ def respond_to_missing?(symbol, include_private = T.unsafe(nil)); end
+
+ # The root path that Faraday is being loaded from.
+ #
+ # This is the root from where the libraries are auto-loaded.
+ #
+ # @return [String]
+ #
+ # source://faraday//lib/faraday.rb#42
+ def root_path; end
+
+ # The root path that Faraday is being loaded from.
+ #
+ # This is the root from where the libraries are auto-loaded.
+ #
+ # @return [String]
+ #
+ # source://faraday//lib/faraday.rb#42
+ def root_path=(_arg0); end
+
+ private
+
+ # Internal: Proxies method calls on the Faraday constant to
+ # .default_connection.
+ #
+ # source://faraday//lib/faraday.rb#143
+ def method_missing(name, *args, &block); end
+ end
+end
+
+# Base class for all Faraday adapters. Adapters are
+# responsible for fulfilling a Faraday request.
+#
+# source://faraday//lib/faraday/adapter.rb#6
+class Faraday::Adapter
+ extend ::Faraday::MiddlewareRegistry
+ extend ::Faraday::Adapter::Parallelism
+
+ # @return [Adapter] a new instance of Adapter
+ #
+ # source://faraday//lib/faraday/adapter.rb#28
+ def initialize(_app = T.unsafe(nil), opts = T.unsafe(nil), &block); end
+
+ # source://faraday//lib/faraday/adapter.rb#55
+ def call(env); end
+
+ # Close any persistent connections. The adapter should still be usable
+ # after calling close.
+ #
+ # source://faraday//lib/faraday/adapter.rb#50
+ def close; end
+
+ # Yields or returns an adapter's configured connection. Depends on
+ # #build_connection being defined on this adapter.
+ #
+ # @param env [Faraday::Env, Hash] The env object for a faraday request.
+ # @return The return value of the given block, or the HTTP connection object
+ # if no block is given.
+ # @yield [conn]
+ #
+ # source://faraday//lib/faraday/adapter.rb#41
+ def connection(env); end
+
+ private
+
+ # Fetches either a read, write, or open timeout setting. Defaults to the
+ # :timeout value if a more specific one is not given.
+ #
+ # @param type [Symbol] Describes which timeout setting to get: :read,
+ # :write, or :open.
+ # @param options [Hash] Hash containing Symbol keys like :timeout,
+ # :read_timeout, :write_timeout, or :open_timeout
+ # @return [Integer, nil] Timeout duration in seconds, or nil if no timeout
+ # has been set.
+ #
+ # source://faraday//lib/faraday/adapter.rb#85
+ def request_timeout(type, options); end
+
+ # source://faraday//lib/faraday/adapter.rb#62
+ def save_response(env, status, body, headers = T.unsafe(nil), reason_phrase = T.unsafe(nil), finished: T.unsafe(nil)); end
+end
+
+# source://faraday//lib/faraday/adapter.rb#9
+Faraday::Adapter::CONTENT_LENGTH = T.let(T.unsafe(nil), String)
+
+# This module marks an Adapter as supporting parallel requests.
+#
+# source://faraday//lib/faraday/adapter.rb#12
+module Faraday::Adapter::Parallelism
+ # source://faraday//lib/faraday/adapter.rb#19
+ def inherited(subclass); end
+
+ # Sets the attribute supports_parallel
+ #
+ # @param value the value to set the attribute supports_parallel to.
+ #
+ # source://faraday//lib/faraday/adapter.rb#13
+ def supports_parallel=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/adapter.rb#15
+ def supports_parallel?; end
+end
+
+# source://faraday//lib/faraday/adapter.rb#93
+Faraday::Adapter::TIMEOUT_KEYS = T.let(T.unsafe(nil), Hash)
+
+# @example
+# test = Faraday::Connection.new do
+# use Faraday::Adapter::Test do |stub|
+# # Define matcher to match the request
+# stub.get '/resource.json' do
+# # return static content
+# [200, {'Content-Type' => 'application/json'}, 'hi world']
+# end
+#
+# # response with content generated based on request
+# stub.get '/showget' do |env|
+# [200, {'Content-Type' => 'text/plain'}, env[:method].to_s]
+# end
+#
+# # A regular expression can be used as matching filter
+# stub.get /\A\/items\/(\d+)\z/ do |env, meta|
+# # in case regular expression is used, an instance of MatchData
+# # can be received
+# [200,
+# {'Content-Type' => 'text/plain'},
+# "showing item: #{meta[:match_data][1]}"
+# ]
+# end
+#
+# # Test the request body is the same as the stubbed body
+# stub.post('/bar', 'name=YK&word=call') { [200, {}, ''] }
+#
+# # You can pass a proc as a stubbed body and check the request body in your way.
+# # In this case, the proc should return true or false.
+# stub.post('/foo', ->(request_body) do
+# JSON.parse(request_body).slice('name') == { 'name' => 'YK' } }) { [200, {}, '']
+# end
+#
+# # You can set strict_mode to exactly match the stubbed requests.
+# stub.strict_mode = true
+# end
+# end
+#
+# resp = test.get '/resource.json'
+# resp.body # => 'hi world'
+#
+# resp = test.get '/showget'
+# resp.body # => 'get'
+#
+# resp = test.get '/items/1'
+# resp.body # => 'showing item: 1'
+#
+# resp = test.get '/items/2'
+# resp.body # => 'showing item: 2'
+#
+# resp = test.post '/bar', 'name=YK&word=call'
+# resp.status # => 200
+#
+# resp = test.post '/foo', JSON.dump(name: 'YK', created_at: Time.now)
+# resp.status # => 200
+#
+# source://faraday//lib/faraday/adapter/test.rb#62
+class Faraday::Adapter::Test < ::Faraday::Adapter
+ # @return [Test] a new instance of Test
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#258
+ def initialize(app, stubs = T.unsafe(nil), &block); end
+
+ # @param env [Faraday::Env]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#269
+ def call(env); end
+
+ # @yield [stubs]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#264
+ def configure; end
+
+ # Returns the value of attribute stubs.
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#63
+ def stubs; end
+
+ # Sets the attribute stubs
+ #
+ # @param value the value to set the attribute stubs to.
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#63
+ def stubs=(_arg0); end
+end
+
+# Stub request
+#
+# source://faraday//lib/faraday/adapter/test.rb#187
+class Faraday::Adapter::Test::Stub < ::Struct
+ # Returns the value of attribute block
+ #
+ # @return [Object] the current value of block
+ def block; end
+
+ # Sets the attribute block
+ #
+ # @param value [Object] the value to set the attribute block to.
+ # @return [Object] the newly set value
+ def block=(_); end
+
+ # Returns the value of attribute body
+ #
+ # @return [Object] the current value of body
+ def body; end
+
+ # Sets the attribute body
+ #
+ # @param value [Object] the value to set the attribute body to.
+ # @return [Object] the newly set value
+ def body=(_); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#242
+ def body_match?(request_body); end
+
+ # Returns the value of attribute headers
+ #
+ # @return [Object] the current value of headers
+ def headers; end
+
+ # Sets the attribute headers
+ #
+ # @param value [Object] the value to set the attribute headers to.
+ # @return [Object] the newly set value
+ def headers=(_); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#227
+ def headers_match?(request_headers); end
+
+ # Returns the value of attribute host
+ #
+ # @return [Object] the current value of host
+ def host; end
+
+ # Sets the attribute host
+ #
+ # @param value [Object] the value to set the attribute host to.
+ # @return [Object] the newly set value
+ def host=(_); end
+
+ # @param env [Faraday::Env]
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#189
+ def matches?(env); end
+
+ # @param env [Faraday::Env]
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#214
+ def params_match?(env); end
+
+ # Returns the value of attribute path
+ #
+ # @return [Object] the current value of path
+ def path; end
+
+ # Sets the attribute path
+ #
+ # @param value [Object] the value to set the attribute path to.
+ # @return [Object] the newly set value
+ def path=(_); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#205
+ def path_match?(request_path, meta); end
+
+ # Returns the value of attribute query
+ #
+ # @return [Object] the current value of query
+ def query; end
+
+ # Sets the attribute query
+ #
+ # @param value [Object] the value to set the attribute query to.
+ # @return [Object] the newly set value
+ def query=(_); end
+
+ # Returns the value of attribute strict_mode
+ #
+ # @return [Object] the current value of strict_mode
+ def strict_mode; end
+
+ # Sets the attribute strict_mode
+ #
+ # @param value [Object] the value to set the attribute strict_mode to.
+ # @return [Object] the newly set value
+ def strict_mode=(_); end
+
+ # source://faraday//lib/faraday/adapter/test.rb#253
+ def to_s; end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# A stack of Stubs
+#
+# source://faraday//lib/faraday/adapter/test.rb#66
+class Faraday::Adapter::Test::Stubs
+ # @return [Stubs] a new instance of Stubs
+ # @yield [_self]
+ # @yieldparam _self [Faraday::Adapter::Test::Stubs] the object that the method was called on
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#70
+ def initialize(strict_mode: T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/adapter/test.rb#122
+ def delete(path, headers = T.unsafe(nil), &block); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#79
+ def empty?; end
+
+ # source://faraday//lib/faraday/adapter/test.rb#102
+ def get(path, headers = T.unsafe(nil), &block); end
+
+ # source://faraday//lib/faraday/adapter/test.rb#106
+ def head(path, headers = T.unsafe(nil), &block); end
+
+ # @param env [Faraday::Env]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#84
+ def match(env); end
+
+ # source://faraday//lib/faraday/adapter/test.rb#126
+ def options(path, headers = T.unsafe(nil), &block); end
+
+ # source://faraday//lib/faraday/adapter/test.rb#118
+ def patch(path, body = T.unsafe(nil), headers = T.unsafe(nil), &block); end
+
+ # source://faraday//lib/faraday/adapter/test.rb#110
+ def post(path, body = T.unsafe(nil), headers = T.unsafe(nil), &block); end
+
+ # source://faraday//lib/faraday/adapter/test.rb#114
+ def put(path, body = T.unsafe(nil), headers = T.unsafe(nil), &block); end
+
+ # Set strict_mode. If the value is true, this adapter tries to find matched requests strictly,
+ # which means that all of a path, parameters, and headers must be the same as an actual request.
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#147
+ def strict_mode=(value); end
+
+ # Raises an error if any of the stubbed calls have not been made.
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#131
+ def verify_stubbed_calls; end
+
+ protected
+
+ # @param stack [Hash]
+ # @param env [Faraday::Env]
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/adapter/test.rb#177
+ def matches?(stack, env); end
+
+ # source://faraday//lib/faraday/adapter/test.rb#158
+ def new_stub(request_method, path, headers = T.unsafe(nil), body = T.unsafe(nil), &block); end
+end
+
+# source://faraday//lib/faraday/adapter/test.rb#67
+class Faraday::Adapter::Test::Stubs::NotFound < ::StandardError; end
+
+# AdapterRegistry registers adapter class names so they can be looked up by a
+# String or Symbol name.
+#
+# source://faraday//lib/faraday/adapter_registry.rb#8
+class Faraday::AdapterRegistry
+ # @return [AdapterRegistry] a new instance of AdapterRegistry
+ #
+ # source://faraday//lib/faraday/adapter_registry.rb#9
+ def initialize; end
+
+ # source://faraday//lib/faraday/adapter_registry.rb#14
+ def get(name); end
+
+ # source://faraday//lib/faraday/adapter_registry.rb#23
+ def set(klass, name = T.unsafe(nil)); end
+end
+
+# Raised by Faraday::Response::RaiseError in case of a 400 response.
+#
+# source://faraday//lib/faraday/error.rb#96
+class Faraday::BadRequestError < ::Faraday::ClientError; end
+
+# source://faraday//lib/faraday.rb#34
+Faraday::CONTENT_TYPE = T.let(T.unsafe(nil), String)
+
+# Faraday client error class. Represents 4xx status responses.
+#
+# source://faraday//lib/faraday/error.rb#92
+class Faraday::ClientError < ::Faraday::Error; end
+
+# Raised by Faraday::Response::RaiseError in case of a 409 response.
+#
+# source://faraday//lib/faraday/error.rb#120
+class Faraday::ConflictError < ::Faraday::ClientError; end
+
+# Connection objects manage the default properties and the middleware
+# stack for fulfilling an HTTP request.
+#
+# @example
+#
+# conn = Faraday::Connection.new 'http://httpbingo.org'
+#
+# # GET http://httpbingo.org/nigiri
+# conn.get 'nigiri'
+# # => #
+#
+# source://faraday//lib/faraday/connection.rb#15
+class Faraday::Connection
+ extend ::Forwardable
+
+ # Initializes a new Faraday::Connection.
+ #
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @param url [URI, String] URI or String base URL to use as a prefix for all
+ # requests (optional).
+ # @param options [Hash, Faraday::ConnectionOptions]
+ # @return [Connection] a new instance of Connection
+ # @yield [self] after all setup has been done
+ #
+ # source://faraday//lib/faraday/connection.rb#63
+ def initialize(url = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def adapter(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def app(*args, **_arg1, &block); end
+
+ # Build an absolute URL based on url_prefix.
+ #
+ # of the resulting url (default: nil).
+ #
+ # @param url [String, URI, nil]
+ # @param params [Faraday::Utils::ParamsHash] A Faraday::Utils::ParamsHash to
+ # replace the query values
+ # @return [URI]
+ #
+ # source://faraday//lib/faraday/connection.rb#470
+ def build_exclusive_url(url = T.unsafe(nil), params = T.unsafe(nil), params_encoder = T.unsafe(nil)); end
+
+ # Creates and configures the request object.
+ #
+ # @param method [Symbol]
+ # @return [Faraday::Request]
+ # @yield [Faraday::Request] if block given
+ #
+ # source://faraday//lib/faraday/connection.rb#453
+ def build_request(method); end
+
+ # Takes a relative url for a request and combines it with the defaults
+ # set on the connection instance.
+ #
+ # @example
+ # conn = Faraday::Connection.new { ... }
+ # conn.url_prefix = "https://httpbingo.org/api?token=abc"
+ # conn.scheme # => https
+ # conn.path_prefix # => "/api"
+ #
+ # conn.build_url("nigiri?page=2")
+ # # => https://httpbingo.org/api/nigiri?token=abc&page=2
+ #
+ # conn.build_url("nigiri", page: 2)
+ # # => https://httpbingo.org/api/nigiri?token=abc&page=2
+ # @param url [String, URI, nil]
+ # @param extra_params [Hash]
+ #
+ # source://faraday//lib/faraday/connection.rb#407
+ def build_url(url = T.unsafe(nil), extra_params = T.unsafe(nil)); end
+
+ # @return [Faraday::RackBuilder] Builder for this Connection.
+ #
+ # source://faraday//lib/faraday/connection.rb#31
+ def builder; end
+
+ # Closes the underlying resources and/or connections. In the case of
+ # persistent connections, this closes all currently open connections
+ # but does not prevent new connections from being made.
+ #
+ # source://faraday//lib/faraday/connection.rb#125
+ def close; end
+
+ # Check if the adapter is parallel-capable.
+ #
+ # @api private
+ # @return [Object, nil] a parallel manager or nil if yielded
+ # @yield if the adapter isn't parallel-capable, or if no adapter is set yet.
+ #
+ # source://faraday//lib/faraday/connection.rb#291
+ def default_parallel_manager; end
+
+ # Sets the default parallel manager for this connection.
+ #
+ # source://faraday//lib/faraday/connection.rb#40
+ def default_parallel_manager=(_arg0); end
+
+ # source://faraday//lib/faraday/connection.rb#199
+ def delete(url = T.unsafe(nil), params = T.unsafe(nil), headers = T.unsafe(nil)); end
+
+ # Creates a duplicate of this Faraday::Connection.
+ #
+ # @api private
+ # @return [Faraday::Connection]
+ #
+ # source://faraday//lib/faraday/connection.rb#490
+ def dup; end
+
+ # source://faraday//lib/faraday/connection.rb#533
+ def find_default_proxy; end
+
+ # source://faraday//lib/faraday/connection.rb#199
+ def get(url = T.unsafe(nil), params = T.unsafe(nil), headers = T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/connection.rb#199
+ def head(url = T.unsafe(nil), params = T.unsafe(nil), headers = T.unsafe(nil)); end
+
+ # @return [Hash] unencoded HTTP header key/value pairs.
+ #
+ # source://faraday//lib/faraday/connection.rb#24
+ def headers; end
+
+ # Sets the Hash of unencoded HTTP header key/value pairs.
+ #
+ # @param hash [Hash]
+ #
+ # source://faraday//lib/faraday/connection.rb#114
+ def headers=(hash); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def host(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def host=(*args, **_arg1, &block); end
+
+ # Sets up the parallel manager to make a set of requests.
+ #
+ # @param manager [Object] The parallel manager that this Connection's
+ # Adapter uses.
+ # @return [void]
+ # @yield a block to execute multiple requests.
+ #
+ # source://faraday//lib/faraday/connection.rb#317
+ def in_parallel(manager = T.unsafe(nil)); end
+
+ # Determine if this Faraday::Connection can make parallel requests.
+ #
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/connection.rb#306
+ def in_parallel?; end
+
+ # source://faraday//lib/faraday/connection.rb#96
+ def initialize_proxy(url, options); end
+
+ # @example
+ # conn.options '/items/1'
+ # @overload options
+ # @overload options
+ # @return [Faraday::Response]
+ # @yield [Faraday::Request] for further request customizations
+ #
+ # source://faraday//lib/faraday/connection.rb#222
+ def options(*args); end
+
+ # @return [Object] the parallel manager for this Connection.
+ #
+ # source://faraday//lib/faraday/connection.rb#37
+ def parallel_manager; end
+
+ # @return [Hash] URI query unencoded key/value pairs.
+ #
+ # source://faraday//lib/faraday/connection.rb#21
+ def params; end
+
+ # Sets the Hash of URI query unencoded key/value pairs.
+ #
+ # @param hash [Hash]
+ #
+ # source://faraday//lib/faraday/connection.rb#108
+ def params=(hash); end
+
+ # source://faraday//lib/faraday/connection.rb#279
+ def patch(url = T.unsafe(nil), body = T.unsafe(nil), headers = T.unsafe(nil), &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def path_prefix(*args, **_arg1, &block); end
+
+ # Sets the path prefix and ensures that it always has a leading
+ # slash.
+ #
+ # @param value [String]
+ # @return [String] the new path prefix
+ #
+ # source://faraday//lib/faraday/connection.rb#382
+ def path_prefix=(value); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def port(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def port=(*args, **_arg1, &block); end
+
+ # source://faraday//lib/faraday/connection.rb#279
+ def post(url = T.unsafe(nil), body = T.unsafe(nil), headers = T.unsafe(nil), &block); end
+
+ # @return [Hash] proxy options.
+ #
+ # source://faraday//lib/faraday/connection.rb#43
+ def proxy; end
+
+ # Sets the Hash proxy options.
+ #
+ # @param new_value [Object]
+ #
+ # source://faraday//lib/faraday/connection.rb#333
+ def proxy=(new_value); end
+
+ # source://faraday//lib/faraday/connection.rb#541
+ def proxy_for_request(url); end
+
+ # source://faraday//lib/faraday/connection.rb#513
+ def proxy_from_env(url); end
+
+ # source://faraday//lib/faraday/connection.rb#279
+ def put(url = T.unsafe(nil), body = T.unsafe(nil), headers = T.unsafe(nil), &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def request(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def response(*args, **_arg1, &block); end
+
+ # Builds and runs the Faraday::Request.
+ #
+ # @param method [Symbol] HTTP method.
+ # @param url [String, URI, nil] String or URI to access.
+ # @param body [String, nil] The request body that will eventually be converted to
+ # a string.
+ # @param headers [Hash, nil] unencoded HTTP header key/value pairs.
+ # @return [Faraday::Response]
+ #
+ # source://faraday//lib/faraday/connection.rb#431
+ def run_request(method, url, body, headers); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def scheme(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def scheme=(*args, **_arg1, &block); end
+
+ # source://faraday//lib/faraday/connection.rb#371
+ def set_basic_auth(user, password); end
+
+ # @return [Hash] SSL options.
+ #
+ # source://faraday//lib/faraday/connection.rb#34
+ def ssl; end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/connection.rb#551
+ def support_parallel?(adapter); end
+
+ # source://faraday//lib/faraday/connection.rb#199
+ def trace(url = T.unsafe(nil), params = T.unsafe(nil), headers = T.unsafe(nil)); end
+
+ # @return [String] a URI with the prefix used for all requests from this
+ # Connection. This includes a default host name, scheme, port, and path.
+ #
+ # source://faraday//lib/faraday/connection.rb#28
+ def url_prefix; end
+
+ # Parses the given URL with URI and stores the individual
+ # components in this connection. These components serve as defaults for
+ # requests made by this connection.
+ #
+ # @example
+ #
+ # conn = Faraday::Connection.new { ... }
+ # conn.url_prefix = "https://httpbingo.org/api"
+ # conn.scheme # => https
+ # conn.path_prefix # => "/api"
+ #
+ # conn.get("nigiri?page=2") # accesses https://httpbingo.org/api/nigiri
+ # @param url [String, URI]
+ # @param encoder [Object]
+ #
+ # source://faraday//lib/faraday/connection.rb#356
+ def url_prefix=(url, encoder = T.unsafe(nil)); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def use(*args, **_arg1, &block); end
+
+ # Yields username and password extracted from a URI if they both exist.
+ #
+ # @api private
+ # @param uri [URI]
+ # @return [void]
+ # @yield [username, password] any username and password
+ # @yieldparam username [String] any username from URI
+ # @yieldparam password [String] any password from URI
+ #
+ # source://faraday//lib/faraday/connection.rb#507
+ def with_uri_credentials(uri); end
+end
+
+# A Set of allowed HTTP verbs.
+#
+# source://faraday//lib/faraday/connection.rb#17
+Faraday::Connection::METHODS = T.let(T.unsafe(nil), Set)
+
+# source://faraday//lib/faraday/connection.rb#18
+Faraday::Connection::USER_AGENT = T.let(T.unsafe(nil), String)
+
+# A unified error for failed connections.
+#
+# source://faraday//lib/faraday/error.rb#147
+class Faraday::ConnectionFailed < ::Faraday::Error; end
+
+# ConnectionOptions contains the configurable properties for a Faraday
+# connection object.
+#
+# source://faraday//lib/faraday/options/connection_options.rb#8
+class Faraday::ConnectionOptions < ::Faraday::Options
+ def builder; end
+ def builder=(_); end
+
+ # source://faraday//lib/faraday/options.rb#178
+ def builder_class; end
+
+ def builder_class=(_); end
+ def headers; end
+ def headers=(_); end
+
+ # source://faraday//lib/faraday/options/connection_options.rb#19
+ def new_builder(block); end
+
+ def parallel_manager; end
+ def parallel_manager=(_); end
+ def params; end
+ def params=(_); end
+ def proxy; end
+ def proxy=(_); end
+
+ # source://faraday//lib/faraday/options.rb#178
+ def request; end
+
+ def request=(_); end
+
+ # source://faraday//lib/faraday/options.rb#178
+ def ssl; end
+
+ def ssl=(_); end
+ def url; end
+ def url=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# Sub-module for decoding query-string into parameters.
+#
+# source://faraday//lib/faraday/encoders/nested_params_encoder.rb#81
+module Faraday::DecodeMethods
+ # @param query [nil, String]
+ # @raise [TypeError] if the nesting is incorrect
+ # @return [Array] the decoded params
+ #
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#87
+ def decode(query); end
+
+ protected
+
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#144
+ def add_to_context(is_array, context, value, subkey); end
+
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#107
+ def decode_pair(key, value, context); end
+
+ # Internal: convert a nested hash with purely numeric keys into an array.
+ # FIXME: this is not compatible with Rack::Utils.parse_nested_query
+ #
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#151
+ def dehash(hash, depth); end
+
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#139
+ def match_context(context, subkey); end
+
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#129
+ def new_context(subkey, is_array, context); end
+
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#119
+ def prepare_context(context, subkey, is_array, last_subkey); end
+end
+
+# source://faraday//lib/faraday/encoders/nested_params_encoder.rb#105
+Faraday::DecodeMethods::SUBKEYS_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# Sub-module for encoding parameters into query-string.
+#
+# source://faraday//lib/faraday/encoders/nested_params_encoder.rb#5
+module Faraday::EncodeMethods
+ # @param params [nil, Array, #to_hash] parameters to be encoded
+ # @raise [TypeError] if params can not be converted to a Hash
+ # @return [String] the encoded params
+ #
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#11
+ def encode(params); end
+
+ protected
+
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#64
+ def encode_array(parent, value); end
+
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#53
+ def encode_hash(parent, value); end
+
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#40
+ def encode_pair(parent, value); end
+end
+
+# source://faraday//lib/faraday/options/env.rb#57
+class Faraday::Env < ::Faraday::Options
+ extend ::Forwardable
+
+ # source://faraday//lib/faraday/options/env.rb#89
+ def [](key); end
+
+ # source://faraday//lib/faraday/options/env.rb#101
+ def []=(key, value); end
+
+ # string.
+ #
+ # @return [String] The request body that will eventually be converted to a
+ #
+ # source://faraday//lib/faraday/options/env.rb#118
+ def body; end
+
+ # string.
+ #
+ # @return [String] The request body that will eventually be converted to a
+ #
+ # source://faraday//lib/faraday/options/env.rb#122
+ def body=(value); end
+
+ # source://faraday//lib/faraday/options/env.rb#138
+ def clear_body; end
+
+ # source://faraday//lib/faraday/options/env.rb#114
+ def current_body; end
+
+ # source://faraday//lib/faraday/options/env.rb#184
+ def custom_members; end
+
+ # source://faraday//lib/faraday/options/env.rb#190
+ def in_member_set?(key); end
+
+ # source://faraday//lib/faraday/options/env.rb#154
+ def inspect; end
+
+ # @return [Symbol] HTTP method (`:get`, `:post`)
+ def method; end
+
+ # @return [Symbol] HTTP method (`:get`, `:post`)
+ def method=(_); end
+
+ # source://faraday//lib/faraday/options/env.rb#133
+ def needs_body?; end
+
+ # source://faraday//lib/faraday/options/env.rb#150
+ def parallel?; end
+
+ # @return [Object] sent if the connection is in parallel mode
+ def parallel_manager; end
+
+ # @return [Object] sent if the connection is in parallel mode
+ def parallel_manager=(_); end
+
+ # @return [Hash]
+ def params; end
+
+ # @return [Hash]
+ def params=(_); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def params_encoder(*args, **_arg1, &block); end
+
+ # source://faraday//lib/faraday/options/env.rb#145
+ def parse_body?; end
+
+ # @return [String]
+ def reason_phrase; end
+
+ # @return [String]
+ def reason_phrase=(_); end
+
+ # Options for configuring the request.
+ #
+ # - `:timeout` - time limit for the entire request (Integer in
+ # seconds)
+ # - `:open_timeout` - time limit for just the connection phase (e.g.
+ # handshake) (Integer in seconds)
+ # - `:read_timeout` - time limit for the first response byte received from
+ # the server (Integer in seconds)
+ # - `:write_timeout` - time limit for the client to send the request to the
+ # server (Integer in seconds)
+ # - `:on_data` - Proc for streaming
+ # - `:proxy` - Hash of proxy options
+ # - `:uri` - Proxy server URI
+ # - `:user` - Proxy server username
+ # - `:password` - Proxy server password
+ #
+ # @return [Hash] options for configuring the request.
+ def request; end
+
+ # Options for configuring the request.
+ #
+ # - `:timeout` - time limit for the entire request (Integer in
+ # seconds)
+ # - `:open_timeout` - time limit for just the connection phase (e.g.
+ # handshake) (Integer in seconds)
+ # - `:read_timeout` - time limit for the first response byte received from
+ # the server (Integer in seconds)
+ # - `:write_timeout` - time limit for the client to send the request to the
+ # server (Integer in seconds)
+ # - `:on_data` - Proc for streaming
+ # - `:proxy` - Hash of proxy options
+ # - `:uri` - Proxy server URI
+ # - `:user` - Proxy server username
+ # - `:password` - Proxy server password
+ #
+ # @return [Hash] options for configuring the request.
+ def request=(_); end
+
+ def request_body; end
+ def request_body=(_); end
+
+ # @return [Hash] HTTP Headers to be sent to the server.
+ def request_headers; end
+
+ # @return [Hash] HTTP Headers to be sent to the server.
+ def request_headers=(_); end
+
+ # @return [Response]
+ def response; end
+
+ # @return [Response]
+ def response=(_); end
+
+ def response_body; end
+ def response_body=(_); end
+
+ # @return [Hash] HTTP headers from the server
+ def response_headers; end
+
+ # @return [Hash] HTTP headers from the server
+ def response_headers=(_); end
+
+ # @return [Hash] options for configuring SSL requests
+ def ssl; end
+
+ # @return [Hash] options for configuring SSL requests
+ def ssl=(_); end
+
+ # @return [Integer] HTTP response status code
+ def status; end
+
+ # @return [Integer] HTTP response status code
+ def status=(_); end
+
+ # source://faraday//lib/faraday/options/env.rb#169
+ def stream_response(&block); end
+
+ # source://faraday//lib/faraday/options/env.rb#165
+ def stream_response?; end
+
+ # source://faraday//lib/faraday/options/env.rb#127
+ def success?; end
+
+ # @return [URI] URI instance for the current request.
+ def url; end
+
+ # @return [URI] URI instance for the current request.
+ def url=(_); end
+
+ class << self
+ def [](*_arg0); end
+
+ # source://faraday//lib/faraday/options/env.rb#80
+ def from(value); end
+
+ def inspect; end
+ def keyword_init?; end
+
+ # source://faraday//lib/faraday/options/env.rb#200
+ def member_set; end
+
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://faraday//lib/faraday/options/env.rb#61
+Faraday::Env::ContentLength = T.let(T.unsafe(nil), String)
+
+# source://faraday//lib/faraday/options/env.rb#67
+Faraday::Env::MethodsWithBodies = T.let(T.unsafe(nil), Set)
+
+# source://faraday//lib/faraday/options/env.rb#62
+Faraday::Env::StatusesWithoutBody = T.let(T.unsafe(nil), Set)
+
+# source://faraday//lib/faraday/options/env.rb#63
+Faraday::Env::SuccessfulStatuses = T.let(T.unsafe(nil), Range)
+
+# Faraday error base class.
+#
+# source://faraday//lib/faraday/error.rb#6
+class Faraday::Error < ::StandardError
+ # @return [Error] a new instance of Error
+ #
+ # source://faraday//lib/faraday/error.rb#9
+ def initialize(exc = T.unsafe(nil), response = T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/error.rb#15
+ def backtrace; end
+
+ # source://faraday//lib/faraday/error.rb#23
+ def inspect; end
+
+ # Returns the value of attribute response.
+ #
+ # source://faraday//lib/faraday/error.rb#7
+ def response; end
+
+ # source://faraday//lib/faraday/error.rb#43
+ def response_body; end
+
+ # source://faraday//lib/faraday/error.rb#37
+ def response_headers; end
+
+ # source://faraday//lib/faraday/error.rb#31
+ def response_status; end
+
+ # Returns the value of attribute wrapped_exception.
+ #
+ # source://faraday//lib/faraday/error.rb#7
+ def wrapped_exception; end
+
+ protected
+
+ # Pulls out potential parent exception and response hash.
+ #
+ # source://faraday//lib/faraday/error.rb#81
+ def exc_msg_and_response(exc, response = T.unsafe(nil)); end
+
+ # Pulls out potential parent exception and response hash, storing them in
+ # instance variables.
+ # exc - Either an Exception, a string message, or a response hash.
+ # response - Hash
+ # :status - Optional integer HTTP response status
+ # :headers - String key/value hash of HTTP response header
+ # values.
+ # :body - Optional string HTTP response body.
+ # :request - Hash
+ # :method - Symbol with the request HTTP method.
+ # :url - URI object with the url requested.
+ # :url_path - String with the url path requested.
+ # :params - String key/value hash of query params
+ # present in the request.
+ # :headers - String key/value hash of HTTP request
+ # header values.
+ # :body - String HTTP request body.
+ #
+ # If a subclass has to call this, then it should pass a string message
+ # to `super`. See NilStatusError.
+ #
+ # source://faraday//lib/faraday/error.rb#71
+ def exc_msg_and_response!(exc, response = T.unsafe(nil)); end
+end
+
+# FlatParamsEncoder manages URI params as a flat hash. Any Array values repeat
+# the parameter multiple times.
+#
+# source://faraday//lib/faraday/encoders/flat_params_encoder.rb#6
+module Faraday::FlatParamsEncoder
+ class << self
+ # Decode converts the given URI querystring into a hash.
+ #
+ # @example
+ #
+ # decode('a=one&a=two&a=three&b=true&c=C')
+ # # => {"a"=>["one", "two", "three"], "b"=>"true", "c"=>"C"}
+ # @param query [String] query arguments to parse.
+ # @return [Hash] parsed keys and value strings from the querystring.
+ #
+ # source://faraday//lib/faraday/encoders/flat_params_encoder.rb#74
+ def decode(query); end
+
+ # Encode converts the given param into a URI querystring. Keys and values
+ # will converted to strings and appropriately escaped for the URI.
+ #
+ # @example
+ #
+ # encode({a: %w[one two three], b: true, c: "C"})
+ # # => 'a=one&a=two&a=three&b=true&c=C'
+ # @param params [Hash] query arguments to convert.
+ # @return [String] the URI querystring (without the leading '?')
+ #
+ # source://faraday//lib/faraday/encoders/flat_params_encoder.rb#23
+ def encode(params); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def escape(*args, **_arg1, &block); end
+
+ # Returns the value of attribute sort_params.
+ #
+ # source://faraday//lib/faraday/encoders/flat_params_encoder.rb#99
+ def sort_params; end
+
+ # Sets the attribute sort_params
+ #
+ # @param value the value to set the attribute sort_params to.
+ #
+ # source://faraday//lib/faraday/encoders/flat_params_encoder.rb#99
+ def sort_params=(_arg0); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def unescape(*args, **_arg1, &block); end
+ end
+end
+
+# Raised by Faraday::Response::RaiseError in case of a 403 response.
+#
+# source://faraday//lib/faraday/error.rb#104
+class Faraday::ForbiddenError < ::Faraday::ClientError; end
+
+# source://faraday//lib/faraday/logging/formatter.rb#6
+module Faraday::Logging; end
+
+# Serves as an integration point to customize logging
+#
+# source://faraday//lib/faraday/logging/formatter.rb#8
+class Faraday::Logging::Formatter
+ extend ::Forwardable
+
+ # @return [Formatter] a new instance of Formatter
+ #
+ # source://faraday//lib/faraday/logging/formatter.rb#14
+ def initialize(logger:, options:); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def debug(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def error(*args, **_arg1, &block); end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#41
+ def exception(exc); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def fatal(*args, **_arg1, &block); end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#52
+ def filter(filter_word, filter_replacement); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def info(*args, **_arg1, &block); end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#25
+ def request(env); end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#34
+ def response(env); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def warn(*args, **_arg1, &block); end
+
+ private
+
+ # source://faraday//lib/faraday/logging/formatter.rb#98
+ def apply_filters(output); end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#64
+ def dump_body(body); end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#58
+ def dump_headers(headers); end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#113
+ def log_body(type, body); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/logging/formatter.rb#85
+ def log_body?(type); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/logging/formatter.rb#94
+ def log_errors?; end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#109
+ def log_headers(type, headers); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/logging/formatter.rb#76
+ def log_headers?(type); end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#105
+ def log_level; end
+
+ # source://faraday//lib/faraday/logging/formatter.rb#72
+ def pretty_inspect(body); end
+end
+
+# source://faraday//lib/faraday/logging/formatter.rb#11
+Faraday::Logging::Formatter::DEFAULT_OPTIONS = T.let(T.unsafe(nil), Hash)
+
+# source://faraday//lib/faraday/methods.rb#5
+Faraday::METHODS_WITH_BODY = T.let(T.unsafe(nil), Array)
+
+# source://faraday//lib/faraday/methods.rb#4
+Faraday::METHODS_WITH_QUERY = T.let(T.unsafe(nil), Array)
+
+# Middleware is the basic base class of any Faraday middleware.
+#
+# source://faraday//lib/faraday/middleware.rb#5
+class Faraday::Middleware
+ extend ::Faraday::MiddlewareRegistry
+
+ # @return [Middleware] a new instance of Middleware
+ #
+ # source://faraday//lib/faraday/middleware.rb#10
+ def initialize(app = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # Returns the value of attribute app.
+ #
+ # source://faraday//lib/faraday/middleware.rb#8
+ def app; end
+
+ # source://faraday//lib/faraday/middleware.rb#15
+ def call(env); end
+
+ # source://faraday//lib/faraday/middleware.rb#25
+ def close; end
+
+ # Returns the value of attribute options.
+ #
+ # source://faraday//lib/faraday/middleware.rb#8
+ def options; end
+end
+
+# Adds the ability for other modules to register and lookup
+# middleware classes.
+#
+# source://faraday//lib/faraday/middleware_registry.rb#8
+module Faraday::MiddlewareRegistry
+ # Lookup middleware class with a registered Symbol shortcut.
+ #
+ # @example
+ #
+ # module Faraday
+ # class Whatever < Middleware
+ # register_middleware(foo: Whatever)
+ # end
+ # end
+ #
+ # Faraday::Middleware.lookup_middleware(:foo)
+ # # => Faraday::Whatever
+ # @param key [Symbol] key for the registered middleware.
+ # @raise [Faraday::Error] if given key is not registered
+ # @return [Class] a middleware Class.
+ #
+ # source://faraday//lib/faraday/middleware_registry.rb#55
+ def lookup_middleware(key); end
+
+ # Register middleware class(es) on the current module.
+ #
+ # @example Lookup by a constant
+ #
+ # module Faraday
+ # class Whatever < Middleware
+ # # Middleware looked up by :foo returns Faraday::Whatever::Foo.
+ # register_middleware(foo: Whatever)
+ # end
+ # end
+ # @param mappings [Hash] Middleware mappings from a lookup symbol to a middleware class.
+ # @return [void]
+ #
+ # source://faraday//lib/faraday/middleware_registry.rb#26
+ def register_middleware(**mappings); end
+
+ # source://faraday//lib/faraday/middleware_registry.rb#9
+ def registered_middleware; end
+
+ # Unregister a previously registered middleware class.
+ #
+ # @param key [Symbol] key for the registered middleware.
+ #
+ # source://faraday//lib/faraday/middleware_registry.rb#35
+ def unregister_middleware(key); end
+
+ private
+
+ # source://faraday//lib/faraday/middleware_registry.rb#67
+ def load_middleware(key); end
+
+ # source://faraday//lib/faraday/middleware_registry.rb#62
+ def middleware_mutex(&block); end
+end
+
+# This is the default encoder for Faraday requests.
+# Using this encoder, parameters will be encoded respecting their structure,
+# so you can send objects such as Arrays or Hashes as parameters
+# for your requests.
+#
+# source://faraday//lib/faraday/encoders/nested_params_encoder.rb#168
+module Faraday::NestedParamsEncoder
+ extend ::Faraday::EncodeMethods
+ extend ::Faraday::DecodeMethods
+
+ class << self
+ # Returns the value of attribute array_indices.
+ #
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#170
+ def array_indices; end
+
+ # Sets the attribute array_indices
+ #
+ # @param value the value to set the attribute array_indices to.
+ #
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#170
+ def array_indices=(_arg0); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def escape(*args, **_arg1, &block); end
+
+ # Returns the value of attribute sort_params.
+ #
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#170
+ def sort_params; end
+
+ # Sets the attribute sort_params
+ #
+ # @param value the value to set the attribute sort_params to.
+ #
+ # source://faraday//lib/faraday/encoders/nested_params_encoder.rb#170
+ def sort_params=(_arg0); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def unescape(*args, **_arg1, &block); end
+ end
+end
+
+# Raised by Faraday::Response::RaiseError in case of a nil status in response.
+#
+# source://faraday//lib/faraday/error.rb#139
+class Faraday::NilStatusError < ::Faraday::ServerError
+ # @return [NilStatusError] a new instance of NilStatusError
+ #
+ # source://faraday//lib/faraday/error.rb#140
+ def initialize(exc, response = T.unsafe(nil)); end
+end
+
+# Subclasses Struct with some special helpers for converting from a Hash to
+# a Struct.
+#
+# source://faraday//lib/faraday/options.rb#6
+class Faraday::Options < ::Struct
+ # source://faraday//lib/faraday/options.rb#186
+ def [](key); end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#46
+ def clear; end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#71
+ def deep_dup; end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#39
+ def delete(key); end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#13
+ def each; end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#106
+ def each_key(&block); end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#120
+ def each_value(&block); end
+
+ # Public
+ #
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/options.rb#101
+ def empty?; end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#76
+ def fetch(key, *args); end
+
+ # Public
+ #
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/options.rb#113
+ def has_key?(key); end
+
+ # Public
+ #
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/options.rb#127
+ def has_value?(value); end
+
+ # Internal
+ #
+ # source://faraday//lib/faraday/options.rb#144
+ def inspect; end
+
+ # Public
+ #
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/options.rb#113
+ def key?(key); end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#96
+ def keys; end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#66
+ def merge(other); end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#51
+ def merge!(other); end
+
+ # source://faraday//lib/faraday/options.rb#195
+ def symbolized_key_set; end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#134
+ def to_hash; end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#22
+ def update(obj); end
+
+ # Public
+ #
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/options.rb#127
+ def value?(value); end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#91
+ def values_at(*keys); end
+
+ class << self
+ # Internal
+ #
+ # source://faraday//lib/faraday/options.rb#166
+ def attribute_options; end
+
+ # source://faraday//lib/faraday/options.rb#205
+ def fetch_error_class; end
+
+ # Public
+ #
+ # source://faraday//lib/faraday/options.rb#8
+ def from(value); end
+
+ # @private
+ #
+ # source://faraday//lib/faraday/options.rb#199
+ def inherited(subclass); end
+
+ # source://faraday//lib/faraday/options.rb#170
+ def memoized(key, &block); end
+
+ # source://faraday//lib/faraday/options.rb#182
+ def memoized_attributes; end
+
+ # Internal
+ #
+ # source://faraday//lib/faraday/options.rb#156
+ def options(mapping); end
+
+ # Internal
+ #
+ # source://faraday//lib/faraday/options.rb#161
+ def options_for(key); end
+ end
+end
+
+# Raised by middlewares that parse the response, like the JSON response middleware.
+#
+# source://faraday//lib/faraday/error.rb#155
+class Faraday::ParsingError < ::Faraday::Error; end
+
+# Raised by Faraday::Response::RaiseError in case of a 407 response.
+#
+# source://faraday//lib/faraday/error.rb#112
+class Faraday::ProxyAuthError < ::Faraday::ClientError; end
+
+# ProxyOptions contains the configurable properties for the proxy
+# configuration used when making an HTTP request.
+#
+# source://faraday//lib/faraday/options/proxy_options.rb#8
+class Faraday::ProxyOptions < ::Faraday::Options
+ extend ::Forwardable
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def host(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def host=(*args, **_arg1, &block); end
+
+ # source://faraday//lib/faraday/options.rb#178
+ def password; end
+
+ def password=(_); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def path(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def path=(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def port(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def port=(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def scheme(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def scheme=(*args, **_arg1, &block); end
+
+ def uri; end
+ def uri=(_); end
+
+ # source://faraday//lib/faraday/options.rb#178
+ def user; end
+
+ def user=(_); end
+
+ class << self
+ def [](*_arg0); end
+
+ # source://faraday//lib/faraday/options/proxy_options.rb#13
+ def from(value); end
+
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# A Builder that processes requests into responses by passing through an inner
+# middleware stack (heavily inspired by Rack).
+#
+# @example
+# Faraday::Connection.new(url: 'http://httpbingo.org') do |builder|
+# builder.request :url_encoded # Faraday::Request::UrlEncoded
+# builder.adapter :net_http # Faraday::Adapter::NetHttp
+# end
+#
+# source://faraday//lib/faraday/rack_builder.rb#15
+class Faraday::RackBuilder
+ # @return [RackBuilder] a new instance of RackBuilder
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#61
+ def initialize(&block); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#179
+ def ==(other); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#79
+ def [](idx); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#110
+ def adapter(klass = T.unsafe(nil), *args, **_arg2, &block); end
+
+ # The "rack app" wrapped in middleware. All requests are sent here.
+ #
+ # The builder is responsible for creating the app object. After this,
+ # the builder gets locked to ensure no further modifications are made
+ # to the middleware stack.
+ #
+ # Returns an object that responds to `call` and returns a Response.
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#163
+ def app; end
+
+ # source://faraday//lib/faraday/rack_builder.rb#73
+ def build; end
+
+ # ENV Keys
+ # :http_method - a symbolized request HTTP method (:get, :post)
+ # :body - the request body that will eventually be converted to a string.
+ # :url - URI instance for the current request.
+ # :status - HTTP response status code
+ # :request_headers - hash of HTTP Headers to be sent to the server
+ # :response_headers - Hash of HTTP headers from the server
+ # :parallel_manager - sent if the connection is in parallel mode
+ # :request - Hash of options for configuring the request.
+ # :timeout - open/read timeout Integer in seconds
+ # :open_timeout - read timeout Integer in seconds
+ # :proxy - Hash of proxy options
+ # :uri - Proxy Server URI
+ # :user - Proxy server username
+ # :password - Proxy server password
+ # :ssl - Hash of options for configuring SSL requests.
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#201
+ def build_env(connection, request); end
+
+ # Processes a Request into a Response by passing it through this Builder's
+ # middleware stack.
+ #
+ # @param connection [Faraday::Connection]
+ # @param request [Faraday::Request]
+ # @return [Faraday::Response]
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#152
+ def build_response(connection, request); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#140
+ def delete(handler); end
+
+ # Returns the value of attribute handlers.
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#19
+ def handlers; end
+
+ # Sets the attribute handlers
+ #
+ # @param value the value to set the attribute handlers to.
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#19
+ def handlers=(_arg0); end
+
+ # methods to push onto the various positions in the stack:
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#119
+ def insert(index, *args, **_arg2, &block); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#128
+ def insert_after(index, *args, **_arg2, &block); end
+
+ # methods to push onto the various positions in the stack:
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#119
+ def insert_before(index, *args, **_arg2, &block); end
+
+ # Locks the middleware stack to ensure no further modifications are made.
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#84
+ def lock!; end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#88
+ def locked?; end
+
+ # source://faraday//lib/faraday/rack_builder.rb#102
+ def request(key, *args, **_arg2, &block); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#106
+ def response(key, *args, **_arg2, &block); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#133
+ def swap(index, *args, **_arg2, &block); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#171
+ def to_app; end
+
+ # source://faraday//lib/faraday/rack_builder.rb#92
+ def use(klass, *args, **_arg2, &block); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#233
+ def adapter_set?; end
+
+ # source://faraday//lib/faraday/rack_builder.rb#245
+ def assert_index(index); end
+
+ # @raise [MISSING_ADAPTER_ERROR]
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#229
+ def ensure_adapter!; end
+
+ # source://faraday//lib/faraday/rack_builder.rb#67
+ def initialize_dup(original); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#237
+ def is_adapter?(klass); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#223
+ def raise_if_adapter(klass); end
+
+ # @raise [StackLocked]
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#219
+ def raise_if_locked; end
+
+ # source://faraday//lib/faraday/rack_builder.rb#241
+ def use_symbol(mod, key, *args, **_arg3, &block); end
+end
+
+# borrowed from ActiveSupport::Dependencies::Reference &
+# ActionDispatch::MiddlewareStack::Middleware
+#
+# source://faraday//lib/faraday/rack_builder.rb#26
+class Faraday::RackBuilder::Handler
+ # source://faraday//lib/faraday/rack_builder.rb#31
+ def initialize(klass, *args, **_arg2, &block); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#46
+ def ==(other); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#56
+ def build(app = T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/rack_builder.rb#42
+ def inspect; end
+
+ # source://faraday//lib/faraday/rack_builder.rb#38
+ def klass; end
+
+ # Returns the value of attribute name.
+ #
+ # source://faraday//lib/faraday/rack_builder.rb#29
+ def name; end
+end
+
+# source://faraday//lib/faraday/rack_builder.rb#27
+Faraday::RackBuilder::Handler::REGISTRY = T.let(T.unsafe(nil), Faraday::AdapterRegistry)
+
+# source://faraday//lib/faraday/rack_builder.rb#214
+Faraday::RackBuilder::LOCK_ERR = T.let(T.unsafe(nil), String)
+
+# source://faraday//lib/faraday/rack_builder.rb#215
+Faraday::RackBuilder::MISSING_ADAPTER_ERROR = T.let(T.unsafe(nil), String)
+
+# Used to detect missing arguments
+#
+# source://faraday//lib/faraday/rack_builder.rb#17
+Faraday::RackBuilder::NO_ARGUMENT = T.let(T.unsafe(nil), Object)
+
+# Error raised when trying to modify the stack after calling `lock!`
+#
+# source://faraday//lib/faraday/rack_builder.rb#22
+class Faraday::RackBuilder::StackLocked < ::RuntimeError; end
+
+# Used to setup URLs, params, headers, and the request body in a sane manner.
+#
+# @example
+# @connection.post do |req|
+# req.url 'http://localhost', 'a' => '1' # 'http://localhost?a=1'
+# req.headers['b'] = '2' # Header
+# req.params['c'] = '3' # GET Param
+# req['b'] = '2' # also Header
+# req.body = 'abc'
+# end
+#
+# source://faraday//lib/faraday/request.rb#27
+class Faraday::Request < ::Struct
+ extend ::Faraday::MiddlewareRegistry
+
+ # @param key [Object] key to look up in headers
+ # @return [Object] value of the given header name
+ #
+ # source://faraday//lib/faraday/request.rb#92
+ def [](key); end
+
+ # @param key [Object] key of header to write
+ # @param value [Object] value of header
+ #
+ # source://faraday//lib/faraday/request.rb#98
+ def []=(key, value); end
+
+ # @return [String] body
+ def body; end
+
+ # @return [String] body
+ def body=(_); end
+
+ # @return [Faraday::Utils::Headers] headers
+ def headers; end
+
+ # Replace request headers, preserving the existing hash type.
+ #
+ # @param hash [Hash] new headers
+ #
+ # source://faraday//lib/faraday/request.rb#61
+ def headers=(hash); end
+
+ # @return [Symbol] the HTTP method of the Request
+ def http_method; end
+
+ # @return [Symbol] the HTTP method of the Request
+ def http_method=(_); end
+
+ # Marshal serialization support.
+ #
+ # @return [Hash] the hash ready to be serialized in Marshal.
+ #
+ # source://faraday//lib/faraday/request.rb#105
+ def marshal_dump; end
+
+ # Marshal serialization support.
+ # Restores the instance variables according to the +serialised+.
+ #
+ # @param serialised [Hash] the serialised object.
+ #
+ # source://faraday//lib/faraday/request.rb#119
+ def marshal_load(serialised); end
+
+ # @return [RequestOptions] options
+ def options; end
+
+ # @return [RequestOptions] options
+ def options=(_); end
+
+ # @return [Hash] query parameters
+ def params; end
+
+ # Replace params, preserving the existing hash type.
+ #
+ # @param hash [Hash] new params
+ #
+ # source://faraday//lib/faraday/request.rb#49
+ def params=(hash); end
+
+ # @return [URI, String] the path
+ def path; end
+
+ # @return [URI, String] the path
+ def path=(_); end
+
+ # @return [Env] the Env for this Request
+ #
+ # source://faraday//lib/faraday/request.rb#129
+ def to_env(connection); end
+
+ # Update path and params.
+ #
+ # @param path [URI, String]
+ # @param params [Hash, nil]
+ # @return [void]
+ #
+ # source://faraday//lib/faraday/request.rb#74
+ def url(path, params = T.unsafe(nil)); end
+
+ private
+
+ def member_get(_arg0); end
+ def member_set(_arg0, _arg1); end
+
+ class << self
+ def [](*_arg0); end
+
+ # @param request_method [String]
+ # @return [Request]
+ # @yield [request] for block customization, if block given
+ # @yieldparam request [Request]
+ #
+ # source://faraday//lib/faraday/request.rb#39
+ def create(request_method); end
+
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# Request middleware for the Authorization HTTP header
+#
+# source://faraday//lib/faraday/request/authorization.rb#6
+class Faraday::Request::Authorization < ::Faraday::Middleware
+ # @param app [#call]
+ # @param type [String, Symbol] Type of Authorization
+ # @param params [Array] parameters to build the Authorization header.
+ # If the type is `:basic`, then these can be a login and password pair.
+ # Otherwise, a single value is expected that will be appended after the type.
+ # This value can be a proc or an object responding to `.call`, in which case
+ # it will be invoked on each request.
+ # @return [Authorization] a new instance of Authorization
+ #
+ # source://faraday//lib/faraday/request/authorization.rb#16
+ def initialize(app, type, *params); end
+
+ # @param env [Faraday::Env]
+ #
+ # source://faraday//lib/faraday/request/authorization.rb#23
+ def on_request(env); end
+
+ private
+
+ # @param type [String, Symbol]
+ # @param env [Faraday::Env]
+ # @param params [Array]
+ # @return [String] a header value
+ #
+ # source://faraday//lib/faraday/request/authorization.rb#35
+ def header_from(type, env, *params); end
+end
+
+# source://faraday//lib/faraday/request/authorization.rb#7
+Faraday::Request::Authorization::KEY = T.let(T.unsafe(nil), String)
+
+# Middleware for instrumenting Requests.
+#
+# source://faraday//lib/faraday/request/instrumentation.rb#6
+class Faraday::Request::Instrumentation < ::Faraday::Middleware
+ # Instruments requests using Active Support.
+ #
+ # Measures time spent only for synchronous requests.
+ #
+ # @example Using ActiveSupport::Notifications to measure time spent
+ # for Faraday requests.
+ # ActiveSupport::Notifications
+ # .subscribe('request.faraday') do |name, starts, ends, _, env|
+ # url = env[:url]
+ # http_method = env[:method].to_s.upcase
+ # duration = ends - starts
+ # $stderr.puts '[%s] %s %s (%.3f s)' %
+ # [url.host, http_method, url.request_uri, duration]
+ # end
+ # @option options
+ # @option options
+ # @param app [#call]
+ # @param options [nil, Hash] Options hash
+ # @return [Instrumentation] a new instance of Instrumentation
+ #
+ # source://faraday//lib/faraday/request/instrumentation.rb#42
+ def initialize(app, options = T.unsafe(nil)); end
+
+ # @param env [Faraday::Env]
+ #
+ # source://faraday//lib/faraday/request/instrumentation.rb#49
+ def call(env); end
+end
+
+# Options class used in Request::Instrumentation class.
+#
+# source://faraday//lib/faraday/request/instrumentation.rb#8
+class Faraday::Request::Instrumentation::Options < ::Faraday::Options
+ # source://faraday//lib/faraday/request/instrumentation.rb#17
+ def instrumenter; end
+
+ def instrumenter=(_); end
+
+ # source://faraday//lib/faraday/request/instrumentation.rb#11
+ def name; end
+
+ def name=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# Request middleware that encodes the body as JSON.
+#
+# Processes only requests with matching Content-type or those without a type.
+# If a request doesn't have a type but has a body, it sets the Content-type
+# to JSON MIME-type.
+#
+# Doesn't try to encode bodies that already are in string form.
+#
+# source://faraday//lib/faraday/request/json.rb#14
+class Faraday::Request::Json < ::Faraday::Middleware
+ # source://faraday//lib/faraday/request/json.rb#18
+ def on_request(env); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/request/json.rb#42
+ def body?(env); end
+
+ # source://faraday//lib/faraday/request/json.rb#26
+ def encode(data); end
+
+ # @yield []
+ #
+ # source://faraday//lib/faraday/request/json.rb#30
+ def match_content_type(env); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/request/json.rb#37
+ def process_request?(env); end
+
+ # source://faraday//lib/faraday/request/json.rb#55
+ def request_type(env); end
+end
+
+# source://faraday//lib/faraday/request/json.rb#15
+Faraday::Request::Json::MIME_TYPE = T.let(T.unsafe(nil), String)
+
+# source://faraday//lib/faraday/request/json.rb#16
+Faraday::Request::Json::MIME_TYPE_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# Middleware for supporting urlencoded requests.
+#
+# source://faraday//lib/faraday/request/url_encoded.rb#6
+class Faraday::Request::UrlEncoded < ::Faraday::Middleware
+ # Encodes as "application/x-www-form-urlencoded" if not already encoded or
+ # of another type.
+ #
+ # @param env [Faraday::Env]
+ #
+ # source://faraday//lib/faraday/request/url_encoded.rb#20
+ def call(env); end
+
+ # @param env [Faraday::Env]
+ # @yield [request_body] Body of the request
+ #
+ # source://faraday//lib/faraday/request/url_encoded.rb#30
+ def match_content_type(env); end
+
+ # @param env [Faraday::Env]
+ # @return [Boolean] True if the request has a body and its Content-Type is
+ # urlencoded.
+ #
+ # source://faraday//lib/faraday/request/url_encoded.rb#43
+ def process_request?(env); end
+
+ # @param env [Faraday::Env]
+ # @return [String]
+ #
+ # source://faraday//lib/faraday/request/url_encoded.rb#51
+ def request_type(env); end
+
+ class << self
+ # Returns the value of attribute mime_type.
+ #
+ # source://faraday//lib/faraday/request/url_encoded.rb#12
+ def mime_type; end
+
+ # Sets the attribute mime_type
+ #
+ # @param value the value to set the attribute mime_type to.
+ #
+ # source://faraday//lib/faraday/request/url_encoded.rb#12
+ def mime_type=(_arg0); end
+ end
+end
+
+# source://faraday//lib/faraday/request/url_encoded.rb#8
+Faraday::Request::UrlEncoded::CONTENT_TYPE = T.let(T.unsafe(nil), String)
+
+# RequestOptions contains the configurable properties for a Faraday request.
+#
+# source://faraday//lib/faraday/options/request_options.rb#7
+class Faraday::RequestOptions < ::Faraday::Options
+ # source://faraday//lib/faraday/options/request_options.rb#11
+ def []=(key, value); end
+
+ def bind; end
+ def bind=(_); end
+ def boundary; end
+ def boundary=(_); end
+ def context; end
+ def context=(_); end
+ def oauth; end
+ def oauth=(_); end
+ def on_data; end
+ def on_data=(_); end
+ def open_timeout; end
+ def open_timeout=(_); end
+ def params_encoder; end
+ def params_encoder=(_); end
+ def proxy; end
+ def proxy=(_); end
+ def read_timeout; end
+ def read_timeout=(_); end
+
+ # source://faraday//lib/faraday/options/request_options.rb#19
+ def stream_response?; end
+
+ def timeout; end
+ def timeout=(_); end
+ def write_timeout; end
+ def write_timeout=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# Raised by Faraday::Response::RaiseError in case of a 408 response.
+#
+# source://faraday//lib/faraday/error.rb#116
+class Faraday::RequestTimeoutError < ::Faraday::ClientError; end
+
+# Raised by Faraday::Response::RaiseError in case of a 404 response.
+#
+# source://faraday//lib/faraday/error.rb#108
+class Faraday::ResourceNotFound < ::Faraday::ClientError; end
+
+# Response represents an HTTP response from making an HTTP request.
+#
+# source://faraday//lib/faraday/response.rb#7
+class Faraday::Response
+ extend ::Forwardable
+ extend ::Faraday::MiddlewareRegistry
+
+ # @return [Response] a new instance of Response
+ #
+ # source://faraday//lib/faraday/response.rb#11
+ def initialize(env = T.unsafe(nil)); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def [](*args, **_arg1, &block); end
+
+ # Expand the env with more properties, without overriding existing ones.
+ # Useful for applying request params after restoring a marshalled Response.
+ #
+ # source://faraday//lib/faraday/response.rb#80
+ def apply_request(request_env); end
+
+ # source://faraday//lib/faraday/response.rb#32
+ def body; end
+
+ # Returns the value of attribute env.
+ #
+ # source://faraday//lib/faraday/response.rb#16
+ def env; end
+
+ # source://faraday//lib/faraday/response.rb#49
+ def finish(env); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/response.rb#36
+ def finished?; end
+
+ # source://faraday//lib/faraday/response.rb#26
+ def headers; end
+
+ # because @on_complete_callbacks cannot be marshalled
+ #
+ # source://faraday//lib/faraday/response.rb#70
+ def marshal_dump; end
+
+ # source://faraday//lib/faraday/response.rb#74
+ def marshal_load(env); end
+
+ # source://faraday//lib/faraday/response.rb#40
+ def on_complete(&block); end
+
+ # source://faraday//lib/faraday/response.rb#22
+ def reason_phrase; end
+
+ # source://faraday//lib/faraday/response.rb#18
+ def status; end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/response.rb#57
+ def success?; end
+
+ # source://faraday//lib/faraday/response.rb#61
+ def to_hash; end
+end
+
+# Parse response bodies as JSON.
+#
+# source://faraday//lib/faraday/response/json.rb#8
+class Faraday::Response::Json < ::Faraday::Middleware
+ # @return [Json] a new instance of Json
+ #
+ # source://faraday//lib/faraday/response/json.rb#9
+ def initialize(app = T.unsafe(nil), parser_options: T.unsafe(nil), content_type: T.unsafe(nil), preserve_raw: T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/response/json.rb#16
+ def on_complete(env); end
+
+ private
+
+ # source://faraday//lib/faraday/response/json.rb#29
+ def parse(body); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/response/json.rb#33
+ def parse_response?(env); end
+
+ # source://faraday//lib/faraday/response/json.rb#22
+ def process_response(env); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/response/json.rb#38
+ def process_response_type?(env); end
+
+ # source://faraday//lib/faraday/response/json.rb#45
+ def response_type(env); end
+end
+
+# Logger is a middleware that logs internal events in the HTTP request
+# lifecycle to a given Logger object. By default, this logs to STDOUT. See
+# Faraday::Logging::Formatter to see specifically what is logged.
+#
+# source://faraday//lib/faraday/response/logger.rb#12
+class Faraday::Response::Logger < ::Faraday::Middleware
+ # @return [Logger] a new instance of Logger
+ # @yield [@formatter]
+ #
+ # source://faraday//lib/faraday/response/logger.rb#13
+ def initialize(app, logger = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/response/logger.rb#21
+ def call(env); end
+
+ # source://faraday//lib/faraday/response/logger.rb#26
+ def on_complete(env); end
+
+ # source://faraday//lib/faraday/response/logger.rb#30
+ def on_error(exc); end
+end
+
+# RaiseError is a Faraday middleware that raises exceptions on common HTTP
+# client or server error responses.
+#
+# source://faraday//lib/faraday/response/raise_error.rb#7
+class Faraday::Response::RaiseError < ::Faraday::Middleware
+ # source://faraday//lib/faraday/response/raise_error.rb#13
+ def on_complete(env); end
+
+ # source://faraday//lib/faraday/response/raise_error.rb#73
+ def query_params(env); end
+
+ # Returns a hash of response data with the following keys:
+ # - status
+ # - headers
+ # - body
+ # - request
+ #
+ # The `request` key is omitted when the middleware is explicitly
+ # configured with the option `include_request: false`.
+ #
+ # source://faraday//lib/faraday/response/raise_error.rb#50
+ def response_values(env); end
+end
+
+# source://faraday//lib/faraday/response/raise_error.rb#9
+Faraday::Response::RaiseError::ClientErrorStatuses = T.let(T.unsafe(nil), Range)
+
+# source://faraday//lib/faraday/response/raise_error.rb#10
+Faraday::Response::RaiseError::ServerErrorStatuses = T.let(T.unsafe(nil), Range)
+
+# A unified client error for SSL errors.
+#
+# source://faraday//lib/faraday/error.rb#151
+class Faraday::SSLError < ::Faraday::Error; end
+
+# SSL-related options.
+#
+# source://faraday//lib/faraday/options/ssl_options.rb#50
+class Faraday::SSLOptions < ::Faraday::Options
+ # @return [String] CA file
+ def ca_file; end
+
+ # @return [String] CA file
+ def ca_file=(_); end
+
+ # @return [String] CA path
+ def ca_path; end
+
+ # @return [String] CA path
+ def ca_path=(_); end
+
+ # @return [OpenSSL::X509::Store] certificate store
+ def cert_store; end
+
+ # @return [OpenSSL::X509::Store] certificate store
+ def cert_store=(_); end
+
+ # @return [OpenSSL::X509::Certificate] certificate (Excon only)
+ def certificate; end
+
+ # @return [OpenSSL::X509::Certificate] certificate (Excon only)
+ def certificate=(_); end
+
+ # @return [String, OpenSSL::X509::Certificate] client certificate
+ def client_cert; end
+
+ # @return [String, OpenSSL::X509::Certificate] client certificate
+ def client_cert=(_); end
+
+ # @return [String, OpenSSL::PKey::RSA, OpenSSL::PKey::DSA] client key
+ def client_key; end
+
+ # @return [String, OpenSSL::PKey::RSA, OpenSSL::PKey::DSA] client key
+ def client_key=(_); end
+
+ # source://faraday//lib/faraday/options/ssl_options.rb#61
+ def disable?; end
+
+ # @return [String, Symbol] maximum SSL version (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL/SSLContext.html#method-i-max_version-3D)
+ def max_version; end
+
+ # @return [String, Symbol] maximum SSL version (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL/SSLContext.html#method-i-max_version-3D)
+ def max_version=(_); end
+
+ # @return [String, Symbol] minimum SSL version (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL/SSLContext.html#method-i-min_version-3D)
+ def min_version; end
+
+ # @return [String, Symbol] minimum SSL version (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL/SSLContext.html#method-i-min_version-3D)
+ def min_version=(_); end
+
+ # @return [OpenSSL::PKey::RSA, OpenSSL::PKey::DSA] private key (Excon only)
+ def private_key; end
+
+ # @return [OpenSSL::PKey::RSA, OpenSSL::PKey::DSA] private key (Excon only)
+ def private_key=(_); end
+
+ # @return [Boolean] whether to verify SSL certificates or not
+ def verify; end
+
+ # @return [Boolean] whether to verify SSL certificates or not
+ def verify=(_); end
+
+ # source://faraday//lib/faraday/options/ssl_options.rb#56
+ def verify?; end
+
+ # @return [Integer] maximum depth for the certificate chain verification
+ def verify_depth; end
+
+ # @return [Integer] maximum depth for the certificate chain verification
+ def verify_depth=(_); end
+
+ # @return [Boolean] whether to enable hostname verification on server certificates
+ # during the handshake or not (see https://github.com/ruby/openssl/pull/60)
+ def verify_hostname; end
+
+ # @return [Boolean] whether to enable hostname verification on server certificates
+ # during the handshake or not (see https://github.com/ruby/openssl/pull/60)
+ def verify_hostname=(_); end
+
+ # source://faraday//lib/faraday/options/ssl_options.rb#66
+ def verify_hostname?; end
+
+ # @return [Integer] Any `OpenSSL::SSL::` constant (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL.html)
+ def verify_mode; end
+
+ # @return [Integer] Any `OpenSSL::SSL::` constant (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL.html)
+ def verify_mode=(_); end
+
+ # @return [String, Symbol] SSL version (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL/SSLContext.html#method-i-ssl_version-3D)
+ def version; end
+
+ # @return [String, Symbol] SSL version (see https://ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL/SSLContext.html#method-i-ssl_version-3D)
+ def version=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# Faraday server error class. Represents 5xx status responses.
+#
+# source://faraday//lib/faraday/error.rb#128
+class Faraday::ServerError < ::Faraday::Error; end
+
+# A unified client error for timeouts.
+#
+# source://faraday//lib/faraday/error.rb#132
+class Faraday::TimeoutError < ::Faraday::ServerError
+ # @return [TimeoutError] a new instance of TimeoutError
+ #
+ # source://faraday//lib/faraday/error.rb#133
+ def initialize(exc = T.unsafe(nil), response = T.unsafe(nil)); end
+end
+
+# Raised by Faraday::Response::RaiseError in case of a 401 response.
+#
+# source://faraday//lib/faraday/error.rb#100
+class Faraday::UnauthorizedError < ::Faraday::ClientError; end
+
+# Raised by Faraday::Response::RaiseError in case of a 422 response.
+#
+# source://faraday//lib/faraday/error.rb#124
+class Faraday::UnprocessableEntityError < ::Faraday::ClientError; end
+
+# Utils contains various static helper methods.
+#
+# source://faraday//lib/faraday/utils/headers.rb#4
+module Faraday::Utils
+ private
+
+ # Normalize URI() behavior across Ruby versions
+ #
+ # url - A String or URI.
+ #
+ # Returns a parsed URI.
+ #
+ # source://faraday//lib/faraday/utils.rb#71
+ def URI(url); end
+
+ # source://faraday//lib/faraday/utils.rb#56
+ def basic_header_from(login, pass); end
+
+ # source://faraday//lib/faraday/utils.rb#17
+ def build_nested_query(params); end
+
+ # source://faraday//lib/faraday/utils.rb#13
+ def build_query(params); end
+
+ # Recursive hash merge
+ #
+ # source://faraday//lib/faraday/utils.rb#114
+ def deep_merge(source, hash); end
+
+ # Recursive hash update
+ #
+ # source://faraday//lib/faraday/utils.rb#102
+ def deep_merge!(target, hash); end
+
+ # source://faraday//lib/faraday/utils.rb#52
+ def default_params_encoder; end
+
+ # source://faraday//lib/faraday/utils.rb#21
+ def default_space_encoding; end
+
+ # source://faraday//lib/faraday/utils.rb#81
+ def default_uri_parser; end
+
+ # source://faraday//lib/faraday/utils.rb#85
+ def default_uri_parser=(parser); end
+
+ # source://faraday//lib/faraday/utils.rb#31
+ def escape(str); end
+
+ # Receives a String or URI and returns just
+ # the path with the query string sorted.
+ #
+ # source://faraday//lib/faraday/utils.rb#95
+ def normalize_path(url); end
+
+ # source://faraday//lib/faraday/utils.rb#48
+ def parse_nested_query(query); end
+
+ # Adapted from Rack
+ #
+ # source://faraday//lib/faraday/utils.rb#44
+ def parse_query(query); end
+
+ # source://faraday//lib/faraday/utils.rb#118
+ def sort_query_params(query); end
+
+ # source://faraday//lib/faraday/utils.rb#37
+ def unescape(str); end
+
+ class << self
+ # Normalize URI() behavior across Ruby versions
+ #
+ # url - A String or URI.
+ #
+ # Returns a parsed URI.
+ #
+ # source://faraday//lib/faraday/utils.rb#71
+ def URI(url); end
+
+ # source://faraday//lib/faraday/utils.rb#56
+ def basic_header_from(login, pass); end
+
+ # source://faraday//lib/faraday/utils.rb#17
+ def build_nested_query(params); end
+
+ # source://faraday//lib/faraday/utils.rb#13
+ def build_query(params); end
+
+ # Recursive hash merge
+ #
+ # source://faraday//lib/faraday/utils.rb#114
+ def deep_merge(source, hash); end
+
+ # Recursive hash update
+ #
+ # source://faraday//lib/faraday/utils.rb#102
+ def deep_merge!(target, hash); end
+
+ # source://faraday//lib/faraday/utils.rb#52
+ def default_params_encoder; end
+
+ # Sets the attribute default_params_encoder
+ #
+ # @param value the value to set the attribute default_params_encoder to.
+ #
+ # source://faraday//lib/faraday/utils.rb#63
+ def default_params_encoder=(_arg0); end
+
+ # source://faraday//lib/faraday/utils.rb#21
+ def default_space_encoding; end
+
+ # Sets the attribute default_space_encoding
+ #
+ # @param value the value to set the attribute default_space_encoding to.
+ #
+ # source://faraday//lib/faraday/utils.rb#26
+ def default_space_encoding=(_arg0); end
+
+ # source://faraday//lib/faraday/utils.rb#81
+ def default_uri_parser; end
+
+ # source://faraday//lib/faraday/utils.rb#85
+ def default_uri_parser=(parser); end
+
+ # source://faraday//lib/faraday/utils.rb#31
+ def escape(str); end
+
+ # Receives a String or URI and returns just
+ # the path with the query string sorted.
+ #
+ # source://faraday//lib/faraday/utils.rb#95
+ def normalize_path(url); end
+
+ # source://faraday//lib/faraday/utils.rb#48
+ def parse_nested_query(query); end
+
+ # Adapted from Rack
+ #
+ # source://faraday//lib/faraday/utils.rb#44
+ def parse_query(query); end
+
+ # source://faraday//lib/faraday/utils.rb#118
+ def sort_query_params(query); end
+
+ # source://faraday//lib/faraday/utils.rb#37
+ def unescape(str); end
+ end
+end
+
+# source://faraday//lib/faraday/utils.rb#41
+Faraday::Utils::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
+
+# source://faraday//lib/faraday/utils.rb#29
+Faraday::Utils::ESCAPE_RE = T.let(T.unsafe(nil), Regexp)
+
+# A case-insensitive Hash that preserves the original case of a header
+# when set.
+#
+# Adapted from Rack::Utils::HeaderHash
+#
+# source://faraday//lib/faraday/utils/headers.rb#9
+class Faraday::Utils::Headers < ::Hash
+ # @return [Headers] a new instance of Headers
+ #
+ # source://faraday//lib/faraday/utils/headers.rb#20
+ def initialize(hash = T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#52
+ def [](key); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#57
+ def []=(key, val); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#71
+ def delete(key); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#65
+ def fetch(key, *args, &block); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/utils/headers.rb#80
+ def has_key?(key); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/utils/headers.rb#80
+ def include?(key); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#26
+ def initialize_names; end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/utils/headers.rb#80
+ def key?(key); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/utils/headers.rb#80
+ def member?(key); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#95
+ def merge(other); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#88
+ def merge!(other); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#111
+ def parse(header_string); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#100
+ def replace(other); end
+
+ # source://faraday//lib/faraday/utils/headers.rb#107
+ def to_hash; end
+
+ # source://faraday//lib/faraday/utils/headers.rb#88
+ def update(other); end
+
+ protected
+
+ # Returns the value of attribute names.
+ #
+ # source://faraday//lib/faraday/utils/headers.rb#129
+ def names; end
+
+ private
+
+ # Join multiple values with a comma.
+ #
+ # source://faraday//lib/faraday/utils/headers.rb#134
+ def add_parsed(key, value); end
+
+ # on dup/clone, we need to duplicate @names hash
+ #
+ # source://faraday//lib/faraday/utils/headers.rb#31
+ def initialize_copy(other); end
+
+ class << self
+ # source://faraday//lib/faraday/utils/headers.rb#14
+ def allocate; end
+
+ # source://faraday//lib/faraday/utils/headers.rb#10
+ def from(value); end
+ end
+end
+
+# symbol -> string mapper + cache
+#
+# source://faraday//lib/faraday/utils/headers.rb#40
+Faraday::Utils::Headers::KeyMap = T.let(T.unsafe(nil), Hash)
+
+# A hash with stringified keys.
+#
+# source://faraday//lib/faraday/utils/params_hash.rb#6
+class Faraday::Utils::ParamsHash < ::Hash
+ # source://faraday//lib/faraday/utils/params_hash.rb#7
+ def [](key); end
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#11
+ def []=(key, value); end
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#15
+ def delete(key); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/utils/params_hash.rb#19
+ def has_key?(key); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/utils/params_hash.rb#19
+ def include?(key); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/utils/params_hash.rb#19
+ def key?(key); end
+
+ # @return [Boolean]
+ #
+ # source://faraday//lib/faraday/utils/params_hash.rb#19
+ def member?(key); end
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#35
+ def merge(params); end
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#27
+ def merge!(params); end
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#44
+ def merge_query(query, encoder = T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#39
+ def replace(other); end
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#50
+ def to_query(encoder = T.unsafe(nil)); end
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#27
+ def update(params); end
+
+ private
+
+ # source://faraday//lib/faraday/utils/params_hash.rb#56
+ def convert_key(key); end
+end
+
+# source://faraday//lib/faraday/version.rb#4
+Faraday::VERSION = T.let(T.unsafe(nil), String)
diff --git a/sorbet/rbi/gems/json@2.6.3.rbi b/sorbet/rbi/gems/json@2.6.3.rbi
new file mode 100644
index 0000000..259116a
--- /dev/null
+++ b/sorbet/rbi/gems/json@2.6.3.rbi
@@ -0,0 +1,1533 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `json` gem.
+# Please instead update this file by running `bin/tapioca gem json`.
+
+# Extends any Class to include _json_creatable?_ method.
+class Class < ::Module
+ # Returns true if this class can be used to create an instance
+ # from a serialised JSON string. The class has to implement a class
+ # method _json_create_ that expects a hash as first parameter. The hash
+ # should include the required data.
+ #
+ # @return [Boolean]
+ #
+ # source://json//json/common.rb#700
+ def json_creatable?; end
+end
+
+# = JavaScript \Object Notation (\JSON)
+#
+# \JSON is a lightweight data-interchange format.
+#
+# A \JSON value is one of the following:
+# - Double-quoted text: "foo".
+# - Number: +1+, +1.0+, +2.0e2+.
+# - Boolean: +true+, +false+.
+# - Null: +null+.
+# - \Array: an ordered list of values, enclosed by square brackets:
+# ["foo", 1, 1.0, 2.0e2, true, false, null]
+#
+# - \Object: a collection of name/value pairs, enclosed by curly braces;
+# each name is double-quoted text;
+# the values may be any \JSON values:
+# {"a": "foo", "b": 1, "c": 1.0, "d": 2.0e2, "e": true, "f": false, "g": null}
+#
+# A \JSON array or object may contain nested arrays, objects, and scalars
+# to any depth:
+# {"foo": {"bar": 1, "baz": 2}, "bat": [0, 1, 2]}
+# [{"foo": 0, "bar": 1}, ["baz", 2]]
+#
+# == Using \Module \JSON
+#
+# To make module \JSON available in your code, begin with:
+# require 'json'
+#
+# All examples here assume that this has been done.
+#
+# === Parsing \JSON
+#
+# You can parse a \String containing \JSON data using
+# either of two methods:
+# - JSON.parse(source, opts)
+# - JSON.parse!(source, opts)
+#
+# where
+# - +source+ is a Ruby object.
+# - +opts+ is a \Hash object containing options
+# that control both input allowed and output formatting.
+#
+# The difference between the two methods
+# is that JSON.parse! omits some checks
+# and may not be safe for some +source+ data;
+# use it only for data from trusted sources.
+# Use the safer method JSON.parse for less trusted sources.
+#
+# ==== Parsing \JSON Arrays
+#
+# When +source+ is a \JSON array, JSON.parse by default returns a Ruby \Array:
+# json = '["foo", 1, 1.0, 2.0e2, true, false, null]'
+# ruby = JSON.parse(json)
+# ruby # => ["foo", 1, 1.0, 200.0, true, false, nil]
+# ruby.class # => Array
+#
+# The \JSON array may contain nested arrays, objects, and scalars
+# to any depth:
+# json = '[{"foo": 0, "bar": 1}, ["baz", 2]]'
+# JSON.parse(json) # => [{"foo"=>0, "bar"=>1}, ["baz", 2]]
+#
+# ==== Parsing \JSON \Objects
+#
+# When the source is a \JSON object, JSON.parse by default returns a Ruby \Hash:
+# json = '{"a": "foo", "b": 1, "c": 1.0, "d": 2.0e2, "e": true, "f": false, "g": null}'
+# ruby = JSON.parse(json)
+# ruby # => {"a"=>"foo", "b"=>1, "c"=>1.0, "d"=>200.0, "e"=>true, "f"=>false, "g"=>nil}
+# ruby.class # => Hash
+#
+# The \JSON object may contain nested arrays, objects, and scalars
+# to any depth:
+# json = '{"foo": {"bar": 1, "baz": 2}, "bat": [0, 1, 2]}'
+# JSON.parse(json) # => {"foo"=>{"bar"=>1, "baz"=>2}, "bat"=>[0, 1, 2]}
+#
+# ==== Parsing \JSON Scalars
+#
+# When the source is a \JSON scalar (not an array or object),
+# JSON.parse returns a Ruby scalar.
+#
+# \String:
+# ruby = JSON.parse('"foo"')
+# ruby # => 'foo'
+# ruby.class # => String
+# \Integer:
+# ruby = JSON.parse('1')
+# ruby # => 1
+# ruby.class # => Integer
+# \Float:
+# ruby = JSON.parse('1.0')
+# ruby # => 1.0
+# ruby.class # => Float
+# ruby = JSON.parse('2.0e2')
+# ruby # => 200
+# ruby.class # => Float
+# Boolean:
+# ruby = JSON.parse('true')
+# ruby # => true
+# ruby.class # => TrueClass
+# ruby = JSON.parse('false')
+# ruby # => false
+# ruby.class # => FalseClass
+# Null:
+# ruby = JSON.parse('null')
+# ruby # => nil
+# ruby.class # => NilClass
+#
+# ==== Parsing Options
+#
+# ====== Input Options
+#
+# Option +max_nesting+ (\Integer) specifies the maximum nesting depth allowed;
+# defaults to +100+; specify +false+ to disable depth checking.
+#
+# With the default, +false+:
+# source = '[0, [1, [2, [3]]]]'
+# ruby = JSON.parse(source)
+# ruby # => [0, [1, [2, [3]]]]
+# Too deep:
+# # Raises JSON::NestingError (nesting of 2 is too deep):
+# JSON.parse(source, {max_nesting: 1})
+# Bad value:
+# # Raises TypeError (wrong argument type Symbol (expected Fixnum)):
+# JSON.parse(source, {max_nesting: :foo})
+#
+# ---
+#
+# Option +allow_nan+ (boolean) specifies whether to allow
+# NaN, Infinity, and MinusInfinity in +source+;
+# defaults to +false+.
+#
+# With the default, +false+:
+# # Raises JSON::ParserError (225: unexpected token at '[NaN]'):
+# JSON.parse('[NaN]')
+# # Raises JSON::ParserError (232: unexpected token at '[Infinity]'):
+# JSON.parse('[Infinity]')
+# # Raises JSON::ParserError (248: unexpected token at '[-Infinity]'):
+# JSON.parse('[-Infinity]')
+# Allow:
+# source = '[NaN, Infinity, -Infinity]'
+# ruby = JSON.parse(source, {allow_nan: true})
+# ruby # => [NaN, Infinity, -Infinity]
+#
+# ====== Output Options
+#
+# Option +symbolize_names+ (boolean) specifies whether returned \Hash keys
+# should be Symbols;
+# defaults to +false+ (use Strings).
+#
+# With the default, +false+:
+# source = '{"a": "foo", "b": 1.0, "c": true, "d": false, "e": null}'
+# ruby = JSON.parse(source)
+# ruby # => {"a"=>"foo", "b"=>1.0, "c"=>true, "d"=>false, "e"=>nil}
+# Use Symbols:
+# ruby = JSON.parse(source, {symbolize_names: true})
+# ruby # => {:a=>"foo", :b=>1.0, :c=>true, :d=>false, :e=>nil}
+#
+# ---
+#
+# Option +object_class+ (\Class) specifies the Ruby class to be used
+# for each \JSON object;
+# defaults to \Hash.
+#
+# With the default, \Hash:
+# source = '{"a": "foo", "b": 1.0, "c": true, "d": false, "e": null}'
+# ruby = JSON.parse(source)
+# ruby.class # => Hash
+# Use class \OpenStruct:
+# ruby = JSON.parse(source, {object_class: OpenStruct})
+# ruby # => #
+#
+# ---
+#
+# Option +array_class+ (\Class) specifies the Ruby class to be used
+# for each \JSON array;
+# defaults to \Array.
+#
+# With the default, \Array:
+# source = '["foo", 1.0, true, false, null]'
+# ruby = JSON.parse(source)
+# ruby.class # => Array
+# Use class \Set:
+# ruby = JSON.parse(source, {array_class: Set})
+# ruby # => #
+#
+# ---
+#
+# Option +create_additions+ (boolean) specifies whether to use \JSON additions in parsing.
+# See {\JSON Additions}[#module-JSON-label-JSON+Additions].
+#
+# === Generating \JSON
+#
+# To generate a Ruby \String containing \JSON data,
+# use method JSON.generate(source, opts), where
+# - +source+ is a Ruby object.
+# - +opts+ is a \Hash object containing options
+# that control both input allowed and output formatting.
+#
+# ==== Generating \JSON from Arrays
+#
+# When the source is a Ruby \Array, JSON.generate returns
+# a \String containing a \JSON array:
+# ruby = [0, 's', :foo]
+# json = JSON.generate(ruby)
+# json # => '[0,"s","foo"]'
+#
+# The Ruby \Array array may contain nested arrays, hashes, and scalars
+# to any depth:
+# ruby = [0, [1, 2], {foo: 3, bar: 4}]
+# json = JSON.generate(ruby)
+# json # => '[0,[1,2],{"foo":3,"bar":4}]'
+#
+# ==== Generating \JSON from Hashes
+#
+# When the source is a Ruby \Hash, JSON.generate returns
+# a \String containing a \JSON object:
+# ruby = {foo: 0, bar: 's', baz: :bat}
+# json = JSON.generate(ruby)
+# json # => '{"foo":0,"bar":"s","baz":"bat"}'
+#
+# The Ruby \Hash array may contain nested arrays, hashes, and scalars
+# to any depth:
+# ruby = {foo: [0, 1], bar: {baz: 2, bat: 3}, bam: :bad}
+# json = JSON.generate(ruby)
+# json # => '{"foo":[0,1],"bar":{"baz":2,"bat":3},"bam":"bad"}'
+#
+# ==== Generating \JSON from Other Objects
+#
+# When the source is neither an \Array nor a \Hash,
+# the generated \JSON data depends on the class of the source.
+#
+# When the source is a Ruby \Integer or \Float, JSON.generate returns
+# a \String containing a \JSON number:
+# JSON.generate(42) # => '42'
+# JSON.generate(0.42) # => '0.42'
+#
+# When the source is a Ruby \String, JSON.generate returns
+# a \String containing a \JSON string (with double-quotes):
+# JSON.generate('A string') # => '"A string"'
+#
+# When the source is +true+, +false+ or +nil+, JSON.generate returns
+# a \String containing the corresponding \JSON token:
+# JSON.generate(true) # => 'true'
+# JSON.generate(false) # => 'false'
+# JSON.generate(nil) # => 'null'
+#
+# When the source is none of the above, JSON.generate returns
+# a \String containing a \JSON string representation of the source:
+# JSON.generate(:foo) # => '"foo"'
+# JSON.generate(Complex(0, 0)) # => '"0+0i"'
+# JSON.generate(Dir.new('.')) # => '"#"'
+#
+# ==== Generating Options
+#
+# ====== Input Options
+#
+# Option +allow_nan+ (boolean) specifies whether
+# +NaN+, +Infinity+, and -Infinity may be generated;
+# defaults to +false+.
+#
+# With the default, +false+:
+# # Raises JSON::GeneratorError (920: NaN not allowed in JSON):
+# JSON.generate(JSON::NaN)
+# # Raises JSON::GeneratorError (917: Infinity not allowed in JSON):
+# JSON.generate(JSON::Infinity)
+# # Raises JSON::GeneratorError (917: -Infinity not allowed in JSON):
+# JSON.generate(JSON::MinusInfinity)
+#
+# Allow:
+# ruby = [Float::NaN, Float::Infinity, Float::MinusInfinity]
+# JSON.generate(ruby, allow_nan: true) # => '[NaN,Infinity,-Infinity]'
+#
+# ---
+#
+# Option +max_nesting+ (\Integer) specifies the maximum nesting depth
+# in +obj+; defaults to +100+.
+#
+# With the default, +100+:
+# obj = [[[[[[0]]]]]]
+# JSON.generate(obj) # => '[[[[[[0]]]]]]'
+#
+# Too deep:
+# # Raises JSON::NestingError (nesting of 2 is too deep):
+# JSON.generate(obj, max_nesting: 2)
+#
+# ====== Output Options
+#
+# The default formatting options generate the most compact
+# \JSON data, all on one line and with no whitespace.
+#
+# You can use these formatting options to generate
+# \JSON data in a more open format, using whitespace.
+# See also JSON.pretty_generate.
+#
+# - Option +array_nl+ (\String) specifies a string (usually a newline)
+# to be inserted after each \JSON array; defaults to the empty \String, ''.
+# - Option +object_nl+ (\String) specifies a string (usually a newline)
+# to be inserted after each \JSON object; defaults to the empty \String, ''.
+# - Option +indent+ (\String) specifies the string (usually spaces) to be
+# used for indentation; defaults to the empty \String, '';
+# defaults to the empty \String, '';
+# has no effect unless options +array_nl+ or +object_nl+ specify newlines.
+# - Option +space+ (\String) specifies a string (usually a space) to be
+# inserted after the colon in each \JSON object's pair;
+# defaults to the empty \String, ''.
+# - Option +space_before+ (\String) specifies a string (usually a space) to be
+# inserted before the colon in each \JSON object's pair;
+# defaults to the empty \String, ''.
+#
+# In this example, +obj+ is used first to generate the shortest
+# \JSON data (no whitespace), then again with all formatting options
+# specified:
+#
+# obj = {foo: [:bar, :baz], bat: {bam: 0, bad: 1}}
+# json = JSON.generate(obj)
+# puts 'Compact:', json
+# opts = {
+# array_nl: "\n",
+# object_nl: "\n",
+# indent: ' ',
+# space_before: ' ',
+# space: ' '
+# }
+# puts 'Open:', JSON.generate(obj, opts)
+#
+# Output:
+# Compact:
+# {"foo":["bar","baz"],"bat":{"bam":0,"bad":1}}
+# Open:
+# {
+# "foo" : [
+# "bar",
+# "baz"
+# ],
+# "bat" : {
+# "bam" : 0,
+# "bad" : 1
+# }
+# }
+#
+# == \JSON Additions
+#
+# When you "round trip" a non-\String object from Ruby to \JSON and back,
+# you have a new \String, instead of the object you began with:
+# ruby0 = Range.new(0, 2)
+# json = JSON.generate(ruby0)
+# json # => '0..2"'
+# ruby1 = JSON.parse(json)
+# ruby1 # => '0..2'
+# ruby1.class # => String
+#
+# You can use \JSON _additions_ to preserve the original object.
+# The addition is an extension of a ruby class, so that:
+# - \JSON.generate stores more information in the \JSON string.
+# - \JSON.parse, called with option +create_additions+,
+# uses that information to create a proper Ruby object.
+#
+# This example shows a \Range being generated into \JSON
+# and parsed back into Ruby, both without and with
+# the addition for \Range:
+# ruby = Range.new(0, 2)
+# # This passage does not use the addition for Range.
+# json0 = JSON.generate(ruby)
+# ruby0 = JSON.parse(json0)
+# # This passage uses the addition for Range.
+# require 'json/add/range'
+# json1 = JSON.generate(ruby)
+# ruby1 = JSON.parse(json1, create_additions: true)
+# # Make a nice display.
+# display = <require 'json/add/bigdecimal'
+# - Complex: require 'json/add/complex'
+# - Date: require 'json/add/date'
+# - DateTime: require 'json/add/date_time'
+# - Exception: require 'json/add/exception'
+# - OpenStruct: require 'json/add/ostruct'
+# - Range: require 'json/add/range'
+# - Rational: require 'json/add/rational'
+# - Regexp: require 'json/add/regexp'
+# - Set: require 'json/add/set'
+# - Struct: require 'json/add/struct'
+# - Symbol: require 'json/add/symbol'
+# - Time: require 'json/add/time'
+#
+# To reduce punctuation clutter, the examples below
+# show the generated \JSON via +puts+, rather than the usual +inspect+,
+#
+# \BigDecimal:
+# require 'json/add/bigdecimal'
+# ruby0 = BigDecimal(0) # 0.0
+# json = JSON.generate(ruby0) # {"json_class":"BigDecimal","b":"27:0.0"}
+# ruby1 = JSON.parse(json, create_additions: true) # 0.0
+# ruby1.class # => BigDecimal
+#
+# \Complex:
+# require 'json/add/complex'
+# ruby0 = Complex(1+0i) # 1+0i
+# json = JSON.generate(ruby0) # {"json_class":"Complex","r":1,"i":0}
+# ruby1 = JSON.parse(json, create_additions: true) # 1+0i
+# ruby1.class # Complex
+#
+# \Date:
+# require 'json/add/date'
+# ruby0 = Date.today # 2020-05-02
+# json = JSON.generate(ruby0) # {"json_class":"Date","y":2020,"m":5,"d":2,"sg":2299161.0}
+# ruby1 = JSON.parse(json, create_additions: true) # 2020-05-02
+# ruby1.class # Date
+#
+# \DateTime:
+# require 'json/add/date_time'
+# ruby0 = DateTime.now # 2020-05-02T10:38:13-05:00
+# json = JSON.generate(ruby0) # {"json_class":"DateTime","y":2020,"m":5,"d":2,"H":10,"M":38,"S":13,"of":"-5/24","sg":2299161.0}
+# ruby1 = JSON.parse(json, create_additions: true) # 2020-05-02T10:38:13-05:00
+# ruby1.class # DateTime
+#
+# \Exception (and its subclasses including \RuntimeError):
+# require 'json/add/exception'
+# ruby0 = Exception.new('A message') # A message
+# json = JSON.generate(ruby0) # {"json_class":"Exception","m":"A message","b":null}
+# ruby1 = JSON.parse(json, create_additions: true) # A message
+# ruby1.class # Exception
+# ruby0 = RuntimeError.new('Another message') # Another message
+# json = JSON.generate(ruby0) # {"json_class":"RuntimeError","m":"Another message","b":null}
+# ruby1 = JSON.parse(json, create_additions: true) # Another message
+# ruby1.class # RuntimeError
+#
+# \OpenStruct:
+# require 'json/add/ostruct'
+# ruby0 = OpenStruct.new(name: 'Matz', language: 'Ruby') # #
+# json = JSON.generate(ruby0) # {"json_class":"OpenStruct","t":{"name":"Matz","language":"Ruby"}}
+# ruby1 = JSON.parse(json, create_additions: true) # #
+# ruby1.class # OpenStruct
+#
+# \Range:
+# require 'json/add/range'
+# ruby0 = Range.new(0, 2) # 0..2
+# json = JSON.generate(ruby0) # {"json_class":"Range","a":[0,2,false]}
+# ruby1 = JSON.parse(json, create_additions: true) # 0..2
+# ruby1.class # Range
+#
+# \Rational:
+# require 'json/add/rational'
+# ruby0 = Rational(1, 3) # 1/3
+# json = JSON.generate(ruby0) # {"json_class":"Rational","n":1,"d":3}
+# ruby1 = JSON.parse(json, create_additions: true) # 1/3
+# ruby1.class # Rational
+#
+# \Regexp:
+# require 'json/add/regexp'
+# ruby0 = Regexp.new('foo') # (?-mix:foo)
+# json = JSON.generate(ruby0) # {"json_class":"Regexp","o":0,"s":"foo"}
+# ruby1 = JSON.parse(json, create_additions: true) # (?-mix:foo)
+# ruby1.class # Regexp
+#
+# \Set:
+# require 'json/add/set'
+# ruby0 = Set.new([0, 1, 2]) # #
+# json = JSON.generate(ruby0) # {"json_class":"Set","a":[0,1,2]}
+# ruby1 = JSON.parse(json, create_additions: true) # #
+# ruby1.class # Set
+#
+# \Struct:
+# require 'json/add/struct'
+# Customer = Struct.new(:name, :address) # Customer
+# ruby0 = Customer.new("Dave", "123 Main") # #
+# json = JSON.generate(ruby0) # {"json_class":"Customer","v":["Dave","123 Main"]}
+# ruby1 = JSON.parse(json, create_additions: true) # #
+# ruby1.class # Customer
+#
+# \Symbol:
+# require 'json/add/symbol'
+# ruby0 = :foo # foo
+# json = JSON.generate(ruby0) # {"json_class":"Symbol","s":"foo"}
+# ruby1 = JSON.parse(json, create_additions: true) # foo
+# ruby1.class # Symbol
+#
+# \Time:
+# require 'json/add/time'
+# ruby0 = Time.now # 2020-05-02 11:28:26 -0500
+# json = JSON.generate(ruby0) # {"json_class":"Time","s":1588436906,"n":840560000}
+# ruby1 = JSON.parse(json, create_additions: true) # 2020-05-02 11:28:26 -0500
+# ruby1.class # Time
+#
+#
+# === Custom \JSON Additions
+#
+# In addition to the \JSON additions provided,
+# you can craft \JSON additions of your own,
+# either for Ruby built-in classes or for user-defined classes.
+#
+# Here's a user-defined class +Foo+:
+# class Foo
+# attr_accessor :bar, :baz
+# def initialize(bar, baz)
+# self.bar = bar
+# self.baz = baz
+# end
+# end
+#
+# Here's the \JSON addition for it:
+# # Extend class Foo with JSON addition.
+# class Foo
+# # Serialize Foo object with its class name and arguments
+# def to_json(*args)
+# {
+# JSON.create_id => self.class.name,
+# 'a' => [ bar, baz ]
+# }.to_json(*args)
+# end
+# # Deserialize JSON string by constructing new Foo object with arguments.
+# def self.json_create(object)
+# new(*object['a'])
+# end
+# end
+#
+# Demonstration:
+# require 'json'
+# # This Foo object has no custom addition.
+# foo0 = Foo.new(0, 1)
+# json0 = JSON.generate(foo0)
+# obj0 = JSON.parse(json0)
+# # Lood the custom addition.
+# require_relative 'foo_addition'
+# # This foo has the custom addition.
+# foo1 = Foo.new(0, 1)
+# json1 = JSON.generate(foo1)
+# obj1 = JSON.parse(json1, create_additions: true)
+# # Make a nice display.
+# display = <" (String)
+# With custom addition: {"json_class":"Foo","a":[0,1]} (String)
+# Parsed JSON:
+# Without custom addition: "#" (String)
+# With custom addition: # (Foo)
+module JSON
+ private
+
+ # :call-seq:
+ # JSON.dump(obj, io = nil, limit = nil)
+ #
+ # Dumps +obj+ as a \JSON string, i.e. calls generate on the object and returns the result.
+ #
+ # The default options can be changed via method JSON.dump_default_options.
+ #
+ # - Argument +io+, if given, should respond to method +write+;
+ # the \JSON \String is written to +io+, and +io+ is returned.
+ # If +io+ is not given, the \JSON \String is returned.
+ # - Argument +limit+, if given, is passed to JSON.generate as option +max_nesting+.
+ #
+ # ---
+ #
+ # When argument +io+ is not given, returns the \JSON \String generated from +obj+:
+ # obj = {foo: [0, 1], bar: {baz: 2, bat: 3}, bam: :bad}
+ # json = JSON.dump(obj)
+ # json # => "{\"foo\":[0,1],\"bar\":{\"baz\":2,\"bat\":3},\"bam\":\"bad\"}"
+ #
+ # When argument +io+ is given, writes the \JSON \String to +io+ and returns +io+:
+ # path = 't.json'
+ # File.open(path, 'w') do |file|
+ # JSON.dump(obj, file)
+ # end # => #
+ # puts File.read(path)
+ # Output:
+ # {"foo":[0,1],"bar":{"baz":2,"bat":3},"bam":"bad"}
+ #
+ # source://json//json/common.rb#631
+ def dump(obj, anIO = T.unsafe(nil), limit = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.fast_generate(obj, opts) -> new_string
+ #
+ # Arguments +obj+ and +opts+ here are the same as
+ # arguments +obj+ and +opts+ in JSON.generate.
+ #
+ # By default, generates \JSON data without checking
+ # for circular references in +obj+ (option +max_nesting+ set to +false+, disabled).
+ #
+ # Raises an exception if +obj+ contains circular references:
+ # a = []; b = []; a.push(b); b.push(a)
+ # # Raises SystemStackError (stack level too deep):
+ # JSON.fast_generate(a)
+ #
+ # source://json//json/common.rb#335
+ def fast_generate(obj, opts = T.unsafe(nil)); end
+
+ # :stopdoc:
+ # I want to deprecate these later, so I'll first be silent about them, and later delete them.
+ #
+ # source://json//json/common.rb#335
+ def fast_unparse(obj, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.generate(obj, opts = nil) -> new_string
+ #
+ # Returns a \String containing the generated \JSON data.
+ #
+ # See also JSON.fast_generate, JSON.pretty_generate.
+ #
+ # Argument +obj+ is the Ruby object to be converted to \JSON.
+ #
+ # Argument +opts+, if given, contains a \Hash of options for the generation.
+ # See {Generating Options}[#module-JSON-label-Generating+Options].
+ #
+ # ---
+ #
+ # When +obj+ is an \Array, returns a \String containing a \JSON array:
+ # obj = ["foo", 1.0, true, false, nil]
+ # json = JSON.generate(obj)
+ # json # => '["foo",1.0,true,false,null]'
+ #
+ # When +obj+ is a \Hash, returns a \String containing a \JSON object:
+ # obj = {foo: 0, bar: 's', baz: :bat}
+ # json = JSON.generate(obj)
+ # json # => '{"foo":0,"bar":"s","baz":"bat"}'
+ #
+ # For examples of generating from other Ruby objects, see
+ # {Generating \JSON from Other Objects}[#module-JSON-label-Generating+JSON+from+Other+Objects].
+ #
+ # ---
+ #
+ # Raises an exception if any formatting option is not a \String.
+ #
+ # Raises an exception if +obj+ contains circular references:
+ # a = []; b = []; a.push(b); b.push(a)
+ # # Raises JSON::NestingError (nesting of 100 is too deep):
+ # JSON.generate(a)
+ #
+ # source://json//json/common.rb#296
+ def generate(obj, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.load(source, proc = nil, options = {}) -> object
+ #
+ # Returns the Ruby objects created by parsing the given +source+.
+ #
+ # - Argument +source+ must be, or be convertible to, a \String:
+ # - If +source+ responds to instance method +to_str+,
+ # source.to_str becomes the source.
+ # - If +source+ responds to instance method +to_io+,
+ # source.to_io.read becomes the source.
+ # - If +source+ responds to instance method +read+,
+ # source.read becomes the source.
+ # - If both of the following are true, source becomes the \String 'null':
+ # - Option +allow_blank+ specifies a truthy value.
+ # - The source, as defined above, is +nil+ or the empty \String ''.
+ # - Otherwise, +source+ remains the source.
+ # - Argument +proc+, if given, must be a \Proc that accepts one argument.
+ # It will be called recursively with each result (depth-first order).
+ # See details below.
+ # BEWARE: This method is meant to serialise data from trusted user input,
+ # like from your own database server or clients under your control, it could
+ # be dangerous to allow untrusted users to pass JSON sources into it.
+ # - Argument +opts+, if given, contains a \Hash of options for the parsing.
+ # See {Parsing Options}[#module-JSON-label-Parsing+Options].
+ # The default options can be changed via method JSON.load_default_options=.
+ #
+ # ---
+ #
+ # When no +proc+ is given, modifies +source+ as above and returns the result of
+ # parse(source, opts); see #parse.
+ #
+ # Source for following examples:
+ # source = <<-EOT
+ # {
+ # "name": "Dave",
+ # "age" :40,
+ # "hats": [
+ # "Cattleman's",
+ # "Panama",
+ # "Tophat"
+ # ]
+ # }
+ # EOT
+ #
+ # Load a \String:
+ # ruby = JSON.load(source)
+ # ruby # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
+ #
+ # Load an \IO object:
+ # require 'stringio'
+ # object = JSON.load(StringIO.new(source))
+ # object # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
+ #
+ # Load a \File object:
+ # path = 't.json'
+ # File.write(path, source)
+ # File.open(path) do |file|
+ # JSON.load(file)
+ # end # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
+ #
+ # ---
+ #
+ # When +proc+ is given:
+ # - Modifies +source+ as above.
+ # - Gets the +result+ from calling parse(source, opts).
+ # - Recursively calls proc(result).
+ # - Returns the final result.
+ #
+ # Example:
+ # require 'json'
+ #
+ # # Some classes for the example.
+ # class Base
+ # def initialize(attributes)
+ # @attributes = attributes
+ # end
+ # end
+ # class User < Base; end
+ # class Account < Base; end
+ # class Admin < Base; end
+ # # The JSON source.
+ # json = <<-EOF
+ # {
+ # "users": [
+ # {"type": "User", "username": "jane", "email": "jane@example.com"},
+ # {"type": "User", "username": "john", "email": "john@example.com"}
+ # ],
+ # "accounts": [
+ # {"account": {"type": "Account", "paid": true, "account_id": "1234"}},
+ # {"account": {"type": "Account", "paid": false, "account_id": "1235"}}
+ # ],
+ # "admins": {"type": "Admin", "password": "0wn3d"}
+ # }
+ # EOF
+ # # Deserializer method.
+ # def deserialize_obj(obj, safe_types = %w(User Account Admin))
+ # type = obj.is_a?(Hash) && obj["type"]
+ # safe_types.include?(type) ? Object.const_get(type).new(obj) : obj
+ # end
+ # # Call to JSON.load
+ # ruby = JSON.load(json, proc {|obj|
+ # case obj
+ # when Hash
+ # obj.each {|k, v| obj[k] = deserialize_obj v }
+ # when Array
+ # obj.map! {|v| deserialize_obj v }
+ # end
+ # })
+ # pp ruby
+ # Output:
+ # {"users"=>
+ # [#"User", "username"=>"jane", "email"=>"jane@example.com"}>,
+ # #"User", "username"=>"john", "email"=>"john@example.com"}>],
+ # "accounts"=>
+ # [{"account"=>
+ # #"Account", "paid"=>true, "account_id"=>"1234"}>},
+ # {"account"=>
+ # #"Account", "paid"=>false, "account_id"=>"1235"}>}],
+ # "admins"=>
+ # #"Admin", "password"=>"0wn3d"}>}
+ #
+ # source://json//json/common.rb#557
+ def load(source, proc = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.load_file(path, opts={}) -> object
+ #
+ # Calls:
+ # parse(File.read(path), opts)
+ #
+ # See method #parse.
+ #
+ # source://json//json/common.rb#245
+ def load_file(filespec, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.load_file!(path, opts = {})
+ #
+ # Calls:
+ # JSON.parse!(File.read(path, opts))
+ #
+ # See method #parse!
+ #
+ # source://json//json/common.rb#256
+ def load_file!(filespec, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.parse(source, opts) -> object
+ #
+ # Returns the Ruby objects created by parsing the given +source+.
+ #
+ # Argument +source+ contains the \String to be parsed.
+ #
+ # Argument +opts+, if given, contains a \Hash of options for the parsing.
+ # See {Parsing Options}[#module-JSON-label-Parsing+Options].
+ #
+ # ---
+ #
+ # When +source+ is a \JSON array, returns a Ruby \Array:
+ # source = '["foo", 1.0, true, false, null]'
+ # ruby = JSON.parse(source)
+ # ruby # => ["foo", 1.0, true, false, nil]
+ # ruby.class # => Array
+ #
+ # When +source+ is a \JSON object, returns a Ruby \Hash:
+ # source = '{"a": "foo", "b": 1.0, "c": true, "d": false, "e": null}'
+ # ruby = JSON.parse(source)
+ # ruby # => {"a"=>"foo", "b"=>1.0, "c"=>true, "d"=>false, "e"=>nil}
+ # ruby.class # => Hash
+ #
+ # For examples of parsing for all \JSON data types, see
+ # {Parsing \JSON}[#module-JSON-label-Parsing+JSON].
+ #
+ # Parses nested JSON objects:
+ # source = <<-EOT
+ # {
+ # "name": "Dave",
+ # "age" :40,
+ # "hats": [
+ # "Cattleman's",
+ # "Panama",
+ # "Tophat"
+ # ]
+ # }
+ # EOT
+ # ruby = JSON.parse(source)
+ # ruby # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
+ #
+ # ---
+ #
+ # Raises an exception if +source+ is not valid JSON:
+ # # Raises JSON::ParserError (783: unexpected token at ''):
+ # JSON.parse('')
+ #
+ # source://json//json/common.rb#215
+ def parse(source, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.parse!(source, opts) -> object
+ #
+ # Calls
+ # parse(source, opts)
+ # with +source+ and possibly modified +opts+.
+ #
+ # Differences from JSON.parse:
+ # - Option +max_nesting+, if not provided, defaults to +false+,
+ # which disables checking for nesting depth.
+ # - Option +allow_nan+, if not provided, defaults to +true+.
+ #
+ # source://json//json/common.rb#230
+ def parse!(source, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.pretty_generate(obj, opts = nil) -> new_string
+ #
+ # Arguments +obj+ and +opts+ here are the same as
+ # arguments +obj+ and +opts+ in JSON.generate.
+ #
+ # Default options are:
+ # {
+ # indent: ' ', # Two spaces
+ # space: ' ', # One space
+ # array_nl: "\n", # Newline
+ # object_nl: "\n" # Newline
+ # }
+ #
+ # Example:
+ # obj = {foo: [:bar, :baz], bat: {bam: 0, bad: 1}}
+ # json = JSON.pretty_generate(obj)
+ # puts json
+ # Output:
+ # {
+ # "foo": [
+ # "bar",
+ # "baz"
+ # ],
+ # "bat": {
+ # "bam": 0,
+ # "bad": 1
+ # }
+ # }
+ #
+ # source://json//json/common.rb#390
+ def pretty_generate(obj, opts = T.unsafe(nil)); end
+
+ # :stopdoc:
+ # I want to deprecate these later, so I'll first be silent about them, and later delete them.
+ #
+ # source://json//json/common.rb#390
+ def pretty_unparse(obj, opts = T.unsafe(nil)); end
+
+ # Recursively calls passed _Proc_ if the parsed data structure is an _Array_ or _Hash_
+ #
+ # source://json//json/common.rb#575
+ def recurse_proc(result, &proc); end
+
+ # source://json//json/common.rb#557
+ def restore(source, proc = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # :stopdoc:
+ # I want to deprecate these later, so I'll first be silent about them, and
+ # later delete them.
+ #
+ # source://json//json/common.rb#296
+ def unparse(obj, opts = T.unsafe(nil)); end
+
+ class << self
+ # :call-seq:
+ # JSON[object] -> new_array or new_string
+ #
+ # If +object+ is a \String,
+ # calls JSON.parse with +object+ and +opts+ (see method #parse):
+ # json = '[0, 1, null]'
+ # JSON[json]# => [0, 1, nil]
+ #
+ # Otherwise, calls JSON.generate with +object+ and +opts+ (see method #generate):
+ # ruby = [0, 1, nil]
+ # JSON[ruby] # => '[0,1,null]'
+ #
+ # source://json//json/common.rb#18
+ def [](object, opts = T.unsafe(nil)); end
+
+ # source://json//json/common.rb#81
+ def create_fast_state; end
+
+ # Returns the current create identifier.
+ # See also JSON.create_id=.
+ #
+ # source://json//json/common.rb#126
+ def create_id; end
+
+ # Sets create identifier, which is used to decide if the _json_create_
+ # hook of a class should be called; initial value is +json_class+:
+ # JSON.create_id # => 'json_class'
+ #
+ # source://json//json/common.rb#120
+ def create_id=(new_value); end
+
+ # source://json//json/common.rb#91
+ def create_pretty_state; end
+
+ # Return the constant located at _path_. The format of _path_ has to be
+ # either ::A::B::C or A::B::C. In any case, A has to be located at the top
+ # level (absolute namespace path?). If there doesn't exist a constant at
+ # the given path, an ArgumentError is raised.
+ #
+ # source://json//json/common.rb#42
+ def deep_const_get(path); end
+
+ # :call-seq:
+ # JSON.dump(obj, io = nil, limit = nil)
+ #
+ # Dumps +obj+ as a \JSON string, i.e. calls generate on the object and returns the result.
+ #
+ # The default options can be changed via method JSON.dump_default_options.
+ #
+ # - Argument +io+, if given, should respond to method +write+;
+ # the \JSON \String is written to +io+, and +io+ is returned.
+ # If +io+ is not given, the \JSON \String is returned.
+ # - Argument +limit+, if given, is passed to JSON.generate as option +max_nesting+.
+ #
+ # ---
+ #
+ # When argument +io+ is not given, returns the \JSON \String generated from +obj+:
+ # obj = {foo: [0, 1], bar: {baz: 2, bat: 3}, bam: :bad}
+ # json = JSON.dump(obj)
+ # json # => "{\"foo\":[0,1],\"bar\":{\"baz\":2,\"bat\":3},\"bam\":\"bad\"}"
+ #
+ # When argument +io+ is given, writes the \JSON \String to +io+ and returns +io+:
+ # path = 't.json'
+ # File.open(path, 'w') do |file|
+ # JSON.dump(obj, file)
+ # end # => #
+ # puts File.read(path)
+ # Output:
+ # {"foo":[0,1],"bar":{"baz":2,"bat":3},"bam":"bad"}
+ #
+ # source://json//json/common.rb#631
+ def dump(obj, anIO = T.unsafe(nil), limit = T.unsafe(nil)); end
+
+ # Sets or returns the default options for the JSON.dump method.
+ # Initially:
+ # opts = JSON.dump_default_options
+ # opts # => {:max_nesting=>false, :allow_nan=>true, :escape_slash=>false}
+ #
+ # source://json//json/common.rb#596
+ def dump_default_options; end
+
+ # Sets or returns the default options for the JSON.dump method.
+ # Initially:
+ # opts = JSON.dump_default_options
+ # opts # => {:max_nesting=>false, :allow_nan=>true, :escape_slash=>false}
+ #
+ # source://json//json/common.rb#596
+ def dump_default_options=(_arg0); end
+
+ # :call-seq:
+ # JSON.fast_generate(obj, opts) -> new_string
+ #
+ # Arguments +obj+ and +opts+ here are the same as
+ # arguments +obj+ and +opts+ in JSON.generate.
+ #
+ # By default, generates \JSON data without checking
+ # for circular references in +obj+ (option +max_nesting+ set to +false+, disabled).
+ #
+ # Raises an exception if +obj+ contains circular references:
+ # a = []; b = []; a.push(b); b.push(a)
+ # # Raises SystemStackError (stack level too deep):
+ # JSON.fast_generate(a)
+ #
+ # source://json//json/common.rb#335
+ def fast_generate(obj, opts = T.unsafe(nil)); end
+
+ # :stopdoc:
+ # I want to deprecate these later, so I'll first be silent about them, and later delete them.
+ #
+ # source://json//json/common.rb#335
+ def fast_unparse(obj, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.generate(obj, opts = nil) -> new_string
+ #
+ # Returns a \String containing the generated \JSON data.
+ #
+ # See also JSON.fast_generate, JSON.pretty_generate.
+ #
+ # Argument +obj+ is the Ruby object to be converted to \JSON.
+ #
+ # Argument +opts+, if given, contains a \Hash of options for the generation.
+ # See {Generating Options}[#module-JSON-label-Generating+Options].
+ #
+ # ---
+ #
+ # When +obj+ is an \Array, returns a \String containing a \JSON array:
+ # obj = ["foo", 1.0, true, false, nil]
+ # json = JSON.generate(obj)
+ # json # => '["foo",1.0,true,false,null]'
+ #
+ # When +obj+ is a \Hash, returns a \String containing a \JSON object:
+ # obj = {foo: 0, bar: 's', baz: :bat}
+ # json = JSON.generate(obj)
+ # json # => '{"foo":0,"bar":"s","baz":"bat"}'
+ #
+ # For examples of generating from other Ruby objects, see
+ # {Generating \JSON from Other Objects}[#module-JSON-label-Generating+JSON+from+Other+Objects].
+ #
+ # ---
+ #
+ # Raises an exception if any formatting option is not a \String.
+ #
+ # Raises an exception if +obj+ contains circular references:
+ # a = []; b = []; a.push(b); b.push(a)
+ # # Raises JSON::NestingError (nesting of 100 is too deep):
+ # JSON.generate(a)
+ #
+ # source://json//json/common.rb#296
+ def generate(obj, opts = T.unsafe(nil)); end
+
+ # Returns the JSON generator module that is used by JSON. This is
+ # either JSON::Ext::Generator or JSON::Pure::Generator:
+ # JSON.generator # => JSON::Ext::Generator
+ #
+ # source://json//json/common.rb#103
+ def generator; end
+
+ # Set the module _generator_ to be used by JSON.
+ #
+ # source://json//json/common.rb#58
+ def generator=(generator); end
+
+ # Encodes string using String.encode.
+ #
+ # source://json//json/common.rb#653
+ def iconv(to, from, string); end
+
+ # :call-seq:
+ # JSON.load(source, proc = nil, options = {}) -> object
+ #
+ # Returns the Ruby objects created by parsing the given +source+.
+ #
+ # - Argument +source+ must be, or be convertible to, a \String:
+ # - If +source+ responds to instance method +to_str+,
+ # source.to_str becomes the source.
+ # - If +source+ responds to instance method +to_io+,
+ # source.to_io.read becomes the source.
+ # - If +source+ responds to instance method +read+,
+ # source.read becomes the source.
+ # - If both of the following are true, source becomes the \String 'null':
+ # - Option +allow_blank+ specifies a truthy value.
+ # - The source, as defined above, is +nil+ or the empty \String ''.
+ # - Otherwise, +source+ remains the source.
+ # - Argument +proc+, if given, must be a \Proc that accepts one argument.
+ # It will be called recursively with each result (depth-first order).
+ # See details below.
+ # BEWARE: This method is meant to serialise data from trusted user input,
+ # like from your own database server or clients under your control, it could
+ # be dangerous to allow untrusted users to pass JSON sources into it.
+ # - Argument +opts+, if given, contains a \Hash of options for the parsing.
+ # See {Parsing Options}[#module-JSON-label-Parsing+Options].
+ # The default options can be changed via method JSON.load_default_options=.
+ #
+ # ---
+ #
+ # When no +proc+ is given, modifies +source+ as above and returns the result of
+ # parse(source, opts); see #parse.
+ #
+ # Source for following examples:
+ # source = <<-EOT
+ # {
+ # "name": "Dave",
+ # "age" :40,
+ # "hats": [
+ # "Cattleman's",
+ # "Panama",
+ # "Tophat"
+ # ]
+ # }
+ # EOT
+ #
+ # Load a \String:
+ # ruby = JSON.load(source)
+ # ruby # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
+ #
+ # Load an \IO object:
+ # require 'stringio'
+ # object = JSON.load(StringIO.new(source))
+ # object # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
+ #
+ # Load a \File object:
+ # path = 't.json'
+ # File.write(path, source)
+ # File.open(path) do |file|
+ # JSON.load(file)
+ # end # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
+ #
+ # ---
+ #
+ # When +proc+ is given:
+ # - Modifies +source+ as above.
+ # - Gets the +result+ from calling parse(source, opts).
+ # - Recursively calls proc(result).
+ # - Returns the final result.
+ #
+ # Example:
+ # require 'json'
+ #
+ # # Some classes for the example.
+ # class Base
+ # def initialize(attributes)
+ # @attributes = attributes
+ # end
+ # end
+ # class User < Base; end
+ # class Account < Base; end
+ # class Admin < Base; end
+ # # The JSON source.
+ # json = <<-EOF
+ # {
+ # "users": [
+ # {"type": "User", "username": "jane", "email": "jane@example.com"},
+ # {"type": "User", "username": "john", "email": "john@example.com"}
+ # ],
+ # "accounts": [
+ # {"account": {"type": "Account", "paid": true, "account_id": "1234"}},
+ # {"account": {"type": "Account", "paid": false, "account_id": "1235"}}
+ # ],
+ # "admins": {"type": "Admin", "password": "0wn3d"}
+ # }
+ # EOF
+ # # Deserializer method.
+ # def deserialize_obj(obj, safe_types = %w(User Account Admin))
+ # type = obj.is_a?(Hash) && obj["type"]
+ # safe_types.include?(type) ? Object.const_get(type).new(obj) : obj
+ # end
+ # # Call to JSON.load
+ # ruby = JSON.load(json, proc {|obj|
+ # case obj
+ # when Hash
+ # obj.each {|k, v| obj[k] = deserialize_obj v }
+ # when Array
+ # obj.map! {|v| deserialize_obj v }
+ # end
+ # })
+ # pp ruby
+ # Output:
+ # {"users"=>
+ # [#"User", "username"=>"jane", "email"=>"jane@example.com"}>,
+ # #"User", "username"=>"john", "email"=>"john@example.com"}>],
+ # "accounts"=>
+ # [{"account"=>
+ # #"Account", "paid"=>true, "account_id"=>"1234"}>},
+ # {"account"=>
+ # #"Account", "paid"=>false, "account_id"=>"1235"}>}],
+ # "admins"=>
+ # #"Admin", "password"=>"0wn3d"}>}
+ #
+ # source://json//json/common.rb#557
+ def load(source, proc = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # Sets or returns default options for the JSON.load method.
+ # Initially:
+ # opts = JSON.load_default_options
+ # opts # => {:max_nesting=>false, :allow_nan=>true, :allow_blank=>true, :create_additions=>true}
+ #
+ # source://json//json/common.rb#420
+ def load_default_options; end
+
+ # Sets or returns default options for the JSON.load method.
+ # Initially:
+ # opts = JSON.load_default_options
+ # opts # => {:max_nesting=>false, :allow_nan=>true, :allow_blank=>true, :create_additions=>true}
+ #
+ # source://json//json/common.rb#420
+ def load_default_options=(_arg0); end
+
+ # :call-seq:
+ # JSON.load_file(path, opts={}) -> object
+ #
+ # Calls:
+ # parse(File.read(path), opts)
+ #
+ # See method #parse.
+ #
+ # source://json//json/common.rb#245
+ def load_file(filespec, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.load_file!(path, opts = {})
+ #
+ # Calls:
+ # JSON.parse!(File.read(path, opts))
+ #
+ # See method #parse!
+ #
+ # source://json//json/common.rb#256
+ def load_file!(filespec, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.parse(source, opts) -> object
+ #
+ # Returns the Ruby objects created by parsing the given +source+.
+ #
+ # Argument +source+ contains the \String to be parsed.
+ #
+ # Argument +opts+, if given, contains a \Hash of options for the parsing.
+ # See {Parsing Options}[#module-JSON-label-Parsing+Options].
+ #
+ # ---
+ #
+ # When +source+ is a \JSON array, returns a Ruby \Array:
+ # source = '["foo", 1.0, true, false, null]'
+ # ruby = JSON.parse(source)
+ # ruby # => ["foo", 1.0, true, false, nil]
+ # ruby.class # => Array
+ #
+ # When +source+ is a \JSON object, returns a Ruby \Hash:
+ # source = '{"a": "foo", "b": 1.0, "c": true, "d": false, "e": null}'
+ # ruby = JSON.parse(source)
+ # ruby # => {"a"=>"foo", "b"=>1.0, "c"=>true, "d"=>false, "e"=>nil}
+ # ruby.class # => Hash
+ #
+ # For examples of parsing for all \JSON data types, see
+ # {Parsing \JSON}[#module-JSON-label-Parsing+JSON].
+ #
+ # Parses nested JSON objects:
+ # source = <<-EOT
+ # {
+ # "name": "Dave",
+ # "age" :40,
+ # "hats": [
+ # "Cattleman's",
+ # "Panama",
+ # "Tophat"
+ # ]
+ # }
+ # EOT
+ # ruby = JSON.parse(source)
+ # ruby # => {"name"=>"Dave", "age"=>40, "hats"=>["Cattleman's", "Panama", "Tophat"]}
+ #
+ # ---
+ #
+ # Raises an exception if +source+ is not valid JSON:
+ # # Raises JSON::ParserError (783: unexpected token at ''):
+ # JSON.parse('')
+ #
+ # source://json//json/common.rb#215
+ def parse(source, opts = T.unsafe(nil)); end
+
+ # :call-seq:
+ # JSON.parse!(source, opts) -> object
+ #
+ # Calls
+ # parse(source, opts)
+ # with +source+ and possibly modified +opts+.
+ #
+ # Differences from JSON.parse:
+ # - Option +max_nesting+, if not provided, defaults to +false+,
+ # which disables checking for nesting depth.
+ # - Option +allow_nan+, if not provided, defaults to +true+.
+ #
+ # source://json//json/common.rb#230
+ def parse!(source, opts = T.unsafe(nil)); end
+
+ # Returns the JSON parser class that is used by JSON. This is either
+ # JSON::Ext::Parser or JSON::Pure::Parser:
+ # JSON.parser # => JSON::Ext::Parser
+ #
+ # source://json//json/common.rb#29
+ def parser; end
+
+ # Set the JSON parser class _parser_ to be used by JSON.
+ #
+ # source://json//json/common.rb#32
+ def parser=(parser); end
+
+ # :call-seq:
+ # JSON.pretty_generate(obj, opts = nil) -> new_string
+ #
+ # Arguments +obj+ and +opts+ here are the same as
+ # arguments +obj+ and +opts+ in JSON.generate.
+ #
+ # Default options are:
+ # {
+ # indent: ' ', # Two spaces
+ # space: ' ', # One space
+ # array_nl: "\n", # Newline
+ # object_nl: "\n" # Newline
+ # }
+ #
+ # Example:
+ # obj = {foo: [:bar, :baz], bat: {bam: 0, bad: 1}}
+ # json = JSON.pretty_generate(obj)
+ # puts json
+ # Output:
+ # {
+ # "foo": [
+ # "bar",
+ # "baz"
+ # ],
+ # "bat": {
+ # "bam": 0,
+ # "bad": 1
+ # }
+ # }
+ #
+ # source://json//json/common.rb#390
+ def pretty_generate(obj, opts = T.unsafe(nil)); end
+
+ # :stopdoc:
+ # I want to deprecate these later, so I'll first be silent about them, and later delete them.
+ #
+ # source://json//json/common.rb#390
+ def pretty_unparse(obj, opts = T.unsafe(nil)); end
+
+ # Recursively calls passed _Proc_ if the parsed data structure is an _Array_ or _Hash_
+ #
+ # source://json//json/common.rb#575
+ def recurse_proc(result, &proc); end
+
+ # source://json//json/common.rb#557
+ def restore(source, proc = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # Sets or Returns the JSON generator state class that is used by JSON. This is
+ # either JSON::Ext::Generator::State or JSON::Pure::Generator::State:
+ # JSON.state # => JSON::Ext::Generator::State
+ #
+ # source://json//json/common.rb#108
+ def state; end
+
+ # Sets or Returns the JSON generator state class that is used by JSON. This is
+ # either JSON::Ext::Generator::State or JSON::Pure::Generator::State:
+ # JSON.state # => JSON::Ext::Generator::State
+ #
+ # source://json//json/common.rb#108
+ def state=(_arg0); end
+
+ # :stopdoc:
+ # I want to deprecate these later, so I'll first be silent about them, and
+ # later delete them.
+ #
+ # source://json//json/common.rb#296
+ def unparse(obj, opts = T.unsafe(nil)); end
+ end
+end
+
+# source://json//json/common.rb#114
+JSON::CREATE_ID_TLS_KEY = T.let(T.unsafe(nil), String)
+
+# source://json//json/common.rb#111
+JSON::DEFAULT_CREATE_ID = T.let(T.unsafe(nil), String)
+
+class JSON::GenericObject < ::OpenStruct
+ # source://json//json/generic_object.rb#63
+ def as_json(*_arg0); end
+
+ # source://json//json/generic_object.rb#47
+ def to_hash; end
+
+ # source://json//json/generic_object.rb#67
+ def to_json(*a); end
+
+ # source://json//json/generic_object.rb#59
+ def |(other); end
+
+ class << self
+ # source://json//json/generic_object.rb#41
+ def dump(obj, *args); end
+
+ # source://json//json/generic_object.rb#21
+ def from_hash(object); end
+
+ # Sets the attribute json_creatable
+ #
+ # @param value the value to set the attribute json_creatable to.
+ #
+ # source://json//json/generic_object.rb#13
+ def json_creatable=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://json//json/generic_object.rb#9
+ def json_creatable?; end
+
+ # source://json//json/generic_object.rb#15
+ def json_create(data); end
+
+ # source://json//json/generic_object.rb#36
+ def load(source, proc = T.unsafe(nil), opts = T.unsafe(nil)); end
+ end
+end
+
+# The base exception for JSON errors.
+class JSON::JSONError < ::StandardError
+ class << self
+ # source://json//json/common.rb#138
+ def wrap(exception); end
+ end
+end
+
+# source://json//json/common.rb#35
+JSON::Parser = JSON::Ext::Parser
+
+# source://json//json/common.rb#73
+JSON::State = JSON::Ext::Generator::State
+
+# For backwards compatibility
+#
+# source://json//json/common.rb#159
+JSON::UnparserError = JSON::GeneratorError
+
+module Kernel
+ private
+
+ # If _object_ is string-like, parse the string and return the parsed result as
+ # a Ruby data structure. Otherwise, generate a JSON text from the Ruby data
+ # structure object and return it.
+ #
+ # The _opts_ argument is passed through to generate/parse respectively. See
+ # generate and parse for their documentation.
+ #
+ # source://json//json/common.rb#685
+ def JSON(object, *args); end
+
+ # Outputs _objs_ to STDOUT as JSON strings in the shortest form, that is in
+ # one line.
+ #
+ # source://json//json/common.rb#663
+ def j(*objs); end
+
+ # Outputs _objs_ to STDOUT as JSON strings in a pretty format, with
+ # indentation and over many lines.
+ #
+ # source://json//json/common.rb#672
+ def jj(*objs); end
+end
diff --git a/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi b/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
new file mode 100644
index 0000000..f6b1d8e
--- /dev/null
+++ b/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
@@ -0,0 +1,14237 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `language_server-protocol` gem.
+# Please instead update this file by running `bin/tapioca gem language_server-protocol`.
+
+# source://language_server-protocol//lib/language_server/protocol/version.rb#1
+module LanguageServer; end
+
+# source://language_server-protocol//lib/language_server/protocol/version.rb#2
+module LanguageServer::Protocol; end
+
+# source://language_server-protocol//lib/language_server/protocol/constant.rb#3
+module LanguageServer::Protocol::Constant; end
+
+# The kind of a code action.
+#
+# Kinds are a hierarchical list of identifiers separated by `.`,
+# e.g. `"refactor.extract.function"`.
+#
+# The set of kinds is open and client needs to announce the kinds it supports
+# to the server during initialization.
+# A set of predefined code action kinds.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#14
+module LanguageServer::Protocol::Constant::CodeActionKind; end
+
+# Empty kind.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#18
+LanguageServer::Protocol::Constant::CodeActionKind::EMPTY = T.let(T.unsafe(nil), String)
+
+# Base kind for quickfix actions: 'quickfix'.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#22
+LanguageServer::Protocol::Constant::CodeActionKind::QUICK_FIX = T.let(T.unsafe(nil), String)
+
+# Base kind for refactoring actions: 'refactor'.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#26
+LanguageServer::Protocol::Constant::CodeActionKind::REFACTOR = T.let(T.unsafe(nil), String)
+
+# Base kind for refactoring extraction actions: 'refactor.extract'.
+#
+# Example extract actions:
+#
+# - Extract method
+# - Extract function
+# - Extract variable
+# - Extract interface from class
+# - ...
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#38
+LanguageServer::Protocol::Constant::CodeActionKind::REFACTOR_EXTRACT = T.let(T.unsafe(nil), String)
+
+# Base kind for refactoring inline actions: 'refactor.inline'.
+#
+# Example inline actions:
+#
+# - Inline function
+# - Inline variable
+# - Inline constant
+# - ...
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#49
+LanguageServer::Protocol::Constant::CodeActionKind::REFACTOR_INLINE = T.let(T.unsafe(nil), String)
+
+# Base kind for refactoring rewrite actions: 'refactor.rewrite'.
+#
+# Example rewrite actions:
+#
+# - Convert JavaScript function to class
+# - Add or remove parameter
+# - Encapsulate field
+# - Make method static
+# - Move method to base class
+# - ...
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#62
+LanguageServer::Protocol::Constant::CodeActionKind::REFACTOR_REWRITE = T.let(T.unsafe(nil), String)
+
+# Base kind for source actions: `source`.
+#
+# Source code actions apply to the entire file.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#68
+LanguageServer::Protocol::Constant::CodeActionKind::SOURCE = T.let(T.unsafe(nil), String)
+
+# Base kind for a 'fix all' source action: `source.fixAll`.
+#
+# 'Fix all' actions automatically fix errors that have a clear fix that
+# do not require user input. They should not suppress errors or perform
+# unsafe fixes such as generating new types or classes.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#81
+LanguageServer::Protocol::Constant::CodeActionKind::SOURCE_FIX_ALL = T.let(T.unsafe(nil), String)
+
+# Base kind for an organize imports source action:
+# `source.organizeImports`.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_kind.rb#73
+LanguageServer::Protocol::Constant::CodeActionKind::SOURCE_ORGANIZE_IMPORTS = T.let(T.unsafe(nil), String)
+
+# The reason why code actions were requested.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_trigger_kind.rb#7
+module LanguageServer::Protocol::Constant::CodeActionTriggerKind; end
+
+# Code actions were requested automatically.
+#
+# This typically happens when current selection in a file changes, but can
+# also be triggered when file content changes.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_trigger_kind.rb#18
+LanguageServer::Protocol::Constant::CodeActionTriggerKind::AUTOMATIC = T.let(T.unsafe(nil), Integer)
+
+# Code actions were explicitly requested by the user or by an extension.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/code_action_trigger_kind.rb#11
+LanguageServer::Protocol::Constant::CodeActionTriggerKind::INVOKED = T.let(T.unsafe(nil), Integer)
+
+# The kind of a completion entry.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#7
+module LanguageServer::Protocol::Constant::CompletionItemKind; end
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#14
+LanguageServer::Protocol::Constant::CompletionItemKind::CLASS = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#23
+LanguageServer::Protocol::Constant::CompletionItemKind::COLOR = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#28
+LanguageServer::Protocol::Constant::CompletionItemKind::CONSTANT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#11
+LanguageServer::Protocol::Constant::CompletionItemKind::CONSTRUCTOR = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#20
+LanguageServer::Protocol::Constant::CompletionItemKind::ENUM = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#27
+LanguageServer::Protocol::Constant::CompletionItemKind::ENUM_MEMBER = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#30
+LanguageServer::Protocol::Constant::CompletionItemKind::EVENT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#12
+LanguageServer::Protocol::Constant::CompletionItemKind::FIELD = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#24
+LanguageServer::Protocol::Constant::CompletionItemKind::FILE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#26
+LanguageServer::Protocol::Constant::CompletionItemKind::FOLDER = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#10
+LanguageServer::Protocol::Constant::CompletionItemKind::FUNCTION = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#15
+LanguageServer::Protocol::Constant::CompletionItemKind::INTERFACE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#21
+LanguageServer::Protocol::Constant::CompletionItemKind::KEYWORD = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#9
+LanguageServer::Protocol::Constant::CompletionItemKind::METHOD = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#16
+LanguageServer::Protocol::Constant::CompletionItemKind::MODULE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#31
+LanguageServer::Protocol::Constant::CompletionItemKind::OPERATOR = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#17
+LanguageServer::Protocol::Constant::CompletionItemKind::PROPERTY = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#25
+LanguageServer::Protocol::Constant::CompletionItemKind::REFERENCE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#22
+LanguageServer::Protocol::Constant::CompletionItemKind::SNIPPET = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#29
+LanguageServer::Protocol::Constant::CompletionItemKind::STRUCT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#8
+LanguageServer::Protocol::Constant::CompletionItemKind::TEXT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#32
+LanguageServer::Protocol::Constant::CompletionItemKind::TYPE_PARAMETER = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#18
+LanguageServer::Protocol::Constant::CompletionItemKind::UNIT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#19
+LanguageServer::Protocol::Constant::CompletionItemKind::VALUE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_kind.rb#13
+LanguageServer::Protocol::Constant::CompletionItemKind::VARIABLE = T.let(T.unsafe(nil), Integer)
+
+# Completion item tags are extra annotations that tweak the rendering of a
+# completion item.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_tag.rb#8
+module LanguageServer::Protocol::Constant::CompletionItemTag; end
+
+# Render a completion as obsolete, usually using a strike-out.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_item_tag.rb#12
+LanguageServer::Protocol::Constant::CompletionItemTag::DEPRECATED = T.let(T.unsafe(nil), Integer)
+
+# How a completion was triggered
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_trigger_kind.rb#7
+module LanguageServer::Protocol::Constant::CompletionTriggerKind; end
+
+# Completion was triggered by typing an identifier (24x7 code
+# complete), manual invocation (e.g Ctrl+Space) or via API.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_trigger_kind.rb#12
+LanguageServer::Protocol::Constant::CompletionTriggerKind::INVOKED = T.let(T.unsafe(nil), Integer)
+
+# Completion was triggered by a trigger character specified by
+# the `triggerCharacters` properties of the
+# `CompletionRegistrationOptions`.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_trigger_kind.rb#18
+LanguageServer::Protocol::Constant::CompletionTriggerKind::TRIGGER_CHARACTER = T.let(T.unsafe(nil), Integer)
+
+# Completion was re-triggered as the current completion list is incomplete.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/completion_trigger_kind.rb#22
+LanguageServer::Protocol::Constant::CompletionTriggerKind::TRIGGER_FOR_INCOMPLETE_COMPLETIONS = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/diagnostic_severity.rb#4
+module LanguageServer::Protocol::Constant::DiagnosticSeverity; end
+
+# Reports an error.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/diagnostic_severity.rb#8
+LanguageServer::Protocol::Constant::DiagnosticSeverity::ERROR = T.let(T.unsafe(nil), Integer)
+
+# Reports a hint.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/diagnostic_severity.rb#20
+LanguageServer::Protocol::Constant::DiagnosticSeverity::HINT = T.let(T.unsafe(nil), Integer)
+
+# Reports an information.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/diagnostic_severity.rb#16
+LanguageServer::Protocol::Constant::DiagnosticSeverity::INFORMATION = T.let(T.unsafe(nil), Integer)
+
+# Reports a warning.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/diagnostic_severity.rb#12
+LanguageServer::Protocol::Constant::DiagnosticSeverity::WARNING = T.let(T.unsafe(nil), Integer)
+
+# The diagnostic tags.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/diagnostic_tag.rb#7
+module LanguageServer::Protocol::Constant::DiagnosticTag; end
+
+# Deprecated or obsolete code.
+#
+# Clients are allowed to rendered diagnostics with this tag strike through.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/diagnostic_tag.rb#20
+LanguageServer::Protocol::Constant::DiagnosticTag::DEPRECATED = T.let(T.unsafe(nil), Integer)
+
+# Unused or unnecessary code.
+#
+# Clients are allowed to render diagnostics with this tag faded out
+# instead of having an error squiggle.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/diagnostic_tag.rb#14
+LanguageServer::Protocol::Constant::DiagnosticTag::UNNECESSARY = T.let(T.unsafe(nil), Integer)
+
+# The document diagnostic report kinds.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/document_diagnostic_report_kind.rb#7
+module LanguageServer::Protocol::Constant::DocumentDiagnosticReportKind; end
+
+# A diagnostic report with a full
+# set of problems.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/document_diagnostic_report_kind.rb#12
+LanguageServer::Protocol::Constant::DocumentDiagnosticReportKind::FULL = T.let(T.unsafe(nil), String)
+
+# A report indicating that the last
+# returned report is still accurate.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/document_diagnostic_report_kind.rb#17
+LanguageServer::Protocol::Constant::DocumentDiagnosticReportKind::UNCHANGED = T.let(T.unsafe(nil), String)
+
+# A document highlight kind.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/document_highlight_kind.rb#7
+module LanguageServer::Protocol::Constant::DocumentHighlightKind; end
+
+# Read-access of a symbol, like reading a variable.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/document_highlight_kind.rb#15
+LanguageServer::Protocol::Constant::DocumentHighlightKind::READ = T.let(T.unsafe(nil), Integer)
+
+# A textual occurrence.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/document_highlight_kind.rb#11
+LanguageServer::Protocol::Constant::DocumentHighlightKind::TEXT = T.let(T.unsafe(nil), Integer)
+
+# Write-access of a symbol, like writing to a variable.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/document_highlight_kind.rb#19
+LanguageServer::Protocol::Constant::DocumentHighlightKind::WRITE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#4
+module LanguageServer::Protocol::Constant::ErrorCodes; end
+
+# The server detected that the content of a document got
+# modified outside normal conditions. A server should
+# NOT send this error code if it detects a content change
+# in it unprocessed messages. The result even computed
+# on an older state might still be useful for the client.
+#
+# If a client decides that a result is not of any use anymore
+# the client should cancel the request.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#59
+LanguageServer::Protocol::Constant::ErrorCodes::CONTENT_MODIFIED = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#9
+LanguageServer::Protocol::Constant::ErrorCodes::INTERNAL_ERROR = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#8
+LanguageServer::Protocol::Constant::ErrorCodes::INVALID_PARAMS = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#6
+LanguageServer::Protocol::Constant::ErrorCodes::INVALID_REQUEST = T.let(T.unsafe(nil), Integer)
+
+# This is the end range of JSON-RPC reserved error codes.
+# It doesn't denote a real error code.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#29
+LanguageServer::Protocol::Constant::ErrorCodes::JSONRPC_RESERVED_ERROR_RANGE_END = T.let(T.unsafe(nil), Integer)
+
+# This is the start range of JSON-RPC reserved error codes.
+# It doesn't denote a real error code. No LSP error codes should
+# be defined between the start and end range. For backwards
+# compatibility the `ServerNotInitialized` and the `UnknownErrorCode`
+# are left in the range.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#17
+LanguageServer::Protocol::Constant::ErrorCodes::JSONRPC_RESERVED_ERROR_RANGE_START = T.let(T.unsafe(nil), Integer)
+
+# This is the end range of LSP reserved error codes.
+# It doesn't denote a real error code.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#69
+LanguageServer::Protocol::Constant::ErrorCodes::LSP_RESERVED_ERROR_RANGE_END = T.let(T.unsafe(nil), Integer)
+
+# This is the start range of LSP reserved error codes.
+# It doesn't denote a real error code.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#35
+LanguageServer::Protocol::Constant::ErrorCodes::LSP_RESERVED_ERROR_RANGE_START = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#7
+LanguageServer::Protocol::Constant::ErrorCodes::METHOD_NOT_FOUND = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#5
+LanguageServer::Protocol::Constant::ErrorCodes::PARSE_ERROR = T.let(T.unsafe(nil), Integer)
+
+# The client has canceled a request and a server as detected
+# the cancel.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#64
+LanguageServer::Protocol::Constant::ErrorCodes::REQUEST_CANCELLED = T.let(T.unsafe(nil), Integer)
+
+# A request failed but it was syntactically correct, e.g the
+# method name was known and the parameters were valid. The error
+# message should contain human readable information about why
+# the request failed.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#42
+LanguageServer::Protocol::Constant::ErrorCodes::REQUEST_FAILED = T.let(T.unsafe(nil), Integer)
+
+# The server cancelled the request. This error code should
+# only be used for requests that explicitly support being
+# server cancellable.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#48
+LanguageServer::Protocol::Constant::ErrorCodes::SERVER_CANCELLED = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#30
+LanguageServer::Protocol::Constant::ErrorCodes::SERVER_ERROR_END = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#18
+LanguageServer::Protocol::Constant::ErrorCodes::SERVER_ERROR_START = T.let(T.unsafe(nil), Integer)
+
+# Error code indicating that a server received a notification or
+# request before the server has received the `initialize` request.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#23
+LanguageServer::Protocol::Constant::ErrorCodes::SERVER_NOT_INITIALIZED = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/error_codes.rb#24
+LanguageServer::Protocol::Constant::ErrorCodes::UNKNOWN_ERROR_CODE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/failure_handling_kind.rb#4
+module LanguageServer::Protocol::Constant::FailureHandlingKind; end
+
+# Applying the workspace change is simply aborted if one of the changes
+# provided fails. All operations executed before the failing operation
+# stay executed.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/failure_handling_kind.rb#10
+LanguageServer::Protocol::Constant::FailureHandlingKind::ABORT = T.let(T.unsafe(nil), String)
+
+# If the workspace edit contains only textual file changes they are
+# executed transactional. If resource changes (create, rename or delete
+# file) are part of the change the failure handling strategy is abort.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/failure_handling_kind.rb#21
+LanguageServer::Protocol::Constant::FailureHandlingKind::TEXT_ONLY_TRANSACTIONAL = T.let(T.unsafe(nil), String)
+
+# All operations are executed transactional. That means they either all
+# succeed or no changes at all are applied to the workspace.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/failure_handling_kind.rb#15
+LanguageServer::Protocol::Constant::FailureHandlingKind::TRANSACTIONAL = T.let(T.unsafe(nil), String)
+
+# The client tries to undo the operations already executed. But there is no
+# guarantee that this is succeeding.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/failure_handling_kind.rb#26
+LanguageServer::Protocol::Constant::FailureHandlingKind::UNDO = T.let(T.unsafe(nil), String)
+
+# The file event type.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/file_change_type.rb#7
+module LanguageServer::Protocol::Constant::FileChangeType; end
+
+# The file got changed.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/file_change_type.rb#15
+LanguageServer::Protocol::Constant::FileChangeType::CHANGED = T.let(T.unsafe(nil), Integer)
+
+# The file got created.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/file_change_type.rb#11
+LanguageServer::Protocol::Constant::FileChangeType::CREATED = T.let(T.unsafe(nil), Integer)
+
+# The file got deleted.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/file_change_type.rb#19
+LanguageServer::Protocol::Constant::FileChangeType::DELETED = T.let(T.unsafe(nil), Integer)
+
+# A pattern kind describing if a glob pattern matches a file a folder or
+# both.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/file_operation_pattern_kind.rb#8
+module LanguageServer::Protocol::Constant::FileOperationPatternKind; end
+
+# The pattern matches a file only.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/file_operation_pattern_kind.rb#12
+LanguageServer::Protocol::Constant::FileOperationPatternKind::FILE = T.let(T.unsafe(nil), String)
+
+# The pattern matches a folder only.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/file_operation_pattern_kind.rb#16
+LanguageServer::Protocol::Constant::FileOperationPatternKind::FOLDER = T.let(T.unsafe(nil), String)
+
+# A set of predefined range kinds.
+# The type is a string since the value set is extensible
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/folding_range_kind.rb#8
+module LanguageServer::Protocol::Constant::FoldingRangeKind; end
+
+# Folding range for a comment
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/folding_range_kind.rb#12
+LanguageServer::Protocol::Constant::FoldingRangeKind::COMMENT = T.let(T.unsafe(nil), String)
+
+# Folding range for imports or includes
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/folding_range_kind.rb#16
+LanguageServer::Protocol::Constant::FoldingRangeKind::IMPORTS = T.let(T.unsafe(nil), String)
+
+# Folding range for a region (e.g. `#region`)
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/folding_range_kind.rb#20
+LanguageServer::Protocol::Constant::FoldingRangeKind::REGION = T.let(T.unsafe(nil), String)
+
+# Known error codes for an `InitializeErrorCodes`;
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/initialize_error_codes.rb#7
+module LanguageServer::Protocol::Constant::InitializeErrorCodes; end
+
+# If the protocol version provided by the client can't be handled by
+# the server.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/initialize_error_codes.rb#12
+LanguageServer::Protocol::Constant::InitializeErrorCodes::UNKNOWN_PROTOCOL_VERSION = T.let(T.unsafe(nil), Integer)
+
+# Inlay hint kinds.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/inlay_hint_kind.rb#7
+module LanguageServer::Protocol::Constant::InlayHintKind; end
+
+# An inlay hint that is for a parameter.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/inlay_hint_kind.rb#15
+LanguageServer::Protocol::Constant::InlayHintKind::PARAMETER = T.let(T.unsafe(nil), Integer)
+
+# An inlay hint that for a type annotation.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/inlay_hint_kind.rb#11
+LanguageServer::Protocol::Constant::InlayHintKind::TYPE = T.let(T.unsafe(nil), Integer)
+
+# Defines whether the insert text in a completion item should be interpreted as
+# plain text or a snippet.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/insert_text_format.rb#8
+module LanguageServer::Protocol::Constant::InsertTextFormat; end
+
+# The primary text to be inserted is treated as a plain string.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/insert_text_format.rb#12
+LanguageServer::Protocol::Constant::InsertTextFormat::PLAIN_TEXT = T.let(T.unsafe(nil), Integer)
+
+# The primary text to be inserted is treated as a snippet.
+#
+# A snippet can define tab stops and placeholders with `$1`, `$2`
+# and `${3:foo}`. `$0` defines the final tab stop, it defaults to
+# the end of the snippet. Placeholders with equal identifiers are linked,
+# that is typing in one will update others too.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/insert_text_format.rb#21
+LanguageServer::Protocol::Constant::InsertTextFormat::SNIPPET = T.let(T.unsafe(nil), Integer)
+
+# How whitespace and indentation is handled during completion
+# item insertion.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/insert_text_mode.rb#8
+module LanguageServer::Protocol::Constant::InsertTextMode; end
+
+# The editor adjusts leading whitespace of new lines so that
+# they match the indentation up to the cursor of the line for
+# which the item is accepted.
+#
+# Consider a line like this: <2tabs><3tabs>foo. Accepting a
+# multi line completion item is indented using 2 tabs and all
+# following lines inserted will be indented using 2 tabs as well.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/insert_text_mode.rb#26
+LanguageServer::Protocol::Constant::InsertTextMode::ADJUST_INDENTATION = T.let(T.unsafe(nil), Integer)
+
+# The insertion or replace strings is taken as it is. If the
+# value is multi line the lines below the cursor will be
+# inserted using the indentation defined in the string value.
+# The client will not apply any kind of adjustments to the
+# string.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/insert_text_mode.rb#16
+LanguageServer::Protocol::Constant::InsertTextMode::AS_IS = T.let(T.unsafe(nil), Integer)
+
+# Describes the content type that a client supports in various
+# result literals like `Hover`, `ParameterInfo` or `CompletionItem`.
+#
+# Please note that `MarkupKinds` must not start with a `$`. This kinds
+# are reserved for internal usage.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/markup_kind.rb#11
+module LanguageServer::Protocol::Constant::MarkupKind; end
+
+# Markdown is supported as a content format
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/markup_kind.rb#19
+LanguageServer::Protocol::Constant::MarkupKind::MARKDOWN = T.let(T.unsafe(nil), String)
+
+# Plain text is supported as a content format
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/markup_kind.rb#15
+LanguageServer::Protocol::Constant::MarkupKind::PLAIN_TEXT = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/message_type.rb#4
+module LanguageServer::Protocol::Constant::MessageType; end
+
+# An error message.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/message_type.rb#8
+LanguageServer::Protocol::Constant::MessageType::ERROR = T.let(T.unsafe(nil), Integer)
+
+# An information message.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/message_type.rb#16
+LanguageServer::Protocol::Constant::MessageType::INFO = T.let(T.unsafe(nil), Integer)
+
+# A log message.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/message_type.rb#20
+LanguageServer::Protocol::Constant::MessageType::LOG = T.let(T.unsafe(nil), Integer)
+
+# A warning message.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/message_type.rb#12
+LanguageServer::Protocol::Constant::MessageType::WARNING = T.let(T.unsafe(nil), Integer)
+
+# The moniker kind.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/moniker_kind.rb#7
+module LanguageServer::Protocol::Constant::MonikerKind; end
+
+# The moniker represents a symbol that is exported from a project
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/moniker_kind.rb#15
+LanguageServer::Protocol::Constant::MonikerKind::EXPORT = T.let(T.unsafe(nil), String)
+
+# The moniker represent a symbol that is imported into a project
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/moniker_kind.rb#11
+LanguageServer::Protocol::Constant::MonikerKind::IMPORT = T.let(T.unsafe(nil), String)
+
+# The moniker represents a symbol that is local to a project (e.g. a local
+# variable of a function, a class not visible outside the project, ...)
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/moniker_kind.rb#20
+LanguageServer::Protocol::Constant::MonikerKind::LOCAL = T.let(T.unsafe(nil), String)
+
+# A notebook cell kind.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/notebook_cell_kind.rb#7
+module LanguageServer::Protocol::Constant::NotebookCellKind; end
+
+# A code-cell is source code.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/notebook_cell_kind.rb#15
+LanguageServer::Protocol::Constant::NotebookCellKind::CODE = T.let(T.unsafe(nil), Integer)
+
+# A markup-cell is formatted source that is used for display.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/notebook_cell_kind.rb#11
+LanguageServer::Protocol::Constant::NotebookCellKind::MARKUP = T.let(T.unsafe(nil), Integer)
+
+# A type indicating how positions are encoded,
+# specifically what column offsets mean.
+# A set of predefined position encoding kinds.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/position_encoding_kind.rb#9
+module LanguageServer::Protocol::Constant::PositionEncodingKind; end
+
+# Character offsets count UTF-16 code units.
+#
+# This is the default and must always be supported
+# by servers
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/position_encoding_kind.rb#20
+LanguageServer::Protocol::Constant::PositionEncodingKind::UTF16 = T.let(T.unsafe(nil), String)
+
+# Character offsets count UTF-32 code units.
+#
+# Implementation note: these are the same as Unicode code points,
+# so this `PositionEncodingKind` may also be used for an
+# encoding-agnostic representation of character offsets.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/position_encoding_kind.rb#28
+LanguageServer::Protocol::Constant::PositionEncodingKind::UTF32 = T.let(T.unsafe(nil), String)
+
+# Character offsets count UTF-8 code units (e.g bytes).
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/position_encoding_kind.rb#13
+LanguageServer::Protocol::Constant::PositionEncodingKind::UTF8 = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/prepare_support_default_behavior.rb#4
+module LanguageServer::Protocol::Constant::PrepareSupportDefaultBehavior; end
+
+# The client's default behavior is to select the identifier
+# according to the language's syntax rule.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/prepare_support_default_behavior.rb#9
+LanguageServer::Protocol::Constant::PrepareSupportDefaultBehavior::IDENTIFIER = T.let(T.unsafe(nil), Integer)
+
+# The kind of resource operations supported by the client.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/resource_operation_kind.rb#7
+module LanguageServer::Protocol::Constant::ResourceOperationKind; end
+
+# Supports creating new files and folders.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/resource_operation_kind.rb#11
+LanguageServer::Protocol::Constant::ResourceOperationKind::CREATE = T.let(T.unsafe(nil), String)
+
+# Supports deleting existing files and folders.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/resource_operation_kind.rb#19
+LanguageServer::Protocol::Constant::ResourceOperationKind::DELETE = T.let(T.unsafe(nil), String)
+
+# Supports renaming existing files and folders.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/resource_operation_kind.rb#15
+LanguageServer::Protocol::Constant::ResourceOperationKind::RENAME = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#4
+module LanguageServer::Protocol::Constant::SemanticTokenModifiers; end
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#10
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::ABSTRACT = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#11
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::ASYNC = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#5
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::DECLARATION = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#14
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::DEFAULT_LIBRARY = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#6
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::DEFINITION = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#9
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::DEPRECATED = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#13
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::DOCUMENTATION = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#12
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::MODIFICATION = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#7
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::READONLY = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_modifiers.rb#8
+LanguageServer::Protocol::Constant::SemanticTokenModifiers::STATIC = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#4
+module LanguageServer::Protocol::Constant::SemanticTokenTypes; end
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#11
+LanguageServer::Protocol::Constant::SemanticTokenTypes::CLASS = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#26
+LanguageServer::Protocol::Constant::SemanticTokenTypes::COMMENT = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#31
+LanguageServer::Protocol::Constant::SemanticTokenTypes::DECORATOR = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#12
+LanguageServer::Protocol::Constant::SemanticTokenTypes::ENUM = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#19
+LanguageServer::Protocol::Constant::SemanticTokenTypes::ENUM_MEMBER = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#20
+LanguageServer::Protocol::Constant::SemanticTokenTypes::EVENT = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#21
+LanguageServer::Protocol::Constant::SemanticTokenTypes::FUNCTION = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#13
+LanguageServer::Protocol::Constant::SemanticTokenTypes::INTERFACE = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#24
+LanguageServer::Protocol::Constant::SemanticTokenTypes::KEYWORD = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#23
+LanguageServer::Protocol::Constant::SemanticTokenTypes::MACRO = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#22
+LanguageServer::Protocol::Constant::SemanticTokenTypes::METHOD = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#25
+LanguageServer::Protocol::Constant::SemanticTokenTypes::MODIFIER = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#5
+LanguageServer::Protocol::Constant::SemanticTokenTypes::NAMESPACE = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#28
+LanguageServer::Protocol::Constant::SemanticTokenTypes::NUMBER = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#30
+LanguageServer::Protocol::Constant::SemanticTokenTypes::OPERATOR = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#16
+LanguageServer::Protocol::Constant::SemanticTokenTypes::PARAMETER = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#18
+LanguageServer::Protocol::Constant::SemanticTokenTypes::PROPERTY = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#29
+LanguageServer::Protocol::Constant::SemanticTokenTypes::REGEXP = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#27
+LanguageServer::Protocol::Constant::SemanticTokenTypes::STRING = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#14
+LanguageServer::Protocol::Constant::SemanticTokenTypes::STRUCT = T.let(T.unsafe(nil), String)
+
+# Represents a generic type. Acts as a fallback for types which
+# can't be mapped to a specific type like class or enum.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#10
+LanguageServer::Protocol::Constant::SemanticTokenTypes::TYPE = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#15
+LanguageServer::Protocol::Constant::SemanticTokenTypes::TYPE_PARAMETER = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/semantic_token_types.rb#17
+LanguageServer::Protocol::Constant::SemanticTokenTypes::VARIABLE = T.let(T.unsafe(nil), String)
+
+# How a signature help was triggered.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/signature_help_trigger_kind.rb#7
+module LanguageServer::Protocol::Constant::SignatureHelpTriggerKind; end
+
+# Signature help was triggered by the cursor moving or by the document
+# content changing.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/signature_help_trigger_kind.rb#20
+LanguageServer::Protocol::Constant::SignatureHelpTriggerKind::CONTENT_CHANGE = T.let(T.unsafe(nil), Integer)
+
+# Signature help was invoked manually by the user or by a command.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/signature_help_trigger_kind.rb#11
+LanguageServer::Protocol::Constant::SignatureHelpTriggerKind::INVOKED = T.let(T.unsafe(nil), Integer)
+
+# Signature help was triggered by a trigger character.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/signature_help_trigger_kind.rb#15
+LanguageServer::Protocol::Constant::SignatureHelpTriggerKind::TRIGGER_CHARACTER = T.let(T.unsafe(nil), Integer)
+
+# A symbol kind.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#7
+module LanguageServer::Protocol::Constant::SymbolKind; end
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#25
+LanguageServer::Protocol::Constant::SymbolKind::ARRAY = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#24
+LanguageServer::Protocol::Constant::SymbolKind::BOOLEAN = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#12
+LanguageServer::Protocol::Constant::SymbolKind::CLASS = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#21
+LanguageServer::Protocol::Constant::SymbolKind::CONSTANT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#16
+LanguageServer::Protocol::Constant::SymbolKind::CONSTRUCTOR = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#17
+LanguageServer::Protocol::Constant::SymbolKind::ENUM = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#29
+LanguageServer::Protocol::Constant::SymbolKind::ENUM_MEMBER = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#31
+LanguageServer::Protocol::Constant::SymbolKind::EVENT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#15
+LanguageServer::Protocol::Constant::SymbolKind::FIELD = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#8
+LanguageServer::Protocol::Constant::SymbolKind::FILE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#19
+LanguageServer::Protocol::Constant::SymbolKind::FUNCTION = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#18
+LanguageServer::Protocol::Constant::SymbolKind::INTERFACE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#27
+LanguageServer::Protocol::Constant::SymbolKind::KEY = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#13
+LanguageServer::Protocol::Constant::SymbolKind::METHOD = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#9
+LanguageServer::Protocol::Constant::SymbolKind::MODULE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#10
+LanguageServer::Protocol::Constant::SymbolKind::NAMESPACE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#28
+LanguageServer::Protocol::Constant::SymbolKind::NULL = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#23
+LanguageServer::Protocol::Constant::SymbolKind::NUMBER = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#26
+LanguageServer::Protocol::Constant::SymbolKind::OBJECT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#32
+LanguageServer::Protocol::Constant::SymbolKind::OPERATOR = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#11
+LanguageServer::Protocol::Constant::SymbolKind::PACKAGE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#14
+LanguageServer::Protocol::Constant::SymbolKind::PROPERTY = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#22
+LanguageServer::Protocol::Constant::SymbolKind::STRING = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#30
+LanguageServer::Protocol::Constant::SymbolKind::STRUCT = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#33
+LanguageServer::Protocol::Constant::SymbolKind::TYPE_PARAMETER = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_kind.rb#20
+LanguageServer::Protocol::Constant::SymbolKind::VARIABLE = T.let(T.unsafe(nil), Integer)
+
+# Symbol tags are extra annotations that tweak the rendering of a symbol.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_tag.rb#7
+module LanguageServer::Protocol::Constant::SymbolTag; end
+
+# Render a symbol as obsolete, usually using a strike-out.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/symbol_tag.rb#11
+LanguageServer::Protocol::Constant::SymbolTag::DEPRECATED = T.let(T.unsafe(nil), Integer)
+
+# Represents reasons why a text document is saved.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/text_document_save_reason.rb#7
+module LanguageServer::Protocol::Constant::TextDocumentSaveReason; end
+
+# Automatic after a delay.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/text_document_save_reason.rb#16
+LanguageServer::Protocol::Constant::TextDocumentSaveReason::AFTER_DELAY = T.let(T.unsafe(nil), Integer)
+
+# When the editor lost focus.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/text_document_save_reason.rb#20
+LanguageServer::Protocol::Constant::TextDocumentSaveReason::FOCUS_OUT = T.let(T.unsafe(nil), Integer)
+
+# Manually triggered, e.g. by the user pressing save, by starting
+# debugging, or by an API call.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/text_document_save_reason.rb#12
+LanguageServer::Protocol::Constant::TextDocumentSaveReason::MANUAL = T.let(T.unsafe(nil), Integer)
+
+# Defines how the host (editor) should sync document changes to the language
+# server.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/text_document_sync_kind.rb#8
+module LanguageServer::Protocol::Constant::TextDocumentSyncKind; end
+
+# Documents are synced by always sending the full content
+# of the document.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/text_document_sync_kind.rb#17
+LanguageServer::Protocol::Constant::TextDocumentSyncKind::FULL = T.let(T.unsafe(nil), Integer)
+
+# Documents are synced by sending the full content on open.
+# After that only incremental updates to the document are
+# sent.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/text_document_sync_kind.rb#23
+LanguageServer::Protocol::Constant::TextDocumentSyncKind::INCREMENTAL = T.let(T.unsafe(nil), Integer)
+
+# Documents should not be synced at all.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/text_document_sync_kind.rb#12
+LanguageServer::Protocol::Constant::TextDocumentSyncKind::NONE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/token_format.rb#4
+module LanguageServer::Protocol::Constant::TokenFormat; end
+
+# source://language_server-protocol//lib/language_server/protocol/constant/token_format.rb#5
+LanguageServer::Protocol::Constant::TokenFormat::RELATIVE = T.let(T.unsafe(nil), String)
+
+# Moniker uniqueness level to define scope of the moniker.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/uniqueness_level.rb#7
+module LanguageServer::Protocol::Constant::UniquenessLevel; end
+
+# The moniker is only unique inside a document
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/uniqueness_level.rb#11
+LanguageServer::Protocol::Constant::UniquenessLevel::DOCUMENT = T.let(T.unsafe(nil), String)
+
+# The moniker is globally unique
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/uniqueness_level.rb#27
+LanguageServer::Protocol::Constant::UniquenessLevel::GLOBAL = T.let(T.unsafe(nil), String)
+
+# The moniker is unique inside the group to which a project belongs
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/uniqueness_level.rb#19
+LanguageServer::Protocol::Constant::UniquenessLevel::GROUP = T.let(T.unsafe(nil), String)
+
+# The moniker is unique inside a project for which a dump got created
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/uniqueness_level.rb#15
+LanguageServer::Protocol::Constant::UniquenessLevel::PROJECT = T.let(T.unsafe(nil), String)
+
+# The moniker is unique inside the moniker scheme.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/uniqueness_level.rb#23
+LanguageServer::Protocol::Constant::UniquenessLevel::SCHEME = T.let(T.unsafe(nil), String)
+
+# source://language_server-protocol//lib/language_server/protocol/constant/watch_kind.rb#4
+module LanguageServer::Protocol::Constant::WatchKind; end
+
+# Interested in change events
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/watch_kind.rb#12
+LanguageServer::Protocol::Constant::WatchKind::CHANGE = T.let(T.unsafe(nil), Integer)
+
+# Interested in create events.
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/watch_kind.rb#8
+LanguageServer::Protocol::Constant::WatchKind::CREATE = T.let(T.unsafe(nil), Integer)
+
+# Interested in delete events
+#
+# source://language_server-protocol//lib/language_server/protocol/constant/watch_kind.rb#16
+LanguageServer::Protocol::Constant::WatchKind::DELETE = T.let(T.unsafe(nil), Integer)
+
+# source://language_server-protocol//lib/language_server/protocol/interface.rb#3
+module LanguageServer::Protocol::Interface; end
+
+# A special text edit with an additional change annotation.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/annotated_text_edit.rb#7
+class LanguageServer::Protocol::Interface::AnnotatedTextEdit
+ # @return [AnnotatedTextEdit] a new instance of AnnotatedTextEdit
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/annotated_text_edit.rb#8
+ def initialize(range:, new_text:, annotation_id:); end
+
+ # The actual annotation identifier.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/annotated_text_edit.rb#40
+ def annotation_id; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/annotated_text_edit.rb#44
+ def attributes; end
+
+ # The string to be inserted. For delete operations use an
+ # empty string.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/annotated_text_edit.rb#32
+ def new_text; end
+
+ # The range of the text document to be manipulated. To insert
+ # text into a document create a range where start === end.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/annotated_text_edit.rb#23
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/annotated_text_edit.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/annotated_text_edit.rb#50
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_params.rb#4
+class LanguageServer::Protocol::Interface::ApplyWorkspaceEditParams
+ # @return [ApplyWorkspaceEditParams] a new instance of ApplyWorkspaceEditParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_params.rb#5
+ def initialize(edit:, label: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_params.rb#32
+ def attributes; end
+
+ # The edits to apply.
+ #
+ # @return [WorkspaceEdit]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_params.rb#28
+ def edit; end
+
+ # An optional label of the workspace edit. This label is
+ # presented in the user interface for example on an undo
+ # stack to undo the workspace edit.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_params.rb#20
+ def label; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_params.rb#34
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_params.rb#38
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_result.rb#4
+class LanguageServer::Protocol::Interface::ApplyWorkspaceEditResult
+ # @return [ApplyWorkspaceEditResult] a new instance of ApplyWorkspaceEditResult
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_result.rb#5
+ def initialize(applied:, failure_reason: T.unsafe(nil), failed_change: T.unsafe(nil)); end
+
+ # Indicates whether the edit was applied or not.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_result.rb#19
+ def applied; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_result.rb#44
+ def attributes; end
+
+ # Depending on the client's failure handling strategy `failedChange`
+ # might contain the index of the change that failed. This property is
+ # only available if the client signals a `failureHandling` strategy
+ # in its client capabilities.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_result.rb#40
+ def failed_change; end
+
+ # An optional textual description for why the edit was not applied.
+ # This may be used by the server for diagnostic logging or to provide
+ # a suitable error for a request that triggered the edit.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_result.rb#29
+ def failure_reason; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_result.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/apply_workspace_edit_result.rb#50
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyClientCapabilities
+ # @return [CallHierarchyClientCapabilities] a new instance of CallHierarchyClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb#24
+ def attributes; end
+
+ # Whether implementation supports dynamic registration. If this is set to
+ # `true` the client supports the new `(TextDocumentRegistrationOptions &
+ # StaticRegistrationOptions)` return value for the corresponding server
+ # capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_client_capabilities.rb#30
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyIncomingCall
+ # @return [CallHierarchyIncomingCall] a new instance of CallHierarchyIncomingCall
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb#5
+ def initialize(from:, from_ranges:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb#31
+ def attributes; end
+
+ # The item that makes the call.
+ #
+ # @return [CallHierarchyItem]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb#18
+ def from; end
+
+ # The ranges at which the calls appear. This is relative to the caller
+ # denoted by [`this.from`](#CallHierarchyIncomingCall.from).
+ #
+ # @return [Range[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb#27
+ def from_ranges; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb#33
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_call.rb#37
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyIncomingCallsParams
+ # @return [CallHierarchyIncomingCallsParams] a new instance of CallHierarchyIncomingCallsParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb#5
+ def initialize(item:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb#37
+ def attributes; end
+
+ # @return [CallHierarchyItem]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb#33
+ def item; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb#28
+ def partial_result_token; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb#43
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_incoming_calls_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyItem
+ # @return [CallHierarchyItem] a new instance of CallHierarchyItem
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#5
+ def initialize(name:, kind:, uri:, range:, selection_range:, tags: T.unsafe(nil), detail: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#88
+ def attributes; end
+
+ # A data entry field that is preserved between a call hierarchy prepare and
+ # incoming calls or outgoing calls requests.
+ #
+ # @return [unknown]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#84
+ def data; end
+
+ # More detail for this item, e.g. the signature of a function.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#48
+ def detail; end
+
+ # The kind of this item.
+ #
+ # @return [SymbolKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#32
+ def kind; end
+
+ # The name of this item.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#24
+ def name; end
+
+ # The range enclosing this symbol not including leading/trailing whitespace
+ # but everything else, e.g. comments and code.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#65
+ def range; end
+
+ # The range that should be selected and revealed when this symbol is being
+ # picked, e.g. the name of a function. Must be contained by the
+ # [`range`](#CallHierarchyItem.range).
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#75
+ def selection_range; end
+
+ # Tags for this item.
+ #
+ # @return [1[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#40
+ def tags; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#90
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#94
+ def to_json(*args); end
+
+ # The resource identifier of this item.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_item.rb#56
+ def uri; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_options.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyOptions
+ # @return [CallHierarchyOptions] a new instance of CallHierarchyOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyOutgoingCall
+ # @return [CallHierarchyOutgoingCall] a new instance of CallHierarchyOutgoingCall
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb#5
+ def initialize(to:, from_ranges:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb#31
+ def attributes; end
+
+ # The range at which this item is called. This is the range relative to
+ # the caller, e.g the item passed to `callHierarchy/outgoingCalls` request.
+ #
+ # @return [Range[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb#27
+ def from_ranges; end
+
+ # The item that is called.
+ #
+ # @return [CallHierarchyItem]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb#18
+ def to; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb#33
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_call.rb#37
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyOutgoingCallsParams
+ # @return [CallHierarchyOutgoingCallsParams] a new instance of CallHierarchyOutgoingCallsParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb#5
+ def initialize(item:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb#37
+ def attributes; end
+
+ # @return [CallHierarchyItem]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb#33
+ def item; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb#28
+ def partial_result_token; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb#43
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_outgoing_calls_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyPrepareParams
+ # @return [CallHierarchyPrepareParams] a new instance of CallHierarchyPrepareParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb#39
+ def attributes; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb#27
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb#19
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb#45
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_prepare_params.rb#35
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_registration_options.rb#4
+class LanguageServer::Protocol::Interface::CallHierarchyRegistrationOptions
+ # @return [CallHierarchyRegistrationOptions] a new instance of CallHierarchyRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_registration_options.rb#20
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_registration_options.rb#34
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/call_hierarchy_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/cancel_params.rb#4
+class LanguageServer::Protocol::Interface::CancelParams
+ # @return [CancelParams] a new instance of CancelParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/cancel_params.rb#5
+ def initialize(id:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/cancel_params.rb#21
+ def attributes; end
+
+ # The request id to cancel.
+ #
+ # @return [string | number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/cancel_params.rb#17
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/cancel_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/cancel_params.rb#27
+ def to_json(*args); end
+end
+
+# Additional information that describes document changes.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/change_annotation.rb#7
+class LanguageServer::Protocol::Interface::ChangeAnnotation
+ # @return [ChangeAnnotation] a new instance of ChangeAnnotation
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/change_annotation.rb#8
+ def initialize(label:, needs_confirmation: T.unsafe(nil), description: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/change_annotation.rb#45
+ def attributes; end
+
+ # A human-readable string which is rendered less prominent in
+ # the user interface.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/change_annotation.rb#41
+ def description; end
+
+ # A human-readable string describing the actual change. The string
+ # is rendered prominent in the user interface.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/change_annotation.rb#23
+ def label; end
+
+ # A flag which indicates that user confirmation is needed
+ # before applying the change.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/change_annotation.rb#32
+ def needs_confirmation; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/change_annotation.rb#47
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/change_annotation.rb#51
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::ClientCapabilities
+ # @return [ClientCapabilities] a new instance of ClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#5
+ def initialize(workspace: T.unsafe(nil), text_document: T.unsafe(nil), notebook_document: T.unsafe(nil), window: T.unsafe(nil), general: T.unsafe(nil), experimental: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#66
+ def attributes; end
+
+ # Experimental client capabilities.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#62
+ def experimental; end
+
+ # General client capabilities.
+ #
+ # @return [{ staleRequestSupport?: { cancel: boolean; retryOnContentModified: string[]; }; regularExpressions?: RegularExpressionsClientCapabilities; markdown?: any; positionEncodings?: string[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#54
+ def general; end
+
+ # Capabilities specific to the notebook document support.
+ #
+ # @return [NotebookDocumentClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#38
+ def notebook_document; end
+
+ # Text document specific client capabilities.
+ #
+ # @return [TextDocumentClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#30
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#68
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#72
+ def to_json(*args); end
+
+ # Window specific client capabilities.
+ #
+ # @return [{ workDoneProgress?: boolean; showMessage?: ShowMessageRequestClientCapabilities; showDocument?: ShowDocumentClientCapabilities; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#46
+ def window; end
+
+ # Workspace specific client capabilities.
+ #
+ # @return [{ applyEdit?: boolean; workspaceEdit?: WorkspaceEditClientCapabilities; didChangeConfiguration?: DidChangeConfigurationClientCapabilities; ... 10 more ...; diagnostics?: DiagnosticWorkspaceClientCapabilities; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/client_capabilities.rb#22
+ def workspace; end
+end
+
+# A code action represents a change that can be performed in code, e.g. to fix
+# a problem or to refactor code.
+#
+# A CodeAction must set either `edit` and/or a `command`. If both are supplied,
+# the `edit` is applied first, then the `command` is executed.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#11
+class LanguageServer::Protocol::Interface::CodeAction
+ # @return [CodeAction] a new instance of CodeAction
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#12
+ def initialize(title:, kind: T.unsafe(nil), diagnostics: T.unsafe(nil), is_preferred: T.unsafe(nil), disabled: T.unsafe(nil), edit: T.unsafe(nil), command: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#115
+ def attributes; end
+
+ # A command this code action executes. If a code action
+ # provides an edit and a command, first the edit is
+ # executed and then the command.
+ #
+ # @return [Command]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#102
+ def command; end
+
+ # A data entry field that is preserved on a code action between
+ # a `textDocument/codeAction` and a `codeAction/resolve` request.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#111
+ def data; end
+
+ # The diagnostics that this code action resolves.
+ #
+ # @return [Diagnostic[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#49
+ def diagnostics; end
+
+ # Marks that the code action cannot currently be applied.
+ #
+ # Clients should follow the following guidelines regarding disabled code
+ # actions:
+ #
+ # - Disabled code actions are not shown in automatic lightbulbs code
+ # action menus.
+ #
+ # - Disabled actions are shown as faded out in the code action menu when
+ # the user request a more specific type of code action, such as
+ # refactorings.
+ #
+ # - If the user has a keybinding that auto applies a code action and only
+ # a disabled code actions are returned, the client should show the user
+ # an error message with `reason` in the editor.
+ #
+ # @return [{ reason: string; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#84
+ def disabled; end
+
+ # The workspace edit this code action performs.
+ #
+ # @return [WorkspaceEdit]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#92
+ def edit; end
+
+ # Marks this as a preferred action. Preferred actions are used by the
+ # `auto fix` command and can be targeted by keybindings.
+ #
+ # A quick fix should be marked preferred if it properly addresses the
+ # underlying error. A refactoring should be marked preferred if it is the
+ # most reasonable choice of actions to take.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#62
+ def is_preferred; end
+
+ # The kind of the code action.
+ #
+ # Used to filter code actions.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#41
+ def kind; end
+
+ # A short, human-readable, title for this code action.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#31
+ def title; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#117
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action.rb#121
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::CodeActionClientCapabilities
+ # @return [CodeActionClientCapabilities] a new instance of CodeActionClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), code_action_literal_support: T.unsafe(nil), is_preferred_support: T.unsafe(nil), disabled_support: T.unsafe(nil), data_support: T.unsafe(nil), resolve_support: T.unsafe(nil), honors_change_annotations: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#83
+ def attributes; end
+
+ # The client supports code action literals as a valid
+ # response of the `textDocument/codeAction` request.
+ #
+ # @return [{ codeActionKind: { valueSet: string[]; }; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#32
+ def code_action_literal_support; end
+
+ # Whether code action supports the `data` property which is
+ # preserved between a `textDocument/codeAction` and a
+ # `codeAction/resolve` request.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#58
+ def data_support; end
+
+ # Whether code action supports the `disabled` property.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#48
+ def disabled_support; end
+
+ # Whether code action supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#23
+ def dynamic_registration; end
+
+ # Whether the client honors the change annotations in
+ # text edits and resource operations returned via the
+ # `CodeAction#edit` property by for example presenting
+ # the workspace edit in the user interface and asking
+ # for confirmation.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#79
+ def honors_change_annotations; end
+
+ # Whether code action supports the `isPreferred` property.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#40
+ def is_preferred_support; end
+
+ # Whether the client supports resolving additional code action
+ # properties via a separate `codeAction/resolve` request.
+ #
+ # @return [{ properties: string[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#67
+ def resolve_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#85
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_client_capabilities.rb#89
+ def to_json(*args); end
+end
+
+# Contains additional diagnostic information about the context in which
+# a code action is run.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/code_action_context.rb#8
+class LanguageServer::Protocol::Interface::CodeActionContext
+ # @return [CodeActionContext] a new instance of CodeActionContext
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_context.rb#9
+ def initialize(diagnostics:, only: T.unsafe(nil), trigger_kind: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_context.rb#51
+ def attributes; end
+
+ # An array of diagnostics known on the client side overlapping the range
+ # provided to the `textDocument/codeAction` request. They are provided so
+ # that the server knows which errors are currently presented to the user
+ # for the given range. There is no guarantee that these accurately reflect
+ # the error state of the resource. The primary parameter
+ # to compute code actions is the provided range.
+ #
+ # @return [Diagnostic[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_context.rb#28
+ def diagnostics; end
+
+ # Requested kind of actions to return.
+ #
+ # Actions not of this kind are filtered out by the client before being
+ # shown. So servers can omit computing them.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_context.rb#39
+ def only; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_context.rb#53
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_context.rb#57
+ def to_json(*args); end
+
+ # The reason why code actions were requested.
+ #
+ # @return [CodeActionTriggerKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_context.rb#47
+ def trigger_kind; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/code_action_options.rb#4
+class LanguageServer::Protocol::Interface::CodeActionOptions
+ # @return [CodeActionOptions] a new instance of CodeActionOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil), code_action_kinds: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_options.rb#40
+ def attributes; end
+
+ # CodeActionKinds that this server may return.
+ #
+ # The list of kinds may be generic, such as `CodeActionKind.Refactor`,
+ # or the server may list out every specific kind they provide.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_options.rb#27
+ def code_action_kinds; end
+
+ # The server provides support to resolve additional
+ # information for a code action.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_options.rb#36
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_options.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_options.rb#46
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_options.rb#16
+ def work_done_progress; end
+end
+
+# Params for the CodeActionRequest
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#7
+class LanguageServer::Protocol::Interface::CodeActionParams
+ # @return [CodeActionParams] a new instance of CodeActionParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#8
+ def initialize(text_document:, range:, context:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#61
+ def attributes; end
+
+ # Context carrying additional information.
+ #
+ # @return [CodeActionContext]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#57
+ def context; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#33
+ def partial_result_token; end
+
+ # The range for which the command was invoked.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#49
+ def range; end
+
+ # The document in which the command was invoked.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#41
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#63
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#67
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_params.rb#24
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#4
+class LanguageServer::Protocol::Interface::CodeActionRegistrationOptions
+ # @return [CodeActionRegistrationOptions] a new instance of CodeActionRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), code_action_kinds: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#50
+ def attributes; end
+
+ # CodeActionKinds that this server may return.
+ #
+ # The list of kinds may be generic, such as `CodeActionKind.Refactor`,
+ # or the server may list out every specific kind they provide.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#37
+ def code_action_kinds; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#21
+ def document_selector; end
+
+ # The server provides support to resolve additional
+ # information for a code action.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#46
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#52
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#56
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_action_registration_options.rb#26
+ def work_done_progress; end
+end
+
+# Structure to capture a description for an error code.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/code_description.rb#7
+class LanguageServer::Protocol::Interface::CodeDescription
+ # @return [CodeDescription] a new instance of CodeDescription
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_description.rb#8
+ def initialize(href:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_description.rb#24
+ def attributes; end
+
+ # An URI to open with more information about the diagnostic error.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_description.rb#20
+ def href; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_description.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_description.rb#30
+ def to_json(*args); end
+end
+
+# A code lens represents a command that should be shown along with
+# source text, like the number of references, a way to run tests, etc.
+#
+# A code lens is _unresolved_ when no command is associated to it. For
+# performance reasons the creation of a code lens and resolving should be done
+# in two stages.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/code_lens.rb#12
+class LanguageServer::Protocol::Interface::CodeLens
+ # @return [CodeLens] a new instance of CodeLens
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens.rb#13
+ def initialize(range:, command: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens.rb#49
+ def attributes; end
+
+ # The command this code lens represents.
+ #
+ # @return [Command]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens.rb#36
+ def command; end
+
+ # A data entry field that is preserved on a code lens item between
+ # a code lens and a code lens resolve request.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens.rb#45
+ def data; end
+
+ # The range in which this code lens is valid. Should only span a single
+ # line.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens.rb#28
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens.rb#55
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/code_lens_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::CodeLensClientCapabilities
+ # @return [CodeLensClientCapabilities] a new instance of CodeLensClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_client_capabilities.rb#21
+ def attributes; end
+
+ # Whether code lens supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/code_lens_options.rb#4
+class LanguageServer::Protocol::Interface::CodeLensOptions
+ # @return [CodeLensOptions] a new instance of CodeLensOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_options.rb#27
+ def attributes; end
+
+ # Code lens has a resolve provider as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_options.rb#23
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_options.rb#29
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_options.rb#33
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_options.rb#15
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/code_lens_params.rb#4
+class LanguageServer::Protocol::Interface::CodeLensParams
+ # @return [CodeLensParams] a new instance of CodeLensParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_params.rb#5
+ def initialize(text_document:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_params.rb#40
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_params.rb#28
+ def partial_result_token; end
+
+ # The document to request code lens for.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_params.rb#36
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_params.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_params.rb#46
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/code_lens_registration_options.rb#4
+class LanguageServer::Protocol::Interface::CodeLensRegistrationOptions
+ # @return [CodeLensRegistrationOptions] a new instance of CodeLensRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_registration_options.rb#37
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_registration_options.rb#20
+ def document_selector; end
+
+ # Code lens has a resolve provider as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_registration_options.rb#33
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_registration_options.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_registration_options.rb#43
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::CodeLensWorkspaceClientCapabilities
+ # @return [CodeLensWorkspaceClientCapabilities] a new instance of CodeLensWorkspaceClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb#5
+ def initialize(refresh_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb#27
+ def attributes; end
+
+ # Whether the client implementation supports a refresh request sent from the
+ # server to the client.
+ #
+ # Note that this event is global and will force the client to refresh all
+ # code lenses currently shown. It should be used with absolute care and is
+ # useful for situation where a server for example detect a project wide
+ # change that requires such a calculation.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb#23
+ def refresh_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb#29
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/code_lens_workspace_client_capabilities.rb#33
+ def to_json(*args); end
+end
+
+# Represents a color in RGBA space.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/color.rb#7
+class LanguageServer::Protocol::Interface::Color
+ # @return [Color] a new instance of Color
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color.rb#8
+ def initialize(red:, green:, blue:, alpha:); end
+
+ # The alpha component of this color in the range [0-1].
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color.rb#47
+ def alpha; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color.rb#51
+ def attributes; end
+
+ # The blue component of this color in the range [0-1].
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color.rb#39
+ def blue; end
+
+ # The green component of this color in the range [0-1].
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color.rb#31
+ def green; end
+
+ # The red component of this color in the range [0-1].
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color.rb#23
+ def red; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/color.rb#53
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/color.rb#57
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/color_information.rb#4
+class LanguageServer::Protocol::Interface::ColorInformation
+ # @return [ColorInformation] a new instance of ColorInformation
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_information.rb#5
+ def initialize(range:, color:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_information.rb#30
+ def attributes; end
+
+ # The actual color value for this color range.
+ #
+ # @return [Color]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_information.rb#26
+ def color; end
+
+ # The range in the document where this color appears.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_information.rb#18
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_information.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_information.rb#36
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/color_presentation.rb#4
+class LanguageServer::Protocol::Interface::ColorPresentation
+ # @return [ColorPresentation] a new instance of ColorPresentation
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation.rb#5
+ def initialize(label:, text_edit: T.unsafe(nil), additional_text_edits: T.unsafe(nil)); end
+
+ # An optional array of additional [text edits](#TextEdit) that are applied
+ # when selecting this color presentation. Edits must not overlap with the
+ # main [edit](#ColorPresentation.textEdit) nor with themselves.
+ #
+ # @return [TextEdit[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation.rb#41
+ def additional_text_edits; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation.rb#45
+ def attributes; end
+
+ # The label of this color presentation. It will be shown on the color
+ # picker header. By default this is also the text that is inserted when
+ # selecting this color presentation.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation.rb#21
+ def label; end
+
+ # An [edit](#TextEdit) which is applied to a document when selecting
+ # this presentation for the color. When `falsy` the
+ # [label](#ColorPresentation.label) is used.
+ #
+ # @return [TextEdit]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation.rb#31
+ def text_edit; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation.rb#47
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation.rb#51
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#4
+class LanguageServer::Protocol::Interface::ColorPresentationParams
+ # @return [ColorPresentationParams] a new instance of ColorPresentationParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#5
+ def initialize(text_document:, color:, range:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#58
+ def attributes; end
+
+ # The color information to request presentations for.
+ #
+ # @return [Color]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#46
+ def color; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#30
+ def partial_result_token; end
+
+ # The range where the color would be inserted. Serves as a context.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#54
+ def range; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#38
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#60
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#64
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/color_presentation_params.rb#21
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/command.rb#4
+class LanguageServer::Protocol::Interface::Command
+ # @return [Command] a new instance of Command
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/command.rb#5
+ def initialize(title:, command:, arguments: T.unsafe(nil)); end
+
+ # Arguments that the command handler should be
+ # invoked with.
+ #
+ # @return [LSPAny[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/command.rb#36
+ def arguments; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/command.rb#40
+ def attributes; end
+
+ # The identifier of the actual command handler.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/command.rb#27
+ def command; end
+
+ # Title of the command, like `save`.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/command.rb#19
+ def title; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/command.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/command.rb#46
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::CompletionClientCapabilities
+ # @return [CompletionClientCapabilities] a new instance of CompletionClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), completion_item: T.unsafe(nil), completion_item_kind: T.unsafe(nil), context_support: T.unsafe(nil), insert_text_mode: T.unsafe(nil), completion_list: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#67
+ def attributes; end
+
+ # The client supports the following `CompletionItem` specific
+ # capabilities.
+ #
+ # @return [{ snippetSupport?: boolean; commitCharactersSupport?: boolean; documentationFormat?: MarkupKind[]; deprecatedSupport?: boolean; preselectSupport?: boolean; tagSupport?: { valueSet: 1[]; }; insertReplaceSupport?: boolean; resolveSupport?: { ...; }; insertTextModeSupport?: { ...; }; labelDetailsSupport?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#31
+ def completion_item; end
+
+ # @return [{ valueSet?: CompletionItemKind[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#36
+ def completion_item_kind; end
+
+ # The client supports the following `CompletionList` specific
+ # capabilities.
+ #
+ # @return [{ itemDefaults?: string[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#63
+ def completion_list; end
+
+ # The client supports to send additional context information for a
+ # `textDocument/completion` request.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#45
+ def context_support; end
+
+ # Whether completion supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#22
+ def dynamic_registration; end
+
+ # The client's default when the completion item doesn't provide a
+ # `insertTextMode` property.
+ #
+ # @return [InsertTextMode]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#54
+ def insert_text_mode; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#69
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_client_capabilities.rb#73
+ def to_json(*args); end
+end
+
+# Contains additional information about the context in which a completion
+# request is triggered.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/completion_context.rb#8
+class LanguageServer::Protocol::Interface::CompletionContext
+ # @return [CompletionContext] a new instance of CompletionContext
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_context.rb#9
+ def initialize(trigger_kind:, trigger_character: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_context.rb#36
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_context.rb#38
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_context.rb#42
+ def to_json(*args); end
+
+ # The trigger character (a single character) that has trigger code
+ # complete. Is undefined if
+ # `triggerKind !== CompletionTriggerKind.TriggerCharacter`
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_context.rb#32
+ def trigger_character; end
+
+ # How the completion was triggered.
+ #
+ # @return [CompletionTriggerKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_context.rb#22
+ def trigger_kind; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#4
+class LanguageServer::Protocol::Interface::CompletionItem
+ # @return [CompletionItem] a new instance of CompletionItem
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#5
+ def initialize(label:, label_details: T.unsafe(nil), kind: T.unsafe(nil), tags: T.unsafe(nil), detail: T.unsafe(nil), documentation: T.unsafe(nil), deprecated: T.unsafe(nil), preselect: T.unsafe(nil), sort_text: T.unsafe(nil), filter_text: T.unsafe(nil), insert_text: T.unsafe(nil), insert_text_format: T.unsafe(nil), insert_text_mode: T.unsafe(nil), text_edit: T.unsafe(nil), text_edit_text: T.unsafe(nil), additional_text_edits: T.unsafe(nil), commit_characters: T.unsafe(nil), command: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # An optional array of additional text edits that are applied when
+ # selecting this completion. Edits must not overlap (including the same
+ # insert position) with the main edit nor with themselves.
+ #
+ # Additional text edits should be used to change text unrelated to the
+ # current cursor position (for example adding an import statement at the
+ # top of the file if the completion item will insert an unqualified type).
+ #
+ # @return [TextEdit[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#221
+ def additional_text_edits; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#255
+ def attributes; end
+
+ # An optional command that is executed *after* inserting this completion.
+ # *Note* that additional modifications to the current document should be
+ # described with the additionalTextEdits-property.
+ #
+ # @return [Command]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#242
+ def command; end
+
+ # An optional set of characters that when pressed while this completion is
+ # active will accept it first and then type that character. *Note* that all
+ # commit characters should have `length=1` and that superfluous characters
+ # will be ignored.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#232
+ def commit_characters; end
+
+ # A data entry field that is preserved on a completion item between
+ # a completion and a completion resolve request.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#251
+ def data; end
+
+ # Indicates if this item is deprecated.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#92
+ def deprecated; end
+
+ # A human-readable string with additional information
+ # about this item, like type or symbol information.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#76
+ def detail; end
+
+ # A human-readable string that represents a doc-comment.
+ #
+ # @return [string | MarkupContent]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#84
+ def documentation; end
+
+ # A string that should be used when filtering a set of
+ # completion items. When `falsy` the label is used as the
+ # filter text for this item.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#124
+ def filter_text; end
+
+ # A string that should be inserted into a document when selecting
+ # this completion. When `falsy` the label is used as the insert text
+ # for this item.
+ #
+ # The `insertText` is subject to interpretation by the client side.
+ # Some tools might not take the string literally. For example
+ # VS Code when code complete is requested in this example
+ # `con` and a completion item with an `insertText` of
+ # `console` is provided it will only insert `sole`. Therefore it is
+ # recommended to use `textEdit` instead since it avoids additional client
+ # side interpretation.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#142
+ def insert_text; end
+
+ # The format of the insert text. The format applies to both the
+ # `insertText` property and the `newText` property of a provided
+ # `textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
+ #
+ # Please note that the insertTextFormat doesn't apply to
+ # `additionalTextEdits`.
+ #
+ # @return [InsertTextFormat]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#155
+ def insert_text_format; end
+
+ # How whitespace and indentation is handled during completion
+ # item insertion. If not provided the client's default value depends on
+ # the `textDocument.completion.insertTextMode` client capability.
+ #
+ # @return [InsertTextMode]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#165
+ def insert_text_mode; end
+
+ # The kind of this completion item. Based of the kind
+ # an icon is chosen by the editor. The standardized set
+ # of available values is defined in `CompletionItemKind`.
+ #
+ # @return [CompletionItemKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#59
+ def kind; end
+
+ # The label of this completion item.
+ #
+ # The label property is also by default the text that
+ # is inserted when selecting this completion.
+ #
+ # If label details are provided the label itself should
+ # be an unqualified name of the completion item.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#41
+ def label; end
+
+ # Additional details for the label
+ #
+ # @return [CompletionItemLabelDetails]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#49
+ def label_details; end
+
+ # Select this item when showing.
+ #
+ # *Note* that only one completion item can be selected and that the
+ # tool / client decides which item that is. The rule is that the *first*
+ # item of those that match best is selected.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#104
+ def preselect; end
+
+ # A string that should be used when comparing this item
+ # with other items. When `falsy` the label is used
+ # as the sort text for this item.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#114
+ def sort_text; end
+
+ # Tags for this completion item.
+ #
+ # @return [1[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#67
+ def tags; end
+
+ # An edit which is applied to a document when selecting this completion.
+ # When an edit is provided the value of `insertText` is ignored.
+ #
+ # *Note:* The range of the edit must be a single line range and it must
+ # contain the position at which completion has been requested.
+ #
+ # Most editors support two different operations when accepting a completion
+ # item. One is to insert a completion text and the other is to replace an
+ # existing text with a completion text. Since this can usually not be
+ # predetermined by a server it can report both ranges. Clients need to
+ # signal support for `InsertReplaceEdit`s via the
+ # `textDocument.completion.completionItem.insertReplaceSupport` client
+ # capability property.
+ #
+ # *Note 1:* The text edit's range as well as both ranges from an insert
+ # replace edit must be a [single line] and they must contain the position
+ # at which completion has been requested.
+ # *Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range
+ # must be a prefix of the edit's replace range, that means it must be
+ # contained and starting at the same position.
+ #
+ # @return [TextEdit | InsertReplaceEdit]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#192
+ def text_edit; end
+
+ # The edit text used if the completion item is part of a CompletionList and
+ # CompletionList defines an item default for the text edit range.
+ #
+ # Clients will only honor this property if they opt into completion list
+ # item defaults using the capability `completionList.itemDefaults`.
+ #
+ # If not provided and a list's default range is provided the label
+ # property is used as a text.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#207
+ def text_edit_text; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#257
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item.rb#261
+ def to_json(*args); end
+end
+
+# Additional details for a completion item label.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/completion_item_label_details.rb#7
+class LanguageServer::Protocol::Interface::CompletionItemLabelDetails
+ # @return [CompletionItemLabelDetails] a new instance of CompletionItemLabelDetails
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item_label_details.rb#8
+ def initialize(detail: T.unsafe(nil), description: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item_label_details.rb#37
+ def attributes; end
+
+ # An optional string which is rendered less prominently after
+ # {@link CompletionItemLabelDetails.detail}. Should be used for fully qualified
+ # names or file path.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item_label_details.rb#33
+ def description; end
+
+ # An optional string which is rendered less prominently directly after
+ # {@link CompletionItem.label label}, without any spacing. Should be
+ # used for function signatures or type annotations.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item_label_details.rb#23
+ def detail; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item_label_details.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_item_label_details.rb#43
+ def to_json(*args); end
+end
+
+# Represents a collection of [completion items](#CompletionItem) to be
+# presented in the editor.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/completion_list.rb#8
+class LanguageServer::Protocol::Interface::CompletionList
+ # @return [CompletionList] a new instance of CompletionList
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_list.rb#9
+ def initialize(is_incomplete:, items:, item_defaults: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_list.rb#57
+ def attributes; end
+
+ # This list is not complete. Further typing should result in recomputing
+ # this list.
+ #
+ # Recomputed lists have all their items replaced (not appended) in the
+ # incomplete completion sessions.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_list.rb#27
+ def is_incomplete; end
+
+ # In many cases the items of an actual completion result share the same
+ # value for properties like `commitCharacters` or the range of a text
+ # edit. A completion list can therefore define item defaults which will
+ # be used if a completion item itself doesn't specify the value.
+ #
+ # If a completion list specifies a default value and a completion item
+ # also specifies a corresponding value the one from the item is used.
+ #
+ # Servers are only allowed to return default values if the client
+ # signals support for this via the `completionList.itemDefaults`
+ # capability.
+ #
+ # @return [{ commitCharacters?: string[]; editRange?: Range | { insert: Range; replace: Range; }; insertTextFormat?: InsertTextFormat; insertTextMode?: InsertTextMode; data?: LSPAny; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_list.rb#45
+ def item_defaults; end
+
+ # The completion items.
+ #
+ # @return [CompletionItem[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_list.rb#53
+ def items; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_list.rb#59
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_list.rb#63
+ def to_json(*args); end
+end
+
+# Completion options.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#7
+class LanguageServer::Protocol::Interface::CompletionOptions
+ # @return [CompletionOptions] a new instance of CompletionOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#8
+ def initialize(work_done_progress: T.unsafe(nil), trigger_characters: T.unsafe(nil), all_commit_characters: T.unsafe(nil), resolve_provider: T.unsafe(nil), completion_item: T.unsafe(nil)); end
+
+ # The list of all possible characters that commit a completion. This field
+ # can be used if clients don't support individual commit characters per
+ # completion item. See client capability
+ # `completion.completionItem.commitCharactersSupport`.
+ #
+ # If a server provides both `allCommitCharacters` and commit characters on
+ # an individual completion item the ones on the completion item win.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#53
+ def all_commit_characters; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#75
+ def attributes; end
+
+ # The server supports the following `CompletionItem` specific
+ # capabilities.
+ #
+ # @return [{ labelDetailsSupport?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#71
+ def completion_item; end
+
+ # The server provides support to resolve additional
+ # information for a completion item.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#62
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#77
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#81
+ def to_json(*args); end
+
+ # The additional characters, beyond the defaults provided by the client (typically
+ # [a-zA-Z]), that should automatically trigger a completion request. For example
+ # `.` in JavaScript represents the beginning of an object property or method and is
+ # thus a good candidate for triggering a completion request.
+ #
+ # Most tools trigger a completion request automatically without explicitly
+ # requesting it using a keyboard shortcut (e.g. Ctrl+Space). Typically they
+ # do so when the user starts to type an identifier. For example if the user
+ # types `c` in a JavaScript file code complete will automatically pop up
+ # present `console` besides others as a completion item. Characters that
+ # make up identifiers don't need to be listed here.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#39
+ def trigger_characters; end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_options.rb#21
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#4
+class LanguageServer::Protocol::Interface::CompletionParams
+ # @return [CompletionParams] a new instance of CompletionParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil), context: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#60
+ def attributes; end
+
+ # The completion context. This is only available if the client specifies
+ # to send this using the client capability
+ # `completion.contextSupport === true`
+ #
+ # @return [CompletionContext]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#56
+ def context; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#46
+ def partial_result_token; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#29
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#21
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#62
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#66
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_params.rb#37
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#4
+class LanguageServer::Protocol::Interface::CompletionRegistrationOptions
+ # @return [CompletionRegistrationOptions] a new instance of CompletionRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), trigger_characters: T.unsafe(nil), all_commit_characters: T.unsafe(nil), resolve_provider: T.unsafe(nil), completion_item: T.unsafe(nil)); end
+
+ # The list of all possible characters that commit a completion. This field
+ # can be used if clients don't support individual commit characters per
+ # completion item. See client capability
+ # `completion.completionItem.commitCharactersSupport`.
+ #
+ # If a server provides both `allCommitCharacters` and commit characters on
+ # an individual completion item the ones on the completion item win.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#60
+ def all_commit_characters; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#82
+ def attributes; end
+
+ # The server supports the following `CompletionItem` specific
+ # capabilities.
+ #
+ # @return [{ labelDetailsSupport?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#78
+ def completion_item; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#23
+ def document_selector; end
+
+ # The server provides support to resolve additional
+ # information for a completion item.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#69
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#84
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#88
+ def to_json(*args); end
+
+ # The additional characters, beyond the defaults provided by the client (typically
+ # [a-zA-Z]), that should automatically trigger a completion request. For example
+ # `.` in JavaScript represents the beginning of an object property or method and is
+ # thus a good candidate for triggering a completion request.
+ #
+ # Most tools trigger a completion request automatically without explicitly
+ # requesting it using a keyboard shortcut (e.g. Ctrl+Space). Typically they
+ # do so when the user starts to type an identifier. For example if the user
+ # types `c` in a JavaScript file code complete will automatically pop up
+ # present `console` besides others as a completion item. Characters that
+ # make up identifiers don't need to be listed here.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#46
+ def trigger_characters; end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/completion_registration_options.rb#28
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/configuration_item.rb#4
+class LanguageServer::Protocol::Interface::ConfigurationItem
+ # @return [ConfigurationItem] a new instance of ConfigurationItem
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_item.rb#5
+ def initialize(scope_uri: T.unsafe(nil), section: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_item.rb#30
+ def attributes; end
+
+ # The scope to get the configuration section for.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_item.rb#18
+ def scope_uri; end
+
+ # The configuration section asked for.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_item.rb#26
+ def section; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_item.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_item.rb#36
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/configuration_params.rb#4
+class LanguageServer::Protocol::Interface::ConfigurationParams
+ # @return [ConfigurationParams] a new instance of ConfigurationParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_params.rb#5
+ def initialize(items:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_params.rb#18
+ def attributes; end
+
+ # @return [ConfigurationItem[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_params.rb#14
+ def items; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_params.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/configuration_params.rb#24
+ def to_json(*args); end
+end
+
+# Create file operation
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#7
+class LanguageServer::Protocol::Interface::CreateFile
+ # @return [CreateFile] a new instance of CreateFile
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#8
+ def initialize(kind:, uri:, options: T.unsafe(nil), annotation_id: T.unsafe(nil)); end
+
+ # An optional annotation identifier describing the operation.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#47
+ def annotation_id; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#51
+ def attributes; end
+
+ # A create
+ #
+ # @return ["create"]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#23
+ def kind; end
+
+ # Additional options
+ #
+ # @return [CreateFileOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#39
+ def options; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#53
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#57
+ def to_json(*args); end
+
+ # The resource to create.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file.rb#31
+ def uri; end
+end
+
+# Options to create a file.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/create_file_options.rb#7
+class LanguageServer::Protocol::Interface::CreateFileOptions
+ # @return [CreateFileOptions] a new instance of CreateFileOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file_options.rb#8
+ def initialize(overwrite: T.unsafe(nil), ignore_if_exists: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file_options.rb#33
+ def attributes; end
+
+ # Ignore if exists.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file_options.rb#29
+ def ignore_if_exists; end
+
+ # Overwrite existing file. Overwrite wins over `ignoreIfExists`
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file_options.rb#21
+ def overwrite; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file_options.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_file_options.rb#39
+ def to_json(*args); end
+end
+
+# The parameters sent in notifications/requests for user-initiated creation
+# of files.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/create_files_params.rb#8
+class LanguageServer::Protocol::Interface::CreateFilesParams
+ # @return [CreateFilesParams] a new instance of CreateFilesParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_files_params.rb#9
+ def initialize(files:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_files_params.rb#25
+ def attributes; end
+
+ # An array of all files/folders created in this operation.
+ #
+ # @return [FileCreate[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_files_params.rb#21
+ def files; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_files_params.rb#27
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/create_files_params.rb#31
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/declaration_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DeclarationClientCapabilities
+ # @return [DeclarationClientCapabilities] a new instance of DeclarationClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), link_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_client_capabilities.rb#32
+ def attributes; end
+
+ # Whether declaration supports dynamic registration. If this is set to
+ # `true` the client supports the new `DeclarationRegistrationOptions`
+ # return value for the corresponding server capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # The client supports additional metadata in the form of declaration links.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_client_capabilities.rb#28
+ def link_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_client_capabilities.rb#34
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_client_capabilities.rb#38
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/declaration_options.rb#4
+class LanguageServer::Protocol::Interface::DeclarationOptions
+ # @return [DeclarationOptions] a new instance of DeclarationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#4
+class LanguageServer::Protocol::Interface::DeclarationParams
+ # @return [DeclarationParams] a new instance of DeclarationParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#49
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#45
+ def partial_result_token; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#28
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#55
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_params.rb#36
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/declaration_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DeclarationRegistrationOptions
+ # @return [DeclarationRegistrationOptions] a new instance of DeclarationRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_registration_options.rb#25
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_registration_options.rb#34
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/declaration_registration_options.rb#16
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/definition_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DefinitionClientCapabilities
+ # @return [DefinitionClientCapabilities] a new instance of DefinitionClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), link_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_client_capabilities.rb#30
+ def attributes; end
+
+ # Whether definition supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_client_capabilities.rb#18
+ def dynamic_registration; end
+
+ # The client supports additional metadata in the form of definition links.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_client_capabilities.rb#26
+ def link_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_client_capabilities.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_client_capabilities.rb#36
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/definition_options.rb#4
+class LanguageServer::Protocol::Interface::DefinitionOptions
+ # @return [DefinitionOptions] a new instance of DefinitionOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#4
+class LanguageServer::Protocol::Interface::DefinitionParams
+ # @return [DefinitionParams] a new instance of DefinitionParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#49
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#45
+ def partial_result_token; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#28
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#55
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_params.rb#36
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/definition_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DefinitionRegistrationOptions
+ # @return [DefinitionRegistrationOptions] a new instance of DefinitionRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_registration_options.rb#28
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_registration_options.rb#19
+ def document_selector; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_registration_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_registration_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/definition_registration_options.rb#24
+ def work_done_progress; end
+end
+
+# Delete file operation
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#7
+class LanguageServer::Protocol::Interface::DeleteFile
+ # @return [DeleteFile] a new instance of DeleteFile
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#8
+ def initialize(kind:, uri:, options: T.unsafe(nil), annotation_id: T.unsafe(nil)); end
+
+ # An optional annotation identifier describing the operation.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#47
+ def annotation_id; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#51
+ def attributes; end
+
+ # A delete
+ #
+ # @return ["delete"]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#23
+ def kind; end
+
+ # Delete options.
+ #
+ # @return [DeleteFileOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#39
+ def options; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#53
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#57
+ def to_json(*args); end
+
+ # The file to delete.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file.rb#31
+ def uri; end
+end
+
+# Delete file options
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/delete_file_options.rb#7
+class LanguageServer::Protocol::Interface::DeleteFileOptions
+ # @return [DeleteFileOptions] a new instance of DeleteFileOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file_options.rb#8
+ def initialize(recursive: T.unsafe(nil), ignore_if_not_exists: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file_options.rb#33
+ def attributes; end
+
+ # Ignore the operation if the file doesn't exist.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file_options.rb#29
+ def ignore_if_not_exists; end
+
+ # Delete the content recursively if a folder is denoted.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file_options.rb#21
+ def recursive; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file_options.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_file_options.rb#39
+ def to_json(*args); end
+end
+
+# The parameters sent in notifications/requests for user-initiated deletes
+# of files.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/delete_files_params.rb#8
+class LanguageServer::Protocol::Interface::DeleteFilesParams
+ # @return [DeleteFilesParams] a new instance of DeleteFilesParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_files_params.rb#9
+ def initialize(files:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_files_params.rb#25
+ def attributes; end
+
+ # An array of all files/folders deleted in this operation.
+ #
+ # @return [FileDelete[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_files_params.rb#21
+ def files; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_files_params.rb#27
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/delete_files_params.rb#31
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#4
+class LanguageServer::Protocol::Interface::Diagnostic
+ # @return [Diagnostic] a new instance of Diagnostic
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#5
+ def initialize(range:, message:, severity: T.unsafe(nil), code: T.unsafe(nil), code_description: T.unsafe(nil), source: T.unsafe(nil), tags: T.unsafe(nil), related_information: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#98
+ def attributes; end
+
+ # The diagnostic's code, which might appear in the user interface.
+ #
+ # @return [string | number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#42
+ def code; end
+
+ # An optional property to describe the error code.
+ #
+ # @return [CodeDescription]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#50
+ def code_description; end
+
+ # A data entry field that is preserved between a
+ # `textDocument/publishDiagnostics` notification and
+ # `textDocument/codeAction` request.
+ #
+ # @return [unknown]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#94
+ def data; end
+
+ # The diagnostic's message.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#67
+ def message; end
+
+ # The range at which the message applies.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#25
+ def range; end
+
+ # An array of related diagnostic information, e.g. when symbol-names within
+ # a scope collide all definitions can be marked via this property.
+ #
+ # @return [DiagnosticRelatedInformation[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#84
+ def related_information; end
+
+ # The diagnostic's severity. Can be omitted. If omitted it is up to the
+ # client to interpret diagnostics as error, warning, info or hint.
+ #
+ # @return [DiagnosticSeverity]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#34
+ def severity; end
+
+ # A human-readable string describing the source of this
+ # diagnostic, e.g. 'typescript' or 'super lint'.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#59
+ def source; end
+
+ # Additional metadata about the diagnostic.
+ #
+ # @return [DiagnosticTag[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#75
+ def tags; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#100
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic.rb#104
+ def to_json(*args); end
+end
+
+# Client capabilities specific to diagnostic pull requests.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::DiagnosticClientCapabilities
+ # @return [DiagnosticClientCapabilities] a new instance of DiagnosticClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_client_capabilities.rb#8
+ def initialize(dynamic_registration: T.unsafe(nil), related_document_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_client_capabilities.rb#37
+ def attributes; end
+
+ # Whether implementation supports dynamic registration. If this is set to
+ # `true` the client supports the new
+ # `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+ # return value for the corresponding server capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_client_capabilities.rb#24
+ def dynamic_registration; end
+
+ # Whether the clients supports related documents for document diagnostic
+ # pulls.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_client_capabilities.rb#33
+ def related_document_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_client_capabilities.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_client_capabilities.rb#43
+ def to_json(*args); end
+end
+
+# Diagnostic options.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#7
+class LanguageServer::Protocol::Interface::DiagnosticOptions
+ # @return [DiagnosticOptions] a new instance of DiagnosticOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#8
+ def initialize(inter_file_dependencies:, workspace_diagnostics:, work_done_progress: T.unsafe(nil), identifier: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#52
+ def attributes; end
+
+ # An optional identifier under which the diagnostics are
+ # managed by the client.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#29
+ def identifier; end
+
+ # Whether the language has inter file dependencies meaning that
+ # editing code in one file can result in a different diagnostic
+ # set in another file. Inter file dependencies are common for
+ # most programming languages and typically uncommon for linters.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#40
+ def inter_file_dependencies; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#54
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#58
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#20
+ def work_done_progress; end
+
+ # The server provides support for workspace diagnostics as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_options.rb#48
+ def workspace_diagnostics; end
+end
+
+# Diagnostic registration options.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#7
+class LanguageServer::Protocol::Interface::DiagnosticRegistrationOptions
+ # @return [DiagnosticRegistrationOptions] a new instance of DiagnosticRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#8
+ def initialize(document_selector:, inter_file_dependencies:, workspace_diagnostics:, work_done_progress: T.unsafe(nil), identifier: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#72
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#26
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#68
+ def id; end
+
+ # An optional identifier under which the diagnostics are
+ # managed by the client.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#40
+ def identifier; end
+
+ # Whether the language has inter file dependencies meaning that
+ # editing code in one file can result in a different diagnostic
+ # set in another file. Inter file dependencies are common for
+ # most programming languages and typically uncommon for linters.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#51
+ def inter_file_dependencies; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#74
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#78
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#31
+ def work_done_progress; end
+
+ # The server provides support for workspace diagnostics as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_registration_options.rb#59
+ def workspace_diagnostics; end
+end
+
+# Represents a related message and source code location for a diagnostic.
+# This should be used to point to code locations that cause or are related to
+# a diagnostics, e.g when duplicating a symbol in a scope.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_related_information.rb#9
+class LanguageServer::Protocol::Interface::DiagnosticRelatedInformation
+ # @return [DiagnosticRelatedInformation] a new instance of DiagnosticRelatedInformation
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_related_information.rb#10
+ def initialize(location:, message:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_related_information.rb#35
+ def attributes; end
+
+ # The location of this related diagnostic information.
+ #
+ # @return [Location]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_related_information.rb#23
+ def location; end
+
+ # The message of this related diagnostic information.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_related_information.rb#31
+ def message; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_related_information.rb#37
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_related_information.rb#41
+ def to_json(*args); end
+end
+
+# Cancellation data returned from a diagnostic request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb#7
+class LanguageServer::Protocol::Interface::DiagnosticServerCancellationData
+ # @return [DiagnosticServerCancellationData] a new instance of DiagnosticServerCancellationData
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb#8
+ def initialize(retrigger_request:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb#21
+ def attributes; end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb#17
+ def retrigger_request; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_server_cancellation_data.rb#27
+ def to_json(*args); end
+end
+
+# Workspace client capabilities specific to diagnostic pull requests.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::DiagnosticWorkspaceClientCapabilities
+ # @return [DiagnosticWorkspaceClientCapabilities] a new instance of DiagnosticWorkspaceClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb#8
+ def initialize(refresh_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb#30
+ def attributes; end
+
+ # Whether the client implementation supports a refresh request sent from
+ # the server to the client.
+ #
+ # Note that this event is global and will force the client to refresh all
+ # pulled diagnostics currently shown. It should be used with absolute care
+ # and is useful for situation where a server for example detects a project
+ # wide change that requires such a calculation.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb#26
+ def refresh_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/diagnostic_workspace_client_capabilities.rb#36
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DidChangeConfigurationClientCapabilities
+ # @return [DidChangeConfigurationClientCapabilities] a new instance of DidChangeConfigurationClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb#21
+ def attributes; end
+
+ # Did change configuration notification supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_params.rb#4
+class LanguageServer::Protocol::Interface::DidChangeConfigurationParams
+ # @return [DidChangeConfigurationParams] a new instance of DidChangeConfigurationParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_params.rb#5
+ def initialize(settings:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_params.rb#21
+ def attributes; end
+
+ # The actual changed settings
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_params.rb#17
+ def settings; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_configuration_params.rb#27
+ def to_json(*args); end
+end
+
+# The params sent in a change notebook document notification.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/did_change_notebook_document_params.rb#7
+class LanguageServer::Protocol::Interface::DidChangeNotebookDocumentParams
+ # @return [DidChangeNotebookDocumentParams] a new instance of DidChangeNotebookDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_notebook_document_params.rb#8
+ def initialize(notebook_document:, change:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_notebook_document_params.rb#44
+ def attributes; end
+
+ # The actual changes to the notebook document.
+ #
+ # The change describes single state change to the notebook document.
+ # So it moves a notebook document, its cells and its cell text document
+ # contents from state S to S'.
+ #
+ # To mirror the content of a notebook using change events use the
+ # following approach:
+ # - start with the same initial content
+ # - apply the 'notebookDocument/didChange' notifications in the order
+ # you receive them.
+ #
+ # @return [NotebookDocumentChangeEvent]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_notebook_document_params.rb#40
+ def change; end
+
+ # The notebook document that did change. The version number points
+ # to the version after all provided changes have been applied.
+ #
+ # @return [VersionedNotebookDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_notebook_document_params.rb#22
+ def notebook_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_notebook_document_params.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_notebook_document_params.rb#50
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_change_text_document_params.rb#4
+class LanguageServer::Protocol::Interface::DidChangeTextDocumentParams
+ # @return [DidChangeTextDocumentParams] a new instance of DidChangeTextDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_text_document_params.rb#5
+ def initialize(text_document:, content_changes:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_text_document_params.rb#44
+ def attributes; end
+
+ # The actual content changes. The content changes describe single state
+ # changes to the document. So if there are two content changes c1 (at
+ # array index 0) and c2 (at array index 1) for a document in state S then
+ # c1 moves the document from S to S' and c2 from S' to S''. So c1 is
+ # computed on the state S and c2 is computed on the state S'.
+ #
+ # To mirror the content of a document using change events use the following
+ # approach:
+ # - start with the same initial content
+ # - apply the 'textDocument/didChange' notifications in the order you
+ # receive them.
+ # - apply the `TextDocumentContentChangeEvent`s in a single notification
+ # in the order you receive them.
+ #
+ # @return [TextDocumentContentChangeEvent[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_text_document_params.rb#40
+ def content_changes; end
+
+ # The document that did change. The version number points
+ # to the version after all provided content changes have
+ # been applied.
+ #
+ # @return [VersionedTextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_text_document_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_text_document_params.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_text_document_params.rb#50
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DidChangeWatchedFilesClientCapabilities
+ # @return [DidChangeWatchedFilesClientCapabilities] a new instance of DidChangeWatchedFilesClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), relative_pattern_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb#33
+ def attributes; end
+
+ # Did change watched files notification supports dynamic registration.
+ # Please note that the current protocol doesn't support static
+ # configuration for file changes from the server side.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # Whether the client has support for relative patterns
+ # or not.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb#29
+ def relative_pattern_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_client_capabilities.rb#39
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_params.rb#4
+class LanguageServer::Protocol::Interface::DidChangeWatchedFilesParams
+ # @return [DidChangeWatchedFilesParams] a new instance of DidChangeWatchedFilesParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_params.rb#5
+ def initialize(changes:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_params.rb#21
+ def attributes; end
+
+ # The actual file events.
+ #
+ # @return [FileEvent[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_params.rb#17
+ def changes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_params.rb#27
+ def to_json(*args); end
+end
+
+# Describe options to be used when registering for file system change events.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb#7
+class LanguageServer::Protocol::Interface::DidChangeWatchedFilesRegistrationOptions
+ # @return [DidChangeWatchedFilesRegistrationOptions] a new instance of DidChangeWatchedFilesRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb#8
+ def initialize(watchers:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb#24
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb#30
+ def to_json(*args); end
+
+ # The watchers to register.
+ #
+ # @return [FileSystemWatcher[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_watched_files_registration_options.rb#20
+ def watchers; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_change_workspace_folders_params.rb#4
+class LanguageServer::Protocol::Interface::DidChangeWorkspaceFoldersParams
+ # @return [DidChangeWorkspaceFoldersParams] a new instance of DidChangeWorkspaceFoldersParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_workspace_folders_params.rb#5
+ def initialize(event:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_workspace_folders_params.rb#21
+ def attributes; end
+
+ # The actual workspace folder change event.
+ #
+ # @return [WorkspaceFoldersChangeEvent]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_workspace_folders_params.rb#17
+ def event; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_workspace_folders_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_change_workspace_folders_params.rb#27
+ def to_json(*args); end
+end
+
+# The params sent in a close notebook document notification.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/did_close_notebook_document_params.rb#7
+class LanguageServer::Protocol::Interface::DidCloseNotebookDocumentParams
+ # @return [DidCloseNotebookDocumentParams] a new instance of DidCloseNotebookDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_notebook_document_params.rb#8
+ def initialize(notebook_document:, cell_text_documents:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_notebook_document_params.rb#34
+ def attributes; end
+
+ # The text documents that represent the content
+ # of a notebook cell that got closed.
+ #
+ # @return [TextDocumentIdentifier[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_notebook_document_params.rb#30
+ def cell_text_documents; end
+
+ # The notebook document that got closed.
+ #
+ # @return [NotebookDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_notebook_document_params.rb#21
+ def notebook_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_notebook_document_params.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_notebook_document_params.rb#40
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_close_text_document_params.rb#4
+class LanguageServer::Protocol::Interface::DidCloseTextDocumentParams
+ # @return [DidCloseTextDocumentParams] a new instance of DidCloseTextDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_text_document_params.rb#5
+ def initialize(text_document:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_text_document_params.rb#21
+ def attributes; end
+
+ # The document that was closed.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_text_document_params.rb#17
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_text_document_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_close_text_document_params.rb#27
+ def to_json(*args); end
+end
+
+# The params sent in an open notebook document notification.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/did_open_notebook_document_params.rb#7
+class LanguageServer::Protocol::Interface::DidOpenNotebookDocumentParams
+ # @return [DidOpenNotebookDocumentParams] a new instance of DidOpenNotebookDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_notebook_document_params.rb#8
+ def initialize(notebook_document:, cell_text_documents:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_notebook_document_params.rb#34
+ def attributes; end
+
+ # The text documents that represent the content
+ # of a notebook cell.
+ #
+ # @return [TextDocumentItem[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_notebook_document_params.rb#30
+ def cell_text_documents; end
+
+ # The notebook document that got opened.
+ #
+ # @return [NotebookDocument]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_notebook_document_params.rb#21
+ def notebook_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_notebook_document_params.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_notebook_document_params.rb#40
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_open_text_document_params.rb#4
+class LanguageServer::Protocol::Interface::DidOpenTextDocumentParams
+ # @return [DidOpenTextDocumentParams] a new instance of DidOpenTextDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_text_document_params.rb#5
+ def initialize(text_document:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_text_document_params.rb#21
+ def attributes; end
+
+ # The document that was opened.
+ #
+ # @return [TextDocumentItem]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_text_document_params.rb#17
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_text_document_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_open_text_document_params.rb#27
+ def to_json(*args); end
+end
+
+# The params sent in a save notebook document notification.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/did_save_notebook_document_params.rb#7
+class LanguageServer::Protocol::Interface::DidSaveNotebookDocumentParams
+ # @return [DidSaveNotebookDocumentParams] a new instance of DidSaveNotebookDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_notebook_document_params.rb#8
+ def initialize(notebook_document:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_notebook_document_params.rb#24
+ def attributes; end
+
+ # The notebook document that got saved.
+ #
+ # @return [NotebookDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_notebook_document_params.rb#20
+ def notebook_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_notebook_document_params.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_notebook_document_params.rb#30
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/did_save_text_document_params.rb#4
+class LanguageServer::Protocol::Interface::DidSaveTextDocumentParams
+ # @return [DidSaveTextDocumentParams] a new instance of DidSaveTextDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_text_document_params.rb#5
+ def initialize(text_document:, text: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_text_document_params.rb#31
+ def attributes; end
+
+ # Optional the content when saved. Depends on the includeText value
+ # when the save notification was requested.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_text_document_params.rb#27
+ def text; end
+
+ # The document that was saved.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_text_document_params.rb#18
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_text_document_params.rb#33
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/did_save_text_document_params.rb#37
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_color_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DocumentColorClientCapabilities
+ # @return [DocumentColorClientCapabilities] a new instance of DocumentColorClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_client_capabilities.rb#21
+ def attributes; end
+
+ # Whether document color supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_color_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentColorOptions
+ # @return [DocumentColorOptions] a new instance of DocumentColorOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_color_params.rb#4
+class LanguageServer::Protocol::Interface::DocumentColorParams
+ # @return [DocumentColorParams] a new instance of DocumentColorParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_params.rb#5
+ def initialize(text_document:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_params.rb#40
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_params.rb#28
+ def partial_result_token; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_params.rb#36
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_params.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_params.rb#46
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_color_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentColorRegistrationOptions
+ # @return [DocumentColorRegistrationOptions] a new instance of DocumentColorRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_registration_options.rb#5
+ def initialize(document_selector:, id: T.unsafe(nil), work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_registration_options.rb#20
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_registration_options.rb#29
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_color_registration_options.rb#34
+ def work_done_progress; end
+end
+
+# Parameters of the document diagnostic request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#7
+class LanguageServer::Protocol::Interface::DocumentDiagnosticParams
+ # @return [DocumentDiagnosticParams] a new instance of DocumentDiagnosticParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#8
+ def initialize(text_document:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil), identifier: T.unsafe(nil), previous_result_id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#61
+ def attributes; end
+
+ # The additional identifier provided during registration.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#49
+ def identifier; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#33
+ def partial_result_token; end
+
+ # The result id of a previous response if provided.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#57
+ def previous_result_id; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#41
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#63
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#67
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_params.rb#24
+ def work_done_token; end
+end
+
+# A partial result for a document diagnostic report.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb#7
+class LanguageServer::Protocol::Interface::DocumentDiagnosticReportPartialResult
+ # @return [DocumentDiagnosticReportPartialResult] a new instance of DocumentDiagnosticReportPartialResult
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb#8
+ def initialize(related_documents:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb#21
+ def attributes; end
+
+ # @return [{ [uri: string]: FullDocumentDiagnosticReport | UnchangedDocumentDiagnosticReport; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb#17
+ def related_documents; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_diagnostic_report_partial_result.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_filter.rb#4
+class LanguageServer::Protocol::Interface::DocumentFilter
+ # @return [DocumentFilter] a new instance of DocumentFilter
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_filter.rb#5
+ def initialize(language: T.unsafe(nil), scheme: T.unsafe(nil), pattern: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_filter.rb#51
+ def attributes; end
+
+ # A language id, like `typescript`.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_filter.rb#19
+ def language; end
+
+ # A glob pattern, like `*.{ts,js}`.
+ #
+ # Glob patterns can have the following syntax:
+ # - `*` to match one or more characters in a path segment
+ # - `?` to match on one character in a path segment
+ # - `**` to match any number of path segments, including none
+ # - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}`
+ # matches all TypeScript and JavaScript files)
+ # - `[]` to declare a range of characters to match in a path segment
+ # (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
+ # - `[!...]` to negate a range of characters to match in a path segment
+ # (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
+ # not `example.0`)
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_filter.rb#47
+ def pattern; end
+
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_filter.rb#27
+ def scheme; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_filter.rb#53
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_filter.rb#57
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DocumentFormattingClientCapabilities
+ # @return [DocumentFormattingClientCapabilities] a new instance of DocumentFormattingClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_client_capabilities.rb#21
+ def attributes; end
+
+ # Whether formatting supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentFormattingOptions
+ # @return [DocumentFormattingOptions] a new instance of DocumentFormattingOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_params.rb#4
+class LanguageServer::Protocol::Interface::DocumentFormattingParams
+ # @return [DocumentFormattingParams] a new instance of DocumentFormattingParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_params.rb#5
+ def initialize(text_document:, options:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_params.rb#39
+ def attributes; end
+
+ # The format options.
+ #
+ # @return [FormattingOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_params.rb#35
+ def options; end
+
+ # The document to format.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_params.rb#27
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_params.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_params.rb#45
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentFormattingRegistrationOptions
+ # @return [DocumentFormattingRegistrationOptions] a new instance of DocumentFormattingRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_registration_options.rb#28
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_registration_options.rb#19
+ def document_selector; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_registration_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_registration_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_formatting_registration_options.rb#24
+ def work_done_progress; end
+end
+
+# A document highlight is a range inside a text document which deserves
+# special attention. Usually a document highlight is visualized by changing
+# the background color of its range.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/document_highlight.rb#9
+class LanguageServer::Protocol::Interface::DocumentHighlight
+ # @return [DocumentHighlight] a new instance of DocumentHighlight
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight.rb#10
+ def initialize(range:, kind: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight.rb#35
+ def attributes; end
+
+ # The highlight kind, default is DocumentHighlightKind.Text.
+ #
+ # @return [DocumentHighlightKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight.rb#31
+ def kind; end
+
+ # The range this highlight applies to.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight.rb#23
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight.rb#37
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight.rb#41
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DocumentHighlightClientCapabilities
+ # @return [DocumentHighlightClientCapabilities] a new instance of DocumentHighlightClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_client_capabilities.rb#21
+ def attributes; end
+
+ # Whether document highlight supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentHighlightOptions
+ # @return [DocumentHighlightOptions] a new instance of DocumentHighlightOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#4
+class LanguageServer::Protocol::Interface::DocumentHighlightParams
+ # @return [DocumentHighlightParams] a new instance of DocumentHighlightParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#49
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#45
+ def partial_result_token; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#28
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#55
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_params.rb#36
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentHighlightRegistrationOptions
+ # @return [DocumentHighlightRegistrationOptions] a new instance of DocumentHighlightRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_registration_options.rb#28
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_registration_options.rb#19
+ def document_selector; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_registration_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_registration_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_highlight_registration_options.rb#24
+ def work_done_progress; end
+end
+
+# A document link is a range in a text document that links to an internal or
+# external resource, like another text document or a web site.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#8
+class LanguageServer::Protocol::Interface::DocumentLink
+ # @return [DocumentLink] a new instance of DocumentLink
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#9
+ def initialize(range:, target: T.unsafe(nil), tooltip: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#58
+ def attributes; end
+
+ # A data entry field that is preserved on a document link between a
+ # DocumentLinkRequest and a DocumentLinkResolveRequest.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#54
+ def data; end
+
+ # The range this link applies to.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#24
+ def range; end
+
+ # The uri this link points to. If missing a resolve request is sent later.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#32
+ def target; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#60
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#64
+ def to_json(*args); end
+
+ # The tooltip text when you hover over this link.
+ #
+ # If a tooltip is provided, is will be displayed in a string that includes
+ # instructions on how to trigger the link, such as `{0} (ctrl + click)`.
+ # The specific instructions vary depending on OS, user settings, and
+ # localization.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link.rb#45
+ def tooltip; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_link_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DocumentLinkClientCapabilities
+ # @return [DocumentLinkClientCapabilities] a new instance of DocumentLinkClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), tooltip_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_client_capabilities.rb#30
+ def attributes; end
+
+ # Whether document link supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_client_capabilities.rb#18
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_client_capabilities.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_client_capabilities.rb#36
+ def to_json(*args); end
+
+ # Whether the client supports the `tooltip` property on `DocumentLink`.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_client_capabilities.rb#26
+ def tooltip_support; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_link_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentLinkOptions
+ # @return [DocumentLinkOptions] a new instance of DocumentLinkOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_options.rb#27
+ def attributes; end
+
+ # Document links have a resolve provider as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_options.rb#23
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_options.rb#29
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_options.rb#33
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_options.rb#15
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_link_params.rb#4
+class LanguageServer::Protocol::Interface::DocumentLinkParams
+ # @return [DocumentLinkParams] a new instance of DocumentLinkParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_params.rb#5
+ def initialize(text_document:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_params.rb#40
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_params.rb#28
+ def partial_result_token; end
+
+ # The document to provide document links for.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_params.rb#36
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_params.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_params.rb#46
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_link_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentLinkRegistrationOptions
+ # @return [DocumentLinkRegistrationOptions] a new instance of DocumentLinkRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_registration_options.rb#37
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_registration_options.rb#20
+ def document_selector; end
+
+ # Document links have a resolve provider as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_registration_options.rb#33
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_registration_options.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_registration_options.rb#43
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_link_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DocumentOnTypeFormattingClientCapabilities
+ # @return [DocumentOnTypeFormattingClientCapabilities] a new instance of DocumentOnTypeFormattingClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb#21
+ def attributes; end
+
+ # Whether on type formatting supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentOnTypeFormattingOptions
+ # @return [DocumentOnTypeFormattingOptions] a new instance of DocumentOnTypeFormattingOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_options.rb#5
+ def initialize(first_trigger_character:, more_trigger_character: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_options.rb#30
+ def attributes; end
+
+ # A character on which formatting should be triggered, like `{`.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_options.rb#18
+ def first_trigger_character; end
+
+ # More trigger characters.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_options.rb#26
+ def more_trigger_character; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_options.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_options.rb#36
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#4
+class LanguageServer::Protocol::Interface::DocumentOnTypeFormattingParams
+ # @return [DocumentOnTypeFormattingParams] a new instance of DocumentOnTypeFormattingParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#5
+ def initialize(text_document:, position:, ch:, options:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#53
+ def attributes; end
+
+ # The character that has been typed that triggered the formatting
+ # on type request. That is not necessarily the last character that
+ # got inserted into the document since the client could auto insert
+ # characters as well (e.g. like automatic brace completion).
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#41
+ def ch; end
+
+ # The formatting options.
+ #
+ # @return [FormattingOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#49
+ def options; end
+
+ # The position around which the on type formatting should happen.
+ # This is not necessarily the exact position where the character denoted
+ # by the property `ch` got typed.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#30
+ def position; end
+
+ # The document to format.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#55
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_params.rb#59
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentOnTypeFormattingRegistrationOptions
+ # @return [DocumentOnTypeFormattingRegistrationOptions] a new instance of DocumentOnTypeFormattingRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb#5
+ def initialize(document_selector:, first_trigger_character:, more_trigger_character: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb#40
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb#20
+ def document_selector; end
+
+ # A character on which formatting should be triggered, like `{`.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb#28
+ def first_trigger_character; end
+
+ # More trigger characters.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb#36
+ def more_trigger_character; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_on_type_formatting_registration_options.rb#46
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DocumentRangeFormattingClientCapabilities
+ # @return [DocumentRangeFormattingClientCapabilities] a new instance of DocumentRangeFormattingClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb#21
+ def attributes; end
+
+ # Whether formatting supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentRangeFormattingOptions
+ # @return [DocumentRangeFormattingOptions] a new instance of DocumentRangeFormattingOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#4
+class LanguageServer::Protocol::Interface::DocumentRangeFormattingParams
+ # @return [DocumentRangeFormattingParams] a new instance of DocumentRangeFormattingParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#5
+ def initialize(text_document:, range:, options:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#48
+ def attributes; end
+
+ # The format options
+ #
+ # @return [FormattingOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#44
+ def options; end
+
+ # The range to format
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#36
+ def range; end
+
+ # The document to format.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#28
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#50
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#54
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_params.rb#20
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentRangeFormattingRegistrationOptions
+ # @return [DocumentRangeFormattingRegistrationOptions] a new instance of DocumentRangeFormattingRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_registration_options.rb#28
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_registration_options.rb#19
+ def document_selector; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_registration_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_registration_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_range_formatting_registration_options.rb#24
+ def work_done_progress; end
+end
+
+# Represents programming constructs like variables, classes, interfaces etc.
+# that appear in a document. Document symbols can be hierarchical and they
+# have two ranges: one that encloses its definition and one that points to its
+# most interesting range, e.g. the range of an identifier.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#10
+class LanguageServer::Protocol::Interface::DocumentSymbol
+ # @return [DocumentSymbol] a new instance of DocumentSymbol
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#11
+ def initialize(name:, kind:, range:, selection_range:, detail: T.unsafe(nil), tags: T.unsafe(nil), deprecated: T.unsafe(nil), children: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#96
+ def attributes; end
+
+ # Children of this symbol, e.g. properties of a class.
+ #
+ # @return [DocumentSymbol[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#92
+ def children; end
+
+ # Indicates if this symbol is deprecated.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#64
+ def deprecated; end
+
+ # More detail for this symbol, e.g the signature of a function.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#40
+ def detail; end
+
+ # The kind of this symbol.
+ #
+ # @return [SymbolKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#48
+ def kind; end
+
+ # The name of this symbol. Will be displayed in the user interface and
+ # therefore must not be an empty string or a string only consisting of
+ # white spaces.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#32
+ def name; end
+
+ # The range enclosing this symbol not including leading/trailing whitespace
+ # but everything else like comments. This information is typically used to
+ # determine if the clients cursor is inside the symbol to reveal in the
+ # symbol in the UI.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#75
+ def range; end
+
+ # The range that should be selected and revealed when this symbol is being
+ # picked, e.g. the name of a function. Must be contained by the `range`.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#84
+ def selection_range; end
+
+ # Tags for this document symbol.
+ #
+ # @return [1[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#56
+ def tags; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#98
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol.rb#102
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::DocumentSymbolClientCapabilities
+ # @return [DocumentSymbolClientCapabilities] a new instance of DocumentSymbolClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), symbol_kind: T.unsafe(nil), hierarchical_document_symbol_support: T.unsafe(nil), tag_support: T.unsafe(nil), label_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#61
+ def attributes; end
+
+ # Whether document symbol supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#21
+ def dynamic_registration; end
+
+ # The client supports hierarchical document symbols.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#38
+ def hierarchical_document_symbol_support; end
+
+ # The client supports an additional label presented in the UI when
+ # registering a document symbol provider.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#57
+ def label_support; end
+
+ # Specific capabilities for the `SymbolKind` in the
+ # `textDocument/documentSymbol` request.
+ #
+ # @return [{ valueSet?: SymbolKind[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#30
+ def symbol_kind; end
+
+ # The client supports tags on `SymbolInformation`. Tags are supported on
+ # `DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
+ # Clients supporting tags have to handle unknown tags gracefully.
+ #
+ # @return [{ valueSet: 1[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#48
+ def tag_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#63
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_client_capabilities.rb#67
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentSymbolOptions
+ # @return [DocumentSymbolOptions] a new instance of DocumentSymbolOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil), label: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_options.rb#28
+ def attributes; end
+
+ # A human-readable string that is shown when multiple outlines trees
+ # are shown for the same document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_options.rb#24
+ def label; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_options.rb#15
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_params.rb#4
+class LanguageServer::Protocol::Interface::DocumentSymbolParams
+ # @return [DocumentSymbolParams] a new instance of DocumentSymbolParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_params.rb#5
+ def initialize(text_document:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_params.rb#40
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_params.rb#28
+ def partial_result_token; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_params.rb#36
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_params.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_params.rb#46
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_registration_options.rb#4
+class LanguageServer::Protocol::Interface::DocumentSymbolRegistrationOptions
+ # @return [DocumentSymbolRegistrationOptions] a new instance of DocumentSymbolRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), label: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_registration_options.rb#20
+ def document_selector; end
+
+ # A human-readable string that is shown when multiple outlines trees
+ # are shown for the same document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_registration_options.rb#34
+ def label; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/document_symbol_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/execute_command_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::ExecuteCommandClientCapabilities
+ # @return [ExecuteCommandClientCapabilities] a new instance of ExecuteCommandClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_client_capabilities.rb#21
+ def attributes; end
+
+ # Execute command supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/execute_command_options.rb#4
+class LanguageServer::Protocol::Interface::ExecuteCommandOptions
+ # @return [ExecuteCommandOptions] a new instance of ExecuteCommandOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_options.rb#5
+ def initialize(commands:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_options.rb#27
+ def attributes; end
+
+ # The commands to be executed on the server
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_options.rb#23
+ def commands; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_options.rb#29
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_options.rb#33
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_options.rb#15
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/execute_command_params.rb#4
+class LanguageServer::Protocol::Interface::ExecuteCommandParams
+ # @return [ExecuteCommandParams] a new instance of ExecuteCommandParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_params.rb#5
+ def initialize(command:, work_done_token: T.unsafe(nil), arguments: T.unsafe(nil)); end
+
+ # Arguments that the command should be invoked with.
+ #
+ # @return [LSPAny[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_params.rb#35
+ def arguments; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_params.rb#39
+ def attributes; end
+
+ # The identifier of the actual command handler.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_params.rb#27
+ def command; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_params.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_params.rb#45
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_params.rb#19
+ def work_done_token; end
+end
+
+# Execute command registration options.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/execute_command_registration_options.rb#7
+class LanguageServer::Protocol::Interface::ExecuteCommandRegistrationOptions
+ # @return [ExecuteCommandRegistrationOptions] a new instance of ExecuteCommandRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_registration_options.rb#8
+ def initialize(commands:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_registration_options.rb#30
+ def attributes; end
+
+ # The commands to be executed on the server
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_registration_options.rb#26
+ def commands; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_registration_options.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_registration_options.rb#36
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execute_command_registration_options.rb#18
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/execution_summary.rb#4
+class LanguageServer::Protocol::Interface::ExecutionSummary
+ # @return [ExecutionSummary] a new instance of ExecutionSummary
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execution_summary.rb#5
+ def initialize(execution_order:, success: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execution_summary.rb#33
+ def attributes; end
+
+ # A strict monotonically increasing value
+ # indicating the execution order of a cell
+ # inside a notebook.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execution_summary.rb#20
+ def execution_order; end
+
+ # Whether the execution was successful or
+ # not if known by the client.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/execution_summary.rb#29
+ def success; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execution_summary.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/execution_summary.rb#39
+ def to_json(*args); end
+end
+
+# Represents information on a file/folder create.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/file_create.rb#7
+class LanguageServer::Protocol::Interface::FileCreate
+ # @return [FileCreate] a new instance of FileCreate
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_create.rb#8
+ def initialize(uri:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_create.rb#24
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_create.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_create.rb#30
+ def to_json(*args); end
+
+ # A file:// URI for the location of the file/folder being created.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_create.rb#20
+ def uri; end
+end
+
+# Represents information on a file/folder delete.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/file_delete.rb#7
+class LanguageServer::Protocol::Interface::FileDelete
+ # @return [FileDelete] a new instance of FileDelete
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_delete.rb#8
+ def initialize(uri:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_delete.rb#24
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_delete.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_delete.rb#30
+ def to_json(*args); end
+
+ # A file:// URI for the location of the file/folder being deleted.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_delete.rb#20
+ def uri; end
+end
+
+# An event describing a file change.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/file_event.rb#7
+class LanguageServer::Protocol::Interface::FileEvent
+ # @return [FileEvent] a new instance of FileEvent
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_event.rb#8
+ def initialize(uri:, type:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_event.rb#33
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_event.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_event.rb#39
+ def to_json(*args); end
+
+ # The change type.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_event.rb#29
+ def type; end
+
+ # The file's URI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_event.rb#21
+ def uri; end
+end
+
+# A filter to describe in which file operation requests or notifications
+# the server is interested in.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/file_operation_filter.rb#8
+class LanguageServer::Protocol::Interface::FileOperationFilter
+ # @return [FileOperationFilter] a new instance of FileOperationFilter
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_filter.rb#9
+ def initialize(pattern:, scheme: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_filter.rb#34
+ def attributes; end
+
+ # The actual file operation pattern.
+ #
+ # @return [FileOperationPattern]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_filter.rb#30
+ def pattern; end
+
+ # A Uri like `file` or `untitled`.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_filter.rb#22
+ def scheme; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_filter.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_filter.rb#40
+ def to_json(*args); end
+end
+
+# A pattern to describe in which file operation requests or notifications
+# the server is interested in.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern.rb#8
+class LanguageServer::Protocol::Interface::FileOperationPattern
+ # @return [FileOperationPattern] a new instance of FileOperationPattern
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern.rb#9
+ def initialize(glob:, matches: T.unsafe(nil), options: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern.rb#55
+ def attributes; end
+
+ # The glob pattern to match. Glob patterns can have the following syntax:
+ # - `*` to match one or more characters in a path segment
+ # - `?` to match on one character in a path segment
+ # - `**` to match any number of path segments, including none
+ # - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}`
+ # matches all TypeScript and JavaScript files)
+ # - `[]` to declare a range of characters to match in a path segment
+ # (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
+ # - `[!...]` to negate a range of characters to match in a path segment
+ # (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
+ # not `example.0`)
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern.rb#33
+ def glob; end
+
+ # Whether to match files or folders with this pattern.
+ #
+ # Matches both if undefined.
+ #
+ # @return [FileOperationPatternKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern.rb#43
+ def matches; end
+
+ # Additional options used during matching.
+ #
+ # @return [FileOperationPatternOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern.rb#51
+ def options; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern.rb#57
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern.rb#61
+ def to_json(*args); end
+end
+
+# Matching options for the file operation pattern.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern_options.rb#7
+class LanguageServer::Protocol::Interface::FileOperationPatternOptions
+ # @return [FileOperationPatternOptions] a new instance of FileOperationPatternOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern_options.rb#8
+ def initialize(ignore_case: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern_options.rb#24
+ def attributes; end
+
+ # The pattern should be matched ignoring casing.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern_options.rb#20
+ def ignore_case; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern_options.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_pattern_options.rb#30
+ def to_json(*args); end
+end
+
+# The options to register for file operations.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/file_operation_registration_options.rb#7
+class LanguageServer::Protocol::Interface::FileOperationRegistrationOptions
+ # @return [FileOperationRegistrationOptions] a new instance of FileOperationRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_registration_options.rb#8
+ def initialize(filters:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_registration_options.rb#24
+ def attributes; end
+
+ # The actual filters.
+ #
+ # @return [FileOperationFilter[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_registration_options.rb#20
+ def filters; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_registration_options.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_operation_registration_options.rb#30
+ def to_json(*args); end
+end
+
+# Represents information on a file/folder rename.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/file_rename.rb#7
+class LanguageServer::Protocol::Interface::FileRename
+ # @return [FileRename] a new instance of FileRename
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_rename.rb#8
+ def initialize(old_uri:, new_uri:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_rename.rb#33
+ def attributes; end
+
+ # A file:// URI for the new location of the file/folder being renamed.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_rename.rb#29
+ def new_uri; end
+
+ # A file:// URI for the original location of the file/folder being renamed.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_rename.rb#21
+ def old_uri; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_rename.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_rename.rb#39
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/file_system_watcher.rb#4
+class LanguageServer::Protocol::Interface::FileSystemWatcher
+ # @return [FileSystemWatcher] a new instance of FileSystemWatcher
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_system_watcher.rb#5
+ def initialize(glob_pattern:, kind: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_system_watcher.rb#33
+ def attributes; end
+
+ # The glob pattern to watch. See {@link GlobPattern glob pattern}
+ # for more detail.
+ #
+ # @return [GlobPattern]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_system_watcher.rb#19
+ def glob_pattern; end
+
+ # The kind of events of interest. If omitted it defaults
+ # to WatchKind.Create | WatchKind.Change | WatchKind.Delete
+ # which is 7.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_system_watcher.rb#29
+ def kind; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_system_watcher.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/file_system_watcher.rb#39
+ def to_json(*args); end
+end
+
+# Represents a folding range. To be valid, start and end line must be bigger
+# than zero and smaller than the number of lines in the document. Clients
+# are free to ignore invalid ranges.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#9
+class LanguageServer::Protocol::Interface::FoldingRange
+ # @return [FoldingRange] a new instance of FoldingRange
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#10
+ def initialize(start_line:, end_line:, start_character: T.unsafe(nil), end_character: T.unsafe(nil), kind: T.unsafe(nil), collapsed_text: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#82
+ def attributes; end
+
+ # The text that the client should show when the specified range is
+ # collapsed. If not defined or not supported by the client, a default
+ # will be chosen by the client.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#78
+ def collapsed_text; end
+
+ # The zero-based character offset before the folded range ends. If not
+ # defined, defaults to the length of the end line.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#57
+ def end_character; end
+
+ # The zero-based end line of the range to fold. The folded area ends with
+ # the line's last character. To be valid, the end must be zero or larger
+ # and smaller than the number of lines in the document.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#48
+ def end_line; end
+
+ # Describes the kind of the folding range such as `comment` or `region`.
+ # The kind is used to categorize folding ranges and used by commands like
+ # 'Fold all comments'. See [FoldingRangeKind](#FoldingRangeKind) for an
+ # enumeration of standardized kinds.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#68
+ def kind; end
+
+ # The zero-based character offset from where the folded range starts. If
+ # not defined, defaults to the length of the start line.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#38
+ def start_character; end
+
+ # The zero-based start line of the range to fold. The folded area starts
+ # after the line's last character. To be valid, the end must be zero or
+ # larger and smaller than the number of lines in the document.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#29
+ def start_line; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#84
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range.rb#88
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::FoldingRangeClientCapabilities
+ # @return [FoldingRangeClientCapabilities] a new instance of FoldingRangeClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), range_limit: T.unsafe(nil), line_folding_only: T.unsafe(nil), folding_range_kind: T.unsafe(nil), folding_range: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#64
+ def attributes; end
+
+ # Whether implementation supports dynamic registration for folding range
+ # providers. If this is set to `true` the client supports the new
+ # `FoldingRangeRegistrationOptions` return value for the corresponding
+ # server capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#24
+ def dynamic_registration; end
+
+ # Specific options for the folding range.
+ #
+ # @return [{ collapsedText?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#60
+ def folding_range; end
+
+ # Specific options for the folding range kind.
+ #
+ # @return [{ valueSet?: string[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#52
+ def folding_range_kind; end
+
+ # If set, the client signals that it only supports folding complete lines.
+ # If set, client will ignore specified `startCharacter` and `endCharacter`
+ # properties in a FoldingRange.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#44
+ def line_folding_only; end
+
+ # The maximum number of folding ranges that the client prefers to receive
+ # per document. The value serves as a hint, servers are free to follow the
+ # limit.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#34
+ def range_limit; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#66
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_client_capabilities.rb#70
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/folding_range_options.rb#4
+class LanguageServer::Protocol::Interface::FoldingRangeOptions
+ # @return [FoldingRangeOptions] a new instance of FoldingRangeOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/folding_range_params.rb#4
+class LanguageServer::Protocol::Interface::FoldingRangeParams
+ # @return [FoldingRangeParams] a new instance of FoldingRangeParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_params.rb#5
+ def initialize(text_document:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_params.rb#40
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_params.rb#28
+ def partial_result_token; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_params.rb#36
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_params.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_params.rb#46
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/folding_range_registration_options.rb#4
+class LanguageServer::Protocol::Interface::FoldingRangeRegistrationOptions
+ # @return [FoldingRangeRegistrationOptions] a new instance of FoldingRangeRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_registration_options.rb#20
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_registration_options.rb#34
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/folding_range_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# Value-object describing what options formatting should use.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#7
+class LanguageServer::Protocol::Interface::FormattingOptions
+ # @return [FormattingOptions] a new instance of FormattingOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#8
+ def initialize(tab_size:, insert_spaces:, trim_trailing_whitespace: T.unsafe(nil), insert_final_newline: T.unsafe(nil), trim_final_newlines: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#60
+ def attributes; end
+
+ # Insert a newline character at the end of the file if one does not exist.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#48
+ def insert_final_newline; end
+
+ # Prefer spaces over tabs.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#32
+ def insert_spaces; end
+
+ # Size of a tab in spaces.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#24
+ def tab_size; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#62
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#66
+ def to_json(*args); end
+
+ # Trim all newlines after the final newline at the end of the file.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#56
+ def trim_final_newlines; end
+
+ # Trim trailing whitespace on a line.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/formatting_options.rb#40
+ def trim_trailing_whitespace; end
+end
+
+# A diagnostic report with a full set of problems.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/full_document_diagnostic_report.rb#7
+class LanguageServer::Protocol::Interface::FullDocumentDiagnosticReport
+ # @return [FullDocumentDiagnosticReport] a new instance of FullDocumentDiagnosticReport
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/full_document_diagnostic_report.rb#8
+ def initialize(kind:, items:, result_id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/full_document_diagnostic_report.rb#44
+ def attributes; end
+
+ # The actual items.
+ #
+ # @return [Diagnostic[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/full_document_diagnostic_report.rb#40
+ def items; end
+
+ # A full document diagnostic report.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/full_document_diagnostic_report.rb#22
+ def kind; end
+
+ # An optional result id. If provided it will
+ # be sent on the next diagnostic request for the
+ # same document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/full_document_diagnostic_report.rb#32
+ def result_id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/full_document_diagnostic_report.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/full_document_diagnostic_report.rb#50
+ def to_json(*args); end
+end
+
+# The result of a hover request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/hover.rb#7
+class LanguageServer::Protocol::Interface::Hover
+ # @return [Hover] a new instance of Hover
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover.rb#8
+ def initialize(contents:, range: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover.rb#34
+ def attributes; end
+
+ # The hover's content
+ #
+ # @return [MarkupContent | MarkedString | MarkedString[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover.rb#21
+ def contents; end
+
+ # An optional range is a range inside a text document
+ # that is used to visualize a hover, e.g. by changing the background color.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover.rb#30
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover.rb#40
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/hover_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::HoverClientCapabilities
+ # @return [HoverClientCapabilities] a new instance of HoverClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), content_format: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_client_capabilities.rb#32
+ def attributes; end
+
+ # Client supports the follow content formats if the content
+ # property refers to a `literal of type MarkupContent`.
+ # The order describes the preferred format of the client.
+ #
+ # @return [MarkupKind[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_client_capabilities.rb#28
+ def content_format; end
+
+ # Whether hover supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_client_capabilities.rb#18
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_client_capabilities.rb#34
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_client_capabilities.rb#38
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/hover_options.rb#4
+class LanguageServer::Protocol::Interface::HoverOptions
+ # @return [HoverOptions] a new instance of HoverOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/hover_params.rb#4
+class LanguageServer::Protocol::Interface::HoverParams
+ # @return [HoverParams] a new instance of HoverParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_params.rb#39
+ def attributes; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_params.rb#27
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_params.rb#19
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_params.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_params.rb#45
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_params.rb#35
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/hover_registration_options.rb#4
+class LanguageServer::Protocol::Interface::HoverRegistrationOptions
+ # @return [HoverRegistrationOptions] a new instance of HoverRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_registration_options.rb#28
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_registration_options.rb#19
+ def document_selector; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_registration_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_registration_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_registration_options.rb#24
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/hover_result.rb#4
+class LanguageServer::Protocol::Interface::HoverResult
+ # @return [HoverResult] a new instance of HoverResult
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_result.rb#5
+ def initialize(value:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_result.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_result.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_result.rb#24
+ def to_json(*args); end
+
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/hover_result.rb#14
+ def value; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/implementation_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::ImplementationClientCapabilities
+ # @return [ImplementationClientCapabilities] a new instance of ImplementationClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), link_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_client_capabilities.rb#32
+ def attributes; end
+
+ # Whether implementation supports dynamic registration. If this is set to
+ # `true` the client supports the new `ImplementationRegistrationOptions`
+ # return value for the corresponding server capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # The client supports additional metadata in the form of definition links.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_client_capabilities.rb#28
+ def link_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_client_capabilities.rb#34
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_client_capabilities.rb#38
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/implementation_options.rb#4
+class LanguageServer::Protocol::Interface::ImplementationOptions
+ # @return [ImplementationOptions] a new instance of ImplementationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#4
+class LanguageServer::Protocol::Interface::ImplementationParams
+ # @return [ImplementationParams] a new instance of ImplementationParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#49
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#45
+ def partial_result_token; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#28
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#55
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_params.rb#36
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/implementation_registration_options.rb#4
+class LanguageServer::Protocol::Interface::ImplementationRegistrationOptions
+ # @return [ImplementationRegistrationOptions] a new instance of ImplementationRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_registration_options.rb#20
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_registration_options.rb#34
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/implementation_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/initialize_error.rb#4
+class LanguageServer::Protocol::Interface::InitializeError
+ # @return [InitializeError] a new instance of InitializeError
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_error.rb#5
+ def initialize(retry:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_error.rb#24
+ def attributes; end
+
+ # Indicates whether the client execute the following retry logic:
+ # (1) show the message provided by the ResponseError to the user
+ # (2) user selects retry or cancel
+ # (3) if user selected retry the initialize method is sent again.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_error.rb#20
+ def retry; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_error.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_error.rb#30
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#4
+class LanguageServer::Protocol::Interface::InitializeParams
+ # @return [InitializeParams] a new instance of InitializeParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#5
+ def initialize(process_id:, root_uri:, capabilities:, work_done_token: T.unsafe(nil), client_info: T.unsafe(nil), locale: T.unsafe(nil), root_path: T.unsafe(nil), initialization_options: T.unsafe(nil), trace: T.unsafe(nil), workspace_folders: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#116
+ def attributes; end
+
+ # The capabilities provided by the client (editor or tool)
+ #
+ # @return [ClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#93
+ def capabilities; end
+
+ # Information about the client
+ #
+ # @return [{ name: string; version?: string; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#45
+ def client_info; end
+
+ # User provided initialization options.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#85
+ def initialization_options; end
+
+ # The locale the client is currently showing the user interface
+ # in. This must not necessarily be the locale of the operating
+ # system.
+ #
+ # Uses IETF language tags as the value's syntax
+ # (See https://en.wikipedia.org/wiki/IETF_language_tag)
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#58
+ def locale; end
+
+ # The process Id of the parent process that started the server. Is null if
+ # the process has not been started by another process. If the parent
+ # process is not alive then the server should exit (see exit notification)
+ # its process.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#37
+ def process_id; end
+
+ # The rootPath of the workspace. Is null
+ # if no folder is open.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#67
+ def root_path; end
+
+ # The rootUri of the workspace. Is null if no
+ # folder is open. If both `rootPath` and `rootUri` are set
+ # `rootUri` wins.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#77
+ def root_uri; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#118
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#122
+ def to_json(*args); end
+
+ # The initial trace setting. If omitted trace is disabled ('off').
+ #
+ # @return [TraceValue]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#101
+ def trace; end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#26
+ def work_done_token; end
+
+ # The workspace folders configured in the client when the server starts.
+ # This property is only available if the client supports workspace folders.
+ # It can be `null` if the client supports workspace folders but none are
+ # configured.
+ #
+ # @return [WorkspaceFolder[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_params.rb#112
+ def workspace_folders; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/initialize_result.rb#4
+class LanguageServer::Protocol::Interface::InitializeResult
+ # @return [InitializeResult] a new instance of InitializeResult
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_result.rb#5
+ def initialize(capabilities:, server_info: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_result.rb#30
+ def attributes; end
+
+ # The capabilities the language server provides.
+ #
+ # @return [ServerCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_result.rb#18
+ def capabilities; end
+
+ # Information about the server.
+ #
+ # @return [{ name: string; version?: string; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_result.rb#26
+ def server_info; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_result.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialize_result.rb#36
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/initialized_params.rb#4
+class LanguageServer::Protocol::Interface::InitializedParams
+ # @return [InitializedParams] a new instance of InitializedParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialized_params.rb#5
+ def initialize; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialized_params.rb#12
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialized_params.rb#14
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/initialized_params.rb#18
+ def to_json(*args); end
+end
+
+# Inlay hint information.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#7
+class LanguageServer::Protocol::Interface::InlayHint
+ # @return [InlayHint] a new instance of InlayHint
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#8
+ def initialize(position:, label:, kind: T.unsafe(nil), text_edits: T.unsafe(nil), tooltip: T.unsafe(nil), padding_left: T.unsafe(nil), padding_right: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#110
+ def attributes; end
+
+ # A data entry field that is preserved on an inlay hint between
+ # a `textDocument/inlayHint` and a `inlayHint/resolve` request.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#106
+ def data; end
+
+ # The kind of this hint. Can be omitted in which case the client
+ # should fall back to a reasonable default.
+ #
+ # @return [InlayHintKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#47
+ def kind; end
+
+ # The label of this hint. A human readable string or an array of
+ # InlayHintLabelPart label parts.
+ #
+ # *Note* that neither the string nor the label part can be empty.
+ #
+ # @return [string | InlayHintLabelPart[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#38
+ def label; end
+
+ # Render padding before the hint.
+ #
+ # Note: Padding should use the editor's background color, not the
+ # background color of the hint itself. That means padding can be used
+ # to visually align/separate an inlay hint.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#85
+ def padding_left; end
+
+ # Render padding after the hint.
+ #
+ # Note: Padding should use the editor's background color, not the
+ # background color of the hint itself. That means padding can be used
+ # to visually align/separate an inlay hint.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#97
+ def padding_right; end
+
+ # The position of this hint.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#27
+ def position; end
+
+ # Optional text edits that are performed when accepting this inlay hint.
+ #
+ # *Note* that edits are expected to change the document so that the inlay
+ # hint (or its nearest variant) is now part of the document and the inlay
+ # hint itself is now obsolete.
+ #
+ # Depending on the client capability `inlayHint.resolveSupport` clients
+ # might resolve this property late using the resolve request.
+ #
+ # @return [TextEdit[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#62
+ def text_edits; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#112
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#116
+ def to_json(*args); end
+
+ # The tooltip text when you hover over this item.
+ #
+ # Depending on the client capability `inlayHint.resolveSupport` clients
+ # might resolve this property late using the resolve request.
+ #
+ # @return [string | MarkupContent]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint.rb#73
+ def tooltip; end
+end
+
+# Inlay hint client capabilities.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::InlayHintClientCapabilities
+ # @return [InlayHintClientCapabilities] a new instance of InlayHintClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb#8
+ def initialize(dynamic_registration: T.unsafe(nil), resolve_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb#34
+ def attributes; end
+
+ # Whether inlay hints support dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb#21
+ def dynamic_registration; end
+
+ # Indicates which properties a client can resolve lazily on an inlay
+ # hint.
+ #
+ # @return [{ properties: string[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb#30
+ def resolve_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_client_capabilities.rb#40
+ def to_json(*args); end
+end
+
+# An inlay hint label part allows for interactive and composite labels
+# of inlay hints.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#8
+class LanguageServer::Protocol::Interface::InlayHintLabelPart
+ # @return [InlayHintLabelPart] a new instance of InlayHintLabelPart
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#9
+ def initialize(value:, tooltip: T.unsafe(nil), location: T.unsafe(nil), command: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#67
+ def attributes; end
+
+ # An optional command for this label part.
+ #
+ # Depending on the client capability `inlayHint.resolveSupport` clients
+ # might resolve this property late using the resolve request.
+ #
+ # @return [Command]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#63
+ def command; end
+
+ # An optional source code location that represents this
+ # label part.
+ #
+ # The editor will use this location for the hover and for code navigation
+ # features: This part will become a clickable link that resolves to the
+ # definition of the symbol at the given location (not necessarily the
+ # location itself), it shows the hover that shows at the given location,
+ # and it shows a context menu with further code navigation commands.
+ #
+ # Depending on the client capability `inlayHint.resolveSupport` clients
+ # might resolve this property late using the resolve request.
+ #
+ # @return [Location]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#52
+ def location; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#69
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#73
+ def to_json(*args); end
+
+ # The tooltip text when you hover over this label part. Depending on
+ # the client capability `inlayHint.resolveSupport` clients might resolve
+ # this property late using the resolve request.
+ #
+ # @return [string | MarkupContent]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#34
+ def tooltip; end
+
+ # The value of this label part.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_label_part.rb#24
+ def value; end
+end
+
+# Inlay hint options used during static registration.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_options.rb#7
+class LanguageServer::Protocol::Interface::InlayHintOptions
+ # @return [InlayHintOptions] a new instance of InlayHintOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_options.rb#8
+ def initialize(work_done_progress: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_options.rb#31
+ def attributes; end
+
+ # The server provides support to resolve additional
+ # information for an inlay hint item.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_options.rb#27
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_options.rb#33
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_options.rb#37
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_options.rb#18
+ def work_done_progress; end
+end
+
+# A parameter literal used in inlay hint requests.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_params.rb#7
+class LanguageServer::Protocol::Interface::InlayHintParams
+ # @return [InlayHintParams] a new instance of InlayHintParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_params.rb#8
+ def initialize(text_document:, range:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_params.rb#42
+ def attributes; end
+
+ # The visible document range for which inlay hints should be computed.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_params.rb#38
+ def range; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_params.rb#30
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_params.rb#44
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_params.rb#48
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_params.rb#22
+ def work_done_token; end
+end
+
+# Inlay hint options used during static or dynamic registration.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#7
+class LanguageServer::Protocol::Interface::InlayHintRegistrationOptions
+ # @return [InlayHintRegistrationOptions] a new instance of InlayHintRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#8
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), resolve_provider: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#51
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#38
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#47
+ def id; end
+
+ # The server provides support to resolve additional
+ # information for an inlay hint item.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#29
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#53
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#57
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_registration_options.rb#20
+ def work_done_progress; end
+end
+
+# Client workspace capabilities specific to inlay hints.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::InlayHintWorkspaceClientCapabilities
+ # @return [InlayHintWorkspaceClientCapabilities] a new instance of InlayHintWorkspaceClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb#8
+ def initialize(refresh_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb#30
+ def attributes; end
+
+ # Whether the client implementation supports a refresh request sent from
+ # the server to the client.
+ #
+ # Note that this event is global and will force the client to refresh all
+ # inlay hints currently shown. It should be used with absolute care and
+ # is useful for situation where a server for example detects a project wide
+ # change that requires such a calculation.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb#26
+ def refresh_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inlay_hint_workspace_client_capabilities.rb#36
+ def to_json(*args); end
+end
+
+# Client capabilities specific to inline values.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::InlineValueClientCapabilities
+ # @return [InlineValueClientCapabilities] a new instance of InlineValueClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_client_capabilities.rb#8
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_client_capabilities.rb#25
+ def attributes; end
+
+ # Whether implementation supports dynamic registration for inline
+ # value providers.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_client_capabilities.rb#21
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_client_capabilities.rb#27
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_client_capabilities.rb#31
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_context.rb#4
+class LanguageServer::Protocol::Interface::InlineValueContext
+ # @return [InlineValueContext] a new instance of InlineValueContext
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_context.rb#5
+ def initialize(frame_id:, stopped_location:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_context.rb#32
+ def attributes; end
+
+ # The stack frame (as a DAP Id) where the execution has stopped.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_context.rb#18
+ def frame_id; end
+
+ # The document range where execution has stopped.
+ # Typically the end position of the range denotes the line where the
+ # inline values are shown.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_context.rb#28
+ def stopped_location; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_context.rb#34
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_context.rb#38
+ def to_json(*args); end
+end
+
+# Provide an inline value through an expression evaluation.
+#
+# If only a range is specified, the expression will be extracted from the
+# underlying document.
+#
+# An optional expression can be used to override the extracted expression.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb#12
+class LanguageServer::Protocol::Interface::InlineValueEvaluatableExpression
+ # @return [InlineValueEvaluatableExpression] a new instance of InlineValueEvaluatableExpression
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb#13
+ def initialize(range:, expression: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb#40
+ def attributes; end
+
+ # If specified the expression overrides the extracted expression.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb#36
+ def expression; end
+
+ # The document range for which the inline value applies.
+ # The range is used to extract the evaluatable expression from the
+ # underlying document.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb#28
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_evaluatable_expression.rb#46
+ def to_json(*args); end
+end
+
+# Inline value options used during static registration.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_options.rb#7
+class LanguageServer::Protocol::Interface::InlineValueOptions
+ # @return [InlineValueOptions] a new instance of InlineValueOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_options.rb#8
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_options.rb#21
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_options.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_options.rb#27
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_options.rb#17
+ def work_done_progress; end
+end
+
+# A parameter literal used in inline value requests.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#7
+class LanguageServer::Protocol::Interface::InlineValueParams
+ # @return [InlineValueParams] a new instance of InlineValueParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#8
+ def initialize(text_document:, range:, context:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#52
+ def attributes; end
+
+ # Additional information about the context in which inline values were
+ # requested.
+ #
+ # @return [InlineValueContext]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#48
+ def context; end
+
+ # The document range for which inline values should be computed.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#39
+ def range; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#31
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#54
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#58
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_params.rb#23
+ def work_done_token; end
+end
+
+# Inline value options used during static or dynamic registration.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_registration_options.rb#7
+class LanguageServer::Protocol::Interface::InlineValueRegistrationOptions
+ # @return [InlineValueRegistrationOptions] a new instance of InlineValueRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_registration_options.rb#8
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_registration_options.rb#41
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_registration_options.rb#28
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_registration_options.rb#37
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_registration_options.rb#43
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_registration_options.rb#47
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_registration_options.rb#19
+ def work_done_progress; end
+end
+
+# Provide inline value as text.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_text.rb#7
+class LanguageServer::Protocol::Interface::InlineValueText
+ # @return [InlineValueText] a new instance of InlineValueText
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_text.rb#8
+ def initialize(range:, text:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_text.rb#33
+ def attributes; end
+
+ # The document range for which the inline value applies.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_text.rb#21
+ def range; end
+
+ # The text of the inline value.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_text.rb#29
+ def text; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_text.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_text.rb#39
+ def to_json(*args); end
+end
+
+# Provide inline value through a variable lookup.
+#
+# If only a range is specified, the variable name will be extracted from
+# the underlying document.
+#
+# An optional variable name can be used to override the extracted name.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_variable_lookup.rb#12
+class LanguageServer::Protocol::Interface::InlineValueVariableLookup
+ # @return [InlineValueVariableLookup] a new instance of InlineValueVariableLookup
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_variable_lookup.rb#13
+ def initialize(range:, case_sensitive_lookup:, variable_name: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_variable_lookup.rb#49
+ def attributes; end
+
+ # How to perform the lookup.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_variable_lookup.rb#45
+ def case_sensitive_lookup; end
+
+ # The document range for which the inline value applies.
+ # The range is used to extract the variable name from the underlying
+ # document.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_variable_lookup.rb#29
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_variable_lookup.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_variable_lookup.rb#55
+ def to_json(*args); end
+
+ # If specified the name of the variable to look up.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_variable_lookup.rb#37
+ def variable_name; end
+end
+
+# Client workspace capabilities specific to inline values.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::InlineValueWorkspaceClientCapabilities
+ # @return [InlineValueWorkspaceClientCapabilities] a new instance of InlineValueWorkspaceClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb#8
+ def initialize(refresh_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb#30
+ def attributes; end
+
+ # Whether the client implementation supports a refresh request sent from
+ # the server to the client.
+ #
+ # Note that this event is global and will force the client to refresh all
+ # inline values currently shown. It should be used with absolute care and
+ # is useful for situation where a server for example detect a project wide
+ # change that requires such a calculation.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb#26
+ def refresh_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/inline_value_workspace_client_capabilities.rb#36
+ def to_json(*args); end
+end
+
+# A special text edit to provide an insert and a replace operation.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/insert_replace_edit.rb#7
+class LanguageServer::Protocol::Interface::InsertReplaceEdit
+ # @return [InsertReplaceEdit] a new instance of InsertReplaceEdit
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/insert_replace_edit.rb#8
+ def initialize(new_text:, insert:, replace:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/insert_replace_edit.rb#42
+ def attributes; end
+
+ # The range if the insert is requested
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/insert_replace_edit.rb#30
+ def insert; end
+
+ # The string to be inserted.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/insert_replace_edit.rb#22
+ def new_text; end
+
+ # The range if the replace is requested.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/insert_replace_edit.rb#38
+ def replace; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/insert_replace_edit.rb#44
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/insert_replace_edit.rb#48
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::LinkedEditingRangeClientCapabilities
+ # @return [LinkedEditingRangeClientCapabilities] a new instance of LinkedEditingRangeClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb#24
+ def attributes; end
+
+ # Whether the implementation supports dynamic registration.
+ # If this is set to `true` the client supports the new
+ # `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+ # return value for the corresponding server capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_client_capabilities.rb#30
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_options.rb#4
+class LanguageServer::Protocol::Interface::LinkedEditingRangeOptions
+ # @return [LinkedEditingRangeOptions] a new instance of LinkedEditingRangeOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_params.rb#4
+class LanguageServer::Protocol::Interface::LinkedEditingRangeParams
+ # @return [LinkedEditingRangeParams] a new instance of LinkedEditingRangeParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_params.rb#39
+ def attributes; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_params.rb#27
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_params.rb#19
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_params.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_params.rb#45
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_params.rb#35
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_registration_options.rb#4
+class LanguageServer::Protocol::Interface::LinkedEditingRangeRegistrationOptions
+ # @return [LinkedEditingRangeRegistrationOptions] a new instance of LinkedEditingRangeRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_registration_options.rb#20
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_registration_options.rb#34
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_range_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_ranges.rb#4
+class LanguageServer::Protocol::Interface::LinkedEditingRanges
+ # @return [LinkedEditingRanges] a new instance of LinkedEditingRanges
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_ranges.rb#5
+ def initialize(ranges:, word_pattern: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_ranges.rb#34
+ def attributes; end
+
+ # A list of ranges that can be renamed together. The ranges must have
+ # identical length and contain identical text content. The ranges cannot
+ # overlap.
+ #
+ # @return [Range[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_ranges.rb#20
+ def ranges; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_ranges.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_ranges.rb#40
+ def to_json(*args); end
+
+ # An optional word pattern (regular expression) that describes valid
+ # contents for the given ranges. If no pattern is provided, the client
+ # configuration's word pattern will be used.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/linked_editing_ranges.rb#30
+ def word_pattern; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/location.rb#4
+class LanguageServer::Protocol::Interface::Location
+ # @return [Location] a new instance of Location
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location.rb#5
+ def initialize(uri:, range:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location.rb#24
+ def attributes; end
+
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location.rb#20
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/location.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/location.rb#30
+ def to_json(*args); end
+
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location.rb#15
+ def uri; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#4
+class LanguageServer::Protocol::Interface::LocationLink
+ # @return [LocationLink] a new instance of LocationLink
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#5
+ def initialize(target_uri:, target_range:, target_selection_range:, origin_selection_range: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#56
+ def attributes; end
+
+ # Span of the origin of this link.
+ #
+ # Used as the underlined span for mouse interaction. Defaults to the word
+ # range at the mouse position.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#23
+ def origin_selection_range; end
+
+ # The full target range of this link. If the target for example is a symbol
+ # then target range is the range enclosing this symbol not including
+ # leading/trailing whitespace but everything else like comments. This
+ # information is typically used to highlight the range in the editor.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#42
+ def target_range; end
+
+ # The range that should be selected and revealed when this link is being
+ # followed, e.g the name of a function. Must be contained by the
+ # `targetRange`. See also `DocumentSymbol#range`
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#52
+ def target_selection_range; end
+
+ # The target resource identifier of this link.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#31
+ def target_uri; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#58
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/location_link.rb#62
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/log_message_params.rb#4
+class LanguageServer::Protocol::Interface::LogMessageParams
+ # @return [LogMessageParams] a new instance of LogMessageParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_message_params.rb#5
+ def initialize(type:, message:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_message_params.rb#30
+ def attributes; end
+
+ # The actual message
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_message_params.rb#26
+ def message; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_message_params.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_message_params.rb#36
+ def to_json(*args); end
+
+ # The message type. See {@link MessageType}
+ #
+ # @return [MessageType]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_message_params.rb#18
+ def type; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/log_trace_params.rb#4
+class LanguageServer::Protocol::Interface::LogTraceParams
+ # @return [LogTraceParams] a new instance of LogTraceParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_trace_params.rb#5
+ def initialize(message:, verbose: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_trace_params.rb#31
+ def attributes; end
+
+ # The message to be logged.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_trace_params.rb#18
+ def message; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_trace_params.rb#33
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_trace_params.rb#37
+ def to_json(*args); end
+
+ # Additional information that can be computed if the `trace` configuration
+ # is set to `'verbose'`
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/log_trace_params.rb#27
+ def verbose; end
+end
+
+# A `MarkupContent` literal represents a string value which content is
+# interpreted base on its kind flag. Currently the protocol supports
+# `plaintext` and `markdown` as markup kinds.
+#
+# If the kind is `markdown` then the value can contain fenced code blocks like
+# in GitHub issues.
+#
+# Here is an example how such a string can be constructed using
+# JavaScript / TypeScript:
+# ```typescript
+# let markdown: MarkdownContent = {
+# kind: MarkupKind.Markdown,
+# value: [
+# '# Header',
+# 'Some text',
+# '```typescript',
+# 'someCode();',
+# '```'
+# ].join('\n')
+# };
+# ```
+#
+# *Please Note* that clients might sanitize the return markdown. A client could
+# decide to remove HTML from the markdown to avoid script execution.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/markup_content.rb#30
+class LanguageServer::Protocol::Interface::MarkupContent
+ # @return [MarkupContent] a new instance of MarkupContent
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/markup_content.rb#31
+ def initialize(kind:, value:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/markup_content.rb#56
+ def attributes; end
+
+ # The type of the Markup
+ #
+ # @return [MarkupKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/markup_content.rb#44
+ def kind; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/markup_content.rb#58
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/markup_content.rb#62
+ def to_json(*args); end
+
+ # The content itself
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/markup_content.rb#52
+ def value; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/message.rb#4
+class LanguageServer::Protocol::Interface::Message
+ # @return [Message] a new instance of Message
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/message.rb#5
+ def initialize(jsonrpc:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/message.rb#18
+ def attributes; end
+
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/message.rb#14
+ def jsonrpc; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/message.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/message.rb#24
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/message_action_item.rb#4
+class LanguageServer::Protocol::Interface::MessageActionItem
+ # @return [MessageActionItem] a new instance of MessageActionItem
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/message_action_item.rb#5
+ def initialize(title:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/message_action_item.rb#21
+ def attributes; end
+
+ # A short title like 'Retry', 'Open Log' etc.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/message_action_item.rb#17
+ def title; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/message_action_item.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/message_action_item.rb#27
+ def to_json(*args); end
+end
+
+# Moniker definition to match LSIF 0.5 moniker definition.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#7
+class LanguageServer::Protocol::Interface::Moniker
+ # @return [Moniker] a new instance of Moniker
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#8
+ def initialize(scheme:, identifier:, unique:, kind: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#52
+ def attributes; end
+
+ # The identifier of the moniker. The value is opaque in LSIF however
+ # schema owners are allowed to define the structure if they want.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#32
+ def identifier; end
+
+ # The moniker kind if known.
+ #
+ # @return [MonikerKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#48
+ def kind; end
+
+ # The scheme of the moniker. For example tsc or .Net
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#23
+ def scheme; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#54
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#58
+ def to_json(*args); end
+
+ # The scope in which the moniker is unique
+ #
+ # @return [UniquenessLevel]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker.rb#40
+ def unique; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/moniker_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::MonikerClientCapabilities
+ # @return [MonikerClientCapabilities] a new instance of MonikerClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_client_capabilities.rb#24
+ def attributes; end
+
+ # Whether implementation supports dynamic registration. If this is set to
+ # `true` the client supports the new `(TextDocumentRegistrationOptions &
+ # StaticRegistrationOptions)` return value for the corresponding server
+ # capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_client_capabilities.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_client_capabilities.rb#30
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/moniker_options.rb#4
+class LanguageServer::Protocol::Interface::MonikerOptions
+ # @return [MonikerOptions] a new instance of MonikerOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#4
+class LanguageServer::Protocol::Interface::MonikerParams
+ # @return [MonikerParams] a new instance of MonikerParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#49
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#45
+ def partial_result_token; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#28
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#55
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_params.rb#36
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/moniker_registration_options.rb#4
+class LanguageServer::Protocol::Interface::MonikerRegistrationOptions
+ # @return [MonikerRegistrationOptions] a new instance of MonikerRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_registration_options.rb#28
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_registration_options.rb#19
+ def document_selector; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_registration_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_registration_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/moniker_registration_options.rb#24
+ def work_done_progress; end
+end
+
+# A notebook cell.
+#
+# A cell's document URI must be unique across ALL notebook
+# cells and can therefore be used to uniquely identify a
+# notebook cell or the cell's text document.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#11
+class LanguageServer::Protocol::Interface::NotebookCell
+ # @return [NotebookCell] a new instance of NotebookCell
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#12
+ def initialize(kind:, document:, metadata: T.unsafe(nil), execution_summary: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#57
+ def attributes; end
+
+ # The URI of the cell's text document
+ # content.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#36
+ def document; end
+
+ # Additional execution summary information
+ # if supported by the client.
+ #
+ # @return [ExecutionSummary]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#53
+ def execution_summary; end
+
+ # The cell's kind
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#27
+ def kind; end
+
+ # Additional metadata stored with the cell.
+ #
+ # @return [LSPObject]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#44
+ def metadata; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#59
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell.rb#63
+ def to_json(*args); end
+end
+
+# A change describing how to move a `NotebookCell`
+# array from state S to S'.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_array_change.rb#8
+class LanguageServer::Protocol::Interface::NotebookCellArrayChange
+ # @return [NotebookCellArrayChange] a new instance of NotebookCellArrayChange
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_array_change.rb#9
+ def initialize(start:, delete_count:, cells: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_array_change.rb#43
+ def attributes; end
+
+ # The new cells, if any
+ #
+ # @return [NotebookCell[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_array_change.rb#39
+ def cells; end
+
+ # The deleted cells
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_array_change.rb#31
+ def delete_count; end
+
+ # The start offset of the cell that changed.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_array_change.rb#23
+ def start; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_array_change.rb#45
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_array_change.rb#49
+ def to_json(*args); end
+end
+
+# A notebook cell text document filter denotes a cell text
+# document by different properties.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb#8
+class LanguageServer::Protocol::Interface::NotebookCellTextDocumentFilter
+ # @return [NotebookCellTextDocumentFilter] a new instance of NotebookCellTextDocumentFilter
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb#9
+ def initialize(notebook:, language: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb#40
+ def attributes; end
+
+ # A language id like `python`.
+ #
+ # Will be matched against the language id of the
+ # notebook cell document. '*' matches every language.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb#36
+ def language; end
+
+ # A filter that matches against the notebook
+ # containing the notebook cell. If a string
+ # value is provided it matches against the
+ # notebook type. '*' matches every notebook.
+ #
+ # @return [string | NotebookDocumentFilter]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb#25
+ def notebook; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_cell_text_document_filter.rb#46
+ def to_json(*args); end
+end
+
+# A notebook document.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#7
+class LanguageServer::Protocol::Interface::NotebookDocument
+ # @return [NotebookDocument] a new instance of NotebookDocument
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#8
+ def initialize(uri:, notebook_type:, version:, cells:, metadata: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#62
+ def attributes; end
+
+ # The cells of a notebook.
+ #
+ # @return [NotebookCell[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#58
+ def cells; end
+
+ # Additional metadata stored with the notebook
+ # document.
+ #
+ # @return [LSPObject]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#50
+ def metadata; end
+
+ # The type of the notebook.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#32
+ def notebook_type; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#64
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#68
+ def to_json(*args); end
+
+ # The notebook document's URI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#24
+ def uri; end
+
+ # The version number of this document (it will increase after each
+ # change, including undo/redo).
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document.rb#41
+ def version; end
+end
+
+# A change event for a notebook document.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_change_event.rb#7
+class LanguageServer::Protocol::Interface::NotebookDocumentChangeEvent
+ # @return [NotebookDocumentChangeEvent] a new instance of NotebookDocumentChangeEvent
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_change_event.rb#8
+ def initialize(metadata: T.unsafe(nil), cells: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_change_event.rb#33
+ def attributes; end
+
+ # Changes to cells
+ #
+ # @return [{ structure?: { array: NotebookCellArrayChange; didOpen?: TextDocumentItem[]; didClose?: TextDocumentIdentifier[]; }; data?: NotebookCell[]; textContent?: { ...; }[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_change_event.rb#29
+ def cells; end
+
+ # The changed meta data if any.
+ #
+ # @return [LSPObject]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_change_event.rb#21
+ def metadata; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_change_event.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_change_event.rb#39
+ def to_json(*args); end
+end
+
+# Capabilities specific to the notebook document support.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::NotebookDocumentClientCapabilities
+ # @return [NotebookDocumentClientCapabilities] a new instance of NotebookDocumentClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_client_capabilities.rb#8
+ def initialize(synchronization:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_client_capabilities.rb#24
+ def attributes; end
+
+ # Capabilities specific to notebook document synchronization
+ #
+ # @return [NotebookDocumentSyncClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_client_capabilities.rb#20
+ def synchronization; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_client_capabilities.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_client_capabilities.rb#30
+ def to_json(*args); end
+end
+
+# A notebook document filter denotes a notebook document by
+# different properties.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_filter.rb#8
+class LanguageServer::Protocol::Interface::NotebookDocumentFilter
+ # @return [NotebookDocumentFilter] a new instance of NotebookDocumentFilter
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_filter.rb#9
+ def initialize(notebook_type: T.unsafe(nil), scheme: T.unsafe(nil), pattern: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_filter.rb#67
+ def attributes; end
+
+ # The type of the enclosing notebook.
+ #
+ # --- OR ---
+ #
+ # The type of the enclosing notebook.
+ #
+ # --- OR ---
+ #
+ # The type of the enclosing notebook.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_filter.rb#31
+ def notebook_type; end
+
+ # A glob pattern.
+ #
+ # --- OR ---
+ #
+ # A glob pattern.
+ #
+ # --- OR ---
+ #
+ # A glob pattern.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_filter.rb#63
+ def pattern; end
+
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
+ #
+ # --- OR ---
+ #
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
+ #
+ # --- OR ---
+ #
+ # A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_filter.rb#47
+ def scheme; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_filter.rb#69
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_filter.rb#73
+ def to_json(*args); end
+end
+
+# A literal to identify a notebook document in the client.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_identifier.rb#7
+class LanguageServer::Protocol::Interface::NotebookDocumentIdentifier
+ # @return [NotebookDocumentIdentifier] a new instance of NotebookDocumentIdentifier
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_identifier.rb#8
+ def initialize(uri:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_identifier.rb#24
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_identifier.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_identifier.rb#30
+ def to_json(*args); end
+
+ # The notebook document's URI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_identifier.rb#20
+ def uri; end
+end
+
+# Notebook specific client capabilities.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::NotebookDocumentSyncClientCapabilities
+ # @return [NotebookDocumentSyncClientCapabilities] a new instance of NotebookDocumentSyncClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb#8
+ def initialize(dynamic_registration: T.unsafe(nil), execution_summary_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb#36
+ def attributes; end
+
+ # Whether implementation supports dynamic registration. If this is
+ # set to `true` the client supports the new
+ # `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+ # return value for the corresponding server capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb#24
+ def dynamic_registration; end
+
+ # The client supports sending execution summary data per cell.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb#32
+ def execution_summary_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb#38
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_client_capabilities.rb#42
+ def to_json(*args); end
+end
+
+# Options specific to a notebook plus its cells
+# to be synced to the server.
+#
+# If a selector provides a notebook document
+# filter but no cell selector all cells of a
+# matching notebook document will be synced.
+#
+# If a selector provides no notebook document
+# filter but only a cell selector all notebook
+# documents that contain at least one matching
+# cell will be synced.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_options.rb#17
+class LanguageServer::Protocol::Interface::NotebookDocumentSyncOptions
+ # @return [NotebookDocumentSyncOptions] a new instance of NotebookDocumentSyncOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_options.rb#18
+ def initialize(notebook_selector:, save: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_options.rb#44
+ def attributes; end
+
+ # The notebooks to be synced
+ #
+ # @return [({ notebook: string | NotebookDocumentFilter; cells?: { language: string; }[]; } | { notebook?: string | NotebookDocumentFilter; cells: { ...; }[]; })[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_options.rb#31
+ def notebook_selector; end
+
+ # Whether save notification should be forwarded to
+ # the server. Will only be honored if mode === `notebook`.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_options.rb#40
+ def save; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_options.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_options.rb#50
+ def to_json(*args); end
+end
+
+# Registration options specific to a notebook.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb#7
+class LanguageServer::Protocol::Interface::NotebookDocumentSyncRegistrationOptions
+ # @return [NotebookDocumentSyncRegistrationOptions] a new instance of NotebookDocumentSyncRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb#8
+ def initialize(notebook_selector:, save: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb#44
+ def attributes; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb#40
+ def id; end
+
+ # The notebooks to be synced
+ #
+ # @return [({ notebook: string | NotebookDocumentFilter; cells?: { language: string; }[]; } | { notebook?: string | NotebookDocumentFilter; cells: { ...; }[]; })[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb#22
+ def notebook_selector; end
+
+ # Whether save notification should be forwarded to
+ # the server. Will only be honored if mode === `notebook`.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb#31
+ def save; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notebook_document_sync_registration_options.rb#50
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/notification_message.rb#4
+class LanguageServer::Protocol::Interface::NotificationMessage
+ # @return [NotificationMessage] a new instance of NotificationMessage
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notification_message.rb#5
+ def initialize(jsonrpc:, method:, params: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notification_message.rb#36
+ def attributes; end
+
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notification_message.rb#16
+ def jsonrpc; end
+
+ # The method to be invoked.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notification_message.rb#24
+ def method; end
+
+ # The notification's params.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/notification_message.rb#32
+ def params; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notification_message.rb#38
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/notification_message.rb#42
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb#4
+class LanguageServer::Protocol::Interface::OptionalVersionedTextDocumentIdentifier
+ # @return [OptionalVersionedTextDocumentIdentifier] a new instance of OptionalVersionedTextDocumentIdentifier
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb#5
+ def initialize(uri:, version:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb#38
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb#44
+ def to_json(*args); end
+
+ # The text document's URI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb#18
+ def uri; end
+
+ # The version number of this document. If an optional versioned text document
+ # identifier is sent from the server to the client and the file is not
+ # open in the editor (the server has not received an open notification
+ # before) the server can send `null` to indicate that the version is
+ # known and the content on disk is the master (as specified with document
+ # content ownership).
+ #
+ # The version number of a document will increase after each change,
+ # including undo/redo. The number doesn't need to be consecutive.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/optional_versioned_text_document_identifier.rb#34
+ def version; end
+end
+
+# Represents a parameter of a callable-signature. A parameter can
+# have a label and a doc-comment.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/parameter_information.rb#8
+class LanguageServer::Protocol::Interface::ParameterInformation
+ # @return [ParameterInformation] a new instance of ParameterInformation
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/parameter_information.rb#9
+ def initialize(label:, documentation: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/parameter_information.rb#44
+ def attributes; end
+
+ # The human-readable doc-comment of this parameter. Will be shown
+ # in the UI but can be omitted.
+ #
+ # @return [string | MarkupContent]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/parameter_information.rb#40
+ def documentation; end
+
+ # The label of this parameter information.
+ #
+ # Either a string or an inclusive start and exclusive end offsets within
+ # its containing signature label. (see SignatureInformation.label). The
+ # offsets are based on a UTF-16 string representation as `Position` and
+ # `Range` does.
+ #
+ # *Note*: a label of type string should be a substring of its containing
+ # signature label. Its intended use case is to highlight the parameter
+ # label part in the `SignatureInformation.label`.
+ #
+ # @return [string | [number, number]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/parameter_information.rb#31
+ def label; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/parameter_information.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/parameter_information.rb#50
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/partial_result_params.rb#4
+class LanguageServer::Protocol::Interface::PartialResultParams
+ # @return [PartialResultParams] a new instance of PartialResultParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/partial_result_params.rb#5
+ def initialize(partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/partial_result_params.rb#22
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/partial_result_params.rb#18
+ def partial_result_token; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/partial_result_params.rb#24
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/partial_result_params.rb#28
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/position.rb#4
+class LanguageServer::Protocol::Interface::Position
+ # @return [Position] a new instance of Position
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/position.rb#5
+ def initialize(line:, character:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/position.rb#34
+ def attributes; end
+
+ # Character offset on a line in a document (zero-based). The meaning of this
+ # offset is determined by the negotiated `PositionEncodingKind`.
+ #
+ # If the character value is greater than the line length it defaults back
+ # to the line length.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/position.rb#30
+ def character; end
+
+ # Line position in a document (zero-based).
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/position.rb#18
+ def line; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/position.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/position.rb#40
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/prepare_rename_params.rb#4
+class LanguageServer::Protocol::Interface::PrepareRenameParams
+ # @return [PrepareRenameParams] a new instance of PrepareRenameParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/prepare_rename_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/prepare_rename_params.rb#39
+ def attributes; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/prepare_rename_params.rb#27
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/prepare_rename_params.rb#19
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/prepare_rename_params.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/prepare_rename_params.rb#45
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/prepare_rename_params.rb#35
+ def work_done_token; end
+end
+
+# A previous result id in a workspace pull request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/previous_result_id.rb#7
+class LanguageServer::Protocol::Interface::PreviousResultId
+ # @return [PreviousResultId] a new instance of PreviousResultId
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/previous_result_id.rb#8
+ def initialize(uri:, value:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/previous_result_id.rb#34
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/previous_result_id.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/previous_result_id.rb#40
+ def to_json(*args); end
+
+ # The URI for which the client knows a
+ # result id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/previous_result_id.rb#22
+ def uri; end
+
+ # The value of the previous result id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/previous_result_id.rb#30
+ def value; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/progress_params.rb#4
+class LanguageServer::Protocol::Interface::ProgressParams
+ # @return [ProgressParams] a new instance of ProgressParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/progress_params.rb#5
+ def initialize(token:, value:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/progress_params.rb#30
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/progress_params.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/progress_params.rb#36
+ def to_json(*args); end
+
+ # The progress token provided by the client or server.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/progress_params.rb#18
+ def token; end
+
+ # The progress data.
+ #
+ # @return [T]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/progress_params.rb#26
+ def value; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::PublishDiagnosticsClientCapabilities
+ # @return [PublishDiagnosticsClientCapabilities] a new instance of PublishDiagnosticsClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#5
+ def initialize(related_information: T.unsafe(nil), tag_support: T.unsafe(nil), version_support: T.unsafe(nil), code_description_support: T.unsafe(nil), data_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#61
+ def attributes; end
+
+ # Client supports a codeDescription property
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#47
+ def code_description_support; end
+
+ # Whether code action supports the `data` property which is
+ # preserved between a `textDocument/publishDiagnostics` and
+ # `textDocument/codeAction` request.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#57
+ def data_support; end
+
+ # Whether the clients accepts diagnostics with related information.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#21
+ def related_information; end
+
+ # Client supports the tag property to provide meta data about a diagnostic.
+ # Clients supporting tags have to handle unknown tags gracefully.
+ #
+ # @return [{ valueSet: DiagnosticTag[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#30
+ def tag_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#63
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#67
+ def to_json(*args); end
+
+ # Whether the client interprets the version property of the
+ # `textDocument/publishDiagnostics` notification's parameter.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_client_capabilities.rb#39
+ def version_support; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_params.rb#4
+class LanguageServer::Protocol::Interface::PublishDiagnosticsParams
+ # @return [PublishDiagnosticsParams] a new instance of PublishDiagnosticsParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_params.rb#5
+ def initialize(uri:, diagnostics:, version: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_params.rb#40
+ def attributes; end
+
+ # An array of diagnostic information items.
+ #
+ # @return [Diagnostic[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_params.rb#36
+ def diagnostics; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_params.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_params.rb#46
+ def to_json(*args); end
+
+ # The URI for which diagnostic information is reported.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_params.rb#19
+ def uri; end
+
+ # Optional the version number of the document the diagnostics are published
+ # for.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/publish_diagnostics_params.rb#28
+ def version; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/range.rb#4
+class LanguageServer::Protocol::Interface::Range
+ # @return [Range] a new instance of Range
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/range.rb#5
+ def initialize(start:, end:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/range.rb#30
+ def attributes; end
+
+ # The range's end position.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/range.rb#26
+ def end; end
+
+ # The range's start position.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/range.rb#18
+ def start; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/range.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/range.rb#36
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/reference_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::ReferenceClientCapabilities
+ # @return [ReferenceClientCapabilities] a new instance of ReferenceClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_client_capabilities.rb#21
+ def attributes; end
+
+ # Whether references supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_client_capabilities.rb#17
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_client_capabilities.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_client_capabilities.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/reference_context.rb#4
+class LanguageServer::Protocol::Interface::ReferenceContext
+ # @return [ReferenceContext] a new instance of ReferenceContext
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_context.rb#5
+ def initialize(include_declaration:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_context.rb#21
+ def attributes; end
+
+ # Include the declaration of the current symbol.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_context.rb#17
+ def include_declaration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_context.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_context.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/reference_options.rb#4
+class LanguageServer::Protocol::Interface::ReferenceOptions
+ # @return [ReferenceOptions] a new instance of ReferenceOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#4
+class LanguageServer::Protocol::Interface::ReferenceParams
+ # @return [ReferenceParams] a new instance of ReferenceParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#5
+ def initialize(text_document:, position:, context:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#55
+ def attributes; end
+
+ # @return [ReferenceContext]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#51
+ def context; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#46
+ def partial_result_token; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#29
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#21
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#57
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#61
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_params.rb#37
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/reference_registration_options.rb#4
+class LanguageServer::Protocol::Interface::ReferenceRegistrationOptions
+ # @return [ReferenceRegistrationOptions] a new instance of ReferenceRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_registration_options.rb#28
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_registration_options.rb#19
+ def document_selector; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_registration_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_registration_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/reference_registration_options.rb#24
+ def work_done_progress; end
+end
+
+# General parameters to register for a capability.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/registration.rb#7
+class LanguageServer::Protocol::Interface::Registration
+ # @return [Registration] a new instance of Registration
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration.rb#8
+ def initialize(id:, method:, register_options: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration.rb#43
+ def attributes; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration.rb#23
+ def id; end
+
+ # The method / capability to register for.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration.rb#31
+ def method; end
+
+ # Options necessary for the registration.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration.rb#39
+ def register_options; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration.rb#45
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration.rb#49
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/registration_params.rb#4
+class LanguageServer::Protocol::Interface::RegistrationParams
+ # @return [RegistrationParams] a new instance of RegistrationParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration_params.rb#5
+ def initialize(registrations:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration_params.rb#18
+ def attributes; end
+
+ # @return [Registration[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration_params.rb#14
+ def registrations; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration_params.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/registration_params.rb#24
+ def to_json(*args); end
+end
+
+# Client capabilities specific to regular expressions.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::RegularExpressionsClientCapabilities
+ # @return [RegularExpressionsClientCapabilities] a new instance of RegularExpressionsClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb#8
+ def initialize(engine:, version: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb#33
+ def attributes; end
+
+ # The engine's name.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb#21
+ def engine; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb#39
+ def to_json(*args); end
+
+ # The engine's version.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/regular_expressions_client_capabilities.rb#29
+ def version; end
+end
+
+# A full diagnostic report with a set of related documents.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#7
+class LanguageServer::Protocol::Interface::RelatedFullDocumentDiagnosticReport
+ # @return [RelatedFullDocumentDiagnosticReport] a new instance of RelatedFullDocumentDiagnosticReport
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#8
+ def initialize(kind:, items:, result_id: T.unsafe(nil), related_documents: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#57
+ def attributes; end
+
+ # The actual items.
+ #
+ # @return [Diagnostic[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#41
+ def items; end
+
+ # A full document diagnostic report.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#23
+ def kind; end
+
+ # Diagnostics of related documents. This information is useful
+ # in programming languages where code in a file A can generate
+ # diagnostics in a file B which A depends on. An example of
+ # such a language is C/C++ where marco definitions in a file
+ # a.cpp and result in errors in a header file b.hpp.
+ #
+ # @return [{ [uri: string]: FullDocumentDiagnosticReport | UnchangedDocumentDiagnosticReport; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#53
+ def related_documents; end
+
+ # An optional result id. If provided it will
+ # be sent on the next diagnostic request for the
+ # same document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#33
+ def result_id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#59
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_full_document_diagnostic_report.rb#63
+ def to_json(*args); end
+end
+
+# An unchanged diagnostic report with a set of related documents.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb#7
+class LanguageServer::Protocol::Interface::RelatedUnchangedDocumentDiagnosticReport
+ # @return [RelatedUnchangedDocumentDiagnosticReport] a new instance of RelatedUnchangedDocumentDiagnosticReport
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb#8
+ def initialize(kind:, result_id:, related_documents: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb#50
+ def attributes; end
+
+ # A document diagnostic report indicating
+ # no changes to the last result. A server can
+ # only return `unchanged` if result ids are
+ # provided.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb#25
+ def kind; end
+
+ # Diagnostics of related documents. This information is useful
+ # in programming languages where code in a file A can generate
+ # diagnostics in a file B which A depends on. An example of
+ # such a language is C/C++ where marco definitions in a file
+ # a.cpp and result in errors in a header file b.hpp.
+ #
+ # @return [{ [uri: string]: FullDocumentDiagnosticReport | UnchangedDocumentDiagnosticReport; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb#46
+ def related_documents; end
+
+ # A result id which will be sent on the next
+ # diagnostic request for the same document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb#34
+ def result_id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb#52
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/related_unchanged_document_diagnostic_report.rb#56
+ def to_json(*args); end
+end
+
+# A relative pattern is a helper to construct glob patterns that are matched
+# relatively to a base URI. The common value for a `baseUri` is a workspace
+# folder root, but it can be another absolute URI as well.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/relative_pattern.rb#9
+class LanguageServer::Protocol::Interface::RelativePattern
+ # @return [RelativePattern] a new instance of RelativePattern
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/relative_pattern.rb#10
+ def initialize(base_uri:, pattern:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/relative_pattern.rb#36
+ def attributes; end
+
+ # A workspace folder or a base URI to which this pattern will be matched
+ # against relatively.
+ #
+ # @return [string | WorkspaceFolder]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/relative_pattern.rb#24
+ def base_uri; end
+
+ # The actual glob pattern;
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/relative_pattern.rb#32
+ def pattern; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/relative_pattern.rb#38
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/relative_pattern.rb#42
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::RenameClientCapabilities
+ # @return [RenameClientCapabilities] a new instance of RenameClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), prepare_support: T.unsafe(nil), prepare_support_default_behavior: T.unsafe(nil), honors_change_annotations: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#57
+ def attributes; end
+
+ # Whether rename supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # Whether the client honors the change annotations in
+ # text edits and resource operations returned via the
+ # rename request's workspace edit by for example presenting
+ # the workspace edit in the user interface and asking
+ # for confirmation.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#53
+ def honors_change_annotations; end
+
+ # Client supports testing for validity of rename operations
+ # before execution.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#29
+ def prepare_support; end
+
+ # Client supports the default behavior result
+ # (`{ defaultBehavior: boolean }`).
+ #
+ # The value indicates the default behavior used by the
+ # client.
+ #
+ # @return [1]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#41
+ def prepare_support_default_behavior; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#59
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_client_capabilities.rb#63
+ def to_json(*args); end
+end
+
+# Rename file operation
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#7
+class LanguageServer::Protocol::Interface::RenameFile
+ # @return [RenameFile] a new instance of RenameFile
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#8
+ def initialize(kind:, old_uri:, new_uri:, options: T.unsafe(nil), annotation_id: T.unsafe(nil)); end
+
+ # An optional annotation identifier describing the operation.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#56
+ def annotation_id; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#60
+ def attributes; end
+
+ # A rename
+ #
+ # @return ["rename"]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#24
+ def kind; end
+
+ # The new location.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#40
+ def new_uri; end
+
+ # The old (existing) location.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#32
+ def old_uri; end
+
+ # Rename options.
+ #
+ # @return [RenameFileOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#48
+ def options; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#62
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file.rb#66
+ def to_json(*args); end
+end
+
+# Rename file options
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/rename_file_options.rb#7
+class LanguageServer::Protocol::Interface::RenameFileOptions
+ # @return [RenameFileOptions] a new instance of RenameFileOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file_options.rb#8
+ def initialize(overwrite: T.unsafe(nil), ignore_if_exists: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file_options.rb#33
+ def attributes; end
+
+ # Ignores if target exists.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file_options.rb#29
+ def ignore_if_exists; end
+
+ # Overwrite target if existing. Overwrite wins over `ignoreIfExists`
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file_options.rb#21
+ def overwrite; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file_options.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_file_options.rb#39
+ def to_json(*args); end
+end
+
+# The parameters sent in notifications/requests for user-initiated renames
+# of files.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/rename_files_params.rb#8
+class LanguageServer::Protocol::Interface::RenameFilesParams
+ # @return [RenameFilesParams] a new instance of RenameFilesParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_files_params.rb#9
+ def initialize(files:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_files_params.rb#26
+ def attributes; end
+
+ # An array of all files/folders renamed in this operation. When a folder
+ # is renamed, only the folder will be included, and not its children.
+ #
+ # @return [FileRename[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_files_params.rb#22
+ def files; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_files_params.rb#28
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_files_params.rb#32
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/rename_options.rb#4
+class LanguageServer::Protocol::Interface::RenameOptions
+ # @return [RenameOptions] a new instance of RenameOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil), prepare_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_options.rb#27
+ def attributes; end
+
+ # Renames should be checked and tested before being executed.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_options.rb#23
+ def prepare_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_options.rb#29
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_options.rb#33
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_options.rb#15
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#4
+class LanguageServer::Protocol::Interface::RenameParams
+ # @return [RenameParams] a new instance of RenameParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#5
+ def initialize(text_document:, position:, new_name:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#50
+ def attributes; end
+
+ # The new name of the symbol. If the given name is not valid the
+ # request must return a [ResponseError](#ResponseError) with an
+ # appropriate message set.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#46
+ def new_name; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#28
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#52
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#56
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_params.rb#36
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/rename_registration_options.rb#4
+class LanguageServer::Protocol::Interface::RenameRegistrationOptions
+ # @return [RenameRegistrationOptions] a new instance of RenameRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), prepare_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_registration_options.rb#37
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_registration_options.rb#20
+ def document_selector; end
+
+ # Renames should be checked and tested before being executed.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_registration_options.rb#33
+ def prepare_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_registration_options.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_registration_options.rb#43
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/rename_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#4
+class LanguageServer::Protocol::Interface::RequestMessage
+ # @return [RequestMessage] a new instance of RequestMessage
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#5
+ def initialize(jsonrpc:, id:, method:, params: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#45
+ def attributes; end
+
+ # The request id.
+ #
+ # @return [string | number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#25
+ def id; end
+
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#17
+ def jsonrpc; end
+
+ # The method to be invoked.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#33
+ def method; end
+
+ # The method's params.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#41
+ def params; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#47
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/request_message.rb#51
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/response_error.rb#4
+class LanguageServer::Protocol::Interface::ResponseError
+ # @return [ResponseError] a new instance of ResponseError
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_error.rb#5
+ def initialize(code:, message:, data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_error.rb#40
+ def attributes; end
+
+ # A number indicating the error type that occurred.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_error.rb#19
+ def code; end
+
+ # A primitive or structured value that contains additional
+ # information about the error. Can be omitted.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_error.rb#36
+ def data; end
+
+ # A string providing a short description of the error.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_error.rb#27
+ def message; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_error.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_error.rb#46
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#4
+class LanguageServer::Protocol::Interface::ResponseMessage
+ # @return [ResponseMessage] a new instance of ResponseMessage
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#5
+ def initialize(jsonrpc:, id:, result: T.unsafe(nil), error: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#46
+ def attributes; end
+
+ # The error object in case a request fails.
+ #
+ # @return [ResponseError]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#42
+ def error; end
+
+ # The request id.
+ #
+ # @return [string | number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#25
+ def id; end
+
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#17
+ def jsonrpc; end
+
+ # The result of a request. This member is REQUIRED on success.
+ # This member MUST NOT exist if there was an error invoking the method.
+ #
+ # @return [string | number | boolean | object]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#34
+ def result; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#48
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/response_message.rb#52
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/save_options.rb#4
+class LanguageServer::Protocol::Interface::SaveOptions
+ # @return [SaveOptions] a new instance of SaveOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/save_options.rb#5
+ def initialize(include_text: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/save_options.rb#21
+ def attributes; end
+
+ # The client is supposed to include the content on save.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/save_options.rb#17
+ def include_text; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/save_options.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/save_options.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/selection_range.rb#4
+class LanguageServer::Protocol::Interface::SelectionRange
+ # @return [SelectionRange] a new instance of SelectionRange
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range.rb#5
+ def initialize(range:, parent: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range.rb#31
+ def attributes; end
+
+ # The parent selection range containing this range. Therefore
+ # `parent.range` must contain `this.range`.
+ #
+ # @return [SelectionRange]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range.rb#27
+ def parent; end
+
+ # The [range](#Range) of this selection range.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range.rb#18
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range.rb#33
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range.rb#37
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/selection_range_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::SelectionRangeClientCapabilities
+ # @return [SelectionRangeClientCapabilities] a new instance of SelectionRangeClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_client_capabilities.rb#24
+ def attributes; end
+
+ # Whether implementation supports dynamic registration for selection range
+ # providers. If this is set to `true` the client supports the new
+ # `SelectionRangeRegistrationOptions` return value for the corresponding
+ # server capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_client_capabilities.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_client_capabilities.rb#30
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/selection_range_options.rb#4
+class LanguageServer::Protocol::Interface::SelectionRangeOptions
+ # @return [SelectionRangeOptions] a new instance of SelectionRangeOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#4
+class LanguageServer::Protocol::Interface::SelectionRangeParams
+ # @return [SelectionRangeParams] a new instance of SelectionRangeParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#5
+ def initialize(text_document:, positions:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#49
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#29
+ def partial_result_token; end
+
+ # The positions inside the text document.
+ #
+ # @return [Position[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#45
+ def positions; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#37
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#55
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_params.rb#20
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/selection_range_registration_options.rb#4
+class LanguageServer::Protocol::Interface::SelectionRangeRegistrationOptions
+ # @return [SelectionRangeRegistrationOptions] a new instance of SelectionRangeRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_registration_options.rb#25
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_registration_options.rb#34
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/selection_range_registration_options.rb#16
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokens
+ # @return [SemanticTokens] a new instance of SemanticTokens
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens.rb#5
+ def initialize(data:, result_id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens.rb#33
+ def attributes; end
+
+ # The actual tokens.
+ #
+ # @return [number[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens.rb#29
+ def data; end
+
+ # An optional result id. If provided and clients support delta updating
+ # the client will include the result id in the next semantic token request.
+ # A server can then instead of computing all semantic tokens again simply
+ # send a delta.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens.rb#21
+ def result_id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens.rb#39
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensClientCapabilities
+ # @return [SemanticTokensClientCapabilities] a new instance of SemanticTokensClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#5
+ def initialize(requests:, token_types:, token_modifiers:, formats:, dynamic_registration: T.unsafe(nil), overlapping_token_support: T.unsafe(nil), multiline_token_support: T.unsafe(nil), server_cancel_support: T.unsafe(nil), augments_syntax_tokens: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#113
+ def attributes; end
+
+ # Whether the client uses semantic tokens to augment existing
+ # syntax tokens. If set to `true` client side created syntax
+ # tokens and semantic tokens are both used for colorization. If
+ # set to `false` the client only uses the returned semantic tokens
+ # for colorization.
+ #
+ # If the value is `undefined` then the client behavior is not
+ # specified.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#109
+ def augments_syntax_tokens; end
+
+ # Whether implementation supports dynamic registration. If this is set to
+ # `true` the client supports the new `(TextDocumentRegistrationOptions &
+ # StaticRegistrationOptions)` return value for the corresponding server
+ # capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#28
+ def dynamic_registration; end
+
+ # The formats the clients supports.
+ #
+ # @return ["relative"[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#67
+ def formats; end
+
+ # Whether the client supports tokens that can span multiple lines.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#83
+ def multiline_token_support; end
+
+ # Whether the client supports tokens that can overlap each other.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#75
+ def overlapping_token_support; end
+
+ # Which requests the client supports and might send to the server
+ # depending on the server's capability. Please note that clients might not
+ # show semantic tokens or degrade some of the user experience if a range
+ # or full request is advertised by the client but not provided by the
+ # server. If for example the client capability `requests.full` and
+ # `request.range` are both set to true but the server only provides a
+ # range provider the client might not render a minimap correctly or might
+ # even decide to not show any semantic tokens at all.
+ #
+ # @return [{ range?: boolean | {}; full?: boolean | { delta?: boolean; }; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#43
+ def requests; end
+
+ # Whether the client allows the server to actively cancel a
+ # semantic token request, e.g. supports returning
+ # ErrorCodes.ServerCancelled. If a server does the client
+ # needs to retrigger the request.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#94
+ def server_cancel_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#115
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#119
+ def to_json(*args); end
+
+ # The token modifiers that the client supports.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#59
+ def token_modifiers; end
+
+ # The token types that the client supports.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_client_capabilities.rb#51
+ def token_types; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensDelta
+ # @return [SemanticTokensDelta] a new instance of SemanticTokensDelta
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta.rb#5
+ def initialize(edits:, result_id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta.rb#28
+ def attributes; end
+
+ # The semantic token edits to transform a previous result into a new
+ # result.
+ #
+ # @return [SemanticTokensEdit[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta.rb#24
+ def edits; end
+
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta.rb#15
+ def result_id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta.rb#34
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensDeltaParams
+ # @return [SemanticTokensDeltaParams] a new instance of SemanticTokensDeltaParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#5
+ def initialize(text_document:, previous_result_id:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#50
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#29
+ def partial_result_token; end
+
+ # The result id of a previous response. The result Id can either point to
+ # a full response or a delta response depending on what was received last.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#46
+ def previous_result_id; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#37
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#52
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#56
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_params.rb#20
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensDeltaPartialResult
+ # @return [SemanticTokensDeltaPartialResult] a new instance of SemanticTokensDeltaPartialResult
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb#5
+ def initialize(edits:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb#18
+ def attributes; end
+
+ # @return [SemanticTokensEdit[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb#14
+ def edits; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_delta_partial_result.rb#24
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_edit.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensEdit
+ # @return [SemanticTokensEdit] a new instance of SemanticTokensEdit
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_edit.rb#5
+ def initialize(start:, delete_count:, data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_edit.rb#39
+ def attributes; end
+
+ # The elements to insert.
+ #
+ # @return [number[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_edit.rb#35
+ def data; end
+
+ # The count of elements to remove.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_edit.rb#27
+ def delete_count; end
+
+ # The start offset of the edit.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_edit.rb#19
+ def start; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_edit.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_edit.rb#45
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_legend.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensLegend
+ # @return [SemanticTokensLegend] a new instance of SemanticTokensLegend
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_legend.rb#5
+ def initialize(token_types:, token_modifiers:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_legend.rb#30
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_legend.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_legend.rb#36
+ def to_json(*args); end
+
+ # The token modifiers a server uses.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_legend.rb#26
+ def token_modifiers; end
+
+ # The token types a server uses.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_legend.rb#18
+ def token_types; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensOptions
+ # @return [SemanticTokensOptions] a new instance of SemanticTokensOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#5
+ def initialize(legend:, work_done_progress: T.unsafe(nil), range: T.unsafe(nil), full: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#46
+ def attributes; end
+
+ # Server supports providing semantic tokens for a full document.
+ #
+ # @return [boolean | { delta?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#42
+ def full; end
+
+ # The legend used by the server
+ #
+ # @return [SemanticTokensLegend]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#25
+ def legend; end
+
+ # Server supports providing semantic tokens for a specific range
+ # of a document.
+ #
+ # @return [boolean | {}]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#34
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#48
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#52
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_options.rb#17
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_params.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensParams
+ # @return [SemanticTokensParams] a new instance of SemanticTokensParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_params.rb#5
+ def initialize(text_document:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_params.rb#40
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_params.rb#28
+ def partial_result_token; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_params.rb#36
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_params.rb#42
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_params.rb#46
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_partial_result.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensPartialResult
+ # @return [SemanticTokensPartialResult] a new instance of SemanticTokensPartialResult
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_partial_result.rb#5
+ def initialize(data:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_partial_result.rb#18
+ def attributes; end
+
+ # @return [number[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_partial_result.rb#14
+ def data; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_partial_result.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_partial_result.rb#24
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensRangeParams
+ # @return [SemanticTokensRangeParams] a new instance of SemanticTokensRangeParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#5
+ def initialize(text_document:, range:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#49
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#29
+ def partial_result_token; end
+
+ # The range the semantic tokens are requested for.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#45
+ def range; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#37
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#55
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_range_params.rb#20
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensRegistrationOptions
+ # @return [SemanticTokensRegistrationOptions] a new instance of SemanticTokensRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#5
+ def initialize(document_selector:, legend:, work_done_progress: T.unsafe(nil), range: T.unsafe(nil), full: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#66
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#23
+ def document_selector; end
+
+ # Server supports providing semantic tokens for a full document.
+ #
+ # @return [boolean | { delta?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#53
+ def full; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#62
+ def id; end
+
+ # The legend used by the server
+ #
+ # @return [SemanticTokensLegend]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#36
+ def legend; end
+
+ # Server supports providing semantic tokens for a specific range
+ # of a document.
+ #
+ # @return [boolean | {}]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#45
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#68
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#72
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_registration_options.rb#28
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::SemanticTokensWorkspaceClientCapabilities
+ # @return [SemanticTokensWorkspaceClientCapabilities] a new instance of SemanticTokensWorkspaceClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb#5
+ def initialize(refresh_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb#27
+ def attributes; end
+
+ # Whether the client implementation supports a refresh request sent from
+ # the server to the client.
+ #
+ # Note that this event is global and will force the client to refresh all
+ # semantic tokens currently shown. It should be used with absolute care
+ # and is useful for situation where a server for example detect a project
+ # wide change that requires such a calculation.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb#23
+ def refresh_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb#29
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/semantic_tokens_workspace_client_capabilities.rb#33
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#4
+class LanguageServer::Protocol::Interface::ServerCapabilities
+ # @return [ServerCapabilities] a new instance of ServerCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#5
+ def initialize(position_encoding: T.unsafe(nil), text_document_sync: T.unsafe(nil), notebook_document_sync: T.unsafe(nil), completion_provider: T.unsafe(nil), hover_provider: T.unsafe(nil), signature_help_provider: T.unsafe(nil), declaration_provider: T.unsafe(nil), definition_provider: T.unsafe(nil), type_definition_provider: T.unsafe(nil), implementation_provider: T.unsafe(nil), references_provider: T.unsafe(nil), document_highlight_provider: T.unsafe(nil), document_symbol_provider: T.unsafe(nil), code_action_provider: T.unsafe(nil), code_lens_provider: T.unsafe(nil), document_link_provider: T.unsafe(nil), color_provider: T.unsafe(nil), document_formatting_provider: T.unsafe(nil), document_range_formatting_provider: T.unsafe(nil), document_on_type_formatting_provider: T.unsafe(nil), rename_provider: T.unsafe(nil), folding_range_provider: T.unsafe(nil), execute_command_provider: T.unsafe(nil), selection_range_provider: T.unsafe(nil), linked_editing_range_provider: T.unsafe(nil), call_hierarchy_provider: T.unsafe(nil), semantic_tokens_provider: T.unsafe(nil), moniker_provider: T.unsafe(nil), type_hierarchy_provider: T.unsafe(nil), inline_value_provider: T.unsafe(nil), inlay_hint_provider: T.unsafe(nil), diagnostic_provider: T.unsafe(nil), workspace_symbol_provider: T.unsafe(nil), workspace: T.unsafe(nil), experimental: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#340
+ def attributes; end
+
+ # The server provides call hierarchy support.
+ #
+ # @return [boolean | CallHierarchyOptions | CallHierarchyRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#264
+ def call_hierarchy_provider; end
+
+ # The server provides code actions. The `CodeActionOptions` return type is
+ # only valid if the client signals code action literal support via the
+ # property `textDocument.codeAction.codeActionLiteralSupport`.
+ #
+ # @return [boolean | CodeActionOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#166
+ def code_action_provider; end
+
+ # The server provides code lens.
+ #
+ # @return [CodeLensOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#174
+ def code_lens_provider; end
+
+ # The server provides color provider support.
+ #
+ # @return [boolean | DocumentColorOptions | DocumentColorRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#190
+ def color_provider; end
+
+ # The server provides completion support.
+ #
+ # @return [CompletionOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#84
+ def completion_provider; end
+
+ # The server provides go to declaration support.
+ #
+ # @return [boolean | DeclarationOptions | DeclarationRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#108
+ def declaration_provider; end
+
+ # The server provides goto definition support.
+ #
+ # @return [boolean | DefinitionOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#116
+ def definition_provider; end
+
+ # The server has support for pull model diagnostics.
+ #
+ # @return [DiagnosticOptions | DiagnosticRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#312
+ def diagnostic_provider; end
+
+ # The server provides document formatting.
+ #
+ # @return [boolean | DocumentFormattingOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#198
+ def document_formatting_provider; end
+
+ # The server provides document highlight support.
+ #
+ # @return [boolean | DocumentHighlightOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#148
+ def document_highlight_provider; end
+
+ # The server provides document link support.
+ #
+ # @return [DocumentLinkOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#182
+ def document_link_provider; end
+
+ # The server provides document formatting on typing.
+ #
+ # @return [DocumentOnTypeFormattingOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#214
+ def document_on_type_formatting_provider; end
+
+ # The server provides document range formatting.
+ #
+ # @return [boolean | DocumentRangeFormattingOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#206
+ def document_range_formatting_provider; end
+
+ # The server provides document symbol support.
+ #
+ # @return [boolean | DocumentSymbolOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#156
+ def document_symbol_provider; end
+
+ # The server provides execute command support.
+ #
+ # @return [ExecuteCommandOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#240
+ def execute_command_provider; end
+
+ # Experimental server capabilities.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#336
+ def experimental; end
+
+ # The server provides folding provider support.
+ #
+ # @return [boolean | FoldingRangeOptions | FoldingRangeRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#232
+ def folding_range_provider; end
+
+ # The server provides hover support.
+ #
+ # @return [boolean | HoverOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#92
+ def hover_provider; end
+
+ # The server provides goto implementation support.
+ #
+ # @return [boolean | ImplementationOptions | ImplementationRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#132
+ def implementation_provider; end
+
+ # The server provides inlay hints.
+ #
+ # @return [boolean | InlayHintOptions | InlayHintRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#304
+ def inlay_hint_provider; end
+
+ # The server provides inline values.
+ #
+ # @return [boolean | InlineValueOptions | InlineValueRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#296
+ def inline_value_provider; end
+
+ # The server provides linked editing range support.
+ #
+ # @return [boolean | LinkedEditingRangeOptions | LinkedEditingRangeRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#256
+ def linked_editing_range_provider; end
+
+ # Whether server provides moniker support.
+ #
+ # @return [boolean | MonikerOptions | MonikerRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#280
+ def moniker_provider; end
+
+ # Defines how notebook documents are synced.
+ #
+ # @return [NotebookDocumentSyncOptions | NotebookDocumentSyncRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#76
+ def notebook_document_sync; end
+
+ # The position encoding the server picked from the encodings offered
+ # by the client via the client capability `general.positionEncodings`.
+ #
+ # If the client didn't provide any position encodings the only valid
+ # value that a server can return is 'utf-16'.
+ #
+ # If omitted it defaults to 'utf-16'.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#57
+ def position_encoding; end
+
+ # The server provides find references support.
+ #
+ # @return [boolean | ReferenceOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#140
+ def references_provider; end
+
+ # The server provides rename support. RenameOptions may only be
+ # specified if the client states that it supports
+ # `prepareSupport` in its initial `initialize` request.
+ #
+ # @return [boolean | RenameOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#224
+ def rename_provider; end
+
+ # The server provides selection range support.
+ #
+ # @return [boolean | SelectionRangeOptions | SelectionRangeRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#248
+ def selection_range_provider; end
+
+ # The server provides semantic tokens support.
+ #
+ # @return [SemanticTokensOptions | SemanticTokensRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#272
+ def semantic_tokens_provider; end
+
+ # The server provides signature help support.
+ #
+ # @return [SignatureHelpOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#100
+ def signature_help_provider; end
+
+ # Defines how text documents are synced. Is either a detailed structure
+ # defining each notification or for backwards compatibility the
+ # TextDocumentSyncKind number. If omitted it defaults to
+ # `TextDocumentSyncKind.None`.
+ #
+ # @return [TextDocumentSyncOptions | TextDocumentSyncKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#68
+ def text_document_sync; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#342
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#346
+ def to_json(*args); end
+
+ # The server provides goto type definition support.
+ #
+ # @return [boolean | TypeDefinitionOptions | TypeDefinitionRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#124
+ def type_definition_provider; end
+
+ # The server provides type hierarchy support.
+ #
+ # @return [boolean | TypeHierarchyOptions | TypeHierarchyRegistrationOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#288
+ def type_hierarchy_provider; end
+
+ # Workspace specific server capabilities
+ #
+ # @return [{ workspaceFolders?: WorkspaceFoldersServerCapabilities; fileOperations?: { didCreate?: FileOperationRegistrationOptions; ... 4 more ...; willDelete?: FileOperationRegistrationOptions; }; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#328
+ def workspace; end
+
+ # The server provides workspace symbol support.
+ #
+ # @return [boolean | WorkspaceSymbolOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/server_capabilities.rb#320
+ def workspace_symbol_provider; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/set_trace_params.rb#4
+class LanguageServer::Protocol::Interface::SetTraceParams
+ # @return [SetTraceParams] a new instance of SetTraceParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/set_trace_params.rb#5
+ def initialize(value:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/set_trace_params.rb#21
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/set_trace_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/set_trace_params.rb#27
+ def to_json(*args); end
+
+ # The new value that should be assigned to the trace setting.
+ #
+ # @return [TraceValue]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/set_trace_params.rb#17
+ def value; end
+end
+
+# Client capabilities for the show document request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/show_document_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::ShowDocumentClientCapabilities
+ # @return [ShowDocumentClientCapabilities] a new instance of ShowDocumentClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_client_capabilities.rb#8
+ def initialize(support:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_client_capabilities.rb#25
+ def attributes; end
+
+ # The client has support for the show document
+ # request.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_client_capabilities.rb#21
+ def support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_client_capabilities.rb#27
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_client_capabilities.rb#31
+ def to_json(*args); end
+end
+
+# Params to show a resource.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#7
+class LanguageServer::Protocol::Interface::ShowDocumentParams
+ # @return [ShowDocumentParams] a new instance of ShowDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#8
+ def initialize(uri:, external: T.unsafe(nil), take_focus: T.unsafe(nil), selection: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#59
+ def attributes; end
+
+ # Indicates to show the resource in an external program.
+ # To show, for example, `https://code.visualstudio.com/`
+ # in the default WEB browser set `external` to `true`.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#33
+ def external; end
+
+ # An optional selection range if the document is a text
+ # document. Clients might ignore the property if an
+ # external program is started or the file is not a text
+ # file.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#55
+ def selection; end
+
+ # An optional property to indicate whether the editor
+ # showing the document should take focus or not.
+ # Clients might ignore this property if an external
+ # program is started.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#44
+ def take_focus; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#61
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#65
+ def to_json(*args); end
+
+ # The uri to show.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_params.rb#23
+ def uri; end
+end
+
+# The result of an show document request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/show_document_result.rb#7
+class LanguageServer::Protocol::Interface::ShowDocumentResult
+ # @return [ShowDocumentResult] a new instance of ShowDocumentResult
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_result.rb#8
+ def initialize(success:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_result.rb#24
+ def attributes; end
+
+ # A boolean indicating if the show was successful.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_result.rb#20
+ def success; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_result.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_document_result.rb#30
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/show_message_params.rb#4
+class LanguageServer::Protocol::Interface::ShowMessageParams
+ # @return [ShowMessageParams] a new instance of ShowMessageParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_params.rb#5
+ def initialize(type:, message:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_params.rb#30
+ def attributes; end
+
+ # The actual message.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_params.rb#26
+ def message; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_params.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_params.rb#36
+ def to_json(*args); end
+
+ # The message type. See {@link MessageType}.
+ #
+ # @return [MessageType]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_params.rb#18
+ def type; end
+end
+
+# Show message request client capabilities
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::ShowMessageRequestClientCapabilities
+ # @return [ShowMessageRequestClientCapabilities] a new instance of ShowMessageRequestClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_client_capabilities.rb#8
+ def initialize(message_action_item: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_client_capabilities.rb#24
+ def attributes; end
+
+ # Capabilities specific to the `MessageActionItem` type.
+ #
+ # @return [{ additionalPropertiesSupport?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_client_capabilities.rb#20
+ def message_action_item; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_client_capabilities.rb#26
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_client_capabilities.rb#30
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_params.rb#4
+class LanguageServer::Protocol::Interface::ShowMessageRequestParams
+ # @return [ShowMessageRequestParams] a new instance of ShowMessageRequestParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_params.rb#5
+ def initialize(type:, message:, actions: T.unsafe(nil)); end
+
+ # The message action items to present.
+ #
+ # @return [MessageActionItem[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_params.rb#35
+ def actions; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_params.rb#39
+ def attributes; end
+
+ # The actual message
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_params.rb#27
+ def message; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_params.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_params.rb#45
+ def to_json(*args); end
+
+ # The message type. See {@link MessageType}
+ #
+ # @return [MessageType]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/show_message_request_params.rb#19
+ def type; end
+end
+
+# Signature help represents the signature of something
+# callable. There can be multiple signature but only one
+# active and only one active parameter.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/signature_help.rb#9
+class LanguageServer::Protocol::Interface::SignatureHelp
+ # @return [SignatureHelp] a new instance of SignatureHelp
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help.rb#10
+ def initialize(signatures:, active_signature: T.unsafe(nil), active_parameter: T.unsafe(nil)); end
+
+ # The active parameter of the active signature. If omitted or the value
+ # lies outside the range of `signatures[activeSignature].parameters`
+ # defaults to 0 if the active signature has parameters. If
+ # the active signature has no parameters it is ignored.
+ # In future version of the protocol this property might become
+ # mandatory to better express the active parameter if the
+ # active signature does have any.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help.rb#55
+ def active_parameter; end
+
+ # The active signature. If omitted or the value lies outside the
+ # range of `signatures` the value defaults to zero or is ignore if
+ # the `SignatureHelp` as no signatures.
+ #
+ # Whenever possible implementors should make an active decision about
+ # the active signature and shouldn't rely on a default value.
+ #
+ # In future version of the protocol this property might become
+ # mandatory to better express this.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help.rb#41
+ def active_signature; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help.rb#59
+ def attributes; end
+
+ # One or more signatures. If no signatures are available the signature help
+ # request should return `null`.
+ #
+ # @return [SignatureInformation[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help.rb#25
+ def signatures; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help.rb#61
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help.rb#65
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/signature_help_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::SignatureHelpClientCapabilities
+ # @return [SignatureHelpClientCapabilities] a new instance of SignatureHelpClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), signature_information: T.unsafe(nil), context_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_client_capabilities.rb#43
+ def attributes; end
+
+ # The client supports to send additional context information for a
+ # `textDocument/signatureHelp` request. A client that opts into
+ # contextSupport will also support the `retriggerCharacters` on
+ # `SignatureHelpOptions`.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_client_capabilities.rb#39
+ def context_support; end
+
+ # Whether signature help supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_client_capabilities.rb#19
+ def dynamic_registration; end
+
+ # The client supports the following `SignatureInformation`
+ # specific properties.
+ #
+ # @return [{ documentationFormat?: MarkupKind[]; parameterInformation?: { labelOffsetSupport?: boolean; }; activeParameterSupport?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_client_capabilities.rb#28
+ def signature_information; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_client_capabilities.rb#45
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_client_capabilities.rb#49
+ def to_json(*args); end
+end
+
+# Additional information about the context in which a signature help request
+# was triggered.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#8
+class LanguageServer::Protocol::Interface::SignatureHelpContext
+ # @return [SignatureHelpContext] a new instance of SignatureHelpContext
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#9
+ def initialize(trigger_kind:, is_retrigger:, trigger_character: T.unsafe(nil), active_signature_help: T.unsafe(nil)); end
+
+ # The currently active `SignatureHelp`.
+ #
+ # The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field
+ # updated based on the user navigating through available signatures.
+ #
+ # @return [SignatureHelp]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#58
+ def active_signature_help; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#62
+ def attributes; end
+
+ # `true` if signature help was already showing when it was triggered.
+ #
+ # Retriggers occur when the signature help is already active and can be
+ # caused by actions such as typing a trigger character, a cursor move, or
+ # document content changes.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#47
+ def is_retrigger; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#64
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#68
+ def to_json(*args); end
+
+ # Character that caused signature help to be triggered.
+ #
+ # This is undefined when triggerKind !==
+ # SignatureHelpTriggerKind.TriggerCharacter
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#35
+ def trigger_character; end
+
+ # Action that caused signature help to be triggered.
+ #
+ # @return [SignatureHelpTriggerKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_context.rb#24
+ def trigger_kind; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/signature_help_options.rb#4
+class LanguageServer::Protocol::Interface::SignatureHelpOptions
+ # @return [SignatureHelpOptions] a new instance of SignatureHelpOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil), trigger_characters: T.unsafe(nil), retrigger_characters: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_options.rb#41
+ def attributes; end
+
+ # List of characters that re-trigger signature help.
+ #
+ # These trigger characters are only active when signature help is already
+ # showing. All trigger characters are also counted as re-trigger
+ # characters.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_options.rb#37
+ def retrigger_characters; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_options.rb#43
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_options.rb#47
+ def to_json(*args); end
+
+ # The characters that trigger signature help
+ # automatically.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_options.rb#25
+ def trigger_characters; end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_options.rb#16
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#4
+class LanguageServer::Protocol::Interface::SignatureHelpParams
+ # @return [SignatureHelpParams] a new instance of SignatureHelpParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil), context: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#50
+ def attributes; end
+
+ # The signature help context. This is only available if the client
+ # specifies to send this using the client capability
+ # `textDocument.signatureHelp.contextSupport === true`
+ #
+ # @return [SignatureHelpContext]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#46
+ def context; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#28
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#52
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#56
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_params.rb#36
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#4
+class LanguageServer::Protocol::Interface::SignatureHelpRegistrationOptions
+ # @return [SignatureHelpRegistrationOptions] a new instance of SignatureHelpRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), trigger_characters: T.unsafe(nil), retrigger_characters: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#51
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#21
+ def document_selector; end
+
+ # List of characters that re-trigger signature help.
+ #
+ # These trigger characters are only active when signature help is already
+ # showing. All trigger characters are also counted as re-trigger
+ # characters.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#47
+ def retrigger_characters; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#53
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#57
+ def to_json(*args); end
+
+ # The characters that trigger signature help
+ # automatically.
+ #
+ # @return [string[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#35
+ def trigger_characters; end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_help_registration_options.rb#26
+ def work_done_progress; end
+end
+
+# Represents the signature of something callable. A signature
+# can have a label, like a function-name, a doc-comment, and
+# a set of parameters.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#9
+class LanguageServer::Protocol::Interface::SignatureInformation
+ # @return [SignatureInformation] a new instance of SignatureInformation
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#10
+ def initialize(label:, documentation: T.unsafe(nil), parameters: T.unsafe(nil), active_parameter: T.unsafe(nil)); end
+
+ # The index of the active parameter.
+ #
+ # If provided, this is used in place of `SignatureHelp.activeParameter`.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#53
+ def active_parameter; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#57
+ def attributes; end
+
+ # The human-readable doc-comment of this signature. Will be shown
+ # in the UI but can be omitted.
+ #
+ # @return [string | MarkupContent]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#35
+ def documentation; end
+
+ # The label of this signature. Will be shown in
+ # the UI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#26
+ def label; end
+
+ # The parameters of this signature.
+ #
+ # @return [ParameterInformation[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#43
+ def parameters; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#59
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/signature_information.rb#63
+ def to_json(*args); end
+end
+
+# Static registration options to be returned in the initialize request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/static_registration_options.rb#7
+class LanguageServer::Protocol::Interface::StaticRegistrationOptions
+ # @return [StaticRegistrationOptions] a new instance of StaticRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/static_registration_options.rb#8
+ def initialize(id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/static_registration_options.rb#25
+ def attributes; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/static_registration_options.rb#21
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/static_registration_options.rb#27
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/static_registration_options.rb#31
+ def to_json(*args); end
+end
+
+# Represents information about programming constructs like variables, classes,
+# interfaces etc.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#8
+class LanguageServer::Protocol::Interface::SymbolInformation
+ # @return [SymbolInformation] a new instance of SymbolInformation
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#9
+ def initialize(name:, kind:, location:, tags: T.unsafe(nil), deprecated: T.unsafe(nil), container_name: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#81
+ def attributes; end
+
+ # The name of the symbol containing this symbol. This information is for
+ # user interface purposes (e.g. to render a qualifier in the user interface
+ # if necessary). It can't be used to re-infer a hierarchy for the document
+ # symbols.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#77
+ def container_name; end
+
+ # Indicates if this symbol is deprecated.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#50
+ def deprecated; end
+
+ # The kind of this symbol.
+ #
+ # @return [SymbolKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#34
+ def kind; end
+
+ # The location of this symbol. The location's range is used by a tool
+ # to reveal the location in the editor. If the symbol is selected in the
+ # tool the range's start information is used to position the cursor. So
+ # the range usually spans more then the actual symbol's name and does
+ # normally include things like visibility modifiers.
+ #
+ # The range doesn't have to denote a node range in the sense of an abstract
+ # syntax tree. It can therefore not be used to re-construct a hierarchy of
+ # the symbols.
+ #
+ # @return [Location]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#66
+ def location; end
+
+ # The name of this symbol.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#26
+ def name; end
+
+ # Tags for this symbol.
+ #
+ # @return [1[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#42
+ def tags; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#83
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/symbol_information.rb#87
+ def to_json(*args); end
+end
+
+# Describe options to be used when registering for text document change events.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_change_registration_options.rb#7
+class LanguageServer::Protocol::Interface::TextDocumentChangeRegistrationOptions
+ # @return [TextDocumentChangeRegistrationOptions] a new instance of TextDocumentChangeRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_change_registration_options.rb#8
+ def initialize(document_selector:, sync_kind:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_change_registration_options.rb#35
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_change_registration_options.rb#22
+ def document_selector; end
+
+ # How documents are synced to the server. See TextDocumentSyncKind.Full
+ # and TextDocumentSyncKind.Incremental.
+ #
+ # @return [TextDocumentSyncKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_change_registration_options.rb#31
+ def sync_kind; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_change_registration_options.rb#37
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_change_registration_options.rb#41
+ def to_json(*args); end
+end
+
+# Text document specific client capabilities.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#7
+class LanguageServer::Protocol::Interface::TextDocumentClientCapabilities
+ # @return [TextDocumentClientCapabilities] a new instance of TextDocumentClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#8
+ def initialize(synchronization: T.unsafe(nil), completion: T.unsafe(nil), hover: T.unsafe(nil), signature_help: T.unsafe(nil), declaration: T.unsafe(nil), definition: T.unsafe(nil), type_definition: T.unsafe(nil), implementation: T.unsafe(nil), references: T.unsafe(nil), document_highlight: T.unsafe(nil), document_symbol: T.unsafe(nil), code_action: T.unsafe(nil), code_lens: T.unsafe(nil), document_link: T.unsafe(nil), color_provider: T.unsafe(nil), formatting: T.unsafe(nil), range_formatting: T.unsafe(nil), on_type_formatting: T.unsafe(nil), rename: T.unsafe(nil), publish_diagnostics: T.unsafe(nil), folding_range: T.unsafe(nil), selection_range: T.unsafe(nil), linked_editing_range: T.unsafe(nil), call_hierarchy: T.unsafe(nil), semantic_tokens: T.unsafe(nil), moniker: T.unsafe(nil), type_hierarchy: T.unsafe(nil), inline_value: T.unsafe(nil), inlay_hint: T.unsafe(nil), diagnostic: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#285
+ def attributes; end
+
+ # Capabilities specific to the various call hierarchy requests.
+ #
+ # @return [CallHierarchyClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#233
+ def call_hierarchy; end
+
+ # Capabilities specific to the `textDocument/codeAction` request.
+ #
+ # @return [CodeActionClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#134
+ def code_action; end
+
+ # Capabilities specific to the `textDocument/codeLens` request.
+ #
+ # @return [CodeLensClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#142
+ def code_lens; end
+
+ # Capabilities specific to the `textDocument/documentColor` and the
+ # `textDocument/colorPresentation` request.
+ #
+ # @return [DocumentColorClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#159
+ def color_provider; end
+
+ # Capabilities specific to the `textDocument/completion` request.
+ #
+ # @return [CompletionClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#54
+ def completion; end
+
+ # Capabilities specific to the `textDocument/declaration` request.
+ #
+ # @return [DeclarationClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#78
+ def declaration; end
+
+ # Capabilities specific to the `textDocument/definition` request.
+ #
+ # @return [DefinitionClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#86
+ def definition; end
+
+ # Capabilities specific to the diagnostic pull model.
+ #
+ # @return [DiagnosticClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#281
+ def diagnostic; end
+
+ # Capabilities specific to the `textDocument/documentHighlight` request.
+ #
+ # @return [DocumentHighlightClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#118
+ def document_highlight; end
+
+ # Capabilities specific to the `textDocument/documentLink` request.
+ #
+ # @return [DocumentLinkClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#150
+ def document_link; end
+
+ # Capabilities specific to the `textDocument/documentSymbol` request.
+ #
+ # @return [DocumentSymbolClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#126
+ def document_symbol; end
+
+ # Capabilities specific to the `textDocument/foldingRange` request.
+ #
+ # @return [FoldingRangeClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#209
+ def folding_range; end
+
+ # Capabilities specific to the `textDocument/formatting` request.
+ #
+ # @return [DocumentFormattingClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#167
+ def formatting; end
+
+ # Capabilities specific to the `textDocument/hover` request.
+ #
+ # @return [HoverClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#62
+ def hover; end
+
+ # Capabilities specific to the `textDocument/implementation` request.
+ #
+ # @return [ImplementationClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#102
+ def implementation; end
+
+ # Capabilities specific to the `textDocument/inlayHint` request.
+ #
+ # @return [InlayHintClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#273
+ def inlay_hint; end
+
+ # Capabilities specific to the `textDocument/inlineValue` request.
+ #
+ # @return [InlineValueClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#265
+ def inline_value; end
+
+ # Capabilities specific to the `textDocument/linkedEditingRange` request.
+ #
+ # @return [LinkedEditingRangeClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#225
+ def linked_editing_range; end
+
+ # Capabilities specific to the `textDocument/moniker` request.
+ #
+ # @return [MonikerClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#249
+ def moniker; end
+
+ # request.
+ # Capabilities specific to the `textDocument/onTypeFormatting` request.
+ #
+ # @return [DocumentOnTypeFormattingClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#184
+ def on_type_formatting; end
+
+ # Capabilities specific to the `textDocument/publishDiagnostics`
+ # notification.
+ #
+ # @return [PublishDiagnosticsClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#201
+ def publish_diagnostics; end
+
+ # Capabilities specific to the `textDocument/rangeFormatting` request.
+ #
+ # @return [DocumentRangeFormattingClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#175
+ def range_formatting; end
+
+ # Capabilities specific to the `textDocument/references` request.
+ #
+ # @return [ReferenceClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#110
+ def references; end
+
+ # Capabilities specific to the `textDocument/rename` request.
+ #
+ # @return [RenameClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#192
+ def rename; end
+
+ # Capabilities specific to the `textDocument/selectionRange` request.
+ #
+ # @return [SelectionRangeClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#217
+ def selection_range; end
+
+ # Capabilities specific to the various semantic token requests.
+ #
+ # @return [SemanticTokensClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#241
+ def semantic_tokens; end
+
+ # Capabilities specific to the `textDocument/signatureHelp` request.
+ #
+ # @return [SignatureHelpClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#70
+ def signature_help; end
+
+ # @return [TextDocumentSyncClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#46
+ def synchronization; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#287
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#291
+ def to_json(*args); end
+
+ # Capabilities specific to the `textDocument/typeDefinition` request.
+ #
+ # @return [TypeDefinitionClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#94
+ def type_definition; end
+
+ # Capabilities specific to the various type hierarchy requests.
+ #
+ # @return [TypeHierarchyClientCapabilities]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_client_capabilities.rb#257
+ def type_hierarchy; end
+end
+
+# An event describing a change to a text document. If only a text is provided
+# it is considered to be the full content of the document.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_content_change_event.rb#8
+class LanguageServer::Protocol::Interface::TextDocumentContentChangeEvent
+ # @return [TextDocumentContentChangeEvent] a new instance of TextDocumentContentChangeEvent
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_content_change_event.rb#9
+ def initialize(text:, range: T.unsafe(nil), range_length: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_content_change_event.rb#47
+ def attributes; end
+
+ # The range of the document that changed.
+ #
+ # @return [Range, nil]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_content_change_event.rb#23
+ def range; end
+
+ # The optional length of the range that got replaced.
+ #
+ # @return [number, nil]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_content_change_event.rb#31
+ def range_length; end
+
+ # The new text for the provided range.
+ #
+ # --- OR ---
+ #
+ # The new text of the whole document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_content_change_event.rb#43
+ def text; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_content_change_event.rb#49
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_content_change_event.rb#53
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_edit.rb#4
+class LanguageServer::Protocol::Interface::TextDocumentEdit
+ # @return [TextDocumentEdit] a new instance of TextDocumentEdit
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_edit.rb#5
+ def initialize(text_document:, edits:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_edit.rb#30
+ def attributes; end
+
+ # The edits to be applied.
+ #
+ # @return [(TextEdit | AnnotatedTextEdit)[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_edit.rb#26
+ def edits; end
+
+ # The text document to change.
+ #
+ # @return [OptionalVersionedTextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_edit.rb#18
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_edit.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_edit.rb#36
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_identifier.rb#4
+class LanguageServer::Protocol::Interface::TextDocumentIdentifier
+ # @return [TextDocumentIdentifier] a new instance of TextDocumentIdentifier
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_identifier.rb#5
+ def initialize(uri:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_identifier.rb#21
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_identifier.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_identifier.rb#27
+ def to_json(*args); end
+
+ # The text document's URI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_identifier.rb#17
+ def uri; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#4
+class LanguageServer::Protocol::Interface::TextDocumentItem
+ # @return [TextDocumentItem] a new instance of TextDocumentItem
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#5
+ def initialize(uri:, language_id:, version:, text:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#49
+ def attributes; end
+
+ # The text document's language identifier.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#28
+ def language_id; end
+
+ # The content of the opened text document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#45
+ def text; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#55
+ def to_json(*args); end
+
+ # The text document's URI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#20
+ def uri; end
+
+ # The version number of this document (it will increase after each
+ # change, including undo/redo).
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_item.rb#37
+ def version; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_position_params.rb#4
+class LanguageServer::Protocol::Interface::TextDocumentPositionParams
+ # @return [TextDocumentPositionParams] a new instance of TextDocumentPositionParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_position_params.rb#5
+ def initialize(text_document:, position:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_position_params.rb#30
+ def attributes; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_position_params.rb#26
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_position_params.rb#18
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_position_params.rb#32
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_position_params.rb#36
+ def to_json(*args); end
+end
+
+# General text document registration options.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_registration_options.rb#7
+class LanguageServer::Protocol::Interface::TextDocumentRegistrationOptions
+ # @return [TextDocumentRegistrationOptions] a new instance of TextDocumentRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_registration_options.rb#8
+ def initialize(document_selector:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_registration_options.rb#25
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_registration_options.rb#21
+ def document_selector; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_registration_options.rb#27
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_registration_options.rb#31
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_save_registration_options.rb#4
+class LanguageServer::Protocol::Interface::TextDocumentSaveRegistrationOptions
+ # @return [TextDocumentSaveRegistrationOptions] a new instance of TextDocumentSaveRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_save_registration_options.rb#5
+ def initialize(document_selector:, include_text: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_save_registration_options.rb#31
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_save_registration_options.rb#19
+ def document_selector; end
+
+ # The client is supposed to include the content on save.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_save_registration_options.rb#27
+ def include_text; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_save_registration_options.rb#33
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_save_registration_options.rb#37
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::TextDocumentSyncClientCapabilities
+ # @return [TextDocumentSyncClientCapabilities] a new instance of TextDocumentSyncClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), will_save: T.unsafe(nil), will_save_wait_until: T.unsafe(nil), did_save: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#50
+ def attributes; end
+
+ # The client supports did save notifications.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#46
+ def did_save; end
+
+ # Whether text document synchronization supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#52
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#56
+ def to_json(*args); end
+
+ # The client supports sending will save notifications.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#28
+ def will_save; end
+
+ # The client supports sending a will save request and
+ # waits for a response providing text edits which will
+ # be applied to the document before it is saved.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_client_capabilities.rb#38
+ def will_save_wait_until; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#4
+class LanguageServer::Protocol::Interface::TextDocumentSyncOptions
+ # @return [TextDocumentSyncOptions] a new instance of TextDocumentSyncOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#5
+ def initialize(open_close: T.unsafe(nil), change: T.unsafe(nil), will_save: T.unsafe(nil), will_save_wait_until: T.unsafe(nil), save: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#66
+ def attributes; end
+
+ # Change notifications are sent to the server. See
+ # TextDocumentSyncKind.None, TextDocumentSyncKind.Full and
+ # TextDocumentSyncKind.Incremental. If omitted it defaults to
+ # TextDocumentSyncKind.None.
+ #
+ # @return [TextDocumentSyncKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#35
+ def change; end
+
+ # Open and close notifications are sent to the server. If omitted open
+ # close notifications should not be sent.
+ # Open and close notifications are sent to the server. If omitted open
+ # close notification should not be sent.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#24
+ def open_close; end
+
+ # If present save notifications are sent to the server. If omitted the
+ # notification should not be sent.
+ #
+ # @return [boolean | SaveOptions]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#62
+ def save; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#68
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#72
+ def to_json(*args); end
+
+ # If present will save notifications are sent to the server. If omitted
+ # the notification should not be sent.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#44
+ def will_save; end
+
+ # If present will save wait until requests are sent to the server. If
+ # omitted the request should not be sent.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_document_sync_options.rb#53
+ def will_save_wait_until; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/text_edit.rb#4
+class LanguageServer::Protocol::Interface::TextEdit
+ # @return [TextEdit] a new instance of TextEdit
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_edit.rb#5
+ def initialize(range:, new_text:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_edit.rb#32
+ def attributes; end
+
+ # The string to be inserted. For delete operations use an
+ # empty string.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_edit.rb#28
+ def new_text; end
+
+ # The range of the text document to be manipulated. To insert
+ # text into a document create a range where start === end.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_edit.rb#19
+ def range; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_edit.rb#34
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/text_edit.rb#38
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_definition_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::TypeDefinitionClientCapabilities
+ # @return [TypeDefinitionClientCapabilities] a new instance of TypeDefinitionClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), link_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_client_capabilities.rb#32
+ def attributes; end
+
+ # Whether implementation supports dynamic registration. If this is set to
+ # `true` the client supports the new `TypeDefinitionRegistrationOptions`
+ # return value for the corresponding server capability as well.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # The client supports additional metadata in the form of definition links.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_client_capabilities.rb#28
+ def link_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_client_capabilities.rb#34
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_client_capabilities.rb#38
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_definition_options.rb#4
+class LanguageServer::Protocol::Interface::TypeDefinitionOptions
+ # @return [TypeDefinitionOptions] a new instance of TypeDefinitionOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#4
+class LanguageServer::Protocol::Interface::TypeDefinitionParams
+ # @return [TypeDefinitionParams] a new instance of TypeDefinitionParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#49
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#45
+ def partial_result_token; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#28
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#20
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#51
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#55
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_params.rb#36
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_definition_registration_options.rb#4
+class LanguageServer::Protocol::Interface::TypeDefinitionRegistrationOptions
+ # @return [TypeDefinitionRegistrationOptions] a new instance of TypeDefinitionRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_registration_options.rb#20
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_registration_options.rb#34
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_definition_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#4
+class LanguageServer::Protocol::Interface::TypeHierarchyItem
+ # @return [TypeHierarchyItem] a new instance of TypeHierarchyItem
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#5
+ def initialize(name:, kind:, uri:, range:, selection_range:, tags: T.unsafe(nil), detail: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#90
+ def attributes; end
+
+ # A data entry field that is preserved between a type hierarchy prepare and
+ # supertypes or subtypes requests. It could also be used to identify the
+ # type hierarchy in the server, helping improve the performance on
+ # resolving supertypes and subtypes.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#86
+ def data; end
+
+ # More detail for this item, e.g. the signature of a function.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#48
+ def detail; end
+
+ # The kind of this item.
+ #
+ # @return [SymbolKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#32
+ def kind; end
+
+ # The name of this item.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#24
+ def name; end
+
+ # The range enclosing this symbol not including leading/trailing whitespace
+ # but everything else, e.g. comments and code.
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#65
+ def range; end
+
+ # The range that should be selected and revealed when this symbol is being
+ # picked, e.g. the name of a function. Must be contained by the
+ # [`range`](#TypeHierarchyItem.range).
+ #
+ # @return [Range]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#75
+ def selection_range; end
+
+ # Tags for this item.
+ #
+ # @return [1[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#40
+ def tags; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#92
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#96
+ def to_json(*args); end
+
+ # The resource identifier of this item.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_item.rb#56
+ def uri; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_options.rb#4
+class LanguageServer::Protocol::Interface::TypeHierarchyOptions
+ # @return [TypeHierarchyOptions] a new instance of TypeHierarchyOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb#4
+class LanguageServer::Protocol::Interface::TypeHierarchyPrepareParams
+ # @return [TypeHierarchyPrepareParams] a new instance of TypeHierarchyPrepareParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb#5
+ def initialize(text_document:, position:, work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb#39
+ def attributes; end
+
+ # The position inside the text document.
+ #
+ # @return [Position]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb#27
+ def position; end
+
+ # The text document.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb#19
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb#41
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb#45
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_prepare_params.rb#35
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_registration_options.rb#4
+class LanguageServer::Protocol::Interface::TypeHierarchyRegistrationOptions
+ # @return [TypeHierarchyRegistrationOptions] a new instance of TypeHierarchyRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_registration_options.rb#5
+ def initialize(document_selector:, work_done_progress: T.unsafe(nil), id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_registration_options.rb#38
+ def attributes; end
+
+ # A document selector to identify the scope of the registration. If set to
+ # null the document selector provided on the client side will be used.
+ #
+ # @return [DocumentSelector]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_registration_options.rb#20
+ def document_selector; end
+
+ # The id used to register the request. The id can be used to deregister
+ # the request again. See also Registration#id.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_registration_options.rb#34
+ def id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_registration_options.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_registration_options.rb#44
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_registration_options.rb#25
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb#4
+class LanguageServer::Protocol::Interface::TypeHierarchySubtypesParams
+ # @return [TypeHierarchySubtypesParams] a new instance of TypeHierarchySubtypesParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb#5
+ def initialize(item:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb#37
+ def attributes; end
+
+ # @return [TypeHierarchyItem]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb#33
+ def item; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb#28
+ def partial_result_token; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb#43
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_subtypes_params.rb#19
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb#4
+class LanguageServer::Protocol::Interface::TypeHierarchySupertypesParams
+ # @return [TypeHierarchySupertypesParams] a new instance of TypeHierarchySupertypesParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb#5
+ def initialize(item:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb#37
+ def attributes; end
+
+ # @return [TypeHierarchyItem]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb#33
+ def item; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb#28
+ def partial_result_token; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb#39
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb#43
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/type_hierarchy_supertypes_params.rb#19
+ def work_done_token; end
+end
+
+# A diagnostic report indicating that the last returned
+# report is still accurate.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb#8
+class LanguageServer::Protocol::Interface::UnchangedDocumentDiagnosticReport
+ # @return [UnchangedDocumentDiagnosticReport] a new instance of UnchangedDocumentDiagnosticReport
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb#9
+ def initialize(kind:, result_id:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb#38
+ def attributes; end
+
+ # A document diagnostic report indicating
+ # no changes to the last result. A server can
+ # only return `unchanged` if result ids are
+ # provided.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb#25
+ def kind; end
+
+ # A result id which will be sent on the next
+ # diagnostic request for the same document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb#34
+ def result_id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb#40
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/unchanged_document_diagnostic_report.rb#44
+ def to_json(*args); end
+end
+
+# General parameters to unregister a capability.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/unregistration.rb#7
+class LanguageServer::Protocol::Interface::Unregistration
+ # @return [Unregistration] a new instance of Unregistration
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration.rb#8
+ def initialize(id:, method:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration.rb#34
+ def attributes; end
+
+ # The id used to unregister the request or notification. Usually an id
+ # provided during the register request.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration.rb#22
+ def id; end
+
+ # The method / capability to unregister for.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration.rb#30
+ def method; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration.rb#36
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration.rb#40
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/unregistration_params.rb#4
+class LanguageServer::Protocol::Interface::UnregistrationParams
+ # @return [UnregistrationParams] a new instance of UnregistrationParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration_params.rb#5
+ def initialize(unregisterations:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration_params.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration_params.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration_params.rb#24
+ def to_json(*args); end
+
+ # @return [Unregistration[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/unregistration_params.rb#14
+ def unregisterations; end
+end
+
+# A versioned notebook document identifier.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb#7
+class LanguageServer::Protocol::Interface::VersionedNotebookDocumentIdentifier
+ # @return [VersionedNotebookDocumentIdentifier] a new instance of VersionedNotebookDocumentIdentifier
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb#8
+ def initialize(version:, uri:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb#33
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb#39
+ def to_json(*args); end
+
+ # The notebook document's URI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb#29
+ def uri; end
+
+ # The version number of this notebook document.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_notebook_document_identifier.rb#21
+ def version; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/versioned_text_document_identifier.rb#4
+class LanguageServer::Protocol::Interface::VersionedTextDocumentIdentifier
+ # @return [VersionedTextDocumentIdentifier] a new instance of VersionedTextDocumentIdentifier
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_text_document_identifier.rb#5
+ def initialize(uri:, version:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_text_document_identifier.rb#33
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_text_document_identifier.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_text_document_identifier.rb#39
+ def to_json(*args); end
+
+ # The text document's URI.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_text_document_identifier.rb#18
+ def uri; end
+
+ # The version number of this document.
+ #
+ # The version number of a document will increase after each change,
+ # including undo/redo. The number doesn't need to be consecutive.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/versioned_text_document_identifier.rb#29
+ def version; end
+end
+
+# The parameters send in a will save text document notification.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/will_save_text_document_params.rb#7
+class LanguageServer::Protocol::Interface::WillSaveTextDocumentParams
+ # @return [WillSaveTextDocumentParams] a new instance of WillSaveTextDocumentParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/will_save_text_document_params.rb#8
+ def initialize(text_document:, reason:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/will_save_text_document_params.rb#33
+ def attributes; end
+
+ # The 'TextDocumentSaveReason'.
+ #
+ # @return [TextDocumentSaveReason]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/will_save_text_document_params.rb#29
+ def reason; end
+
+ # The document that will be saved.
+ #
+ # @return [TextDocumentIdentifier]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/will_save_text_document_params.rb#21
+ def text_document; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/will_save_text_document_params.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/will_save_text_document_params.rb#39
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#4
+class LanguageServer::Protocol::Interface::WorkDoneProgressBegin
+ # @return [WorkDoneProgressBegin] a new instance of WorkDoneProgressBegin
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#5
+ def initialize(kind:, title:, cancellable: T.unsafe(nil), message: T.unsafe(nil), percentage: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#68
+ def attributes; end
+
+ # Controls if a cancel button should show to allow the user to cancel the
+ # long running operation. Clients that don't support cancellation are
+ # allowed to ignore the setting.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#39
+ def cancellable; end
+
+ # @return ["begin"]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#18
+ def kind; end
+
+ # Optional, more detailed associated progress message. Contains
+ # complementary information to the `title`.
+ #
+ # Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
+ # If unset, the previous progress message (if any) is still valid.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#51
+ def message; end
+
+ # Optional progress percentage to display (value 100 is considered 100%).
+ # If not provided infinite progress is assumed and clients are allowed
+ # to ignore the `percentage` value in subsequent in report notifications.
+ #
+ # The value should be steadily rising. Clients are free to ignore values
+ # that are not following this rule. The value range is [0, 100]
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#64
+ def percentage; end
+
+ # Mandatory title of the progress operation. Used to briefly inform about
+ # the kind of operation being performed.
+ #
+ # Examples: "Indexing" or "Linking dependencies".
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#29
+ def title; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#70
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_begin.rb#74
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_cancel_params.rb#4
+class LanguageServer::Protocol::Interface::WorkDoneProgressCancelParams
+ # @return [WorkDoneProgressCancelParams] a new instance of WorkDoneProgressCancelParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_cancel_params.rb#5
+ def initialize(token:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_cancel_params.rb#21
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_cancel_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_cancel_params.rb#27
+ def to_json(*args); end
+
+ # The token to be used to report progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_cancel_params.rb#17
+ def token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_create_params.rb#4
+class LanguageServer::Protocol::Interface::WorkDoneProgressCreateParams
+ # @return [WorkDoneProgressCreateParams] a new instance of WorkDoneProgressCreateParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_create_params.rb#5
+ def initialize(token:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_create_params.rb#21
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_create_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_create_params.rb#27
+ def to_json(*args); end
+
+ # The token to be used to report progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_create_params.rb#17
+ def token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_end.rb#4
+class LanguageServer::Protocol::Interface::WorkDoneProgressEnd
+ # @return [WorkDoneProgressEnd] a new instance of WorkDoneProgressEnd
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_end.rb#5
+ def initialize(kind:, message: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_end.rb#28
+ def attributes; end
+
+ # @return ["end"]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_end.rb#15
+ def kind; end
+
+ # Optional, a final message indicating to for example indicate the outcome
+ # of the operation.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_end.rb#24
+ def message; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_end.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_end.rb#34
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_options.rb#4
+class LanguageServer::Protocol::Interface::WorkDoneProgressOptions
+ # @return [WorkDoneProgressOptions] a new instance of WorkDoneProgressOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_options.rb#18
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_options.rb#20
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_options.rb#24
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_options.rb#14
+ def work_done_progress; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_params.rb#4
+class LanguageServer::Protocol::Interface::WorkDoneProgressParams
+ # @return [WorkDoneProgressParams] a new instance of WorkDoneProgressParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_params.rb#5
+ def initialize(work_done_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_params.rb#21
+ def attributes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_params.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_params.rb#27
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_params.rb#17
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#4
+class LanguageServer::Protocol::Interface::WorkDoneProgressReport
+ # @return [WorkDoneProgressReport] a new instance of WorkDoneProgressReport
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#5
+ def initialize(kind:, cancellable: T.unsafe(nil), message: T.unsafe(nil), percentage: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#58
+ def attributes; end
+
+ # Controls enablement state of a cancel button. This property is only valid
+ # if a cancel button got requested in the `WorkDoneProgressBegin` payload.
+ #
+ # Clients that don't support cancellation or don't support control the
+ # button's enablement state are allowed to ignore the setting.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#29
+ def cancellable; end
+
+ # @return ["report"]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#17
+ def kind; end
+
+ # Optional, more detailed associated progress message. Contains
+ # complementary information to the `title`.
+ #
+ # Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
+ # If unset, the previous progress message (if any) is still valid.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#41
+ def message; end
+
+ # Optional progress percentage to display (value 100 is considered 100%).
+ # If not provided infinite progress is assumed and clients are allowed
+ # to ignore the `percentage` value in subsequent in report notifications.
+ #
+ # The value should be steadily rising. Clients are free to ignore values
+ # that are not following this rule. The value range is [0, 100]
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#54
+ def percentage; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#60
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/work_done_progress_report.rb#64
+ def to_json(*args); end
+end
+
+# Parameters of the workspace diagnostic request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#7
+class LanguageServer::Protocol::Interface::WorkspaceDiagnosticParams
+ # @return [WorkspaceDiagnosticParams] a new instance of WorkspaceDiagnosticParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#8
+ def initialize(previous_result_ids:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil), identifier: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#53
+ def attributes; end
+
+ # The additional identifier provided during registration.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#40
+ def identifier; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#32
+ def partial_result_token; end
+
+ # The currently known diagnostic reports with their
+ # previous result ids.
+ #
+ # @return [PreviousResultId[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#49
+ def previous_result_ids; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#55
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#59
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_params.rb#23
+ def work_done_token; end
+end
+
+# A workspace diagnostic report.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report.rb#7
+class LanguageServer::Protocol::Interface::WorkspaceDiagnosticReport
+ # @return [WorkspaceDiagnosticReport] a new instance of WorkspaceDiagnosticReport
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report.rb#8
+ def initialize(items:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report.rb#21
+ def attributes; end
+
+ # @return [WorkspaceDocumentDiagnosticReport[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report.rb#17
+ def items; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report.rb#27
+ def to_json(*args); end
+end
+
+# A partial result for a workspace diagnostic report.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb#7
+class LanguageServer::Protocol::Interface::WorkspaceDiagnosticReportPartialResult
+ # @return [WorkspaceDiagnosticReportPartialResult] a new instance of WorkspaceDiagnosticReportPartialResult
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb#8
+ def initialize(items:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb#21
+ def attributes; end
+
+ # @return [WorkspaceDocumentDiagnosticReport[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb#17
+ def items; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb#23
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_diagnostic_report_partial_result.rb#27
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit.rb#4
+class LanguageServer::Protocol::Interface::WorkspaceEdit
+ # @return [WorkspaceEdit] a new instance of WorkspaceEdit
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit.rb#5
+ def initialize(changes: T.unsafe(nil), document_changes: T.unsafe(nil), change_annotations: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit.rb#56
+ def attributes; end
+
+ # A map of change annotations that can be referenced in
+ # `AnnotatedTextEdit`s or create, rename and delete file / folder
+ # operations.
+ #
+ # Whether clients honor this property depends on the client capability
+ # `workspace.changeAnnotationSupport`.
+ #
+ # @return [{ [id: string]: ChangeAnnotation; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit.rb#52
+ def change_annotations; end
+
+ # Holds changes to existing resources.
+ #
+ # @return [{}]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit.rb#19
+ def changes; end
+
+ # Depending on the client capability
+ # `workspace.workspaceEdit.resourceOperations` document changes are either
+ # an array of `TextDocumentEdit`s to express changes to n different text
+ # documents where each text document edit addresses a specific version of
+ # a text document. Or it can contain above `TextDocumentEdit`s mixed with
+ # create, rename and delete file / folder operations.
+ #
+ # Whether a client supports versioned document edits is expressed via
+ # `workspace.workspaceEdit.documentChanges` client capability.
+ #
+ # If a client neither supports `documentChanges` nor
+ # `workspace.workspaceEdit.resourceOperations` then only plain `TextEdit`s
+ # using the `changes` property are supported.
+ #
+ # @return [TextDocumentEdit[] | (TextDocumentEdit | CreateFile | RenameFile | DeleteFile)[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit.rb#39
+ def document_changes; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit.rb#58
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit.rb#62
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::WorkspaceEditClientCapabilities
+ # @return [WorkspaceEditClientCapabilities] a new instance of WorkspaceEditClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#5
+ def initialize(document_changes: T.unsafe(nil), resource_operations: T.unsafe(nil), failure_handling: T.unsafe(nil), normalizes_line_endings: T.unsafe(nil), change_annotation_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#63
+ def attributes; end
+
+ # Whether the client in general supports change annotations on text edits,
+ # create file, rename file and delete file changes.
+ #
+ # @return [{ groupsOnLabel?: boolean; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#59
+ def change_annotation_support; end
+
+ # The client supports versioned document changes in `WorkspaceEdit`s
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#21
+ def document_changes; end
+
+ # The failure handling strategy of a client if applying the workspace edit
+ # fails.
+ #
+ # @return [FailureHandlingKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#39
+ def failure_handling; end
+
+ # Whether the client normalizes line endings to the client specific
+ # setting.
+ # If set to `true` the client will normalize line ending characters
+ # in a workspace edit to the client specific new line character(s).
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#50
+ def normalizes_line_endings; end
+
+ # The resource operations the client supports. Clients should at least
+ # support 'create', 'rename' and 'delete' files and folders.
+ #
+ # @return [ResourceOperationKind[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#30
+ def resource_operations; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#65
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_edit_client_capabilities.rb#69
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_folder.rb#4
+class LanguageServer::Protocol::Interface::WorkspaceFolder
+ # @return [WorkspaceFolder] a new instance of WorkspaceFolder
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folder.rb#5
+ def initialize(uri:, name:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folder.rb#31
+ def attributes; end
+
+ # The name of the workspace folder. Used to refer to this
+ # workspace folder in the user interface.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folder.rb#27
+ def name; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folder.rb#33
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folder.rb#37
+ def to_json(*args); end
+
+ # The associated URI for this workspace folder.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folder.rb#18
+ def uri; end
+end
+
+# The workspace folder change event.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_change_event.rb#7
+class LanguageServer::Protocol::Interface::WorkspaceFoldersChangeEvent
+ # @return [WorkspaceFoldersChangeEvent] a new instance of WorkspaceFoldersChangeEvent
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_change_event.rb#8
+ def initialize(added:, removed:); end
+
+ # The array of added workspace folders
+ #
+ # @return [WorkspaceFolder[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_change_event.rb#21
+ def added; end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_change_event.rb#33
+ def attributes; end
+
+ # The array of the removed workspace folders
+ #
+ # @return [WorkspaceFolder[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_change_event.rb#29
+ def removed; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_change_event.rb#35
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_change_event.rb#39
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb#4
+class LanguageServer::Protocol::Interface::WorkspaceFoldersServerCapabilities
+ # @return [WorkspaceFoldersServerCapabilities] a new instance of WorkspaceFoldersServerCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb#5
+ def initialize(supported: T.unsafe(nil), change_notifications: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb#36
+ def attributes; end
+
+ # Whether the server wants to receive workspace folder
+ # change notifications.
+ #
+ # If a string is provided, the string is treated as an ID
+ # under which the notification is registered on the client
+ # side. The ID can be used to unregister for these events
+ # using the `client/unregisterCapability` request.
+ #
+ # @return [string | boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb#32
+ def change_notifications; end
+
+ # The server has support for workspace folders
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb#18
+ def supported; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb#38
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_folders_server_capabilities.rb#42
+ def to_json(*args); end
+end
+
+# A full document diagnostic report for a workspace diagnostic result.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#7
+class LanguageServer::Protocol::Interface::WorkspaceFullDocumentDiagnosticReport
+ # @return [WorkspaceFullDocumentDiagnosticReport] a new instance of WorkspaceFullDocumentDiagnosticReport
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#8
+ def initialize(kind:, items:, uri:, version:, result_id: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#63
+ def attributes; end
+
+ # The actual items.
+ #
+ # @return [Diagnostic[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#42
+ def items; end
+
+ # A full document diagnostic report.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#24
+ def kind; end
+
+ # An optional result id. If provided it will
+ # be sent on the next diagnostic request for the
+ # same document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#34
+ def result_id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#65
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#69
+ def to_json(*args); end
+
+ # The URI for which diagnostic information is reported.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#50
+ def uri; end
+
+ # The version number for which the diagnostics are reported.
+ # If the document is not marked as open `null` can be provided.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_full_document_diagnostic_report.rb#59
+ def version; end
+end
+
+# A special workspace symbol that supports locations without a range
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#7
+class LanguageServer::Protocol::Interface::WorkspaceSymbol
+ # @return [WorkspaceSymbol] a new instance of WorkspaceSymbol
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#8
+ def initialize(name:, kind:, location:, tags: T.unsafe(nil), container_name: T.unsafe(nil), data: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#77
+ def attributes; end
+
+ # The name of the symbol containing this symbol. This information is for
+ # user interface purposes (e.g. to render a qualifier in the user interface
+ # if necessary). It can't be used to re-infer a hierarchy for the document
+ # symbols.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#52
+ def container_name; end
+
+ # A data entry field that is preserved on a workspace symbol between a
+ # workspace symbol request and a workspace symbol resolve request.
+ #
+ # @return [LSPAny]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#73
+ def data; end
+
+ # The kind of this symbol.
+ #
+ # @return [SymbolKind]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#33
+ def kind; end
+
+ # The location of this symbol. Whether a server is allowed to
+ # return a location without a range depends on the client
+ # capability `workspace.symbol.resolveSupport`.
+ #
+ # See also `SymbolInformation.location`.
+ #
+ # @return [Location | { uri: string; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#64
+ def location; end
+
+ # The name of this symbol.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#25
+ def name; end
+
+ # Tags for this completion item.
+ #
+ # @return [1[]]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#41
+ def tags; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#79
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol.rb#83
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#4
+class LanguageServer::Protocol::Interface::WorkspaceSymbolClientCapabilities
+ # @return [WorkspaceSymbolClientCapabilities] a new instance of WorkspaceSymbolClientCapabilities
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#5
+ def initialize(dynamic_registration: T.unsafe(nil), symbol_kind: T.unsafe(nil), tag_support: T.unsafe(nil), resolve_support: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#52
+ def attributes; end
+
+ # Symbol request supports dynamic registration.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#20
+ def dynamic_registration; end
+
+ # The client support partial workspace symbols. The client will send the
+ # request `workspaceSymbol/resolve` to the server to resolve additional
+ # properties.
+ #
+ # @return [{ properties: string[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#48
+ def resolve_support; end
+
+ # Specific capabilities for the `SymbolKind` in the `workspace/symbol`
+ # request.
+ #
+ # @return [{ valueSet?: SymbolKind[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#29
+ def symbol_kind; end
+
+ # The client supports tags on `SymbolInformation` and `WorkspaceSymbol`.
+ # Clients supporting tags have to handle unknown tags gracefully.
+ #
+ # @return [{ valueSet: 1[]; }]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#38
+ def tag_support; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#54
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_client_capabilities.rb#58
+ def to_json(*args); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_options.rb#4
+class LanguageServer::Protocol::Interface::WorkspaceSymbolOptions
+ # @return [WorkspaceSymbolOptions] a new instance of WorkspaceSymbolOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_options.rb#28
+ def attributes; end
+
+ # The server provides support to resolve additional
+ # information for a workspace symbol.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_options.rb#24
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_options.rb#15
+ def work_done_progress; end
+end
+
+# The parameters of a Workspace Symbol Request.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_params.rb#7
+class LanguageServer::Protocol::Interface::WorkspaceSymbolParams
+ # @return [WorkspaceSymbolParams] a new instance of WorkspaceSymbolParams
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_params.rb#8
+ def initialize(query:, work_done_token: T.unsafe(nil), partial_result_token: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_params.rb#44
+ def attributes; end
+
+ # An optional token that a server can use to report partial results (e.g.
+ # streaming) to the client.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_params.rb#31
+ def partial_result_token; end
+
+ # A query string to filter symbols by. Clients may send an empty
+ # string here to request all symbols.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_params.rb#40
+ def query; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_params.rb#46
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_params.rb#50
+ def to_json(*args); end
+
+ # An optional token that a server can use to report work done progress.
+ #
+ # @return [ProgressToken]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_params.rb#22
+ def work_done_token; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_registration_options.rb#4
+class LanguageServer::Protocol::Interface::WorkspaceSymbolRegistrationOptions
+ # @return [WorkspaceSymbolRegistrationOptions] a new instance of WorkspaceSymbolRegistrationOptions
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_registration_options.rb#5
+ def initialize(work_done_progress: T.unsafe(nil), resolve_provider: T.unsafe(nil)); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_registration_options.rb#28
+ def attributes; end
+
+ # The server provides support to resolve additional
+ # information for a workspace symbol.
+ #
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_registration_options.rb#24
+ def resolve_provider; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_registration_options.rb#30
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_registration_options.rb#34
+ def to_json(*args); end
+
+ # @return [boolean]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_symbol_registration_options.rb#15
+ def work_done_progress; end
+end
+
+# An unchanged document diagnostic report for a workspace diagnostic result.
+#
+# source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#7
+class LanguageServer::Protocol::Interface::WorkspaceUnchangedDocumentDiagnosticReport
+ # @return [WorkspaceUnchangedDocumentDiagnosticReport] a new instance of WorkspaceUnchangedDocumentDiagnosticReport
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#8
+ def initialize(kind:, result_id:, uri:, version:); end
+
+ # Returns the value of attribute attributes.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#56
+ def attributes; end
+
+ # A document diagnostic report indicating
+ # no changes to the last result. A server can
+ # only return `unchanged` if result ids are
+ # provided.
+ #
+ # @return [any]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#26
+ def kind; end
+
+ # A result id which will be sent on the next
+ # diagnostic request for the same document.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#35
+ def result_id; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#58
+ def to_hash; end
+
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#62
+ def to_json(*args); end
+
+ # The URI for which diagnostic information is reported.
+ #
+ # @return [string]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#43
+ def uri; end
+
+ # The version number for which the diagnostics are reported.
+ # If the document is not marked as open `null` can be provided.
+ #
+ # @return [number]
+ #
+ # source://language_server-protocol//lib/language_server/protocol/interface/workspace_unchanged_document_diagnostic_report.rb#52
+ def version; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/transport/io/reader.rb#7
+module LanguageServer::Protocol::Transport; end
+
+# source://language_server-protocol//lib/language_server/protocol/transport/io/reader.rb#8
+module LanguageServer::Protocol::Transport::Io; end
+
+# source://language_server-protocol//lib/language_server/protocol/transport/io/reader.rb#9
+class LanguageServer::Protocol::Transport::Io::Reader
+ # @return [Reader] a new instance of Reader
+ #
+ # source://language_server-protocol//lib/language_server/protocol/transport/io/reader.rb#10
+ def initialize(io); end
+
+ # source://language_server-protocol//lib/language_server/protocol/transport/io/reader.rb#15
+ def read(&block); end
+
+ private
+
+ # Returns the value of attribute io.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/transport/io/reader.rb#26
+ def io; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/transport/io/writer.rb#5
+class LanguageServer::Protocol::Transport::Io::Writer
+ # @return [Writer] a new instance of Writer
+ #
+ # source://language_server-protocol//lib/language_server/protocol/transport/io/writer.rb#8
+ def initialize(io); end
+
+ # Returns the value of attribute io.
+ #
+ # source://language_server-protocol//lib/language_server/protocol/transport/io/writer.rb#6
+ def io; end
+
+ # source://language_server-protocol//lib/language_server/protocol/transport/io/writer.rb#13
+ def write(response); end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/transport/stdio/reader.rb#4
+module LanguageServer::Protocol::Transport::Stdio; end
+
+# source://language_server-protocol//lib/language_server/protocol/transport/stdio/reader.rb#5
+class LanguageServer::Protocol::Transport::Stdio::Reader < ::LanguageServer::Protocol::Transport::Io::Reader
+ # @return [Reader] a new instance of Reader
+ #
+ # source://language_server-protocol//lib/language_server/protocol/transport/stdio/reader.rb#6
+ def initialize; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/transport/stdio/writer.rb#5
+class LanguageServer::Protocol::Transport::Stdio::Writer < ::LanguageServer::Protocol::Transport::Io::Writer
+ # @return [Writer] a new instance of Writer
+ #
+ # source://language_server-protocol//lib/language_server/protocol/transport/stdio/writer.rb#6
+ def initialize; end
+end
+
+# source://language_server-protocol//lib/language_server/protocol/version.rb#3
+LanguageServer::Protocol::VERSION = T.let(T.unsafe(nil), String)
diff --git a/sorbet/rbi/gems/minitest@5.20.0.rbi b/sorbet/rbi/gems/minitest@5.20.0.rbi
new file mode 100644
index 0000000..de27f9c
--- /dev/null
+++ b/sorbet/rbi/gems/minitest@5.20.0.rbi
@@ -0,0 +1,1497 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `minitest` gem.
+# Please instead update this file by running `bin/tapioca gem minitest`.
+
+# :include: README.rdoc
+#
+# source://minitest//lib/minitest/parallel.rb#1
+module Minitest
+ class << self
+ # Internal run method. Responsible for telling all Runnable
+ # sub-classes to run.
+ #
+ # source://minitest//lib/minitest.rb#176
+ def __run(reporter, options); end
+
+ # A simple hook allowing you to run a block of code after everything
+ # is done running. Eg:
+ #
+ # Minitest.after_run { p $debugging_info }
+ #
+ # source://minitest//lib/minitest.rb#97
+ def after_run(&block); end
+
+ # source://minitest//lib/minitest.rb#19
+ def allow_fork; end
+
+ # source://minitest//lib/minitest.rb#19
+ def allow_fork=(_arg0); end
+
+ # Registers Minitest to run at process exit
+ #
+ # source://minitest//lib/minitest.rb#69
+ def autorun; end
+
+ # source://minitest//lib/minitest.rb#19
+ def backtrace_filter; end
+
+ # source://minitest//lib/minitest.rb#19
+ def backtrace_filter=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#18
+ def cattr_accessor(name); end
+
+ # source://minitest//lib/minitest.rb#1102
+ def clock_time; end
+
+ # source://minitest//lib/minitest.rb#19
+ def extensions; end
+
+ # source://minitest//lib/minitest.rb#19
+ def extensions=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#267
+ def filter_backtrace(bt); end
+
+ # source://minitest//lib/minitest.rb#19
+ def info_signal; end
+
+ # source://minitest//lib/minitest.rb#19
+ def info_signal=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#101
+ def init_plugins(options); end
+
+ # source://minitest//lib/minitest.rb#108
+ def load_plugins; end
+
+ # source://minitest//lib/minitest.rb#19
+ def parallel_executor; end
+
+ # source://minitest//lib/minitest.rb#19
+ def parallel_executor=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#189
+ def process_args(args = T.unsafe(nil)); end
+
+ # source://minitest//lib/minitest.rb#19
+ def reporter; end
+
+ # source://minitest//lib/minitest.rb#19
+ def reporter=(_arg0); end
+
+ # This is the top-level run method. Everything starts from here. It
+ # tells each Runnable sub-class to run, and each of those are
+ # responsible for doing whatever they do.
+ #
+ # The overall structure of a run looks like this:
+ #
+ # Minitest.autorun
+ # Minitest.run(args)
+ # Minitest.__run(reporter, options)
+ # Runnable.runnables.each
+ # runnable.run(reporter, options)
+ # self.runnable_methods.each
+ # self.run_one_method(self, runnable_method, reporter)
+ # Minitest.run_one_method(klass, runnable_method)
+ # klass.new(runnable_method).run
+ #
+ # source://minitest//lib/minitest.rb#143
+ def run(args = T.unsafe(nil)); end
+
+ # source://minitest//lib/minitest.rb#1093
+ def run_one_method(klass, method_name); end
+
+ # source://minitest//lib/minitest.rb#19
+ def seed; end
+
+ # source://minitest//lib/minitest.rb#19
+ def seed=(_arg0); end
+ end
+end
+
+# Defines the API for Reporters. Subclass this and override whatever
+# you want. Go nuts.
+#
+# source://minitest//lib/minitest.rb#621
+class Minitest::AbstractReporter
+ include ::Mutex_m
+
+ # source://mutex_m/0.1.2/mutex_m.rb#93
+ def lock; end
+
+ # source://mutex_m/0.1.2/mutex_m.rb#83
+ def locked?; end
+
+ # Did this run pass?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#655
+ def passed?; end
+
+ # About to start running a test. This allows a reporter to show
+ # that it is starting or that we are in the middle of a test run.
+ #
+ # source://minitest//lib/minitest.rb#634
+ def prerecord(klass, name); end
+
+ # Output and record the result of the test. Call
+ # {result#result_code}[rdoc-ref:Runnable#result_code] to get the
+ # result character string. Stores the result of the run if the run
+ # did not pass.
+ #
+ # source://minitest//lib/minitest.rb#643
+ def record(result); end
+
+ # Outputs the summary of the run.
+ #
+ # source://minitest//lib/minitest.rb#649
+ def report; end
+
+ # Starts reporting on the run.
+ #
+ # source://minitest//lib/minitest.rb#627
+ def start; end
+
+ # source://mutex_m/0.1.2/mutex_m.rb#78
+ def synchronize(&block); end
+
+ # source://mutex_m/0.1.2/mutex_m.rb#88
+ def try_lock; end
+
+ # source://mutex_m/0.1.2/mutex_m.rb#98
+ def unlock; end
+end
+
+# Represents run failures.
+#
+# source://minitest//lib/minitest.rb#938
+class Minitest::Assertion < ::Exception
+ # source://minitest//lib/minitest.rb#939
+ def error; end
+
+ # Where was this run before an assertion was raised?
+ #
+ # source://minitest//lib/minitest.rb#946
+ def location; end
+
+ # source://minitest//lib/minitest.rb#955
+ def result_code; end
+
+ # source://minitest//lib/minitest.rb#959
+ def result_label; end
+end
+
+# Minitest Assertions. All assertion methods accept a +msg+ which is
+# printed if the assertion fails.
+#
+# Protocol: Nearly everything here boils up to +assert+, which
+# expects to be able to increment an instance accessor named
+# +assertions+. This is not provided by Assertions and must be
+# provided by the thing including Assertions. See Minitest::Runnable
+# for an example.
+#
+# source://minitest//lib/minitest/assertions.rb#18
+module Minitest::Assertions
+ # source://minitest//lib/minitest/assertions.rb#188
+ def _synchronize; end
+
+ # Fails unless +test+ is truthy.
+ #
+ # source://minitest//lib/minitest/assertions.rb#178
+ def assert(test, msg = T.unsafe(nil)); end
+
+ # Fails unless +obj+ is empty.
+ #
+ # source://minitest//lib/minitest/assertions.rb#195
+ def assert_empty(obj, msg = T.unsafe(nil)); end
+
+ # Fails unless exp == act printing the difference between
+ # the two, if possible.
+ #
+ # If there is no visible difference but the assertion fails, you
+ # should suspect that your #== is buggy, or your inspect output is
+ # missing crucial details. For nicer structural diffing, set
+ # Minitest::Test.make_my_diffs_pretty!
+ #
+ # For floats use assert_in_delta.
+ #
+ # See also: Minitest::Assertions.diff
+ #
+ # source://minitest//lib/minitest/assertions.rb#216
+ def assert_equal(exp, act, msg = T.unsafe(nil)); end
+
+ # For comparing Floats. Fails unless +exp+ and +act+ are within +delta+
+ # of each other.
+ #
+ # assert_in_delta Math::PI, (22.0 / 7.0), 0.01
+ #
+ # source://minitest//lib/minitest/assertions.rb#240
+ def assert_in_delta(exp, act, delta = T.unsafe(nil), msg = T.unsafe(nil)); end
+
+ # For comparing Floats. Fails unless +exp+ and +act+ have a relative
+ # error less than +epsilon+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#252
+ def assert_in_epsilon(exp, act, epsilon = T.unsafe(nil), msg = T.unsafe(nil)); end
+
+ # Fails unless +collection+ includes +obj+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#259
+ def assert_includes(collection, obj, msg = T.unsafe(nil)); end
+
+ # Fails unless +obj+ is an instance of +cls+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#270
+ def assert_instance_of(cls, obj, msg = T.unsafe(nil)); end
+
+ # Fails unless +obj+ is a kind of +cls+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#281
+ def assert_kind_of(cls, obj, msg = T.unsafe(nil)); end
+
+ # Fails unless +matcher+ =~ +obj+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#291
+ def assert_match(matcher, obj, msg = T.unsafe(nil)); end
+
+ # Fails unless +obj+ is nil
+ #
+ # source://minitest//lib/minitest/assertions.rb#303
+ def assert_nil(obj, msg = T.unsafe(nil)); end
+
+ # For testing with binary operators. Eg:
+ #
+ # assert_operator 5, :<=, 4
+ #
+ # source://minitest//lib/minitest/assertions.rb#313
+ def assert_operator(o1, op, o2 = T.unsafe(nil), msg = T.unsafe(nil)); end
+
+ # Fails if stdout or stderr do not output the expected results.
+ # Pass in nil if you don't care about that streams output. Pass in
+ # "" if you require it to be silent. Pass in a regexp if you want
+ # to pattern match.
+ #
+ # assert_output(/hey/) { method_with_output }
+ #
+ # NOTE: this uses #capture_io, not #capture_subprocess_io.
+ #
+ # See also: #assert_silent
+ #
+ # source://minitest//lib/minitest/assertions.rb#331
+ def assert_output(stdout = T.unsafe(nil), stderr = T.unsafe(nil)); end
+
+ # Fails unless +path+ exists.
+ #
+ # source://minitest//lib/minitest/assertions.rb#355
+ def assert_path_exists(path, msg = T.unsafe(nil)); end
+
+ # For testing with pattern matching (only supported with Ruby 3.0 and later)
+ #
+ # # pass
+ # assert_pattern { [1,2,3] => [Integer, Integer, Integer] }
+ #
+ # # fail "length mismatch (given 3, expected 1)"
+ # assert_pattern { [1,2,3] => [Integer] }
+ #
+ # The bare => pattern will raise a NoMatchingPatternError on failure, which would
+ # normally be counted as a test error. This assertion rescues NoMatchingPatternError and
+ # generates a test failure. Any other exception will be raised as normal and generate a test
+ # error.
+ #
+ # @raise [NotImplementedError]
+ #
+ # source://minitest//lib/minitest/assertions.rb#374
+ def assert_pattern; end
+
+ # For testing with predicates. Eg:
+ #
+ # assert_predicate str, :empty?
+ #
+ # This is really meant for specs and is front-ended by assert_operator:
+ #
+ # str.must_be :empty?
+ #
+ # source://minitest//lib/minitest/assertions.rb#395
+ def assert_predicate(o1, op, msg = T.unsafe(nil)); end
+
+ # Fails unless the block raises one of +exp+. Returns the
+ # exception matched so you can check the message, attributes, etc.
+ #
+ # +exp+ takes an optional message on the end to help explain
+ # failures and defaults to StandardError if no exception class is
+ # passed. Eg:
+ #
+ # assert_raises(CustomError) { method_with_custom_error }
+ #
+ # With custom error message:
+ #
+ # assert_raises(CustomError, 'This should have raised CustomError') { method_with_custom_error }
+ #
+ # Using the returned object:
+ #
+ # error = assert_raises(CustomError) do
+ # raise CustomError, 'This is really bad'
+ # end
+ #
+ # assert_equal 'This is really bad', error.message
+ #
+ # source://minitest//lib/minitest/assertions.rb#422
+ def assert_raises(*exp); end
+
+ # Fails unless +obj+ responds to +meth+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#453
+ def assert_respond_to(obj, meth, msg = T.unsafe(nil)); end
+
+ # Fails unless +exp+ and +act+ are #equal?
+ #
+ # source://minitest//lib/minitest/assertions.rb#463
+ def assert_same(exp, act, msg = T.unsafe(nil)); end
+
+ # +send_ary+ is a receiver, message and arguments.
+ #
+ # Fails unless the call returns a true value
+ #
+ # source://minitest//lib/minitest/assertions.rb#476
+ def assert_send(send_ary, m = T.unsafe(nil)); end
+
+ # Fails if the block outputs anything to stderr or stdout.
+ #
+ # See also: #assert_output
+ #
+ # source://minitest//lib/minitest/assertions.rb#492
+ def assert_silent; end
+
+ # Fails unless the block throws +sym+
+ #
+ # source://minitest//lib/minitest/assertions.rb#501
+ def assert_throws(sym, msg = T.unsafe(nil)); end
+
+ # Captures $stdout and $stderr into strings:
+ #
+ # out, err = capture_io do
+ # puts "Some info"
+ # warn "You did a bad thing"
+ # end
+ #
+ # assert_match %r%info%, out
+ # assert_match %r%bad%, err
+ #
+ # NOTE: For efficiency, this method uses StringIO and does not
+ # capture IO for subprocesses. Use #capture_subprocess_io for
+ # that.
+ #
+ # source://minitest//lib/minitest/assertions.rb#542
+ def capture_io; end
+
+ # Captures $stdout and $stderr into strings, using Tempfile to
+ # ensure that subprocess IO is captured as well.
+ #
+ # out, err = capture_subprocess_io do
+ # system "echo Some info"
+ # system "echo You did a bad thing 1>&2"
+ # end
+ #
+ # assert_match %r%info%, out
+ # assert_match %r%bad%, err
+ #
+ # NOTE: This method is approximately 10x slower than #capture_io so
+ # only use it when you need to test the output of a subprocess.
+ #
+ # source://minitest//lib/minitest/assertions.rb#575
+ def capture_subprocess_io; end
+
+ # Returns a diff between +exp+ and +act+. If there is no known
+ # diff command or if it doesn't make sense to diff the output
+ # (single line, short output), then it simply returns a basic
+ # comparison between the two.
+ #
+ # See +things_to_diff+ for more info.
+ #
+ # source://minitest//lib/minitest/assertions.rb#59
+ def diff(exp, act); end
+
+ # Returns details for exception +e+
+ #
+ # source://minitest//lib/minitest/assertions.rb#607
+ def exception_details(e, msg); end
+
+ # Fails after a given date (in the local time zone). This allows
+ # you to put time-bombs in your tests if you need to keep
+ # something around until a later date lest you forget about it.
+ #
+ # source://minitest//lib/minitest/assertions.rb#623
+ def fail_after(y, m, d, msg); end
+
+ # Fails with +msg+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#630
+ def flunk(msg = T.unsafe(nil)); end
+
+ # Returns a proc that will output +msg+ along with the default message.
+ #
+ # source://minitest//lib/minitest/assertions.rb#638
+ def message(msg = T.unsafe(nil), ending = T.unsafe(nil), &default); end
+
+ # This returns a human-readable version of +obj+. By default
+ # #inspect is called. You can override this to use #pretty_inspect
+ # if you want.
+ #
+ # See Minitest::Test.make_my_diffs_pretty!
+ #
+ # source://minitest//lib/minitest/assertions.rb#129
+ def mu_pp(obj); end
+
+ # This returns a diff-able more human-readable version of +obj+.
+ # This differs from the regular mu_pp because it expands escaped
+ # newlines and makes hex-values (like object_ids) generic. This
+ # uses mu_pp to do the first pass and then cleans it up.
+ #
+ # source://minitest//lib/minitest/assertions.rb#152
+ def mu_pp_for_diff(obj); end
+
+ # used for counting assertions
+ #
+ # source://minitest//lib/minitest/assertions.rb#649
+ def pass(_msg = T.unsafe(nil)); end
+
+ # Fails if +test+ is truthy.
+ #
+ # source://minitest//lib/minitest/assertions.rb#656
+ def refute(test, msg = T.unsafe(nil)); end
+
+ # Fails if +obj+ is empty.
+ #
+ # source://minitest//lib/minitest/assertions.rb#664
+ def refute_empty(obj, msg = T.unsafe(nil)); end
+
+ # Fails if exp == act.
+ #
+ # For floats use refute_in_delta.
+ #
+ # source://minitest//lib/minitest/assertions.rb#675
+ def refute_equal(exp, act, msg = T.unsafe(nil)); end
+
+ # For comparing Floats. Fails if +exp+ is within +delta+ of +act+.
+ #
+ # refute_in_delta Math::PI, (22.0 / 7.0)
+ #
+ # source://minitest//lib/minitest/assertions.rb#687
+ def refute_in_delta(exp, act, delta = T.unsafe(nil), msg = T.unsafe(nil)); end
+
+ # For comparing Floats. Fails if +exp+ and +act+ have a relative error
+ # less than +epsilon+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#699
+ def refute_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = T.unsafe(nil)); end
+
+ # Fails if +collection+ includes +obj+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#706
+ def refute_includes(collection, obj, msg = T.unsafe(nil)); end
+
+ # Fails if +obj+ is an instance of +cls+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#717
+ def refute_instance_of(cls, obj, msg = T.unsafe(nil)); end
+
+ # Fails if +obj+ is a kind of +cls+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#727
+ def refute_kind_of(cls, obj, msg = T.unsafe(nil)); end
+
+ # Fails if +matcher+ =~ +obj+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#735
+ def refute_match(matcher, obj, msg = T.unsafe(nil)); end
+
+ # Fails if +obj+ is nil.
+ #
+ # source://minitest//lib/minitest/assertions.rb#745
+ def refute_nil(obj, msg = T.unsafe(nil)); end
+
+ # Fails if +o1+ is not +op+ +o2+. Eg:
+ #
+ # refute_operator 1, :>, 2 #=> pass
+ # refute_operator 1, :<, 2 #=> fail
+ #
+ # source://minitest//lib/minitest/assertions.rb#780
+ def refute_operator(o1, op, o2 = T.unsafe(nil), msg = T.unsafe(nil)); end
+
+ # Fails if +path+ exists.
+ #
+ # source://minitest//lib/minitest/assertions.rb#789
+ def refute_path_exists(path, msg = T.unsafe(nil)); end
+
+ # For testing with pattern matching (only supported with Ruby 3.0 and later)
+ #
+ # # pass
+ # refute_pattern { [1,2,3] => [String] }
+ #
+ # # fail "NoMatchingPatternError expected, but nothing was raised."
+ # refute_pattern { [1,2,3] => [Integer, Integer, Integer] }
+ #
+ # This assertion expects a NoMatchingPatternError exception, and will fail if none is raised. Any
+ # other exceptions will be raised as normal and generate a test error.
+ #
+ # @raise [NotImplementedError]
+ #
+ # source://minitest//lib/minitest/assertions.rb#762
+ def refute_pattern; end
+
+ # For testing with predicates.
+ #
+ # refute_predicate str, :empty?
+ #
+ # This is really meant for specs and is front-ended by refute_operator:
+ #
+ # str.wont_be :empty?
+ #
+ # source://minitest//lib/minitest/assertions.rb#803
+ def refute_predicate(o1, op, msg = T.unsafe(nil)); end
+
+ # Fails if +obj+ responds to the message +meth+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#811
+ def refute_respond_to(obj, meth, msg = T.unsafe(nil)); end
+
+ # Fails if +exp+ is the same (by object identity) as +act+.
+ #
+ # source://minitest//lib/minitest/assertions.rb#820
+ def refute_same(exp, act, msg = T.unsafe(nil)); end
+
+ # Skips the current run. If run in verbose-mode, the skipped run
+ # gets listed at the end of the run but doesn't cause a failure
+ # exit code.
+ #
+ # @raise [Minitest::Skip]
+ #
+ # source://minitest//lib/minitest/assertions.rb#833
+ def skip(msg = T.unsafe(nil), bt = T.unsafe(nil)); end
+
+ # Skips the current run until a given date (in the local time
+ # zone). This allows you to put some fixes on hold until a later
+ # date, but still holds you accountable and prevents you from
+ # forgetting it.
+ #
+ # source://minitest//lib/minitest/assertions.rb#845
+ def skip_until(y, m, d, msg); end
+
+ # Was this testcase skipped? Meant for #teardown.
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest/assertions.rb#854
+ def skipped?; end
+
+ # Returns things to diff [expect, butwas], or [nil, nil] if nothing to diff.
+ #
+ # Criterion:
+ #
+ # 1. Strings include newlines or escaped newlines, but not both.
+ # 2. or: String lengths are > 30 characters.
+ # 3. or: Strings are equal to each other (but maybe different encodings?).
+ # 4. and: we found a diff executable.
+ #
+ # source://minitest//lib/minitest/assertions.rb#104
+ def things_to_diff(exp, act); end
+
+ class << self
+ # Returns the diff command to use in #diff. Tries to intelligently
+ # figure out what diff to use.
+ #
+ # source://minitest//lib/minitest/assertions.rb#29
+ def diff; end
+
+ # Set the diff command to use in #diff.
+ #
+ # source://minitest//lib/minitest/assertions.rb#47
+ def diff=(o); end
+ end
+end
+
+# source://minitest//lib/minitest/assertions.rb#201
+Minitest::Assertions::E = T.let(T.unsafe(nil), String)
+
+# source://minitest//lib/minitest/assertions.rb#19
+Minitest::Assertions::UNDEFINED = T.let(T.unsafe(nil), Object)
+
+# The standard backtrace filter for minitest.
+#
+# See Minitest.backtrace_filter=.
+#
+# source://minitest//lib/minitest.rb#1070
+class Minitest::BacktraceFilter
+ # Filter +bt+ to something useful. Returns the whole thing if
+ # $DEBUG (ruby) or $MT_DEBUG (env).
+ #
+ # source://minitest//lib/minitest.rb#1078
+ def filter(bt); end
+end
+
+# source://minitest//lib/minitest.rb#1072
+Minitest::BacktraceFilter::MT_RE = T.let(T.unsafe(nil), Regexp)
+
+# Dispatch to multiple reporters as one.
+#
+# source://minitest//lib/minitest.rb#887
+class Minitest::CompositeReporter < ::Minitest::AbstractReporter
+ # @return [CompositeReporter] a new instance of CompositeReporter
+ #
+ # source://minitest//lib/minitest.rb#893
+ def initialize(*reporters); end
+
+ # Add another reporter to the mix.
+ #
+ # source://minitest//lib/minitest.rb#905
+ def <<(reporter); end
+
+ # source://minitest//lib/minitest.rb#898
+ def io; end
+
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#909
+ def passed?; end
+
+ # source://minitest//lib/minitest.rb#917
+ def prerecord(klass, name); end
+
+ # source://minitest//lib/minitest.rb#924
+ def record(result); end
+
+ # source://minitest//lib/minitest.rb#930
+ def report; end
+
+ # The list of reporters to dispatch to.
+ #
+ # source://minitest//lib/minitest.rb#891
+ def reporters; end
+
+ # The list of reporters to dispatch to.
+ #
+ # source://minitest//lib/minitest.rb#891
+ def reporters=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#913
+ def start; end
+end
+
+# Provides a simple set of guards that you can use in your tests
+# to skip execution if it is not applicable. These methods are
+# mixed into Test as both instance and class methods so you
+# can use them inside or outside of the test methods.
+#
+# def test_something_for_mri
+# skip "bug 1234" if jruby?
+# # ...
+# end
+#
+# if windows? then
+# # ... lots of test methods ...
+# end
+#
+# source://minitest//lib/minitest.rb#1014
+module Minitest::Guard
+ # Is this running on jruby?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#1019
+ def jruby?(platform = T.unsafe(nil)); end
+
+ # Is this running on maglev?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#1026
+ def maglev?(platform = T.unsafe(nil)); end
+
+ # Is this running on mri?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#1036
+ def mri?(platform = T.unsafe(nil)); end
+
+ # Is this running on macOS?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#1043
+ def osx?(platform = T.unsafe(nil)); end
+
+ # Is this running on rubinius?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#1050
+ def rubinius?(platform = T.unsafe(nil)); end
+
+ # Is this running on windows?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#1060
+ def windows?(platform = T.unsafe(nil)); end
+end
+
+# source://minitest//lib/minitest/parallel.rb#2
+module Minitest::Parallel; end
+
+# The engine used to run multiple tests in parallel.
+#
+# source://minitest//lib/minitest/parallel.rb#7
+class Minitest::Parallel::Executor
+ # Create a parallel test executor of with +size+ workers.
+ #
+ # @return [Executor] a new instance of Executor
+ #
+ # source://minitest//lib/minitest/parallel.rb#17
+ def initialize(size); end
+
+ # Add a job to the queue
+ #
+ # source://minitest//lib/minitest/parallel.rb#43
+ def <<(work); end
+
+ # Shuts down the pool of workers by signalling them to quit and
+ # waiting for them all to finish what they're currently working
+ # on.
+ #
+ # source://minitest//lib/minitest/parallel.rb#50
+ def shutdown; end
+
+ # The size of the pool of workers.
+ #
+ # source://minitest//lib/minitest/parallel.rb#12
+ def size; end
+
+ # Start the executor
+ #
+ # source://minitest//lib/minitest/parallel.rb#26
+ def start; end
+end
+
+# source://minitest//lib/minitest/parallel.rb#56
+module Minitest::Parallel::Test
+ # source://minitest//lib/minitest/parallel.rb#57
+ def _synchronize; end
+end
+
+# source://minitest//lib/minitest/parallel.rb#59
+module Minitest::Parallel::Test::ClassMethods
+ # source://minitest//lib/minitest/parallel.rb#60
+ def run_one_method(klass, method_name, reporter); end
+
+ # source://minitest//lib/minitest/parallel.rb#64
+ def test_order; end
+end
+
+# A very simple reporter that prints the "dots" during the run.
+#
+# This is added to the top-level CompositeReporter at the start of
+# the run. If you want to change the output of minitest via a
+# plugin, pull this out of the composite and replace it with your
+# own.
+#
+# source://minitest//lib/minitest.rb#686
+class Minitest::ProgressReporter < ::Minitest::Reporter
+ # source://minitest//lib/minitest.rb#687
+ def prerecord(klass, name); end
+
+ # source://minitest//lib/minitest.rb#694
+ def record(result); end
+end
+
+# Shared code for anything that can get passed to a Reporter. See
+# Minitest::Test & Minitest::Result.
+#
+# source://minitest//lib/minitest.rb#517
+module Minitest::Reportable
+ # @raise [NotImplementedError]
+ #
+ # source://minitest//lib/minitest.rb#537
+ def class_name; end
+
+ # Did this run error?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#558
+ def error?; end
+
+ # The location identifier of this test. Depends on a method
+ # existing called class_name.
+ #
+ # source://minitest//lib/minitest.rb#532
+ def location; end
+
+ # Did this run pass?
+ #
+ # Note: skipped runs are not considered passing, but they don't
+ # cause the process to exit non-zero.
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#524
+ def passed?; end
+
+ # Returns ".", "F", or "E" based on the result of the run.
+ #
+ # source://minitest//lib/minitest.rb#544
+ def result_code; end
+
+ # Was this run skipped?
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#551
+ def skipped?; end
+end
+
+# source://minitest//lib/minitest.rb#662
+class Minitest::Reporter < ::Minitest::AbstractReporter
+ # @return [Reporter] a new instance of Reporter
+ #
+ # source://minitest//lib/minitest.rb#671
+ def initialize(io = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # The IO used to report.
+ #
+ # source://minitest//lib/minitest.rb#664
+ def io; end
+
+ # The IO used to report.
+ #
+ # source://minitest//lib/minitest.rb#664
+ def io=(_arg0); end
+
+ # Command-line options for this run.
+ #
+ # source://minitest//lib/minitest.rb#669
+ def options; end
+
+ # Command-line options for this run.
+ #
+ # source://minitest//lib/minitest.rb#669
+ def options=(_arg0); end
+end
+
+# This represents a test result in a clean way that can be
+# marshalled over a wire. Tests can do anything they want to the
+# test instance and can create conditions that cause Marshal.dump to
+# blow up. By using Result.from(a_test) you can be reasonably sure
+# that the test result can be marshalled.
+#
+# source://minitest//lib/minitest.rb#570
+class Minitest::Result < ::Minitest::Runnable
+ include ::Minitest::Reportable
+
+ # source://minitest//lib/minitest.rb#604
+ def class_name; end
+
+ # The class name of the test result.
+ #
+ # source://minitest//lib/minitest.rb#579
+ def klass; end
+
+ # The class name of the test result.
+ #
+ # source://minitest//lib/minitest.rb#579
+ def klass=(_arg0); end
+
+ # The location of the test method.
+ #
+ # source://minitest//lib/minitest.rb#584
+ def source_location; end
+
+ # The location of the test method.
+ #
+ # source://minitest//lib/minitest.rb#584
+ def source_location=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#608
+ def to_s; end
+
+ class << self
+ # Create a new test result from a Runnable instance.
+ #
+ # source://minitest//lib/minitest.rb#589
+ def from(runnable); end
+ end
+end
+
+# re-open
+#
+# source://minitest//lib/minitest.rb#280
+class Minitest::Runnable
+ # @return [Runnable] a new instance of Runnable
+ #
+ # source://minitest//lib/minitest.rb#448
+ def initialize(name); end
+
+ # Number of assertions executed in this run.
+ #
+ # source://minitest//lib/minitest.rb#284
+ def assertions; end
+
+ # Number of assertions executed in this run.
+ #
+ # source://minitest//lib/minitest.rb#284
+ def assertions=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#444
+ def failure; end
+
+ # An assertion raised during the run, if any.
+ #
+ # source://minitest//lib/minitest.rb#289
+ def failures; end
+
+ # An assertion raised during the run, if any.
+ #
+ # source://minitest//lib/minitest.rb#289
+ def failures=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#430
+ def marshal_dump; end
+
+ # source://minitest//lib/minitest.rb#440
+ def marshal_load(ary); end
+
+ # Metadata you attach to the test results that get sent to the reporter.
+ #
+ # Lazily initializes to a hash, to keep memory down.
+ #
+ # NOTE: this data *must* be plain (read: marshal-able) data!
+ # Hashes! Arrays! Strings!
+ #
+ # source://minitest//lib/minitest.rb#463
+ def metadata; end
+
+ # Sets metadata, mainly used for +Result.from+.
+ #
+ # source://minitest//lib/minitest.rb#470
+ def metadata=(_arg0); end
+
+ # Returns true if metadata exists.
+ #
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#475
+ def metadata?; end
+
+ # Name of the run.
+ #
+ # source://minitest//lib/minitest.rb#307
+ def name; end
+
+ # Set the name of the run.
+ #
+ # source://minitest//lib/minitest.rb#314
+ def name=(o); end
+
+ # Did this run pass?
+ #
+ # Note: skipped runs are not considered passing, but they don't
+ # cause the process to exit non-zero.
+ #
+ # @raise [NotImplementedError]
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#492
+ def passed?; end
+
+ # Returns a single character string to print based on the result
+ # of the run. One of ".", "F",
+ # "E" or "S".
+ #
+ # @raise [NotImplementedError]
+ #
+ # source://minitest//lib/minitest.rb#501
+ def result_code; end
+
+ # Runs a single method. Needs to return self.
+ #
+ # @raise [NotImplementedError]
+ #
+ # source://minitest//lib/minitest.rb#482
+ def run; end
+
+ # Was this run skipped? See #passed? for more information.
+ #
+ # @raise [NotImplementedError]
+ # @return [Boolean]
+ #
+ # source://minitest//lib/minitest.rb#508
+ def skipped?; end
+
+ # The time it took to run.
+ #
+ # source://minitest//lib/minitest.rb#294
+ def time; end
+
+ # The time it took to run.
+ #
+ # source://minitest//lib/minitest.rb#294
+ def time=(_arg0); end
+
+ # source://minitest//lib/minitest.rb#296
+ def time_it; end
+
+ class << self
+ # source://minitest//lib/minitest.rb#1112
+ def inherited(klass); end
+
+ # Returns all instance methods matching the pattern +re+.
+ #
+ # source://minitest//lib/minitest.rb#321
+ def methods_matching(re); end
+
+ # source://minitest//lib/minitest.rb#400
+ def on_signal(name, action); end
+
+ # source://minitest//lib/minitest.rb#325
+ def reset; end
+
+ # Responsible for running all runnable methods in a given class,
+ # each in its own instance. Each instance is passed to the
+ # reporter to record.
+ #
+ # source://minitest//lib/minitest.rb#336
+ def run(reporter, options = T.unsafe(nil)); end
+
+ # Runs a single method and has the reporter record the result.
+ # This was considered internal API but is factored out of run so
+ # that subclasses can specialize the running of an individual
+ # test. See Minitest::ParallelTest::ClassMethods for an example.
+ #
+ # source://minitest//lib/minitest.rb#372
+ def run_one_method(klass, method_name, reporter); end
+
+ # Each subclass of Runnable is responsible for overriding this
+ # method to return all runnable methods. See #methods_matching.
+ #
+ # @raise [NotImplementedError]
+ #
+ # source://minitest//lib/minitest.rb#417
+ def runnable_methods; end
+
+ # Returns all subclasses of Runnable.
+ #
+ # source://minitest//lib/minitest.rb#424
+ def runnables; end
+
+ # Defines the order to run tests (:random by default). Override
+ # this or use a convenience method to change it for your tests.
+ #
+ # source://minitest//lib/minitest.rb#381
+ def test_order; end
+
+ # source://minitest//lib/minitest.rb#385
+ def with_info_handler(reporter, &block); end
+ end
+end
+
+# source://minitest//lib/minitest.rb#398
+Minitest::Runnable::SIGNALS = T.let(T.unsafe(nil), Hash)
+
+# Assertion raised when skipping a run.
+#
+# source://minitest//lib/minitest.rb#967
+class Minitest::Skip < ::Minitest::Assertion
+ # source://minitest//lib/minitest.rb#968
+ def result_label; end
+end
+
+# A reporter that gathers statistics about a test run. Does not do
+# any IO because meant to be used as a parent class for a reporter
+# that does.
+#
+# If you want to create an entirely different type of output (eg,
+# CI, HTML, etc), this is the place to start.
+#
+# Example:
+#
+# class JenkinsCIReporter < StatisticsReporter
+# def report
+# super # Needed to calculate some statistics
+#
+# print " "onetwothree"
+#
+# source://multipart-post//lib/multipart/post/composite_read_io.rb#28
+class Multipart::Post::CompositeReadIO
+ # Create a new composite-read IO from the arguments, all of which should
+ # respond to #read in a manner consistent with IO.
+ #
+ # @return [CompositeReadIO] a new instance of CompositeReadIO
+ #
+ # source://multipart-post//lib/multipart/post/composite_read_io.rb#31
+ def initialize(*ios); end
+
+ # Read from IOs in order until `length` bytes have been received.
+ #
+ # source://multipart-post//lib/multipart/post/composite_read_io.rb#37
+ def read(length = T.unsafe(nil), outbuf = T.unsafe(nil)); end
+
+ # source://multipart-post//lib/multipart/post/composite_read_io.rb#54
+ def rewind; end
+
+ private
+
+ # source://multipart-post//lib/multipart/post/composite_read_io.rb#65
+ def advance_io; end
+
+ # source://multipart-post//lib/multipart/post/composite_read_io.rb#61
+ def current_io; end
+end
+
+# source://multipart-post//lib/multipart/post/multipartable.rb#23
+module Multipart::Post::Multipartable
+ # source://multipart-post//lib/multipart/post/multipartable.rb#38
+ def initialize(path, params, headers = T.unsafe(nil), boundary = T.unsafe(nil)); end
+
+ # Returns the value of attribute boundary.
+ #
+ # source://multipart-post//lib/multipart/post/multipartable.rb#61
+ def boundary; end
+
+ private
+
+ # source://multipart-post//lib/multipart/post/multipartable.rb#66
+ def symbolize_keys(hash); end
+
+ class << self
+ # source://multipart-post//lib/multipart/post/multipartable.rb#24
+ def secure_boundary; end
+ end
+end
+
+# source://multipart-post//lib/multipart/post/parts.rb#26
+module Multipart::Post::Parts; end
+
+# Represents the epilogue or closing boundary.
+#
+# source://multipart-post//lib/multipart/post/parts.rb#138
+class Multipart::Post::Parts::EpiloguePart
+ include ::Multipart::Post::Parts::Part
+
+ # @return [EpiloguePart] a new instance of EpiloguePart
+ #
+ # source://multipart-post//lib/multipart/post/parts.rb#141
+ def initialize(boundary); end
+end
+
+# Represents a part to be filled from file IO.
+#
+# source://multipart-post//lib/multipart/post/parts.rb#83
+class Multipart::Post::Parts::FilePart
+ include ::Multipart::Post::Parts::Part
+
+ # @param boundary [String]
+ # @param name [#to_s]
+ # @param io [IO]
+ # @param headers [Hash]
+ # @return [FilePart] a new instance of FilePart
+ #
+ # source://multipart-post//lib/multipart/post/parts.rb#92
+ def initialize(boundary, name, io, headers = T.unsafe(nil)); end
+
+ # @param boundary [String]
+ # @param name [#to_s]
+ # @param filename [String]
+ # @param type [String]
+ # @param content_len [Integer]
+ # @param opts [Hash]
+ #
+ # source://multipart-post//lib/multipart/post/parts.rb#107
+ def build_head(boundary, name, filename, type, content_len, opts = T.unsafe(nil)); end
+
+ # Returns the value of attribute length.
+ #
+ # source://multipart-post//lib/multipart/post/parts.rb#86
+ def length; end
+end
+
+# Represents a parametric part to be filled with given value.
+#
+# source://multipart-post//lib/multipart/post/parts.rb#51
+class Multipart::Post::Parts::ParamPart
+ include ::Multipart::Post::Parts::Part
+
+ # @param boundary [String]
+ # @param name [#to_s]
+ # @param value [String]
+ # @param headers [Hash] Content-Type and Content-ID are used, if present.
+ # @return [ParamPart] a new instance of ParamPart
+ #
+ # source://multipart-post//lib/multipart/post/parts.rb#58
+ def initialize(boundary, name, value, headers = T.unsafe(nil)); end
+
+ # @param boundary [String]
+ # @param name [#to_s]
+ # @param value [String]
+ # @param headers [Hash] Content-Type is used, if present.
+ #
+ # source://multipart-post//lib/multipart/post/parts.rb#71
+ def build_part(boundary, name, value, headers = T.unsafe(nil)); end
+
+ # source://multipart-post//lib/multipart/post/parts.rb#63
+ def length; end
+end
+
+# source://multipart-post//lib/multipart/post/parts.rb#27
+module Multipart::Post::Parts::Part
+ # source://multipart-post//lib/multipart/post/parts.rb#41
+ def length; end
+
+ # source://multipart-post//lib/multipart/post/parts.rb#45
+ def to_io; end
+
+ class << self
+ # @return [Boolean]
+ #
+ # source://multipart-post//lib/multipart/post/parts.rb#37
+ def file?(value); end
+
+ # source://multipart-post//lib/multipart/post/parts.rb#28
+ def new(boundary, name, value, headers = T.unsafe(nil)); end
+ end
+end
+
+# Convenience methods for dealing with files and IO that are to be uploaded.
+#
+# source://multipart-post//lib/multipart/post/upload_io.rb#9
+class Multipart::Post::UploadIO
+ # Create an upload IO suitable for including in the params hash of a
+ # Net::HTTP::Post::Multipart.
+ #
+ # Can take two forms. The first accepts a filename and content type, and
+ # opens the file for reading (to be closed by finalizer).
+ #
+ # The second accepts an already-open IO, but also requires a third argument,
+ # the filename from which it was opened (particularly useful/recommended if
+ # uploading directly from a form in a framework, which often save the file to
+ # an arbitrarily named RackMultipart file in /tmp).
+ #
+ # @example
+ # UploadIO.new("file.txt", "text/plain")
+ # UploadIO.new(file_io, "text/plain", "file.txt")
+ # @return [UploadIO] a new instance of UploadIO
+ #
+ # source://multipart-post//lib/multipart/post/upload_io.rb#26
+ def initialize(filename_or_io, content_type, filename = T.unsafe(nil), opts = T.unsafe(nil)); end
+
+ # Returns the value of attribute content_type.
+ #
+ # source://multipart-post//lib/multipart/post/upload_io.rb#10
+ def content_type; end
+
+ # Returns the value of attribute io.
+ #
+ # source://multipart-post//lib/multipart/post/upload_io.rb#10
+ def io; end
+
+ # Returns the value of attribute local_path.
+ #
+ # source://multipart-post//lib/multipart/post/upload_io.rb#10
+ def local_path; end
+
+ # source://multipart-post//lib/multipart/post/upload_io.rb#52
+ def method_missing(*args); end
+
+ # Returns the value of attribute opts.
+ #
+ # source://multipart-post//lib/multipart/post/upload_io.rb#10
+ def opts; end
+
+ # Returns the value of attribute original_filename.
+ #
+ # source://multipart-post//lib/multipart/post/upload_io.rb#10
+ def original_filename; end
+
+ # @return [Boolean]
+ #
+ # source://multipart-post//lib/multipart/post/upload_io.rb#56
+ def respond_to?(meth, include_all = T.unsafe(nil)); end
+
+ class << self
+ # @raise [ArgumentError]
+ #
+ # source://multipart-post//lib/multipart/post/upload_io.rb#46
+ def convert!(io, content_type, original_filename, local_path); end
+ end
+end
+
+# source://multipart-post//lib/multipart/post/version.rb#9
+Multipart::Post::VERSION = T.let(T.unsafe(nil), String)
+
+# source://multipart-post//lib/multipart/post/upload_io.rb#63
+UploadIO = Multipart::Post::UploadIO
diff --git a/sorbet/rbi/gems/netrc@0.11.0.rbi b/sorbet/rbi/gems/netrc@0.11.0.rbi
new file mode 100644
index 0000000..062a557
--- /dev/null
+++ b/sorbet/rbi/gems/netrc@0.11.0.rbi
@@ -0,0 +1,158 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `netrc` gem.
+# Please instead update this file by running `bin/tapioca gem netrc`.
+
+# source://netrc//lib/netrc.rb#3
+class Netrc
+ # @return [Netrc] a new instance of Netrc
+ #
+ # source://netrc//lib/netrc.rb#166
+ def initialize(path, data); end
+
+ # source://netrc//lib/netrc.rb#180
+ def [](k); end
+
+ # source://netrc//lib/netrc.rb#188
+ def []=(k, info); end
+
+ # source://netrc//lib/netrc.rb#200
+ def delete(key); end
+
+ # source://netrc//lib/netrc.rb#211
+ def each(&block); end
+
+ # source://netrc//lib/netrc.rb#196
+ def length; end
+
+ # source://netrc//lib/netrc.rb#215
+ def new_item(m, l, p); end
+
+ # Returns the value of attribute new_item_prefix.
+ #
+ # source://netrc//lib/netrc.rb#178
+ def new_item_prefix; end
+
+ # Sets the attribute new_item_prefix
+ #
+ # @param value the value to set the attribute new_item_prefix to.
+ #
+ # source://netrc//lib/netrc.rb#178
+ def new_item_prefix=(_arg0); end
+
+ # source://netrc//lib/netrc.rb#219
+ def save; end
+
+ # source://netrc//lib/netrc.rb#233
+ def unparse; end
+
+ class << self
+ # source://netrc//lib/netrc.rb#42
+ def check_permissions(path); end
+
+ # source://netrc//lib/netrc.rb#33
+ def config; end
+
+ # @yield [self.config]
+ #
+ # source://netrc//lib/netrc.rb#37
+ def configure; end
+
+ # source://netrc//lib/netrc.rb#10
+ def default_path; end
+
+ # source://netrc//lib/netrc.rb#14
+ def home_path; end
+
+ # source://netrc//lib/netrc.rb#85
+ def lex(lines); end
+
+ # source://netrc//lib/netrc.rb#29
+ def netrc_filename; end
+
+ # Returns two values, a header and a list of items.
+ # Each item is a tuple, containing some or all of:
+ # - machine keyword (including trailing whitespace+comments)
+ # - machine name
+ # - login keyword (including surrounding whitespace+comments)
+ # - login
+ # - password keyword (including surrounding whitespace+comments)
+ # - password
+ # - trailing chars
+ # This lets us change individual fields, then write out the file
+ # with all its original formatting.
+ #
+ # source://netrc//lib/netrc.rb#129
+ def parse(ts); end
+
+ # Reads path and parses it as a .netrc file. If path doesn't
+ # exist, returns an empty object. Decrypt paths ending in .gpg.
+ #
+ # source://netrc//lib/netrc.rb#51
+ def read(path = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://netrc//lib/netrc.rb#112
+ def skip?(s); end
+ end
+end
+
+# source://netrc//lib/netrc.rb#8
+Netrc::CYGWIN = T.let(T.unsafe(nil), T.untyped)
+
+# source://netrc//lib/netrc.rb#244
+class Netrc::Entry < ::Struct
+ # Returns the value of attribute login
+ #
+ # @return [Object] the current value of login
+ def login; end
+
+ # Sets the attribute login
+ #
+ # @param value [Object] the value to set the attribute login to.
+ # @return [Object] the newly set value
+ def login=(_); end
+
+ # Returns the value of attribute password
+ #
+ # @return [Object] the current value of password
+ def password; end
+
+ # Sets the attribute password
+ #
+ # @param value [Object] the value to set the attribute password to.
+ # @return [Object] the newly set value
+ def password=(_); end
+
+ def to_ary; end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://netrc//lib/netrc.rb#250
+class Netrc::Error < ::StandardError; end
+
+# source://netrc//lib/netrc.rb#68
+class Netrc::TokenArray < ::Array
+ # source://netrc//lib/netrc.rb#76
+ def readto; end
+
+ # source://netrc//lib/netrc.rb#69
+ def take; end
+end
+
+# source://netrc//lib/netrc.rb#4
+Netrc::VERSION = T.let(T.unsafe(nil), String)
+
+# see http://stackoverflow.com/questions/4871309/what-is-the-correct-way-to-detect-if-ruby-is-running-on-windows
+#
+# source://netrc//lib/netrc.rb#7
+Netrc::WINDOWS = T.let(T.unsafe(nil), T.untyped)
diff --git a/sorbet/rbi/gems/parallel@1.23.0.rbi b/sorbet/rbi/gems/parallel@1.23.0.rbi
new file mode 100644
index 0000000..c8b319a
--- /dev/null
+++ b/sorbet/rbi/gems/parallel@1.23.0.rbi
@@ -0,0 +1,273 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `parallel` gem.
+# Please instead update this file by running `bin/tapioca gem parallel`.
+
+# source://parallel//lib/parallel/version.rb#2
+module Parallel
+ class << self
+ # @return [Boolean]
+ #
+ # source://parallel//lib/parallel.rb#243
+ def all?(*args, &block); end
+
+ # @return [Boolean]
+ #
+ # source://parallel//lib/parallel.rb#238
+ def any?(*args, &block); end
+
+ # source://parallel//lib/parallel.rb#234
+ def each(array, options = T.unsafe(nil), &block); end
+
+ # source://parallel//lib/parallel.rb#248
+ def each_with_index(array, options = T.unsafe(nil), &block); end
+
+ # source://parallel//lib/parallel.rb#307
+ def filter_map(*args, &block); end
+
+ # source://parallel//lib/parallel.rb#303
+ def flat_map(*args, &block); end
+
+ # source://parallel//lib/parallel.rb#228
+ def in_processes(options = T.unsafe(nil), &block); end
+
+ # source://parallel//lib/parallel.rb#212
+ def in_threads(options = T.unsafe(nil)); end
+
+ # source://parallel//lib/parallel.rb#252
+ def map(source, options = T.unsafe(nil), &block); end
+
+ # source://parallel//lib/parallel.rb#299
+ def map_with_index(array, options = T.unsafe(nil), &block); end
+
+ # Number of physical processor cores on the current system.
+ #
+ # source://parallel//lib/parallel.rb#312
+ def physical_processor_count; end
+
+ # Number of processors seen by the OS, used for process scheduling
+ #
+ # source://parallel//lib/parallel.rb#345
+ def processor_count; end
+
+ # source://parallel//lib/parallel.rb#350
+ def worker_number; end
+
+ # TODO: this does not work when doing threads in forks, so should remove and yield the number instead if needed
+ #
+ # source://parallel//lib/parallel.rb#355
+ def worker_number=(worker_num); end
+
+ private
+
+ # source://parallel//lib/parallel.rb#361
+ def add_progress_bar!(job_factory, options); end
+
+ # source://parallel//lib/parallel.rb#624
+ def call_with_index(item, index, options, &block); end
+
+ # source://parallel//lib/parallel.rb#556
+ def create_workers(job_factory, options, &block); end
+
+ # options is either a Integer or a Hash with :count
+ #
+ # source://parallel//lib/parallel.rb#614
+ def extract_count_from_options(options); end
+
+ # source://parallel//lib/parallel.rb#642
+ def instrument_finish(item, index, result, options); end
+
+ # source://parallel//lib/parallel.rb#647
+ def instrument_start(item, index, options); end
+
+ # source://parallel//lib/parallel.rb#590
+ def process_incoming_jobs(read, write, job_factory, options, &block); end
+
+ # source://parallel//lib/parallel.rb#544
+ def replace_worker(job_factory, workers, index, options, blk); end
+
+ # source://parallel//lib/parallel.rb#635
+ def with_instrumentation(item, index, options); end
+
+ # source://parallel//lib/parallel.rb#386
+ def work_direct(job_factory, options, &block); end
+
+ # source://parallel//lib/parallel.rb#496
+ def work_in_processes(job_factory, options, &blk); end
+
+ # source://parallel//lib/parallel.rb#430
+ def work_in_ractors(job_factory, options); end
+
+ # source://parallel//lib/parallel.rb#405
+ def work_in_threads(job_factory, options, &block); end
+
+ # source://parallel//lib/parallel.rb#564
+ def worker(job_factory, options, &block); end
+ end
+end
+
+# source://parallel//lib/parallel.rb#11
+class Parallel::Break < ::StandardError
+ # @return [Break] a new instance of Break
+ #
+ # source://parallel//lib/parallel.rb#14
+ def initialize(value = T.unsafe(nil)); end
+
+ # Returns the value of attribute value.
+ #
+ # source://parallel//lib/parallel.rb#12
+ def value; end
+end
+
+# source://parallel//lib/parallel.rb#8
+class Parallel::DeadWorker < ::StandardError; end
+
+# source://parallel//lib/parallel.rb#32
+class Parallel::ExceptionWrapper
+ # @return [ExceptionWrapper] a new instance of ExceptionWrapper
+ #
+ # source://parallel//lib/parallel.rb#35
+ def initialize(exception); end
+
+ # Returns the value of attribute exception.
+ #
+ # source://parallel//lib/parallel.rb#33
+ def exception; end
+end
+
+# source://parallel//lib/parallel.rb#98
+class Parallel::JobFactory
+ # @return [JobFactory] a new instance of JobFactory
+ #
+ # source://parallel//lib/parallel.rb#99
+ def initialize(source, mutex); end
+
+ # source://parallel//lib/parallel.rb#107
+ def next; end
+
+ # generate item that is sent to workers
+ # just index is faster + less likely to blow up with unserializable errors
+ #
+ # source://parallel//lib/parallel.rb#136
+ def pack(item, index); end
+
+ # source://parallel//lib/parallel.rb#126
+ def size; end
+
+ # unpack item that is sent to workers
+ #
+ # source://parallel//lib/parallel.rb#141
+ def unpack(data); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://parallel//lib/parallel.rb#147
+ def producer?; end
+
+ # source://parallel//lib/parallel.rb#151
+ def queue_wrapper(array); end
+end
+
+# source://parallel//lib/parallel.rb#20
+class Parallel::Kill < ::Parallel::Break; end
+
+# source://parallel//lib/parallel.rb#6
+Parallel::Stop = T.let(T.unsafe(nil), Object)
+
+# source://parallel//lib/parallel.rb#23
+class Parallel::UndumpableException < ::StandardError
+ # @return [UndumpableException] a new instance of UndumpableException
+ #
+ # source://parallel//lib/parallel.rb#26
+ def initialize(original); end
+
+ # Returns the value of attribute backtrace.
+ #
+ # source://parallel//lib/parallel.rb#24
+ def backtrace; end
+end
+
+# source://parallel//lib/parallel.rb#156
+class Parallel::UserInterruptHandler
+ class << self
+ # source://parallel//lib/parallel.rb#181
+ def kill(thing); end
+
+ # kill all these pids or threads if user presses Ctrl+c
+ #
+ # source://parallel//lib/parallel.rb#161
+ def kill_on_ctrl_c(pids, options); end
+
+ private
+
+ # source://parallel//lib/parallel.rb#205
+ def restore_interrupt(old, signal); end
+
+ # source://parallel//lib/parallel.rb#190
+ def trap_interrupt(signal); end
+ end
+end
+
+# source://parallel//lib/parallel.rb#157
+Parallel::UserInterruptHandler::INTERRUPT_SIGNAL = T.let(T.unsafe(nil), Symbol)
+
+# source://parallel//lib/parallel/version.rb#3
+Parallel::VERSION = T.let(T.unsafe(nil), String)
+
+# source://parallel//lib/parallel/version.rb#3
+Parallel::Version = T.let(T.unsafe(nil), String)
+
+# source://parallel//lib/parallel.rb#51
+class Parallel::Worker
+ # @return [Worker] a new instance of Worker
+ #
+ # source://parallel//lib/parallel.rb#55
+ def initialize(read, write, pid); end
+
+ # might be passed to started_processes and simultaneously closed by another thread
+ # when running in isolation mode, so we have to check if it is closed before closing
+ #
+ # source://parallel//lib/parallel.rb#68
+ def close_pipes; end
+
+ # Returns the value of attribute pid.
+ #
+ # source://parallel//lib/parallel.rb#52
+ def pid; end
+
+ # Returns the value of attribute read.
+ #
+ # source://parallel//lib/parallel.rb#52
+ def read; end
+
+ # source://parallel//lib/parallel.rb#61
+ def stop; end
+
+ # Returns the value of attribute thread.
+ #
+ # source://parallel//lib/parallel.rb#53
+ def thread; end
+
+ # Sets the attribute thread
+ #
+ # @param value the value to set the attribute thread to.
+ #
+ # source://parallel//lib/parallel.rb#53
+ def thread=(_arg0); end
+
+ # source://parallel//lib/parallel.rb#73
+ def work(data); end
+
+ # Returns the value of attribute write.
+ #
+ # source://parallel//lib/parallel.rb#52
+ def write; end
+
+ private
+
+ # source://parallel//lib/parallel.rb#91
+ def wait; end
+end
diff --git a/sorbet/rbi/gems/parser@3.2.2.4.rbi b/sorbet/rbi/gems/parser@3.2.2.4.rbi
new file mode 100644
index 0000000..ac559e2
--- /dev/null
+++ b/sorbet/rbi/gems/parser@3.2.2.4.rbi
@@ -0,0 +1,5451 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `parser` gem.
+# Please instead update this file by running `bin/tapioca gem parser`.
+
+# @api public
+#
+# source://parser//lib/parser.rb#19
+module Parser; end
+
+# @api public
+#
+# source://parser//lib/parser.rb#24
+module Parser::AST; end
+
+# {Parser::AST::Node} contains information about a single AST node and its
+# child nodes. It extends the basic [AST::Node](https://www.rubydoc.info/gems/ast/AST/Node)
+# class provided by gem [ast](https://www.rubydoc.info/gems/ast).
+#
+# @api public
+#
+# source://parser//lib/parser/ast/node.rb#17
+class Parser::AST::Node < ::AST::Node
+ # Assigns various properties to this AST node. Currently only the
+ # location can be set.
+ #
+ # @api public
+ # @option properties
+ # @param properties [Hash]
+ #
+ # source://parser//lib/parser/ast/node.rb#30
+ def assign_properties(properties); end
+
+ # Source map for this Node.
+ #
+ # @api public
+ # @return [Parser::Source::Map]
+ #
+ # source://parser//lib/parser/ast/node.rb#18
+ def loc; end
+
+ # Source map for this Node.
+ #
+ # @api public
+ # @return [Parser::Source::Map]
+ #
+ # source://parser//lib/parser/ast/node.rb#18
+ def location; end
+end
+
+# @api public
+#
+# source://parser//lib/parser/ast/processor.rb#9
+class Parser::AST::Processor < ::AST::Processor
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_alias(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_and(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_and_asgn(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_arg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_arg_expr(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_args(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#103
+ def on_argument(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_array(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_array_pattern(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_array_pattern_with_tail(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#32
+ def on_back_ref(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_begin(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_block(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_block_pass(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_blockarg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_blockarg_expr(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_break(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_case(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_case_match(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#87
+ def on_casgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_class(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#79
+ def on_const(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_const_pattern(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#179
+ def on_csend(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#32
+ def on_cvar(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#56
+ def on_cvasgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#158
+ def on_def(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_defined?(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#167
+ def on_defs(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_dstr(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_dsym(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_eflipflop(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#286
+ def on_empty_else(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_ensure(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_erange(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_find_pattern(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_for(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_forward_arg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_forwarded_kwrestarg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_forwarded_restarg(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#32
+ def on_gvar(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#56
+ def on_gvasgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_hash(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_hash_pattern(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_if(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_if_guard(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_iflipflop(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_in_match(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_in_pattern(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_index(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_indexasgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_irange(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#32
+ def on_ivar(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#56
+ def on_ivasgn(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_kwarg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_kwargs(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_kwbegin(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_kwoptarg(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_kwrestarg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_kwsplat(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_lambda(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#32
+ def on_lvar(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#56
+ def on_lvasgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_masgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_match_alt(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_match_as(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_match_current_line(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_match_pattern(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_match_pattern_p(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_match_rest(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#32
+ def on_match_var(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_match_with_lvasgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_mlhs(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_module(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_next(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_not(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#32
+ def on_nth_ref(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#196
+ def on_numblock(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#68
+ def on_op_asgn(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_optarg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_or(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_or_asgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_pair(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_pin(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_postexe(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_preexe(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#130
+ def on_procarg0(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_redo(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_regexp(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_resbody(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_rescue(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_restarg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_restarg_expr(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_retry(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_return(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_sclass(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#179
+ def on_send(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#116
+ def on_shadowarg(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_splat(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_super(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_undef(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_unless_guard(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_until(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_until_post(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#27
+ def on_var(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#43
+ def on_vasgn(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_when(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_while(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_while_post(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_xstr(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def on_yield(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#279
+ def process_argument_node(node); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/ast/processor.rb#10
+ def process_regular_node(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#271
+ def process_var_asgn_node(node); end
+
+ # @api public
+ # @private
+ #
+ # source://parser//lib/parser/ast/processor.rb#263
+ def process_variable_node(node); end
+end
+
+# Base class for version-specific parsers.
+#
+# @api public
+#
+# source://parser//lib/parser/base.rb#16
+class Parser::Base < ::Racc::Parser
+ # @api public
+ # @param builder [Parser::Builders::Default] The AST builder to use.
+ # @return [Base] a new instance of Base
+ #
+ # source://parser//lib/parser/base.rb#126
+ def initialize(builder = T.unsafe(nil)); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#114
+ def builder; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#117
+ def context; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#119
+ def current_arg_stack; end
+
+ # @api public
+ # @return [Parser::Diagnostic::Engine]
+ #
+ # source://parser//lib/parser/base.rb#113
+ def diagnostics; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#112
+ def lexer; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#118
+ def max_numparam_stack; end
+
+ # Parses a source buffer and returns the AST, or `nil` in case of a non fatal error.
+ #
+ # @api public
+ # @param source_buffer [Parser::Source::Buffer] The source buffer to parse.
+ # @return [Parser::AST::Node, nil]
+ #
+ # source://parser//lib/parser/base.rb#186
+ def parse(source_buffer); end
+
+ # Parses a source buffer and returns the AST and the source code comments.
+ #
+ # @api public
+ # @return [Array]
+ # @see #parse
+ # @see Parser::Source::Comment#associate
+ #
+ # source://parser//lib/parser/base.rb#204
+ def parse_with_comments(source_buffer); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#121
+ def pattern_hash_keys; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#120
+ def pattern_variables; end
+
+ # Resets the state of the parser.
+ #
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#167
+ def reset; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#116
+ def source_buffer; end
+
+ # @api public
+ # @return [Parser::StaticEnvironment]
+ #
+ # source://parser//lib/parser/base.rb#115
+ def static_env; end
+
+ # Parses a source buffer and returns the AST, the source code comments,
+ # and the tokens emitted by the lexer. In case of a fatal error, a {SyntaxError}
+ # is raised, unless `recover` is true. In case of an error
+ # (non-fatal or recovered), `nil` is returned instead of the AST, and
+ # comments as well as tokens are only returned up to the location of
+ # the error.
+ #
+ # Currently, token stream format returned by #tokenize is not documented,
+ # but is considered part of a public API and only changed according
+ # to Semantic Versioning.
+ #
+ # However, note that the exact token composition of various constructs
+ # might vary. For example, a string `"foo"` is represented equally well
+ # by `:tSTRING_BEG " :tSTRING_CONTENT foo :tSTRING_END "` and
+ # `:tSTRING "foo"`; such details must not be relied upon.
+ #
+ # @api public
+ # @param source_buffer [Parser::Source::Buffer]
+ # @param recover [Boolean] If true, recover from syntax errors. False by default.
+ # @return [Array]
+ #
+ # source://parser//lib/parser/base.rb#233
+ def tokenize(source_buffer, recover = T.unsafe(nil)); end
+
+ private
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#257
+ def check_kwarg_name(name_t); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#266
+ def diagnostic(level, reason, arguments, location_t, highlights_ts = T.unsafe(nil)); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#251
+ def next_token; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#282
+ def on_error(error_token_id, error_value, value_stack); end
+
+ class << self
+ # @api public
+ # @return [Parser::Base] parser with the default options set.
+ #
+ # source://parser//lib/parser/base.rb#84
+ def default_parser; end
+
+ # Parses a string of Ruby code and returns the AST. If the source
+ # cannot be parsed, {SyntaxError} is raised and a diagnostic is
+ # printed to `stderr`.
+ #
+ # @api public
+ # @example
+ # Parser::Base.parse('puts "hello"')
+ # @param string [String] The block of code to parse.
+ # @param file [String] The name of the file the code originated from.
+ # @param line [Numeric] The initial line number.
+ # @return [Parser::AST::Node]
+ #
+ # source://parser//lib/parser/base.rb#30
+ def parse(string, file = T.unsafe(nil), line = T.unsafe(nil)); end
+
+ # Parses Ruby source code by reading it from a file. If the source
+ # cannot be parsed, {SyntaxError} is raised and a diagnostic is
+ # printed to `stderr`.
+ #
+ # @api public
+ # @param filename [String] Path to the file to parse.
+ # @return [Parser::AST::Node]
+ # @see #parse
+ #
+ # source://parser//lib/parser/base.rb#64
+ def parse_file(filename); end
+
+ # Parses Ruby source code by reading it from a file and returns the AST and
+ # comments. If the source cannot be parsed, {SyntaxError} is raised and a
+ # diagnostic is printed to `stderr`.
+ #
+ # @api public
+ # @param filename [String] Path to the file to parse.
+ # @return [Array]
+ # @see #parse
+ #
+ # source://parser//lib/parser/base.rb#77
+ def parse_file_with_comments(filename); end
+
+ # Parses a string of Ruby code and returns the AST and comments. If the
+ # source cannot be parsed, {SyntaxError} is raised and a diagnostic is
+ # printed to `stderr`.
+ #
+ # @api public
+ # @example
+ # Parser::Base.parse_with_comments('puts "hello"')
+ # @param string [String] The block of code to parse.
+ # @param file [String] The name of the file the code originated from.
+ # @param line [Numeric] The initial line number.
+ # @return [Array]
+ #
+ # source://parser//lib/parser/base.rb#49
+ def parse_with_comments(string, file = T.unsafe(nil), line = T.unsafe(nil)); end
+
+ private
+
+ # @api public
+ #
+ # source://parser//lib/parser/base.rb#97
+ def setup_source_buffer(file, line, string, encoding); end
+ end
+end
+
+# @api public
+#
+# source://parser//lib/parser.rb#77
+module Parser::Builders; end
+
+# source://parser//lib/parser/builders/default.rb#8
+class Parser::Builders::Default
+ # source://parser//lib/parser/builders/default.rb#243
+ def initialize; end
+
+ # source://parser//lib/parser/builders/default.rb#690
+ def __ENCODING__(__ENCODING__t); end
+
+ # source://parser//lib/parser/builders/default.rb#348
+ def __FILE__(__FILE__t); end
+
+ # source://parser//lib/parser/builders/default.rb#312
+ def __LINE__(__LINE__t); end
+
+ # source://parser//lib/parser/builders/default.rb#616
+ def accessible(node); end
+
+ # source://parser//lib/parser/builders/default.rb#865
+ def alias(alias_t, to, from); end
+
+ # source://parser//lib/parser/builders/default.rb#904
+ def arg(name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#994
+ def arg_expr(expr); end
+
+ # source://parser//lib/parser/builders/default.rb#874
+ def args(begin_t, args, end_t, check_args = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#440
+ def array(begin_t, elements, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1577
+ def array_pattern(lbrack_t, elements, rbrack_t); end
+
+ # source://parser//lib/parser/builders/default.rb#754
+ def assign(lhs, eql_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#699
+ def assignable(node); end
+
+ # source://parser//lib/parser/builders/default.rb#540
+ def associate(begin_t, pairs, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1158
+ def attr_asgn(receiver, dot_t, selector_t); end
+
+ # source://parser//lib/parser/builders/default.rb#606
+ def back_ref(token); end
+
+ # source://parser//lib/parser/builders/default.rb#1422
+ def begin(begin_t, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1364
+ def begin_body(compound_stmt, rescue_bodies = T.unsafe(nil), else_t = T.unsafe(nil), else_ = T.unsafe(nil), ensure_t = T.unsafe(nil), ensure_ = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1440
+ def begin_keyword(begin_t, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1192
+ def binary_op(receiver, operator_t, arg); end
+
+ # source://parser//lib/parser/builders/default.rb#1109
+ def block(method_call, begin_t, args, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1144
+ def block_pass(amper_t, arg); end
+
+ # source://parser//lib/parser/builders/default.rb#969
+ def blockarg(amper_t, name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1014
+ def blockarg_expr(amper_t, expr); end
+
+ # source://parser//lib/parser/builders/default.rb#1100
+ def call_lambda(lambda_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1083
+ def call_method(receiver, dot_t, selector_t, lparen_t = T.unsafe(nil), args = T.unsafe(nil), rparen_t = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1055
+ def call_type_for_dot(dot_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1297
+ def case(case_t, expr, when_bodies, else_t, else_body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1460
+ def case_match(case_t, expr, in_bodies, else_t, else_body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#343
+ def character(char_t); end
+
+ # source://parser//lib/parser/builders/default.rb#284
+ def complex(complex_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1410
+ def compstmt(statements); end
+
+ # source://parser//lib/parser/builders/default.rb#1273
+ def condition(cond_t, cond, then_t, if_true, else_t, if_false, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1279
+ def condition_mod(if_true, if_false, cond_t, cond); end
+
+ # source://parser//lib/parser/builders/default.rb#673
+ def const(name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#685
+ def const_fetch(scope, t_colon2, name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#678
+ def const_global(t_colon3, name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#750
+ def const_op_assignable(node); end
+
+ # source://parser//lib/parser/builders/default.rb#1607
+ def const_pattern(const, ldelim_t, pattern, rdelim_t); end
+
+ # source://parser//lib/parser/builders/default.rb#601
+ def cvar(token); end
+
+ # source://parser//lib/parser/builders/default.rb#388
+ def dedent_string(node, dedent_level); end
+
+ # source://parser//lib/parser/builders/default.rb#801
+ def def_class(class_t, name, lt_t, superclass, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#832
+ def def_endless_method(def_t, name_t, args, assignment_t, body); end
+
+ # source://parser//lib/parser/builders/default.rb#850
+ def def_endless_singleton(def_t, definee, dot_t, name_t, args, assignment_t, body); end
+
+ # source://parser//lib/parser/builders/default.rb#824
+ def def_method(def_t, name_t, args, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#814
+ def def_module(module_t, name, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#808
+ def def_sclass(class_t, lshft_t, expr, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#840
+ def def_singleton(def_t, definee, dot_t, name_t, args, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#237
+ def emit_file_line_as_literals; end
+
+ # source://parser//lib/parser/builders/default.rb#237
+ def emit_file_line_as_literals=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#265
+ def false(false_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1598
+ def find_pattern(lbrack_t, elements, rbrack_t); end
+
+ # source://parser//lib/parser/builders/default.rb#276
+ def float(float_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1318
+ def for(for_t, iterator, in_t, iteratee, do_t, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#900
+ def forward_arg(dots_t); end
+
+ # source://parser//lib/parser/builders/default.rb#890
+ def forward_only_args(begin_t, dots_t, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1071
+ def forwarded_args(dots_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1079
+ def forwarded_kwrestarg(dstar_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1075
+ def forwarded_restarg(star_t); end
+
+ # source://parser//lib/parser/builders/default.rb#596
+ def gvar(token); end
+
+ # source://parser//lib/parser/builders/default.rb#1571
+ def hash_pattern(lbrace_t, kwargs, rbrace_t); end
+
+ # source://parser//lib/parser/builders/default.rb#586
+ def ident(token); end
+
+ # source://parser//lib/parser/builders/default.rb#1487
+ def if_guard(if_t, if_body); end
+
+ # source://parser//lib/parser/builders/default.rb#1466
+ def in_match(lhs, in_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#1481
+ def in_pattern(in_t, pattern, guard, then_t, body); end
+
+ # source://parser//lib/parser/builders/default.rb#1167
+ def index(receiver, lbrack_t, indexes, rbrack_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1181
+ def index_asgn(receiver, lbrack_t, indexes, rbrack_t); end
+
+ # source://parser//lib/parser/builders/default.rb#272
+ def integer(integer_t); end
+
+ # source://parser//lib/parser/builders/default.rb#591
+ def ivar(token); end
+
+ # source://parser//lib/parser/builders/default.rb#1326
+ def keyword_cmd(type, keyword_t, lparen_t = T.unsafe(nil), args = T.unsafe(nil), rparen_t = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#931
+ def kwarg(name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#957
+ def kwnilarg(dstar_t, nil_t); end
+
+ # source://parser//lib/parser/builders/default.rb#938
+ def kwoptarg(name_t, value); end
+
+ # source://parser//lib/parser/builders/default.rb#945
+ def kwrestarg(dstar_t, name_t = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#535
+ def kwsplat(dstar_t, arg); end
+
+ # source://parser//lib/parser/builders/default.rb#1266
+ def logical_op(type, lhs, op_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#1304
+ def loop(type, keyword_t, cond, do_t, body, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1309
+ def loop_mod(type, body, keyword_t, cond); end
+
+ # source://parser//lib/parser/builders/default.rb#1621
+ def match_alt(left, pipe_t, right); end
+
+ # source://parser//lib/parser/builders/default.rb#1628
+ def match_as(value, assoc_t, as); end
+
+ # source://parser//lib/parser/builders/default.rb#1507
+ def match_hash_var(name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1521
+ def match_hash_var_from_str(begin_t, strings, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1659
+ def match_label(label_type, label); end
+
+ # source://parser//lib/parser/builders/default.rb#1635
+ def match_nil_pattern(dstar_t, nil_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1214
+ def match_op(receiver, match_t, arg); end
+
+ # source://parser//lib/parser/builders/default.rb#1640
+ def match_pair(label_type, label, value); end
+
+ # source://parser//lib/parser/builders/default.rb#1471
+ def match_pattern(lhs, match_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#1476
+ def match_pattern_p(lhs, match_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#1560
+ def match_rest(star_t, name_t = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1495
+ def match_var(name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1603
+ def match_with_trailing_comma(match, comma_t); end
+
+ # source://parser//lib/parser/builders/default.rb#792
+ def multi_assign(lhs, eql_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#787
+ def multi_lhs(begin_t, items, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#255
+ def nil(nil_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1242
+ def not_op(not_t, begin_t = T.unsafe(nil), receiver = T.unsafe(nil), end_t = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#611
+ def nth_ref(token); end
+
+ # source://parser//lib/parser/builders/default.rb#886
+ def numargs(max_numparam); end
+
+ # source://parser//lib/parser/builders/default.rb#1025
+ def objc_kwarg(kwname_t, assoc_t, name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1039
+ def objc_restarg(star_t, name = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1149
+ def objc_varargs(pair, rest_of_varargs); end
+
+ # source://parser//lib/parser/builders/default.rb#761
+ def op_assign(lhs, op_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#911
+ def optarg(name_t, eql_t, value); end
+
+ # source://parser//lib/parser/builders/default.rb#488
+ def pair(key, assoc_t, value); end
+
+ # source://parser//lib/parser/builders/default.rb#505
+ def pair_keyword(key_t, value); end
+
+ # source://parser//lib/parser/builders/default.rb#521
+ def pair_label(key_t); end
+
+ # source://parser//lib/parser/builders/default.rb#493
+ def pair_list_18(list); end
+
+ # source://parser//lib/parser/builders/default.rb#513
+ def pair_quoted(begin_t, parts, end_t, value); end
+
+ # source://parser//lib/parser/builders/default.rb#225
+ def parser; end
+
+ # source://parser//lib/parser/builders/default.rb#225
+ def parser=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#1616
+ def pin(pin_t, var); end
+
+ # source://parser//lib/parser/builders/default.rb#1349
+ def postexe(postexe_t, lbrace_t, compstmt, rbrace_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1344
+ def preexe(preexe_t, lbrace_t, compstmt, rbrace_t); end
+
+ # source://parser//lib/parser/builders/default.rb#979
+ def procarg0(arg); end
+
+ # source://parser//lib/parser/builders/default.rb#572
+ def range_exclusive(lhs, dot3_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#567
+ def range_inclusive(lhs, dot2_t, rhs); end
+
+ # source://parser//lib/parser/builders/default.rb#280
+ def rational(rational_t); end
+
+ # source://parser//lib/parser/builders/default.rb#426
+ def regexp_compose(begin_t, parts, end_t, options); end
+
+ # source://parser//lib/parser/builders/default.rb#417
+ def regexp_options(regopt_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1356
+ def rescue_body(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt); end
+
+ # source://parser//lib/parser/builders/default.rb#920
+ def restarg(star_t, name_t = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1003
+ def restarg_expr(star_t, expr = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#581
+ def self(token); end
+
+ # source://parser//lib/parser/builders/default.rb#962
+ def shadowarg(name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#445
+ def splat(star_t, arg = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#319
+ def string(string_t); end
+
+ # source://parser//lib/parser/builders/default.rb#329
+ def string_compose(begin_t, parts, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#324
+ def string_internal(string_t); end
+
+ # source://parser//lib/parser/builders/default.rb#355
+ def symbol(symbol_t); end
+
+ # source://parser//lib/parser/builders/default.rb#365
+ def symbol_compose(begin_t, parts, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#360
+ def symbol_internal(symbol_t); end
+
+ # source://parser//lib/parser/builders/default.rb#469
+ def symbols_compose(begin_t, parts, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1284
+ def ternary(cond, question_t, if_true, colon_t, if_false); end
+
+ # source://parser//lib/parser/builders/default.rb#260
+ def true(true_t); end
+
+ # source://parser//lib/parser/builders/default.rb#294
+ def unary_num(unary_t, numeric); end
+
+ # source://parser//lib/parser/builders/default.rb#1230
+ def unary_op(op_t, receiver); end
+
+ # source://parser//lib/parser/builders/default.rb#860
+ def undef_method(undef_t, names); end
+
+ # source://parser//lib/parser/builders/default.rb#1491
+ def unless_guard(unless_t, unless_body); end
+
+ # source://parser//lib/parser/builders/default.rb#1291
+ def when(when_t, patterns, then_t, body); end
+
+ # source://parser//lib/parser/builders/default.rb#455
+ def word(parts); end
+
+ # source://parser//lib/parser/builders/default.rb#464
+ def words_compose(begin_t, parts, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#381
+ def xstring_compose(begin_t, parts, end_t); end
+
+ private
+
+ # source://parser//lib/parser/builders/default.rb#1808
+ def arg_name_collides?(this_name, that_name); end
+
+ # source://parser//lib/parser/builders/default.rb#2004
+ def arg_prefix_map(op_t, name_t = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1978
+ def binary_op_map(left_e, op_t, right_e); end
+
+ # source://parser//lib/parser/builders/default.rb#2106
+ def block_map(receiver_l, begin_t, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1783
+ def check_assignment_to_numparam(name, loc); end
+
+ # source://parser//lib/parser/builders/default.rb#1675
+ def check_condition(cond); end
+
+ # source://parser//lib/parser/builders/default.rb#1754
+ def check_duplicate_arg(this_arg, map = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1729
+ def check_duplicate_args(args, map = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1841
+ def check_duplicate_pattern_key(name, loc); end
+
+ # source://parser//lib/parser/builders/default.rb#1831
+ def check_duplicate_pattern_variable(name, loc); end
+
+ # source://parser//lib/parser/builders/default.rb#1823
+ def check_lvar_name(name, loc); end
+
+ # source://parser//lib/parser/builders/default.rb#1798
+ def check_reserved_for_numparam(name, loc); end
+
+ # source://parser//lib/parser/builders/default.rb#2263
+ def collapse_string_parts?(parts); end
+
+ # source://parser//lib/parser/builders/default.rb#1929
+ def collection_map(begin_t, parts, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#2133
+ def condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1964
+ def constant_map(scope, colon2_t, name_t); end
+
+ # source://parser//lib/parser/builders/default.rb#2037
+ def definition_map(keyword_t, operator_t, name_t, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1870
+ def delimited_string_map(string_t); end
+
+ # source://parser//lib/parser/builders/default.rb#2285
+ def diagnostic(type, reason, arguments, location, highlights = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#2177
+ def eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e); end
+
+ # source://parser//lib/parser/builders/default.rb#2043
+ def endless_definition_map(keyword_t, operator_t, name_t, assignment_t, body_e); end
+
+ # source://parser//lib/parser/builders/default.rb#1925
+ def expr_map(loc); end
+
+ # source://parser//lib/parser/builders/default.rb#2158
+ def for_map(keyword_t, in_t, begin_t, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#2205
+ def guard_map(keyword_t, guard_body_e); end
+
+ # source://parser//lib/parser/builders/default.rb#2095
+ def index_map(receiver_e, lbrack_t, rbrack_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1861
+ def join_exprs(left_expr, right_expr); end
+
+ # source://parser//lib/parser/builders/default.rb#2111
+ def keyword_map(keyword_t, begin_t, args, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#2128
+ def keyword_mod_map(pre_e, keyword_t, post_e); end
+
+ # source://parser//lib/parser/builders/default.rb#2014
+ def kwarg_map(name_t, value_e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#2316
+ def kwargs?(node); end
+
+ # source://parser//lib/parser/builders/default.rb#2280
+ def loc(token); end
+
+ # source://parser//lib/parser/builders/default.rb#2027
+ def module_definition_map(keyword_t, name_e, operator_t, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#1853
+ def n(type, children, source_map); end
+
+ # source://parser//lib/parser/builders/default.rb#1857
+ def n0(type, source_map); end
+
+ # source://parser//lib/parser/builders/default.rb#288
+ def numeric(kind, token); end
+
+ # source://parser//lib/parser/builders/default.rb#1895
+ def pair_keyword_map(key_t, value_e); end
+
+ # source://parser//lib/parser/builders/default.rb#1910
+ def pair_quoted_map(begin_t, end_t, value_e); end
+
+ # source://parser//lib/parser/builders/default.rb#1881
+ def prefix_string_map(symbol); end
+
+ # source://parser//lib/parser/builders/default.rb#1992
+ def range_map(start_e, op_t, end_e); end
+
+ # source://parser//lib/parser/builders/default.rb#1959
+ def regexp_map(begin_t, end_t, options_e); end
+
+ # source://parser//lib/parser/builders/default.rb#2164
+ def rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e); end
+
+ # source://parser//lib/parser/builders/default.rb#2306
+ def rewrite_hash_args_to_kwargs(args); end
+
+ # source://parser//lib/parser/builders/default.rb#2077
+ def send_binary_op_map(lhs_e, selector_t, rhs_e); end
+
+ # source://parser//lib/parser/builders/default.rb#2100
+ def send_index_map(receiver_e, lbrack_t, rbrack_t); end
+
+ # source://parser//lib/parser/builders/default.rb#2051
+ def send_map(receiver_e, dot_t, selector_t, begin_t = T.unsafe(nil), args = T.unsafe(nil), end_t = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#2083
+ def send_unary_op_map(selector_t, arg_e); end
+
+ # source://parser//lib/parser/builders/default.rb#2236
+ def static_regexp(parts, options); end
+
+ # source://parser//lib/parser/builders/default.rb#2256
+ def static_regexp_node(node); end
+
+ # source://parser//lib/parser/builders/default.rb#2219
+ def static_string(nodes); end
+
+ # source://parser//lib/parser/builders/default.rb#1945
+ def string_map(begin_t, parts, end_t); end
+
+ # source://parser//lib/parser/builders/default.rb#2272
+ def string_value(token); end
+
+ # source://parser//lib/parser/builders/default.rb#2153
+ def ternary_map(begin_e, question_t, mid_e, colon_t, end_e); end
+
+ # source://parser//lib/parser/builders/default.rb#1866
+ def token_map(token); end
+
+ # source://parser//lib/parser/builders/default.rb#1982
+ def unary_op_map(op_t, arg_e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/builders/default.rb#1890
+ def unquoted_map(token); end
+
+ # source://parser//lib/parser/builders/default.rb#2294
+ def validate_definee(definee); end
+
+ # source://parser//lib/parser/builders/default.rb#1768
+ def validate_no_forward_arg_after_restarg(args); end
+
+ # source://parser//lib/parser/builders/default.rb#2268
+ def value(token); end
+
+ # source://parser//lib/parser/builders/default.rb#2071
+ def var_send_map(variable_e); end
+
+ # source://parser//lib/parser/builders/default.rb#1974
+ def variable_map(name_t); end
+
+ class << self
+ # source://parser//lib/parser/builders/default.rb#97
+ def emit_arg_inside_procarg0; end
+
+ # source://parser//lib/parser/builders/default.rb#97
+ def emit_arg_inside_procarg0=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#58
+ def emit_encoding; end
+
+ # source://parser//lib/parser/builders/default.rb#58
+ def emit_encoding=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#126
+ def emit_forward_arg; end
+
+ # source://parser//lib/parser/builders/default.rb#126
+ def emit_forward_arg=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#80
+ def emit_index; end
+
+ # source://parser//lib/parser/builders/default.rb#80
+ def emit_index=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#174
+ def emit_kwargs; end
+
+ # source://parser//lib/parser/builders/default.rb#174
+ def emit_kwargs=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#22
+ def emit_lambda; end
+
+ # source://parser//lib/parser/builders/default.rb#22
+ def emit_lambda=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#203
+ def emit_match_pattern; end
+
+ # source://parser//lib/parser/builders/default.rb#203
+ def emit_match_pattern=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#40
+ def emit_procarg0; end
+
+ # source://parser//lib/parser/builders/default.rb#40
+ def emit_procarg0=(_arg0); end
+
+ # source://parser//lib/parser/builders/default.rb#211
+ def modernize; end
+ end
+end
+
+# {Parser::ClobberingError} is raised when {Parser::Source::Rewriter}
+# detects a clobbering rewrite action. This class inherits {RuntimeError}
+# rather than {StandardError} for backward compatibility.
+#
+# @api public
+#
+# source://parser//lib/parser/clobbering_error.rb#11
+class Parser::ClobberingError < ::RuntimeError; end
+
+# Context of parsing that is represented by a stack of scopes.
+#
+# Supported states:
+# + :class - in the class body (class A; end)
+# + :module - in the module body (module M; end)
+# + :sclass - in the singleton class body (class << obj; end)
+# + :def - in the method body (def m; end)
+# + :defs - in the singleton method body (def self.m; end)
+# + :def_open_args - in the arglist of the method definition
+# keep in mind that it's set **only** after reducing the first argument,
+# if you need to handle the first argument check `lex_state == expr_fname`
+# + :block - in the block body (tap {})
+# + :lambda - in the lambda body (-> {})
+#
+# source://parser//lib/parser/context.rb#18
+class Parser::Context
+ # @return [Context] a new instance of Context
+ #
+ # source://parser//lib/parser/context.rb#29
+ def initialize; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_argdef; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_argdef=(_arg0); end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_block; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_block=(_arg0); end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_class; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_class=(_arg0); end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_def; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_def=(_arg0); end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_defined; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_defined=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/context.rb#45
+ def in_dynamic_block?; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_kwarg; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_kwarg=(_arg0); end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_lambda; end
+
+ # source://parser//lib/parser/context.rb#43
+ def in_lambda=(_arg0); end
+
+ # source://parser//lib/parser/context.rb#33
+ def reset; end
+end
+
+# source://parser//lib/parser/context.rb#19
+Parser::Context::FLAGS = T.let(T.unsafe(nil), Array)
+
+# Stack that holds names of current arguments,
+# i.e. while parsing
+# def m1(a = (def m2(b = def m3(c = 1); end); end)); end
+# ^
+# stack is [:a, :b, :c]
+#
+# Emulates `p->cur_arg` in MRI's parse.y
+#
+# @api private
+#
+# source://parser//lib/parser/current_arg_stack.rb#14
+class Parser::CurrentArgStack
+ # @api private
+ # @return [CurrentArgStack] a new instance of CurrentArgStack
+ #
+ # source://parser//lib/parser/current_arg_stack.rb#17
+ def initialize; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/current_arg_stack.rb#22
+ def empty?; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/current_arg_stack.rb#34
+ def pop; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/current_arg_stack.rb#26
+ def push(value); end
+
+ # @api private
+ #
+ # source://parser//lib/parser/current_arg_stack.rb#38
+ def reset; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/current_arg_stack.rb#30
+ def set(value); end
+
+ # @api private
+ #
+ # source://parser//lib/parser/current_arg_stack.rb#15
+ def stack; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/current_arg_stack.rb#42
+ def top; end
+end
+
+# @api private
+#
+# source://parser//lib/parser/deprecation.rb#7
+module Parser::Deprecation
+ # @api private
+ #
+ # source://parser//lib/parser/deprecation.rb#9
+ def warn_of_deprecation; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/deprecation.rb#8
+ def warned_of_deprecation=(_arg0); end
+end
+
+# @api public
+#
+# source://parser//lib/parser/diagnostic.rb#31
+class Parser::Diagnostic
+ # @api public
+ # @param level [Symbol]
+ # @param reason [Symbol]
+ # @param arguments [Hash]
+ # @param location [Parser::Source::Range]
+ # @param highlights [Array]
+ # @return [Diagnostic] a new instance of Diagnostic
+ #
+ # source://parser//lib/parser/diagnostic.rb#49
+ def initialize(level, reason, arguments, location, highlights = T.unsafe(nil)); end
+
+ # @api public
+ # @return [Symbol] extended arguments that describe the error
+ # @see Parser::MESSAGES
+ #
+ # source://parser//lib/parser/diagnostic.rb#39
+ def arguments; end
+
+ # Supplementary error-related source ranges.
+ #
+ # @api public
+ # @return [Array]
+ #
+ # source://parser//lib/parser/diagnostic.rb#40
+ def highlights; end
+
+ # @api public
+ # @return [Symbol] diagnostic level
+ # @see LEVELS
+ #
+ # source://parser//lib/parser/diagnostic.rb#39
+ def level; end
+
+ # Main error-related source range.
+ #
+ # @api public
+ # @return [Parser::Source::Range]
+ #
+ # source://parser//lib/parser/diagnostic.rb#40
+ def location; end
+
+ # @api public
+ # @return [String] the rendered message.
+ #
+ # source://parser//lib/parser/diagnostic.rb#69
+ def message; end
+
+ # @api public
+ # @return [Symbol] reason for error
+ # @see Parser::MESSAGES
+ #
+ # source://parser//lib/parser/diagnostic.rb#39
+ def reason; end
+
+ # Renders the diagnostic message as a clang-like diagnostic.
+ #
+ # @api public
+ # @example
+ # diagnostic.render # =>
+ # # [
+ # # "(fragment:0):1:5: error: unexpected token $end",
+ # # "foo +",
+ # # " ^"
+ # # ]
+ # @return [Array]
+ #
+ # source://parser//lib/parser/diagnostic.rb#86
+ def render; end
+
+ private
+
+ # If necessary, shrink a `Range` so as to include only the first line.
+ #
+ # @api public
+ # @return [Parser::Source::Range]
+ #
+ # source://parser//lib/parser/diagnostic.rb#142
+ def first_line_only(range); end
+
+ # If necessary, shrink a `Range` so as to include only the last line.
+ #
+ # @api public
+ # @return [Parser::Source::Range]
+ #
+ # source://parser//lib/parser/diagnostic.rb#155
+ def last_line_only(range); end
+
+ # Renders one source line in clang diagnostic style, with highlights.
+ #
+ # @api public
+ # @return [Array]
+ #
+ # source://parser//lib/parser/diagnostic.rb#110
+ def render_line(range, ellipsis = T.unsafe(nil), range_end = T.unsafe(nil)); end
+end
+
+# source://parser//lib/parser/diagnostic/engine.rb#36
+class Parser::Diagnostic::Engine
+ # source://parser//lib/parser/diagnostic/engine.rb#45
+ def initialize(consumer = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/diagnostic/engine.rb#39
+ def all_errors_are_fatal; end
+
+ # source://parser//lib/parser/diagnostic/engine.rb#39
+ def all_errors_are_fatal=(_arg0); end
+
+ # source://parser//lib/parser/diagnostic/engine.rb#37
+ def consumer; end
+
+ # source://parser//lib/parser/diagnostic/engine.rb#37
+ def consumer=(_arg0); end
+
+ # source://parser//lib/parser/diagnostic/engine.rb#40
+ def ignore_warnings; end
+
+ # source://parser//lib/parser/diagnostic/engine.rb#40
+ def ignore_warnings=(_arg0); end
+
+ # source://parser//lib/parser/diagnostic/engine.rb#64
+ def process(diagnostic); end
+
+ protected
+
+ # source://parser//lib/parser/diagnostic/engine.rb#86
+ def ignore?(diagnostic); end
+
+ # source://parser//lib/parser/diagnostic/engine.rb#97
+ def raise?(diagnostic); end
+end
+
+# Collection of the available diagnostic levels.
+#
+# @api public
+# @return [Array]
+#
+# source://parser//lib/parser/diagnostic.rb#37
+Parser::Diagnostic::LEVELS = T.let(T.unsafe(nil), Array)
+
+# line 3 "lib/parser/lexer.rl"
+#
+# === BEFORE YOU START ===
+#
+# Read the Ruby Hacking Guide chapter 11, available in English at
+# http://whitequark.org/blog/2013/04/01/ruby-hacking-guide-ch-11-finite-state-lexer/
+#
+# Remember two things about Ragel scanners:
+#
+# 1) Longest match wins.
+#
+# 2) If two matches have the same length, the first
+# in source code wins.
+#
+# General rules of making Ragel and Bison happy:
+#
+# * `p` (position) and `@te` contain the index of the character
+# they're pointing to ("current"), plus one. `@ts` contains the index
+# of the corresponding character. The code for extracting matched token is:
+#
+# @source_buffer.slice(@ts...@te)
+#
+# * If your input is `foooooooobar` and the rule is:
+#
+# 'f' 'o'+
+#
+# the result will be:
+#
+# foooooooobar
+# ^ ts=0 ^ p=te=9
+#
+# * A Ragel lexer action should not emit more than one token, unless
+# you know what you are doing.
+#
+# * All Ragel commands (fnext, fgoto, ...) end with a semicolon.
+#
+# * If an action emits the token and transitions to another state, use
+# these Ragel commands:
+#
+# emit($whatever)
+# fnext $next_state; fbreak;
+#
+# If you perform `fgoto` in an action which does not emit a token nor
+# rewinds the stream pointer, the parser's side-effectful,
+# context-sensitive lookahead actions will break in a hard to detect
+# and debug way.
+#
+# * If an action does not emit a token:
+#
+# fgoto $next_state;
+#
+# * If an action features lookbehind, i.e. matches characters with the
+# intent of passing them to another action:
+#
+# p = @ts - 1
+# fgoto $next_state;
+#
+# or, if the lookbehind consists of a single character:
+#
+# fhold; fgoto $next_state;
+#
+# * Ragel merges actions. So, if you have `e_lparen = '(' %act` and
+# `c_lparen = '('` and a lexer action `e_lparen | c_lparen`, the result
+# _will_ invoke the action `act`.
+#
+# e_something stands for "something with **e**mbedded action".
+#
+# * EOF is explicit and is matched by `c_eof`. If you want to introspect
+# the state of the lexer, add this rule to the state:
+#
+# c_eof => do_eof;
+#
+# * If you proceed past EOF, the lexer will complain:
+#
+# NoMethodError: undefined method `ord' for nil:NilClass
+#
+# source://parser//lib/parser/lexer-F1.rb#82
+class Parser::Lexer
+ # @return [Lexer] a new instance of Lexer
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8250
+ def initialize(version); end
+
+ # Return next token: [type, value].
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8410
+ def advance; end
+
+ # Returns the value of attribute cmdarg.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8244
+ def cmdarg; end
+
+ # Sets the attribute cmdarg
+ #
+ # @param value the value to set the attribute cmdarg to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8244
+ def cmdarg=(_arg0); end
+
+ # Returns the value of attribute cmdarg_stack.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8248
+ def cmdarg_stack; end
+
+ # Returns the value of attribute command_start.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8244
+ def command_start; end
+
+ # Sets the attribute command_start
+ #
+ # @param value the value to set the attribute command_start to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8244
+ def command_start=(_arg0); end
+
+ # Returns the value of attribute comments.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8246
+ def comments; end
+
+ # Sets the attribute comments
+ #
+ # @param value the value to set the attribute comments to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8246
+ def comments=(_arg0); end
+
+ # Returns the value of attribute cond.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8244
+ def cond; end
+
+ # Sets the attribute cond
+ #
+ # @param value the value to set the attribute cond to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8244
+ def cond=(_arg0); end
+
+ # Returns the value of attribute cond_stack.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8248
+ def cond_stack; end
+
+ # Returns the value of attribute context.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8244
+ def context; end
+
+ # Sets the attribute context
+ #
+ # @param value the value to set the attribute context to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8244
+ def context=(_arg0); end
+
+ # source://parser//lib/parser/lexer-F1.rb#8405
+ def dedent_level; end
+
+ # Returns the value of attribute diagnostics.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8240
+ def diagnostics; end
+
+ # Sets the attribute diagnostics
+ #
+ # @param value the value to set the attribute diagnostics to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8240
+ def diagnostics=(_arg0); end
+
+ # source://parser//lib/parser/lexer-F1.rb#8358
+ def encoding; end
+
+ # Returns the value of attribute force_utf32.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8242
+ def force_utf32; end
+
+ # Sets the attribute force_utf32
+ #
+ # @param value the value to set the attribute force_utf32 to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8242
+ def force_utf32=(_arg0); end
+
+ # Returns the value of attribute lambda_stack.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8248
+ def lambda_stack; end
+
+ # Returns the value of attribute paren_nest.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8248
+ def paren_nest; end
+
+ # source://parser//lib/parser/lexer-F1.rb#8392
+ def pop_cmdarg; end
+
+ # source://parser//lib/parser/lexer-F1.rb#8401
+ def pop_cond; end
+
+ # source://parser//lib/parser/lexer-F1.rb#8387
+ def push_cmdarg; end
+
+ # source://parser//lib/parser/lexer-F1.rb#8396
+ def push_cond; end
+
+ # source://parser//lib/parser/lexer-F1.rb#8281
+ def reset(reset_state = T.unsafe(nil)); end
+
+ # %
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8238
+ def source_buffer; end
+
+ # source://parser//lib/parser/lexer-F1.rb#8334
+ def source_buffer=(source_buffer); end
+
+ # source://parser//lib/parser/lexer-F1.rb#8379
+ def state; end
+
+ # source://parser//lib/parser/lexer-F1.rb#8383
+ def state=(state); end
+
+ # Returns the value of attribute static_env.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8241
+ def static_env; end
+
+ # Sets the attribute static_env
+ #
+ # @param value the value to set the attribute static_env to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8241
+ def static_env=(_arg0); end
+
+ # Returns the value of attribute tokens.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8246
+ def tokens; end
+
+ # Sets the attribute tokens
+ #
+ # @param value the value to set the attribute tokens to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8246
+ def tokens=(_arg0); end
+
+ # Returns the value of attribute version.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8248
+ def version; end
+
+ protected
+
+ # source://parser//lib/parser/lexer-F1.rb#14631
+ def arg_or_cmdarg(cmd_state); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14693
+ def check_ambiguous_slash(tm); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14655
+ def diagnostic(type, reason, arguments = T.unsafe(nil), location = T.unsafe(nil), highlights = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14661
+ def e_lbrace; end
+
+ # source://parser//lib/parser/lexer-F1.rb#14605
+ def emit(type, value = T.unsafe(nil), s = T.unsafe(nil), e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14714
+ def emit_class_var(ts = T.unsafe(nil), te = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14742
+ def emit_colon_with_digits(p, tm, diag_msg); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14639
+ def emit_comment(s = T.unsafe(nil), e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14651
+ def emit_comment_from_range(p, pe); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14621
+ def emit_do(do_block = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14704
+ def emit_global_var(ts = T.unsafe(nil), te = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14722
+ def emit_instance_var(ts = T.unsafe(nil), te = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14730
+ def emit_rbrace_rparen_rbrack; end
+
+ # source://parser//lib/parser/lexer-F1.rb#14752
+ def emit_singleton_class; end
+
+ # source://parser//lib/parser/lexer-F1.rb#14615
+ def emit_table(table, s = T.unsafe(nil), e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14670
+ def numeric_literal_int; end
+
+ # source://parser//lib/parser/lexer-F1.rb#14689
+ def on_newline(p); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14601
+ def range(s = T.unsafe(nil), e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-F1.rb#14592
+ def stack_pop; end
+
+ # source://parser//lib/parser/lexer-F1.rb#14597
+ def tok(s = T.unsafe(nil), e = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/lexer-F1.rb#14588
+ def version?(*versions); end
+
+ class << self
+ # Returns the value of attribute lex_en_expr_arg.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8186
+ def lex_en_expr_arg; end
+
+ # Sets the attribute lex_en_expr_arg
+ #
+ # @param value the value to set the attribute lex_en_expr_arg to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8186
+ def lex_en_expr_arg=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_beg.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8202
+ def lex_en_expr_beg; end
+
+ # Sets the attribute lex_en_expr_beg
+ #
+ # @param value the value to set the attribute lex_en_expr_beg to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8202
+ def lex_en_expr_beg=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_cmdarg.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8190
+ def lex_en_expr_cmdarg; end
+
+ # Sets the attribute lex_en_expr_cmdarg
+ #
+ # @param value the value to set the attribute lex_en_expr_cmdarg to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8190
+ def lex_en_expr_cmdarg=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_dot.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8182
+ def lex_en_expr_dot; end
+
+ # Sets the attribute lex_en_expr_dot
+ #
+ # @param value the value to set the attribute lex_en_expr_dot to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8182
+ def lex_en_expr_dot=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_end.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8214
+ def lex_en_expr_end; end
+
+ # Sets the attribute lex_en_expr_end
+ #
+ # @param value the value to set the attribute lex_en_expr_end to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8214
+ def lex_en_expr_end=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_endarg.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8194
+ def lex_en_expr_endarg; end
+
+ # Sets the attribute lex_en_expr_endarg
+ #
+ # @param value the value to set the attribute lex_en_expr_endarg to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8194
+ def lex_en_expr_endarg=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_endfn.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8178
+ def lex_en_expr_endfn; end
+
+ # Sets the attribute lex_en_expr_endfn
+ #
+ # @param value the value to set the attribute lex_en_expr_endfn to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8178
+ def lex_en_expr_endfn=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_fname.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8174
+ def lex_en_expr_fname; end
+
+ # Sets the attribute lex_en_expr_fname
+ #
+ # @param value the value to set the attribute lex_en_expr_fname to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8174
+ def lex_en_expr_fname=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_labelarg.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8206
+ def lex_en_expr_labelarg; end
+
+ # Sets the attribute lex_en_expr_labelarg
+ #
+ # @param value the value to set the attribute lex_en_expr_labelarg to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8206
+ def lex_en_expr_labelarg=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_mid.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8198
+ def lex_en_expr_mid; end
+
+ # Sets the attribute lex_en_expr_mid
+ #
+ # @param value the value to set the attribute lex_en_expr_mid to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8198
+ def lex_en_expr_mid=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_value.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8210
+ def lex_en_expr_value; end
+
+ # Sets the attribute lex_en_expr_value
+ #
+ # @param value the value to set the attribute lex_en_expr_value to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8210
+ def lex_en_expr_value=(_arg0); end
+
+ # Returns the value of attribute lex_en_expr_variable.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8170
+ def lex_en_expr_variable; end
+
+ # Sets the attribute lex_en_expr_variable
+ #
+ # @param value the value to set the attribute lex_en_expr_variable to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8170
+ def lex_en_expr_variable=(_arg0); end
+
+ # Returns the value of attribute lex_en_inside_string.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8230
+ def lex_en_inside_string; end
+
+ # Sets the attribute lex_en_inside_string
+ #
+ # @param value the value to set the attribute lex_en_inside_string to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8230
+ def lex_en_inside_string=(_arg0); end
+
+ # Returns the value of attribute lex_en_leading_dot.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8218
+ def lex_en_leading_dot; end
+
+ # Sets the attribute lex_en_leading_dot
+ #
+ # @param value the value to set the attribute lex_en_leading_dot to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8218
+ def lex_en_leading_dot=(_arg0); end
+
+ # Returns the value of attribute lex_en_line_begin.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8226
+ def lex_en_line_begin; end
+
+ # Sets the attribute lex_en_line_begin
+ #
+ # @param value the value to set the attribute lex_en_line_begin to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8226
+ def lex_en_line_begin=(_arg0); end
+
+ # Returns the value of attribute lex_en_line_comment.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8222
+ def lex_en_line_comment; end
+
+ # Sets the attribute lex_en_line_comment
+ #
+ # @param value the value to set the attribute lex_en_line_comment to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8222
+ def lex_en_line_comment=(_arg0); end
+
+ # Returns the value of attribute lex_error.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8165
+ def lex_error; end
+
+ # Sets the attribute lex_error
+ #
+ # @param value the value to set the attribute lex_error to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8165
+ def lex_error=(_arg0); end
+
+ # Returns the value of attribute lex_start.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8161
+ def lex_start; end
+
+ # Sets the attribute lex_start
+ #
+ # @param value the value to set the attribute lex_start to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8161
+ def lex_start=(_arg0); end
+
+ private
+
+ # Returns the value of attribute _lex_eof_trans.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8064
+ def _lex_eof_trans; end
+
+ # Sets the attribute _lex_eof_trans
+ #
+ # @param value the value to set the attribute _lex_eof_trans to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#8064
+ def _lex_eof_trans=(_arg0); end
+
+ # Returns the value of attribute _lex_from_state_actions.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#7967
+ def _lex_from_state_actions; end
+
+ # Sets the attribute _lex_from_state_actions
+ #
+ # @param value the value to set the attribute _lex_from_state_actions to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#7967
+ def _lex_from_state_actions=(_arg0); end
+
+ # Returns the value of attribute _lex_index_offsets.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#461
+ def _lex_index_offsets; end
+
+ # Sets the attribute _lex_index_offsets
+ #
+ # @param value the value to set the attribute _lex_index_offsets to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#461
+ def _lex_index_offsets=(_arg0); end
+
+ # Returns the value of attribute _lex_indicies.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#558
+ def _lex_indicies; end
+
+ # Sets the attribute _lex_indicies
+ #
+ # @param value the value to set the attribute _lex_indicies to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#558
+ def _lex_indicies=(_arg0); end
+
+ # Returns the value of attribute _lex_key_spans.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#364
+ def _lex_key_spans; end
+
+ # Sets the attribute _lex_key_spans
+ #
+ # @param value the value to set the attribute _lex_key_spans to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#364
+ def _lex_key_spans=(_arg0); end
+
+ # Returns the value of attribute _lex_to_state_actions.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#7870
+ def _lex_to_state_actions; end
+
+ # Sets the attribute _lex_to_state_actions
+ #
+ # @param value the value to set the attribute _lex_to_state_actions to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#7870
+ def _lex_to_state_actions=(_arg0); end
+
+ # Returns the value of attribute _lex_trans_actions.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#7722
+ def _lex_trans_actions; end
+
+ # Sets the attribute _lex_trans_actions
+ #
+ # @param value the value to set the attribute _lex_trans_actions to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#7722
+ def _lex_trans_actions=(_arg0); end
+
+ # Returns the value of attribute _lex_trans_keys.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#87
+ def _lex_trans_keys; end
+
+ # Sets the attribute _lex_trans_keys
+ #
+ # @param value the value to set the attribute _lex_trans_keys to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#87
+ def _lex_trans_keys=(_arg0); end
+
+ # Returns the value of attribute _lex_trans_targs.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#7574
+ def _lex_trans_targs; end
+
+ # Sets the attribute _lex_trans_targs
+ #
+ # @param value the value to set the attribute _lex_trans_targs to.
+ #
+ # source://parser//lib/parser/lexer-F1.rb#7574
+ def _lex_trans_targs=(_arg0); end
+ end
+end
+
+# source://parser//lib/parser/lexer/dedenter.rb#5
+class Parser::Lexer::Dedenter
+ # source://parser//lib/parser/lexer/dedenter.rb#9
+ def initialize(dedent_level); end
+
+ # source://parser//lib/parser/lexer/dedenter.rb#36
+ def dedent(string); end
+
+ # source://parser//lib/parser/lexer/dedenter.rb#83
+ def interrupt; end
+end
+
+# source://parser//lib/parser/lexer/dedenter.rb#7
+Parser::Lexer::Dedenter::TAB_WIDTH = T.let(T.unsafe(nil), Integer)
+
+# source://parser//lib/parser/lexer-F1.rb#14799
+Parser::Lexer::ESCAPE_WHITESPACE = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer-F1.rb#14785
+Parser::Lexer::KEYWORDS = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer-F1.rb#14792
+Parser::Lexer::KEYWORDS_BEGIN = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer-F1.rb#8362
+Parser::Lexer::LEX_STATES = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer/literal.rb#6
+class Parser::Lexer::Literal
+ # source://parser//lib/parser/lexer/literal.rb#40
+ def initialize(lexer, str_type, delimiter, str_s, heredoc_e = T.unsafe(nil), indent = T.unsafe(nil), dedent_body = T.unsafe(nil), label_allowed = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer/literal.rb#114
+ def backslash_delimited?; end
+
+ # source://parser//lib/parser/lexer/literal.rb#37
+ def dedent_level; end
+
+ # source://parser//lib/parser/lexer/literal.rb#189
+ def end_interp_brace_and_try_closing; end
+
+ # source://parser//lib/parser/lexer/literal.rb#216
+ def extend_content; end
+
+ # source://parser//lib/parser/lexer/literal.rb#220
+ def extend_space(ts, te); end
+
+ # source://parser//lib/parser/lexer/literal.rb#195
+ def extend_string(string, ts, te); end
+
+ # source://parser//lib/parser/lexer/literal.rb#202
+ def flush_string; end
+
+ # source://parser//lib/parser/lexer/literal.rb#102
+ def heredoc?; end
+
+ # source://parser//lib/parser/lexer/literal.rb#37
+ def heredoc_e; end
+
+ # source://parser//lib/parser/lexer/literal.rb#166
+ def infer_indent_level(line); end
+
+ # source://parser//lib/parser/lexer/literal.rb#89
+ def interpolate?; end
+
+ # source://parser//lib/parser/lexer/literal.rb#122
+ def munge_escape?(character); end
+
+ # source://parser//lib/parser/lexer/literal.rb#132
+ def nest_and_try_closing(delimiter, ts, te, lookahead = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer/literal.rb#106
+ def plain_heredoc?; end
+
+ # source://parser//lib/parser/lexer/literal.rb#98
+ def regexp?; end
+
+ # source://parser//lib/parser/lexer/literal.rb#38
+ def saved_herebody_s; end
+
+ # source://parser//lib/parser/lexer/literal.rb#38
+ def saved_herebody_s=(_arg0); end
+
+ # source://parser//lib/parser/lexer/literal.rb#110
+ def squiggly_heredoc?; end
+
+ # source://parser//lib/parser/lexer/literal.rb#185
+ def start_interp_brace; end
+
+ # source://parser//lib/parser/lexer/literal.rb#37
+ def str_s; end
+
+ # source://parser//lib/parser/lexer/literal.rb#230
+ def supports_line_continuation_via_slash?; end
+
+ # source://parser//lib/parser/lexer/literal.rb#118
+ def type; end
+
+ # source://parser//lib/parser/lexer/literal.rb#93
+ def words?; end
+
+ protected
+
+ # source://parser//lib/parser/lexer/literal.rb#248
+ def clear_buffer; end
+
+ # source://parser//lib/parser/lexer/literal.rb#244
+ def coerce_encoding(string); end
+
+ # source://parser//lib/parser/lexer/literal.rb#236
+ def delimiter?(delimiter); end
+
+ # source://parser//lib/parser/lexer/literal.rb#264
+ def emit(token, type, s, e); end
+
+ # source://parser//lib/parser/lexer/literal.rb#259
+ def emit_start_tok; end
+end
+
+# source://parser//lib/parser/lexer/literal.rb#7
+Parser::Lexer::Literal::DELIMITERS = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer/literal.rb#9
+Parser::Lexer::Literal::TYPES = T.let(T.unsafe(nil), Hash)
+
+# Mapping of strings to parser tokens.
+#
+# source://parser//lib/parser/lexer-F1.rb#14759
+Parser::Lexer::PUNCTUATION = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer-F1.rb#14779
+Parser::Lexer::PUNCTUATION_BEGIN = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer/stack_state.rb#5
+class Parser::Lexer::StackState
+ # source://parser//lib/parser/lexer/stack_state.rb#6
+ def initialize(name); end
+
+ # source://parser//lib/parser/lexer/stack_state.rb#34
+ def active?; end
+
+ # source://parser//lib/parser/lexer/stack_state.rb#11
+ def clear; end
+
+ # source://parser//lib/parser/lexer/stack_state.rb#38
+ def empty?; end
+
+ # source://parser//lib/parser/lexer/stack_state.rb#42
+ def inspect; end
+
+ # source://parser//lib/parser/lexer/stack_state.rb#29
+ def lexpop; end
+
+ # source://parser//lib/parser/lexer/stack_state.rb#22
+ def pop; end
+
+ # source://parser//lib/parser/lexer/stack_state.rb#15
+ def push(bit); end
+
+ # source://parser//lib/parser/lexer/stack_state.rb#42
+ def to_s; end
+end
+
+# line 3 "lib/parser/lexer-strings.rl"
+#
+# source://parser//lib/parser/lexer-strings.rb#6
+class Parser::LexerStrings
+ # @return [LexerStrings] a new instance of LexerStrings
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3300
+ def initialize(lexer, version); end
+
+ # source://parser//lib/parser/lexer-strings.rb#3339
+ def advance(p); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5069
+ def close_interp_on_current_literal(p); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5043
+ def continue_lexing(current_literal); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5092
+ def dedent_level; end
+
+ # Returns the value of attribute herebody_s.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3295
+ def herebody_s; end
+
+ # Sets the attribute herebody_s
+ #
+ # @param value the value to set the attribute herebody_s to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3295
+ def herebody_s=(_arg0); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5047
+ def literal; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5015
+ def next_state_for_literal(literal); end
+
+ # This hook is triggered by "main" lexer on every newline character
+ #
+ # source://parser//lib/parser/lexer-strings.rb#5100
+ def on_newline(p); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5051
+ def pop_literal; end
+
+ # === LITERAL STACK ===
+ #
+ # source://parser//lib/parser/lexer-strings.rb#5009
+ def push_literal(*args); end
+
+ # source://parser//lib/parser/lexer-strings.rb#4999
+ def read_character_constant(p); end
+
+ # source://parser//lib/parser/lexer-strings.rb#3314
+ def reset; end
+
+ # Set by "main" lexer
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3298
+ def source_buffer; end
+
+ # Set by "main" lexer
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3298
+ def source_buffer=(_arg0); end
+
+ # Set by "main" lexer
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3298
+ def source_pts; end
+
+ # Set by "main" lexer
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3298
+ def source_pts=(_arg0); end
+
+ protected
+
+ # source://parser//lib/parser/lexer-strings.rb#5397
+ def check_ambiguous_slash(tm); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5408
+ def check_invalid_escapes(p); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5136
+ def cond; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5132
+ def diagnostic(type, reason, arguments = T.unsafe(nil), location = T.unsafe(nil), highlights = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5128
+ def emit(type, value = T.unsafe(nil), s = T.unsafe(nil), e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5387
+ def emit_character_constant; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5364
+ def emit_interp_var(interp_var_kind); end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/lexer-strings.rb#5140
+ def emit_invalid_escapes?; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5291
+ def encode_escape(ord); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5375
+ def encode_escaped_char(p); end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/lexer-strings.rb#5112
+ def eof_codepoint?(point); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5210
+ def extend_interp_code(current_literal); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5225
+ def extend_interp_digit_var; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5355
+ def extend_interp_var(current_literal); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5234
+ def extend_string_eol_check_eof(current_literal, pe); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5251
+ def extend_string_eol_heredoc_intertwined(p); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5241
+ def extend_string_eol_heredoc_line; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5267
+ def extend_string_eol_words(current_literal, p); end
+
+ # String escaping
+ #
+ # source://parser//lib/parser/lexer-strings.rb#5154
+ def extend_string_escaped; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5287
+ def extend_string_for_token_range(current_literal, string); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5279
+ def extend_string_slice_end(lookahead); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5124
+ def range(s = T.unsafe(nil), e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5347
+ def read_post_meta_or_ctrl_char(p); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5379
+ def slash_c_char; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5383
+ def slash_m_char; end
+
+ # source://parser//lib/parser/lexer-strings.rb#5120
+ def tok(s = T.unsafe(nil), e = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5295
+ def unescape_char(p); end
+
+ # source://parser//lib/parser/lexer-strings.rb#5307
+ def unicode_points(p); end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/lexer-strings.rb#5116
+ def version?(*versions); end
+
+ class << self
+ # Returns the value of attribute lex_en_character.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3275
+ def lex_en_character; end
+
+ # Sets the attribute lex_en_character
+ #
+ # @param value the value to set the attribute lex_en_character to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3275
+ def lex_en_character=(_arg0); end
+
+ # Returns the value of attribute lex_en_interp_backslash_delimited.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3255
+ def lex_en_interp_backslash_delimited; end
+
+ # Sets the attribute lex_en_interp_backslash_delimited
+ #
+ # @param value the value to set the attribute lex_en_interp_backslash_delimited to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3255
+ def lex_en_interp_backslash_delimited=(_arg0); end
+
+ # Returns the value of attribute lex_en_interp_backslash_delimited_words.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3263
+ def lex_en_interp_backslash_delimited_words; end
+
+ # Sets the attribute lex_en_interp_backslash_delimited_words
+ #
+ # @param value the value to set the attribute lex_en_interp_backslash_delimited_words to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3263
+ def lex_en_interp_backslash_delimited_words=(_arg0); end
+
+ # Returns the value of attribute lex_en_interp_string.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3243
+ def lex_en_interp_string; end
+
+ # Sets the attribute lex_en_interp_string
+ #
+ # @param value the value to set the attribute lex_en_interp_string to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3243
+ def lex_en_interp_string=(_arg0); end
+
+ # Returns the value of attribute lex_en_interp_words.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3239
+ def lex_en_interp_words; end
+
+ # Sets the attribute lex_en_interp_words
+ #
+ # @param value the value to set the attribute lex_en_interp_words to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3239
+ def lex_en_interp_words=(_arg0); end
+
+ # Returns the value of attribute lex_en_plain_backslash_delimited.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3259
+ def lex_en_plain_backslash_delimited; end
+
+ # Sets the attribute lex_en_plain_backslash_delimited
+ #
+ # @param value the value to set the attribute lex_en_plain_backslash_delimited to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3259
+ def lex_en_plain_backslash_delimited=(_arg0); end
+
+ # Returns the value of attribute lex_en_plain_backslash_delimited_words.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3267
+ def lex_en_plain_backslash_delimited_words; end
+
+ # Sets the attribute lex_en_plain_backslash_delimited_words
+ #
+ # @param value the value to set the attribute lex_en_plain_backslash_delimited_words to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3267
+ def lex_en_plain_backslash_delimited_words=(_arg0); end
+
+ # Returns the value of attribute lex_en_plain_string.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3251
+ def lex_en_plain_string; end
+
+ # Sets the attribute lex_en_plain_string
+ #
+ # @param value the value to set the attribute lex_en_plain_string to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3251
+ def lex_en_plain_string=(_arg0); end
+
+ # Returns the value of attribute lex_en_plain_words.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3247
+ def lex_en_plain_words; end
+
+ # Sets the attribute lex_en_plain_words
+ #
+ # @param value the value to set the attribute lex_en_plain_words to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3247
+ def lex_en_plain_words=(_arg0); end
+
+ # Returns the value of attribute lex_en_regexp_modifiers.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3271
+ def lex_en_regexp_modifiers; end
+
+ # Sets the attribute lex_en_regexp_modifiers
+ #
+ # @param value the value to set the attribute lex_en_regexp_modifiers to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3271
+ def lex_en_regexp_modifiers=(_arg0); end
+
+ # Returns the value of attribute lex_en_unknown.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3279
+ def lex_en_unknown; end
+
+ # Sets the attribute lex_en_unknown
+ #
+ # @param value the value to set the attribute lex_en_unknown to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3279
+ def lex_en_unknown=(_arg0); end
+
+ # Returns the value of attribute lex_error.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3234
+ def lex_error; end
+
+ # Sets the attribute lex_error
+ #
+ # @param value the value to set the attribute lex_error to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3234
+ def lex_error=(_arg0); end
+
+ # Returns the value of attribute lex_start.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3230
+ def lex_start; end
+
+ # Sets the attribute lex_start
+ #
+ # @param value the value to set the attribute lex_start to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3230
+ def lex_start=(_arg0); end
+
+ private
+
+ # Returns the value of attribute _lex_actions.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#11
+ def _lex_actions; end
+
+ # Sets the attribute _lex_actions
+ #
+ # @param value the value to set the attribute _lex_actions to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#11
+ def _lex_actions=(_arg0); end
+
+ # Returns the value of attribute _lex_eof_trans.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3184
+ def _lex_eof_trans; end
+
+ # Sets the attribute _lex_eof_trans
+ #
+ # @param value the value to set the attribute _lex_eof_trans to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3184
+ def _lex_eof_trans=(_arg0); end
+
+ # Returns the value of attribute _lex_from_state_actions.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3138
+ def _lex_from_state_actions; end
+
+ # Sets the attribute _lex_from_state_actions
+ #
+ # @param value the value to set the attribute _lex_from_state_actions to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3138
+ def _lex_from_state_actions=(_arg0); end
+
+ # Returns the value of attribute _lex_index_offsets.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#244
+ def _lex_index_offsets; end
+
+ # Sets the attribute _lex_index_offsets
+ #
+ # @param value the value to set the attribute _lex_index_offsets to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#244
+ def _lex_index_offsets=(_arg0); end
+
+ # Returns the value of attribute _lex_indicies.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#290
+ def _lex_indicies; end
+
+ # Sets the attribute _lex_indicies
+ #
+ # @param value the value to set the attribute _lex_indicies to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#290
+ def _lex_indicies=(_arg0); end
+
+ # Returns the value of attribute _lex_key_spans.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#198
+ def _lex_key_spans; end
+
+ # Sets the attribute _lex_key_spans
+ #
+ # @param value the value to set the attribute _lex_key_spans to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#198
+ def _lex_key_spans=(_arg0); end
+
+ # Returns the value of attribute _lex_to_state_actions.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3092
+ def _lex_to_state_actions; end
+
+ # Sets the attribute _lex_to_state_actions
+ #
+ # @param value the value to set the attribute _lex_to_state_actions to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3092
+ def _lex_to_state_actions=(_arg0); end
+
+ # Returns the value of attribute _lex_trans_actions.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3029
+ def _lex_trans_actions; end
+
+ # Sets the attribute _lex_trans_actions
+ #
+ # @param value the value to set the attribute _lex_trans_actions to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#3029
+ def _lex_trans_actions=(_arg0); end
+
+ # Returns the value of attribute _lex_trans_keys.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#76
+ def _lex_trans_keys; end
+
+ # Sets the attribute _lex_trans_keys
+ #
+ # @param value the value to set the attribute _lex_trans_keys to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#76
+ def _lex_trans_keys=(_arg0); end
+
+ # Returns the value of attribute _lex_trans_targs.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#2966
+ def _lex_trans_targs; end
+
+ # Sets the attribute _lex_trans_targs
+ #
+ # @param value the value to set the attribute _lex_trans_targs to.
+ #
+ # source://parser//lib/parser/lexer-strings.rb#2966
+ def _lex_trans_targs=(_arg0); end
+ end
+end
+
+# %
+#
+# source://parser//lib/parser/lexer-strings.rb#3287
+Parser::LexerStrings::ESCAPES = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer-strings.rb#5414
+Parser::LexerStrings::ESCAPE_WHITESPACE = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer-strings.rb#3332
+Parser::LexerStrings::LEX_STATES = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/lexer-strings.rb#3293
+Parser::LexerStrings::REGEXP_META_CHARACTERS = T.let(T.unsafe(nil), Regexp)
+
+# Diagnostic messages (errors, warnings and notices) that can be generated.
+#
+# @api public
+# @see Diagnostic
+#
+# source://parser//lib/parser/messages.rb#11
+Parser::MESSAGES = T.let(T.unsafe(nil), Hash)
+
+# Holds p->max_numparam from parse.y
+#
+# @api private
+#
+# source://parser//lib/parser/max_numparam_stack.rb#8
+class Parser::MaxNumparamStack
+ # @api private
+ # @return [MaxNumparamStack] a new instance of MaxNumparamStack
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#13
+ def initialize; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#17
+ def empty?; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#29
+ def has_numparams?; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#21
+ def has_ordinary_params!; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#25
+ def has_ordinary_params?; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#45
+ def pop; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#41
+ def push(static:); end
+
+ # @api private
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#33
+ def register(numparam); end
+
+ # @api private
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#9
+ def stack; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#37
+ def top; end
+
+ private
+
+ # @api private
+ #
+ # source://parser//lib/parser/max_numparam_stack.rb#51
+ def set(value); end
+end
+
+# @api private
+#
+# source://parser//lib/parser/max_numparam_stack.rb#11
+Parser::MaxNumparamStack::ORDINARY_PARAMS = T.let(T.unsafe(nil), Integer)
+
+# @api private
+#
+# source://parser//lib/parser/messages.rb#107
+module Parser::Messages
+ class << self
+ # Formats the message, returns a raw template if there's nothing to interpolate
+ #
+ # Code like `format("", {})` gives a warning, and so this method tries interpolating
+ # only if `arguments` hash is not empty.
+ #
+ # @api private
+ #
+ # source://parser//lib/parser/messages.rb#114
+ def compile(reason, arguments); end
+ end
+end
+
+# Parser metadata
+#
+# source://parser//lib/parser/meta.rb#5
+module Parser::Meta; end
+
+# All node types that parser can produce. Not all parser versions
+# will be able to produce every possible node.
+#
+# source://parser//lib/parser/meta.rb#9
+Parser::Meta::NODE_TYPES = T.let(T.unsafe(nil), Set)
+
+# {Parser::Rewriter} is deprecated. Use {Parser::TreeRewriter} instead.
+# It has a backwards compatible API and uses {Parser::Source::TreeRewriter}
+# instead of {Parser::Source::Rewriter}.
+# Please check the documentation for {Parser::Source::Rewriter} for details.
+#
+# @api public
+# @deprecated Use {Parser::TreeRewriter}
+#
+# source://parser//lib/parser/rewriter.rb#14
+class Parser::Rewriter < ::Parser::AST::Processor
+ extend ::Parser::Deprecation
+
+ # @api public
+ # @return [Rewriter] a new instance of Rewriter
+ #
+ # source://parser//lib/parser/rewriter.rb#98
+ def initialize(*_arg0); end
+
+ # Returns `true` if the specified node is an assignment node, returns false
+ # otherwise.
+ #
+ # @api public
+ # @param node [Parser::AST::Node]
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/rewriter.rb#38
+ def assignment?(node); end
+
+ # Inserts new code after the given source range.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @param content [String]
+ #
+ # source://parser//lib/parser/rewriter.rb#77
+ def insert_after(range, content); end
+
+ # Inserts new code before the given source range.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @param content [String]
+ #
+ # source://parser//lib/parser/rewriter.rb#67
+ def insert_before(range, content); end
+
+ # Removes the source range.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ #
+ # source://parser//lib/parser/rewriter.rb#47
+ def remove(range); end
+
+ # Replaces the code of the source range `range` with `content`.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @param content [String]
+ #
+ # source://parser//lib/parser/rewriter.rb#87
+ def replace(range, content); end
+
+ # Rewrites the AST/source buffer and returns a String containing the new
+ # version.
+ #
+ # @api public
+ # @param source_buffer [Parser::Source::Buffer]
+ # @param ast [Parser::AST::Node]
+ # @return [String]
+ #
+ # source://parser//lib/parser/rewriter.rb#23
+ def rewrite(source_buffer, ast); end
+
+ # Wraps the given source range with the given values.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @param content [String]
+ #
+ # source://parser//lib/parser/rewriter.rb#57
+ def wrap(range, before, after); end
+end
+
+# @api public
+#
+# source://parser//lib/parser/rewriter.rb#91
+Parser::Rewriter::DEPRECATION_WARNING = T.let(T.unsafe(nil), String)
+
+# @api public
+#
+# source://parser//lib/parser.rb#30
+module Parser::Source; end
+
+# A buffer with source code. {Buffer} contains the source code itself,
+# associated location information (name and first line), and takes care
+# of encoding.
+#
+# A source buffer is immutable once populated.
+#
+# @api public
+#
+# source://parser//lib/parser/source/buffer.rb#25
+class Parser::Source::Buffer
+ # @api public
+ # @return [Buffer] a new instance of Buffer
+ #
+ # source://parser//lib/parser/source/buffer.rb#105
+ def initialize(name, first_line = T.unsafe(nil), source: T.unsafe(nil)); end
+
+ # Convert a character index into the source to a column number.
+ #
+ # @api private
+ # @param position [Integer]
+ # @return [Integer] column
+ #
+ # source://parser//lib/parser/source/buffer.rb#242
+ def column_for_position(position); end
+
+ # Convert a character index into the source to a `[line, column]` tuple.
+ #
+ # @api public
+ # @param position [Integer]
+ # @return [[Integer, Integer]] `[line, column]`
+ #
+ # source://parser//lib/parser/source/buffer.rb#217
+ def decompose_position(position); end
+
+ # First line of the buffer, 1 by default.
+ #
+ # @api public
+ # @return [Integer] first line
+ #
+ # source://parser//lib/parser/source/buffer.rb#26
+ def first_line; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/buffer.rb#312
+ def freeze; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/buffer.rb#318
+ def inspect; end
+
+ # Number of last line in the buffer
+ #
+ # @api public
+ # @return [Integer]
+ #
+ # source://parser//lib/parser/source/buffer.rb#307
+ def last_line; end
+
+ # Convert a character index into the source to a line number.
+ #
+ # @api private
+ # @param position [Integer]
+ # @return [Integer] line
+ #
+ # source://parser//lib/parser/source/buffer.rb#231
+ def line_for_position(position); end
+
+ # Extract line `lineno` as a new `Range`, taking `first_line` into account.
+ #
+ # @api public
+ # @param lineno [Integer]
+ # @raise [IndexError] if `lineno` is out of bounds
+ # @return [Range]
+ #
+ # source://parser//lib/parser/source/buffer.rb#284
+ def line_range(lineno); end
+
+ # Buffer name. If the buffer was created from a file, the name corresponds
+ # to relative path to the file.
+ #
+ # @api public
+ # @return [String] buffer name
+ #
+ # source://parser//lib/parser/source/buffer.rb#26
+ def name; end
+
+ # Populate this buffer from a string without encoding autodetection.
+ #
+ # @api public
+ # @param input [String]
+ # @raise [ArgumentError] if already populated
+ # @return [String]
+ #
+ # source://parser//lib/parser/source/buffer.rb#180
+ def raw_source=(input); end
+
+ # Populate this buffer from correspondingly named file.
+ #
+ # @api public
+ # @example
+ # Parser::Source::Buffer.new('foo/bar.rb').read
+ # @raise [ArgumentError] if already populated
+ # @return [Buffer] self
+ #
+ # source://parser//lib/parser/source/buffer.rb#131
+ def read; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/buffer.rb#194
+ def slice(start, length = T.unsafe(nil)); end
+
+ # Source code contained in this buffer.
+ #
+ # @api public
+ # @raise [RuntimeError] if buffer is not populated yet
+ # @return [String] source code
+ #
+ # source://parser//lib/parser/source/buffer.rb#145
+ def source; end
+
+ # Populate this buffer from a string with encoding autodetection.
+ # `input` is mutated if not frozen.
+ #
+ # @api public
+ # @param input [String]
+ # @raise [ArgumentError] if already populated
+ # @raise [EncodingError] if `input` includes invalid byte sequence for the encoding
+ # @return [String]
+ #
+ # source://parser//lib/parser/source/buffer.rb#162
+ def source=(input); end
+
+ # Extract line `lineno` from source, taking `first_line` into account.
+ #
+ # @api public
+ # @param lineno [Integer]
+ # @raise [IndexError] if `lineno` is out of bounds
+ # @return [String]
+ #
+ # source://parser//lib/parser/source/buffer.rb#273
+ def source_line(lineno); end
+
+ # Return an `Array` of source code lines.
+ #
+ # @api public
+ # @return [Array]
+ #
+ # source://parser//lib/parser/source/buffer.rb#252
+ def source_lines; end
+
+ # @api public
+ # @return [Range] A range covering the whole source
+ #
+ # source://parser//lib/parser/source/buffer.rb#298
+ def source_range; end
+
+ private
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/buffer.rb#348
+ def bsearch(line_begins, position); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/buffer.rb#325
+ def line_begins; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/buffer.rb#339
+ def line_index_for_position(position); end
+
+ class << self
+ # Try to recognize encoding of `string` as Ruby would, i.e. by looking for
+ # magic encoding comment or UTF-8 BOM. `string` can be in any encoding.
+ #
+ # @api public
+ # @param string [String]
+ # @return [String, nil] encoding name, if recognized
+ #
+ # source://parser//lib/parser/source/buffer.rb#51
+ def recognize_encoding(string); end
+
+ # Recognize encoding of `input` and process it so it could be lexed.
+ #
+ # * If `input` does not contain BOM or magic encoding comment, it is
+ # kept in the original encoding.
+ # * If the detected encoding is binary, `input` is kept in binary.
+ # * Otherwise, `input` is re-encoded into UTF-8 and returned as a
+ # new string.
+ #
+ # This method mutates the encoding of `input`, but not its content.
+ #
+ # @api public
+ # @param input [String]
+ # @raise [EncodingError]
+ # @return [String]
+ #
+ # source://parser//lib/parser/source/buffer.rb#90
+ def reencode_string(input); end
+ end
+end
+
+# @api private
+#
+# source://parser//lib/parser/source/buffer.rb#31
+Parser::Source::Buffer::ENCODING_RE = T.let(T.unsafe(nil), Regexp)
+
+# A comment in the source code.
+#
+# @api public
+#
+# source://parser//lib/parser/source/comment.rb#17
+class Parser::Source::Comment
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @return [Comment] a new instance of Comment
+ #
+ # source://parser//lib/parser/source/comment.rb#67
+ def initialize(range); end
+
+ # Compares comments. Two comments are equal if they
+ # correspond to the same source range.
+ #
+ # @api public
+ # @param other [Object]
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/comment.rb#120
+ def ==(other); end
+
+ # @api public
+ # @return [Boolean] true if this is a block comment.
+ # @see #type
+ #
+ # source://parser//lib/parser/source/comment.rb#109
+ def document?; end
+
+ # @api public
+ # @return [Boolean] true if this is an inline comment.
+ # @see #type
+ #
+ # source://parser//lib/parser/source/comment.rb#101
+ def inline?; end
+
+ # @api public
+ # @return [String] a human-readable representation of this comment
+ #
+ # source://parser//lib/parser/source/comment.rb#128
+ def inspect; end
+
+ # @api public
+ # @return [Parser::Source::Range]
+ #
+ # source://parser//lib/parser/source/comment.rb#20
+ def loc; end
+
+ # @api public
+ # @return [Parser::Source::Range]
+ #
+ # source://parser//lib/parser/source/comment.rb#20
+ def location; end
+
+ # @api public
+ # @return [String]
+ #
+ # source://parser//lib/parser/source/comment.rb#18
+ def text; end
+
+ # Type of this comment.
+ #
+ # * Inline comments correspond to `:inline`:
+ #
+ # # whatever
+ #
+ # * Block comments correspond to `:document`:
+ #
+ # =begin
+ # hi i am a document
+ # =end
+ #
+ # @api public
+ # @return [Symbol]
+ #
+ # source://parser//lib/parser/source/comment.rb#89
+ def type; end
+
+ class << self
+ # Associate `comments` with `ast` nodes by their corresponding node.
+ #
+ # @api public
+ # @deprecated Use {associate_locations}.
+ # @param ast [Parser::AST::Node]
+ # @param comments [Array]
+ # @return [Hash>]
+ # @see Parser::Source::Comment::Associator#associate
+ #
+ # source://parser//lib/parser/source/comment.rb#32
+ def associate(ast, comments); end
+
+ # Associate `comments` with `ast` nodes using identity.
+ #
+ # @api public
+ # @param ast [Parser::AST::Node]
+ # @param comments [Array]
+ # @return [Hash>]
+ # @see Parser::Source::Comment::Associator#associate_by_identity
+ #
+ # source://parser//lib/parser/source/comment.rb#59
+ def associate_by_identity(ast, comments); end
+
+ # Associate `comments` with `ast` nodes by their location in the
+ # source.
+ #
+ # @api public
+ # @param ast [Parser::AST::Node]
+ # @param comments [Array]
+ # @return [Hash>]
+ # @see Parser::Source::Comment::Associator#associate_locations
+ #
+ # source://parser//lib/parser/source/comment.rb#46
+ def associate_locations(ast, comments); end
+ end
+end
+
+# source://parser//lib/parser/source/comment/associator.rb#45
+class Parser::Source::Comment::Associator
+ # source://parser//lib/parser/source/comment/associator.rb#51
+ def initialize(ast, comments); end
+
+ # source://parser//lib/parser/source/comment/associator.rb#92
+ def associate; end
+
+ # source://parser//lib/parser/source/comment/associator.rb#115
+ def associate_by_identity; end
+
+ # source://parser//lib/parser/source/comment/associator.rb#104
+ def associate_locations; end
+
+ # source://parser//lib/parser/source/comment/associator.rb#46
+ def skip_directives; end
+
+ # source://parser//lib/parser/source/comment/associator.rb#46
+ def skip_directives=(_arg0); end
+
+ private
+
+ # source://parser//lib/parser/source/comment/associator.rb#182
+ def advance_comment; end
+
+ # source://parser//lib/parser/source/comment/associator.rb#214
+ def advance_through_directives; end
+
+ # source://parser//lib/parser/source/comment/associator.rb#206
+ def associate_and_advance_comment(node); end
+
+ # source://parser//lib/parser/source/comment/associator.rb#123
+ def children_in_source_order(node); end
+
+ # source://parser//lib/parser/source/comment/associator.rb#187
+ def current_comment_before?(node); end
+
+ # source://parser//lib/parser/source/comment/associator.rb#194
+ def current_comment_before_end?(node); end
+
+ # source://parser//lib/parser/source/comment/associator.rb#201
+ def current_comment_decorates?(node); end
+
+ # source://parser//lib/parser/source/comment/associator.rb#135
+ def do_associate; end
+
+ # source://parser//lib/parser/source/comment/associator.rb#166
+ def process_leading_comments(node); end
+
+ # source://parser//lib/parser/source/comment/associator.rb#173
+ def process_trailing_comments(node); end
+
+ # source://parser//lib/parser/source/comment/associator.rb#148
+ def visit(node); end
+end
+
+# source://parser//lib/parser/source/comment/associator.rb#212
+Parser::Source::Comment::Associator::MAGIC_COMMENT_RE = T.let(T.unsafe(nil), Regexp)
+
+# source://parser//lib/parser/source/comment/associator.rb#122
+Parser::Source::Comment::Associator::POSTFIX_TYPES = T.let(T.unsafe(nil), Set)
+
+# {Map} relates AST nodes to the source code they were parsed from.
+# More specifically, a {Map} or its subclass contains a set of ranges:
+#
+# * `expression`: smallest range which includes all source corresponding
+# to the node and all `expression` ranges of its children.
+# * other ranges (`begin`, `end`, `operator`, ...): node-specific ranges
+# pointing to various interesting tokens corresponding to the node.
+#
+# Note that the {Map::Heredoc} map is the only one whose `expression` does
+# not include other ranges. It only covers the heredoc marker (`< 2]').children[0].loc
+# # => >
+#
+# The {file:doc/AST_FORMAT.md} document describes how ranges associated to source
+# code tokens. For example, the entry
+#
+# (array (int 1) (int 2))
+#
+# "[1, 2]"
+# ^ begin
+# ^ end
+# ~~~~~~ expression
+#
+# means that if `node` is an {Parser::AST::Node} `(array (int 1) (int 2))`,
+# then `node.loc` responds to `begin`, `end` and `expression`, and
+# `node.loc.begin` returns a range pointing at the opening bracket, and so on.
+#
+# If you want to write code polymorphic by the source map (i.e. accepting
+# several subclasses of {Map}), use `respond_to?` instead of `is_a?` to
+# check whether the map features the range you need. Concrete {Map}
+# subclasses may not be preserved between versions, but their interfaces
+# will be kept compatible.
+#
+# You can visualize the source maps with `ruby-parse -E` command-line tool.
+#
+# @api public
+# @example
+# require 'parser/current'
+#
+# p Parser::CurrentRuby.parse('[1, 2]').loc
+# # => #,
+# # @begin=#,
+# # @expression=#>
+#
+# source://parser//lib/parser/source/map.rb#70
+class Parser::Source::Map
+ # @api public
+ # @param expression [Range]
+ # @return [Map] a new instance of Map
+ #
+ # source://parser//lib/parser/source/map.rb#76
+ def initialize(expression); end
+
+ # Compares source maps.
+ #
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/map.rb#140
+ def ==(other); end
+
+ # A shortcut for `self.expression.column`.
+ #
+ # @api public
+ # @return [Integer]
+ #
+ # source://parser//lib/parser/source/map.rb#109
+ def column; end
+
+ # @api public
+ # @return [Range]
+ #
+ # source://parser//lib/parser/source/map.rb#72
+ def expression; end
+
+ # A shortcut for `self.expression.line`.
+ #
+ # @api public
+ # @return [Integer]
+ #
+ # source://parser//lib/parser/source/map.rb#99
+ def first_line; end
+
+ # A shortcut for `self.expression.last_column`.
+ #
+ # @api public
+ # @return [Integer]
+ #
+ # source://parser//lib/parser/source/map.rb#125
+ def last_column; end
+
+ # A shortcut for `self.expression.last_line`.
+ #
+ # @api public
+ # @return [Integer]
+ #
+ # source://parser//lib/parser/source/map.rb#117
+ def last_line; end
+
+ # A shortcut for `self.expression.line`.
+ #
+ # @api public
+ # @return [Integer]
+ #
+ # source://parser//lib/parser/source/map.rb#99
+ def line; end
+
+ # The node that is described by this map. Nodes and maps have 1:1 correspondence.
+ #
+ # @api public
+ # @return [Parser::AST::Node]
+ #
+ # source://parser//lib/parser/source/map.rb#71
+ def node; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/source/map.rb#89
+ def node=(node); end
+
+ # Converts this source map to a hash with keys corresponding to
+ # ranges. For example, if called on an instance of {Collection},
+ # which adds the `begin` and `end` ranges, the resulting hash
+ # will contain keys `:expression`, `:begin` and `:end`.
+ #
+ # @api public
+ # @example
+ # require 'parser/current'
+ #
+ # p Parser::CurrentRuby.parse('[1, 2]').loc.to_hash
+ # # => {
+ # # :begin => #,
+ # # :end => #,
+ # # :expression => #
+ # # }
+ # @return [Hash]
+ #
+ # source://parser//lib/parser/source/map.rb#166
+ def to_hash; end
+
+ # @api private
+ #
+ # source://parser//lib/parser/source/map.rb#132
+ def with_expression(expression_l); end
+
+ protected
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/map.rb#180
+ def update_expression(expression_l); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/map.rb#176
+ def with(&block); end
+
+ private
+
+ # @api private
+ #
+ # source://parser//lib/parser/source/map.rb#82
+ def initialize_copy(other); end
+end
+
+# source://parser//lib/parser/source/map/collection.rb#6
+class Parser::Source::Map::Collection < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/collection.rb#10
+ def initialize(begin_l, end_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/collection.rb#7
+ def begin; end
+
+ # source://parser//lib/parser/source/map/collection.rb#8
+ def end; end
+end
+
+# source://parser//lib/parser/source/map/condition.rb#6
+class Parser::Source::Map::Condition < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/condition.rb#12
+ def initialize(keyword_l, begin_l, else_l, end_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/condition.rb#8
+ def begin; end
+
+ # source://parser//lib/parser/source/map/condition.rb#9
+ def else; end
+
+ # source://parser//lib/parser/source/map/condition.rb#10
+ def end; end
+
+ # source://parser//lib/parser/source/map/condition.rb#7
+ def keyword; end
+end
+
+# source://parser//lib/parser/source/map/constant.rb#6
+class Parser::Source::Map::Constant < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/constant.rb#11
+ def initialize(double_colon, name, expression); end
+
+ # source://parser//lib/parser/source/map/constant.rb#7
+ def double_colon; end
+
+ # source://parser//lib/parser/source/map/constant.rb#8
+ def name; end
+
+ # source://parser//lib/parser/source/map/constant.rb#9
+ def operator; end
+
+ # source://parser//lib/parser/source/map/constant.rb#20
+ def with_operator(operator_l); end
+
+ protected
+
+ # source://parser//lib/parser/source/map/constant.rb#26
+ def update_operator(operator_l); end
+end
+
+# source://parser//lib/parser/source/map/definition.rb#6
+class Parser::Source::Map::Definition < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/definition.rb#12
+ def initialize(keyword_l, operator_l, name_l, end_l); end
+
+ # source://parser//lib/parser/source/map/definition.rb#10
+ def end; end
+
+ # source://parser//lib/parser/source/map/definition.rb#7
+ def keyword; end
+
+ # source://parser//lib/parser/source/map/definition.rb#9
+ def name; end
+
+ # source://parser//lib/parser/source/map/definition.rb#8
+ def operator; end
+end
+
+# source://parser//lib/parser/source/map/for.rb#6
+class Parser::Source::Map::For < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/for.rb#10
+ def initialize(keyword_l, in_l, begin_l, end_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/for.rb#8
+ def begin; end
+
+ # source://parser//lib/parser/source/map/for.rb#8
+ def end; end
+
+ # source://parser//lib/parser/source/map/for.rb#7
+ def in; end
+
+ # source://parser//lib/parser/source/map/for.rb#7
+ def keyword; end
+end
+
+# source://parser//lib/parser/source/map/heredoc.rb#6
+class Parser::Source::Map::Heredoc < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/heredoc.rb#10
+ def initialize(begin_l, body_l, end_l); end
+
+ # source://parser//lib/parser/source/map/heredoc.rb#7
+ def heredoc_body; end
+
+ # source://parser//lib/parser/source/map/heredoc.rb#8
+ def heredoc_end; end
+end
+
+# source://parser//lib/parser/source/map/index.rb#6
+class Parser::Source::Map::Index < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/index.rb#11
+ def initialize(begin_l, end_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/index.rb#7
+ def begin; end
+
+ # source://parser//lib/parser/source/map/index.rb#8
+ def end; end
+
+ # source://parser//lib/parser/source/map/index.rb#9
+ def operator; end
+
+ # source://parser//lib/parser/source/map/index.rb#21
+ def with_operator(operator_l); end
+
+ protected
+
+ # source://parser//lib/parser/source/map/index.rb#27
+ def update_operator(operator_l); end
+end
+
+# source://parser//lib/parser/source/map/keyword.rb#6
+class Parser::Source::Map::Keyword < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/keyword.rb#11
+ def initialize(keyword_l, begin_l, end_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/keyword.rb#8
+ def begin; end
+
+ # source://parser//lib/parser/source/map/keyword.rb#9
+ def end; end
+
+ # source://parser//lib/parser/source/map/keyword.rb#7
+ def keyword; end
+end
+
+# source://parser//lib/parser/source/map/method_definition.rb#6
+class Parser::Source::Map::MethodDefinition < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/method_definition.rb#13
+ def initialize(keyword_l, operator_l, name_l, end_l, assignment_l, body_l); end
+
+ # source://parser//lib/parser/source/map/method_definition.rb#11
+ def assignment; end
+
+ # source://parser//lib/parser/source/map/method_definition.rb#10
+ def end; end
+
+ # source://parser//lib/parser/source/map/method_definition.rb#7
+ def keyword; end
+
+ # source://parser//lib/parser/source/map/method_definition.rb#9
+ def name; end
+
+ # source://parser//lib/parser/source/map/method_definition.rb#8
+ def operator; end
+end
+
+# source://parser//lib/parser/source/map/objc_kwarg.rb#6
+class Parser::Source::Map::ObjcKwarg < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/objc_kwarg.rb#11
+ def initialize(keyword_l, operator_l, argument_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/objc_kwarg.rb#9
+ def argument; end
+
+ # source://parser//lib/parser/source/map/objc_kwarg.rb#7
+ def keyword; end
+
+ # source://parser//lib/parser/source/map/objc_kwarg.rb#8
+ def operator; end
+end
+
+# source://parser//lib/parser/source/map/operator.rb#6
+class Parser::Source::Map::Operator < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/operator.rb#9
+ def initialize(operator, expression); end
+
+ # source://parser//lib/parser/source/map/operator.rb#7
+ def operator; end
+end
+
+# source://parser//lib/parser/source/map/rescue_body.rb#6
+class Parser::Source::Map::RescueBody < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/rescue_body.rb#11
+ def initialize(keyword_l, assoc_l, begin_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/rescue_body.rb#8
+ def assoc; end
+
+ # source://parser//lib/parser/source/map/rescue_body.rb#9
+ def begin; end
+
+ # source://parser//lib/parser/source/map/rescue_body.rb#7
+ def keyword; end
+end
+
+# source://parser//lib/parser/source/map/send.rb#6
+class Parser::Source::Map::Send < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/send.rb#13
+ def initialize(dot_l, selector_l, begin_l, end_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/send.rb#10
+ def begin; end
+
+ # source://parser//lib/parser/source/map/send.rb#7
+ def dot; end
+
+ # source://parser//lib/parser/source/map/send.rb#11
+ def end; end
+
+ # source://parser//lib/parser/source/map/send.rb#9
+ def operator; end
+
+ # source://parser//lib/parser/source/map/send.rb#8
+ def selector; end
+
+ # source://parser//lib/parser/source/map/send.rb#24
+ def with_operator(operator_l); end
+
+ protected
+
+ # source://parser//lib/parser/source/map/send.rb#30
+ def update_operator(operator_l); end
+end
+
+# source://parser//lib/parser/source/map/ternary.rb#6
+class Parser::Source::Map::Ternary < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/ternary.rb#10
+ def initialize(question_l, colon_l, expression_l); end
+
+ # source://parser//lib/parser/source/map/ternary.rb#8
+ def colon; end
+
+ # source://parser//lib/parser/source/map/ternary.rb#7
+ def question; end
+end
+
+# source://parser//lib/parser/source/map/variable.rb#6
+class Parser::Source::Map::Variable < ::Parser::Source::Map
+ # source://parser//lib/parser/source/map/variable.rb#10
+ def initialize(name_l, expression_l = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/source/map/variable.rb#7
+ def name; end
+
+ # source://parser//lib/parser/source/map/variable.rb#8
+ def operator; end
+
+ # source://parser//lib/parser/source/map/variable.rb#19
+ def with_operator(operator_l); end
+
+ protected
+
+ # source://parser//lib/parser/source/map/variable.rb#25
+ def update_operator(operator_l); end
+end
+
+# A range of characters in a particular source buffer.
+#
+# The range is always exclusive, i.e. a range with `begin_pos` of 3 and
+# `end_pos` of 5 will contain the following characters:
+#
+# example
+# ^^
+#
+# @api public
+#
+# source://parser//lib/parser/source/range.rb#26
+class Parser::Source::Range
+ include ::Comparable
+
+ # @api public
+ # @param source_buffer [Buffer]
+ # @param begin_pos [Integer]
+ # @param end_pos [Integer]
+ # @return [Range] a new instance of Range
+ #
+ # source://parser//lib/parser/source/range.rb#37
+ def initialize(source_buffer, begin_pos, end_pos); end
+
+ # Compare ranges, first by begin_pos, then by end_pos.
+ #
+ # @api public
+ #
+ # source://parser//lib/parser/source/range.rb#301
+ def <=>(other); end
+
+ # by the given amount(s)
+ #
+ # @api public
+ # @param Endpoint(s) [Hash] to change, any combination of :begin_pos or :end_pos
+ # @return [Range] the same range as this range but with the given end point(s) adjusted
+ #
+ # source://parser//lib/parser/source/range.rb#193
+ def adjust(begin_pos: T.unsafe(nil), end_pos: T.unsafe(nil)); end
+
+ # @api public
+ # @return [Range] a zero-length range located just before the beginning
+ # of this range.
+ #
+ # source://parser//lib/parser/source/range.rb#55
+ def begin; end
+
+ # @api public
+ # @return [Integer] index of the first character in the range
+ #
+ # source://parser//lib/parser/source/range.rb#30
+ def begin_pos; end
+
+ # @api public
+ # @return [Integer] zero-based column number of the beginning of this range.
+ #
+ # source://parser//lib/parser/source/range.rb#92
+ def column; end
+
+ # @api public
+ # @raise RangeError
+ # @return [::Range] a range of columns spanned by this range.
+ #
+ # source://parser//lib/parser/source/range.rb#114
+ def column_range; end
+
+ # Return `other.contains?(self)`
+ #
+ # Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
+ #
+ # @api public
+ # @param other [Range]
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/range.rb#274
+ def contained?(other); end
+
+ # Returns true iff this range contains (strictly) `other`.
+ #
+ # Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
+ #
+ # @api public
+ # @param other [Range]
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/range.rb#262
+ def contains?(other); end
+
+ # Returns true iff both ranges intersect and also have different elements from one another.
+ #
+ # Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
+ #
+ # @api public
+ # @param other [Range]
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/range.rb#286
+ def crossing?(other); end
+
+ # Return `true` iff this range and `other` are disjoint.
+ #
+ # Two ranges must be one and only one of ==, disjoint?, contains?, contained? or crossing?
+ #
+ # @api public
+ # @param other [Range]
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/range.rb#236
+ def disjoint?(other); end
+
+ # Checks if a range is empty; if it contains no characters
+ #
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/range.rb#294
+ def empty?; end
+
+ # @api public
+ # @return [Range] a zero-length range located just after the end
+ # of this range.
+ #
+ # source://parser//lib/parser/source/range.rb#63
+ def end; end
+
+ # @api public
+ # @return [Integer] index of the character after the last character in the range
+ #
+ # source://parser//lib/parser/source/range.rb#30
+ def end_pos; end
+
+ # @api public
+ def eql?(_arg0); end
+
+ # Line number of the beginning of this range. By default, the first line
+ # of a buffer is 1; as such, line numbers are most commonly one-based.
+ #
+ # @api public
+ # @return [Integer] line number of the beginning of this range.
+ # @see Buffer
+ #
+ # source://parser//lib/parser/source/range.rb#83
+ def first_line; end
+
+ # Support for Ranges be used in as Hash indices and in Sets.
+ #
+ # @api public
+ #
+ # source://parser//lib/parser/source/range.rb#313
+ def hash; end
+
+ # @api public
+ # @return [String] a human-readable representation of this range.
+ #
+ # source://parser//lib/parser/source/range.rb#320
+ def inspect; end
+
+ # @api public
+ # @param other [Range]
+ # @return [Range] overlapping region of this range and `other`, or `nil`
+ # if they do not overlap
+ #
+ # source://parser//lib/parser/source/range.rb#220
+ def intersect(other); end
+
+ # `is?` provides a concise way to compare the source corresponding to this range.
+ # For example, `r.source == '(' || r.source == 'begin'` is equivalent to
+ # `r.is?('(', 'begin')`.
+ #
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/range.rb#141
+ def is?(*what); end
+
+ # @api public
+ # @param other [Range]
+ # @return [Range] smallest possible range spanning both this range and `other`.
+ #
+ # source://parser//lib/parser/source/range.rb#209
+ def join(other); end
+
+ # @api public
+ # @return [Integer] zero-based column number of the end of this range.
+ #
+ # source://parser//lib/parser/source/range.rb#106
+ def last_column; end
+
+ # @api public
+ # @return [Integer] line number of the end of this range.
+ #
+ # source://parser//lib/parser/source/range.rb#99
+ def last_line; end
+
+ # @api public
+ # @return [Integer] amount of characters included in this range.
+ #
+ # source://parser//lib/parser/source/range.rb#70
+ def length; end
+
+ # Line number of the beginning of this range. By default, the first line
+ # of a buffer is 1; as such, line numbers are most commonly one-based.
+ #
+ # @api public
+ # @return [Integer] line number of the beginning of this range.
+ # @see Buffer
+ #
+ # source://parser//lib/parser/source/range.rb#83
+ def line; end
+
+ # Return `true` iff this range is not disjoint from `other`.
+ #
+ # @api public
+ # @param other [Range]
+ # @return [Boolean] `true` if this range and `other` overlap
+ #
+ # source://parser//lib/parser/source/range.rb#250
+ def overlaps?(other); end
+
+ # @api public
+ # @param new_size [Integer]
+ # @return [Range] a range beginning at the same point as this range and length `new_size`.
+ #
+ # source://parser//lib/parser/source/range.rb#201
+ def resize(new_size); end
+
+ # @api public
+ # @return [Integer] amount of characters included in this range.
+ #
+ # source://parser//lib/parser/source/range.rb#70
+ def size; end
+
+ # @api public
+ # @return [String] all source code covered by this range.
+ #
+ # source://parser//lib/parser/source/range.rb#132
+ def source; end
+
+ # @api public
+ # @return [Parser::Source::Buffer]
+ #
+ # source://parser//lib/parser/source/range.rb#29
+ def source_buffer; end
+
+ # @api public
+ # @return [String] a line of source code containing the beginning of this range.
+ #
+ # source://parser//lib/parser/source/range.rb#125
+ def source_line; end
+
+ # @api public
+ # @return [Array] a set of character indexes contained in this range.
+ #
+ # source://parser//lib/parser/source/range.rb#148
+ def to_a; end
+
+ # @api public
+ # @return [Range] a Ruby range with the same `begin_pos` and `end_pos`
+ #
+ # source://parser//lib/parser/source/range.rb#155
+ def to_range; end
+
+ # Composes a GNU/Clang-style string representation of the beginning of this
+ # range.
+ #
+ # For example, for the following range in file `foo.rb`,
+ #
+ # def foo
+ # ^^^
+ #
+ # `to_s` will return `foo.rb:1:5`.
+ # Note that the column index is one-based.
+ #
+ # @api public
+ # @return [String]
+ #
+ # source://parser//lib/parser/source/range.rb#173
+ def to_s; end
+
+ # to the given value(s).
+ #
+ # @api public
+ # @param Endpoint(s) [Hash] to change, any combination of :begin_pos or :end_pos
+ # @return [Range] the same range as this range but with the given end point(s) changed
+ #
+ # source://parser//lib/parser/source/range.rb#184
+ def with(begin_pos: T.unsafe(nil), end_pos: T.unsafe(nil)); end
+end
+
+# {Rewriter} is deprecated. Use {TreeRewriter} instead.
+#
+# TreeRewriter has simplified semantics, and customizable policies
+# with regards to clobbering. Please read the documentation.
+#
+# Keep in mind:
+# - Rewriter was discarding the `end_pos` of the given range for `insert_before`,
+# and the `begin_pos` for `insert_after`. These are meaningful in TreeRewriter.
+# - TreeRewriter's wrap/insert_before/insert_after are multiple by default, while
+# Rewriter would raise clobbering errors if the non '_multi' version was called.
+# - The TreeRewriter policy closest to Rewriter's behavior is:
+# different_replacements: :raise,
+# swallowed_insertions: :raise,
+# crossing_deletions: :accept
+#
+# @api public
+# @deprecated Use {TreeRewriter}
+#
+# source://parser//lib/parser/source/rewriter.rb#31
+class Parser::Source::Rewriter
+ extend ::Parser::Deprecation
+
+ # @api public
+ # @deprecated Use {TreeRewriter}
+ # @param source_buffer [Source::Buffer]
+ # @return [Rewriter] a new instance of Rewriter
+ #
+ # source://parser//lib/parser/source/rewriter.rb#39
+ def initialize(source_buffer); end
+
+ # @api public
+ # @return [Diagnostic::Engine]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#33
+ def diagnostics; end
+
+ # Inserts new code after the given source range.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#insert_after}
+ # @param range [Range]
+ # @param content [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/rewriter.rb#131
+ def insert_after(range, content); end
+
+ # Inserts new code after the given source range by allowing other
+ # insertions at the same position.
+ # Note that an insertion with latter invocation comes _after_ earlier
+ # insertion at the same position in the rewritten source.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#insert_after}
+ # @example Inserting ')]'
+ # rewriter.
+ # insert_after_multi(range, ')').
+ # insert_after_multi(range, ']').
+ # process
+ # @param range [Range]
+ # @param content [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/rewriter.rb#153
+ def insert_after_multi(range, content); end
+
+ # Inserts new code before the given source range.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#insert_before}
+ # @param range [Range]
+ # @param content [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/rewriter.rb#80
+ def insert_before(range, content); end
+
+ # Inserts new code before the given source range by allowing other
+ # insertions at the same position.
+ # Note that an insertion with latter invocation comes _before_ earlier
+ # insertion at the same position in the rewritten source.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#insert_before}
+ # @example Inserting '[('
+ # rewriter.
+ # insert_before_multi(range, '(').
+ # insert_before_multi(range, '[').
+ # process
+ # @param range [Range]
+ # @param content [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/rewriter.rb#117
+ def insert_before_multi(range, content); end
+
+ # Applies all scheduled changes to the `source_buffer` and returns
+ # modified source as a new string.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#process}
+ # @return [String]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#178
+ def process; end
+
+ # Removes the source range.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#remove}
+ # @param range [Range]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/rewriter.rb#67
+ def remove(range); end
+
+ # Replaces the code of the source range `range` with `content`.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#replace}
+ # @param range [Range]
+ # @param content [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/rewriter.rb#167
+ def replace(range, content); end
+
+ # @api public
+ # @return [Source::Buffer]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#32
+ def source_buffer; end
+
+ # Provides a protected block where a sequence of multiple rewrite actions
+ # are handled atomically. If any of the actions failed by clobbering,
+ # all the actions are rolled back.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#transaction}
+ # @example
+ # begin
+ # rewriter.transaction do
+ # rewriter.insert_before(range_of_something, '(')
+ # rewriter.insert_after(range_of_something, ')')
+ # end
+ # rescue Parser::ClobberingError
+ # end
+ # @raise [RuntimeError] when no block is passed
+ # @raise [RuntimeError] when already in a transaction
+ #
+ # source://parser//lib/parser/source/rewriter.rb#216
+ def transaction; end
+
+ # Inserts new code before and after the given source range.
+ #
+ # @api public
+ # @deprecated Use {TreeRewriter#wrap}
+ # @param range [Range]
+ # @param before [String]
+ # @param after [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/rewriter.rb#94
+ def wrap(range, before, after); end
+
+ private
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#476
+ def active_clobber; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#484
+ def active_clobber=(value); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#480
+ def active_insertions; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#492
+ def active_insertions=(value); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#472
+ def active_queue; end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#500
+ def adjacent?(range1, range2); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#351
+ def adjacent_insertion_mask(range); end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#366
+ def adjacent_insertions?(range); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#347
+ def adjacent_position_mask(range); end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#377
+ def adjacent_updates?(range); end
+
+ # Schedule a code update. If it overlaps with another update, check
+ # whether they conflict, and raise a clobbering error if they do.
+ # (As a special case, zero-length ranges at the same position are
+ # considered to "overlap".) Otherwise, merge them.
+ #
+ # Updates which are adjacent to each other, but do not overlap, are also
+ # merged.
+ #
+ # RULES:
+ #
+ # - Insertion ("replacing" a zero-length range):
+ # - Two insertions at the same point conflict. This is true even
+ # if the earlier insertion has already been merged with an adjacent
+ # update, and even if they are both inserting the same text.
+ # - An insertion never conflicts with a replace or remove operation
+ # on its right or left side, which does not overlap it (in other
+ # words, which does not update BOTH its right and left sides).
+ # - An insertion always conflicts with a remove operation which spans
+ # both its sides.
+ # - An insertion conflicts with a replace operation which spans both its
+ # sides, unless the replacement text is longer than the replaced text
+ # by the size of the insertion (or more), and the portion of
+ # replacement text immediately after the insertion position is
+ # identical to the inserted text.
+ #
+ # - Removal operations never conflict with each other.
+ #
+ # - Replacement operations:
+ # - Take the portion of each replacement text which falls within:
+ # - The other operation's replaced region
+ # - The other operation's replacement text, if it extends past the
+ # end of its own replaced region (in other words, if the replacement
+ # text is longer than the text it replaces)
+ # - If and only if the taken texts are identical for both operations,
+ # they do not conflict.
+ #
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#280
+ def append(action); end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#389
+ def can_merge?(action, existing); end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#355
+ def clobbered_insertion?(insertion); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#343
+ def clobbered_position_mask(range); end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#468
+ def in_transaction?; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#410
+ def merge_actions(action, existing); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#419
+ def merge_actions!(action, existing); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#425
+ def merge_replacements(actions); end
+
+ # @api public
+ # @raise [ClobberingError]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#450
+ def raise_clobber_error(action, existing); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#335
+ def record_insertion(range); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#339
+ def record_replace(range); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/rewriter.rb#445
+ def replace_actions(old, updated); end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/rewriter.rb#383
+ def replace_compatible_with_insertion?(replace, insertion); end
+end
+
+# source://parser//lib/parser/source/rewriter/action.rb#9
+class Parser::Source::Rewriter::Action
+ include ::Comparable
+
+ # source://parser//lib/parser/source/rewriter/action.rb#15
+ def initialize(range, replacement = T.unsafe(nil), allow_multiple_insertions = T.unsafe(nil), order = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/source/rewriter/action.rb#24
+ def <=>(other); end
+
+ # source://parser//lib/parser/source/rewriter/action.rb#12
+ def allow_multiple_insertions; end
+
+ # source://parser//lib/parser/source/rewriter/action.rb#12
+ def allow_multiple_insertions?; end
+
+ # source://parser//lib/parser/source/rewriter/action.rb#12
+ def order; end
+
+ # source://parser//lib/parser/source/rewriter/action.rb#12
+ def range; end
+
+ # source://parser//lib/parser/source/rewriter/action.rb#12
+ def replacement; end
+
+ # source://parser//lib/parser/source/rewriter/action.rb#30
+ def to_s; end
+end
+
+# @api public
+#
+# source://parser//lib/parser/source/rewriter.rb#504
+Parser::Source::Rewriter::DEPRECATION_WARNING = T.let(T.unsafe(nil), String)
+
+# {TreeRewriter} performs the heavy lifting in the source rewriting process.
+# It schedules code updates to be performed in the correct order.
+#
+# For simple cases, the resulting source will be obvious.
+#
+# Examples for more complex cases follow. Assume these examples are acting on
+# the source `'puts(:hello, :world)`. The methods #wrap, #remove, etc.
+# receive a Range as first argument; for clarity, examples below use english
+# sentences and a string of raw code instead.
+#
+# ## Overlapping ranges:
+#
+# Any two rewriting actions on overlapping ranges will fail and raise
+# a `ClobberingError`, unless they are both deletions (covered next).
+#
+# * wrap ':hello, ' with '(' and ')'
+# * wrap ', :world' with '(' and ')'
+# => CloberringError
+#
+# ## Overlapping deletions:
+#
+# * remove ':hello, '
+# * remove ', :world'
+#
+# The overlapping ranges are merged and `':hello, :world'` will be removed.
+# This policy can be changed. `:crossing_deletions` defaults to `:accept`
+# but can be set to `:warn` or `:raise`.
+#
+# ## Multiple actions at the same end points:
+#
+# Results will always be independent on the order they were given.
+# Exception: rewriting actions done on exactly the same range (covered next).
+#
+# Example:
+# * replace ', ' by ' => '
+# * wrap ':hello, :world' with '{' and '}'
+# * replace ':world' with ':everybody'
+# * wrap ':world' with '[', ']'
+#
+# The resulting string will be `'puts({:hello => [:everybody]})'`
+# and this result is independent on the order the instructions were given in.
+#
+# Note that if the two "replace" were given as a single replacement of ', :world'
+# for ' => :everybody', the result would be a `ClobberingError` because of the wrap
+# in square brackets.
+#
+# ## Multiple wraps on same range:
+# * wrap ':hello' with '(' and ')'
+# * wrap ':hello' with '[' and ']'
+#
+# The wraps are combined in order given and results would be `'puts([(:hello)], :world)'`.
+#
+# ## Multiple replacements on same range:
+# * replace ':hello' by ':hi', then
+# * replace ':hello' by ':hey'
+#
+# The replacements are made in the order given, so the latter replacement
+# supersedes the former and ':hello' will be replaced by ':hey'.
+#
+# This policy can be changed. `:different_replacements` defaults to `:accept`
+# but can be set to `:warn` or `:raise`.
+#
+# ## Swallowed insertions:
+# wrap 'world' by '__', '__'
+# replace ':hello, :world' with ':hi'
+#
+# A containing replacement will swallow the contained rewriting actions
+# and `':hello, :world'` will be replaced by `':hi'`.
+#
+# This policy can be changed for swallowed insertions. `:swallowed_insertions`
+# defaults to `:accept` but can be set to `:warn` or `:raise`
+#
+# ## Implementation
+# The updates are organized in a tree, according to the ranges they act on
+# (where children are strictly contained by their parent), hence the name.
+#
+# @api public
+#
+# source://parser//lib/parser/source/tree_rewriter.rb#91
+class Parser::Source::TreeRewriter
+ extend ::Parser::Deprecation
+
+ # @api public
+ # @param source_buffer [Source::Buffer]
+ # @return [TreeRewriter] a new instance of TreeRewriter
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#98
+ def initialize(source_buffer, crossing_deletions: T.unsafe(nil), different_replacements: T.unsafe(nil), swallowed_insertions: T.unsafe(nil)); end
+
+ # Returns a representation of the rewriter as nested insertions (:wrap) and replacements.
+ #
+ # rewriter.as_actions # =>[ [:wrap, 1...10, '(', ')'],
+ # [:wrap, 2...6, '', '!'], # aka "insert_after"
+ # [:replace, 2...4, 'foo'],
+ # [:replace, 5...6, ''], # aka "removal"
+ # ],
+ #
+ # Contrary to `as_replacements`, this representation is sufficient to recreate exactly
+ # the rewriter.
+ #
+ # @api public
+ # @return [Array<(Symbol, Range, String{, String})>]
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#299
+ def as_nested_actions; end
+
+ # Returns a representation of the rewriter as an ordered list of replacements.
+ #
+ # rewriter.as_replacements # => [ [1...1, '('],
+ # [2...4, 'foo'],
+ # [5...6, ''],
+ # [6...6, '!'],
+ # [10...10, ')'],
+ # ]
+ #
+ # This representation is sufficient to recreate the result of `process` but it is
+ # not sufficient to recreate completely the rewriter for further merging/actions.
+ # See `as_nested_actions`
+ #
+ # @api public
+ # @return [Array] an ordered list of pairs of range & replacement
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#281
+ def as_replacements; end
+
+ # @api public
+ # @return [Diagnostic::Engine]
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#93
+ def diagnostics; end
+
+ # Returns true iff no (non trivial) update has been recorded
+ #
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#125
+ def empty?; end
+
+ # For special cases where one needs to merge a rewriter attached to a different source_buffer
+ # or that needs to be offset. Policies of the receiver are used.
+ #
+ # @api public
+ # @param rewriter [TreeRewriter] from different source_buffer
+ # @param offset [Integer]
+ # @raise [IndexError] if action ranges (once offset) don't fit the current buffer
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#168
+ def import!(foreign_rewriter, offset: T.unsafe(nil)); end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#329
+ def in_transaction?; end
+
+ # Shortcut for `wrap(range, nil, content)`
+ #
+ # @api public
+ # @param range [Range]
+ # @param content [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#242
+ def insert_after(range, content); end
+
+ # @api private
+ # @deprecated Use insert_after or wrap
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#351
+ def insert_after_multi(range, text); end
+
+ # Shortcut for `wrap(range, content, nil)`
+ #
+ # @api public
+ # @param range [Range]
+ # @param content [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#230
+ def insert_before(range, content); end
+
+ # @api private
+ # @deprecated Use insert_after or wrap
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#342
+ def insert_before_multi(range, text); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#334
+ def inspect; end
+
+ # Returns a new rewriter that consists of the updates of the received
+ # and the given argument. Policies of the receiver are used.
+ #
+ # @api public
+ # @param with [Rewriter]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] merge of receiver and argument
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#155
+ def merge(with); end
+
+ # Merges the updates of argument with the receiver.
+ # Policies of the receiver are used.
+ # This action is atomic in that it won't change the receiver
+ # unless it succeeds.
+ #
+ # @api public
+ # @param with [Rewriter]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#139
+ def merge!(with); end
+
+ # Applies all scheduled changes to the `source_buffer` and returns
+ # modified source as a new string.
+ #
+ # @api public
+ # @return [String]
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#252
+ def process; end
+
+ # Shortcut for `replace(range, '')`
+ #
+ # @api public
+ # @param range [Range]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#217
+ def remove(range); end
+
+ # Replaces the code of the source range `range` with `content`.
+ #
+ # @api public
+ # @param range [Range]
+ # @param content [String]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#193
+ def replace(range, content); end
+
+ # @api public
+ # @return [Source::Buffer]
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#92
+ def source_buffer; end
+
+ # Provides a protected block where a sequence of multiple rewrite actions
+ # are handled atomically. If any of the actions failed by clobbering,
+ # all the actions are rolled back. Transactions can be nested.
+ #
+ # @api public
+ # @raise [RuntimeError] when no block is passed
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#310
+ def transaction; end
+
+ # Inserts the given strings before and after the given range.
+ #
+ # @api public
+ # @param range [Range]
+ # @param insert_before [String, nil]
+ # @param insert_after [String, nil]
+ # @raise [ClobberingError] when clobbering is detected
+ # @return [Rewriter] self
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#206
+ def wrap(range, insert_before, insert_after); end
+
+ protected
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#365
+ def action_root; end
+
+ private
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#369
+ def action_summary; end
+
+ # @api public
+ # @raise [ArgumentError]
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#392
+ def check_policy_validity; end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#404
+ def check_range_validity(range); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#397
+ def combine(range, attributes); end
+
+ # @api public
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#411
+ def enforce_policy(event); end
+
+ # @api public
+ # @raise [Parser::ClobberingError]
+ #
+ # source://parser//lib/parser/source/tree_rewriter.rb#418
+ def trigger_policy(event, range: T.unsafe(nil), conflict: T.unsafe(nil), **arguments); end
+end
+
+# @api public
+#
+# source://parser//lib/parser/source/tree_rewriter.rb#391
+Parser::Source::TreeRewriter::ACTIONS = T.let(T.unsafe(nil), Array)
+
+# source://parser//lib/parser/source/tree_rewriter/action.rb#13
+class Parser::Source::TreeRewriter::Action
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#16
+ def initialize(range, enforcer, insert_before: T.unsafe(nil), replacement: T.unsafe(nil), insert_after: T.unsafe(nil), children: T.unsafe(nil)); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#28
+ def combine(action); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#67
+ def contract; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#33
+ def empty?; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#14
+ def insert_after; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#14
+ def insert_before; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#57
+ def insertion?; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#80
+ def moved(source_buffer, offset); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#49
+ def nested_actions; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#40
+ def ordered_replacements; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#14
+ def range; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#14
+ def replacement; end
+
+ protected
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#158
+ def analyse_hierarchy(action); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#145
+ def bsearch_child_index(from = T.unsafe(nil)); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#224
+ def call_enforcer_for_merge(action); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#204
+ def check_fusible(action, *fusible); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#94
+ def children; end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#129
+ def combine_children(more_children); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#102
+ def do_combine(action); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#135
+ def fuse_deletions(action, fusible, other_sibblings); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#215
+ def merge(action); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#110
+ def place_in_hierarchy(action); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#232
+ def swallow(children); end
+
+ # source://parser//lib/parser/source/tree_rewriter/action.rb#96
+ def with(range: T.unsafe(nil), enforcer: T.unsafe(nil), children: T.unsafe(nil), insert_before: T.unsafe(nil), replacement: T.unsafe(nil), insert_after: T.unsafe(nil)); end
+end
+
+# @api public
+#
+# source://parser//lib/parser/source/tree_rewriter.rb#356
+Parser::Source::TreeRewriter::DEPRECATION_WARNING = T.let(T.unsafe(nil), String)
+
+# @api public
+#
+# source://parser//lib/parser/source/tree_rewriter.rb#417
+Parser::Source::TreeRewriter::POLICY_TO_LEVEL = T.let(T.unsafe(nil), Hash)
+
+# source://parser//lib/parser/static_environment.rb#5
+class Parser::StaticEnvironment
+ # @return [StaticEnvironment] a new instance of StaticEnvironment
+ #
+ # source://parser//lib/parser/static_environment.rb#11
+ def initialize; end
+
+ # source://parser//lib/parser/static_environment.rb#40
+ def declare(name); end
+
+ # source://parser//lib/parser/static_environment.rb#58
+ def declare_anonymous_blockarg; end
+
+ # source://parser//lib/parser/static_environment.rb#74
+ def declare_anonymous_kwrestarg; end
+
+ # source://parser//lib/parser/static_environment.rb#66
+ def declare_anonymous_restarg; end
+
+ # source://parser//lib/parser/static_environment.rb#50
+ def declare_forward_args; end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/static_environment.rb#46
+ def declared?(name); end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/static_environment.rb#62
+ def declared_anonymous_blockarg?; end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/static_environment.rb#78
+ def declared_anonymous_kwrestarg?; end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/static_environment.rb#70
+ def declared_anonymous_restarg?; end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/static_environment.rb#54
+ def declared_forward_args?; end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/static_environment.rb#82
+ def empty?; end
+
+ # source://parser//lib/parser/static_environment.rb#27
+ def extend_dynamic; end
+
+ # source://parser//lib/parser/static_environment.rb#20
+ def extend_static; end
+
+ # source://parser//lib/parser/static_environment.rb#15
+ def reset; end
+
+ # source://parser//lib/parser/static_environment.rb#34
+ def unextend; end
+end
+
+# source://parser//lib/parser/static_environment.rb#7
+Parser::StaticEnvironment::ANONYMOUS_BLOCKARG = T.let(T.unsafe(nil), Symbol)
+
+# source://parser//lib/parser/static_environment.rb#9
+Parser::StaticEnvironment::ANONYMOUS_KWRESTARG = T.let(T.unsafe(nil), Symbol)
+
+# source://parser//lib/parser/static_environment.rb#8
+Parser::StaticEnvironment::ANONYMOUS_RESTARG = T.let(T.unsafe(nil), Symbol)
+
+# source://parser//lib/parser/static_environment.rb#6
+Parser::StaticEnvironment::FORWARD_ARGS = T.let(T.unsafe(nil), Symbol)
+
+# {Parser::SyntaxError} is raised whenever parser detects a syntax error,
+# similar to the standard SyntaxError class.
+#
+# @api public
+#
+# source://parser//lib/parser/syntax_error.rb#13
+class Parser::SyntaxError < ::StandardError
+ # @api public
+ # @return [SyntaxError] a new instance of SyntaxError
+ #
+ # source://parser//lib/parser/syntax_error.rb#16
+ def initialize(diagnostic); end
+
+ # @api public
+ # @return [Parser::Diagnostic]
+ #
+ # source://parser//lib/parser/syntax_error.rb#14
+ def diagnostic; end
+end
+
+# {Parser::TreeRewriter} offers a basic API that makes it easy to rewrite
+# existing ASTs. It's built on top of {Parser::AST::Processor} and
+# {Parser::Source::TreeRewriter}
+#
+# For example, assume you want to remove `do` tokens from a while statement.
+# You can do this as following:
+#
+# require 'parser/current'
+#
+# class RemoveDo < Parser::TreeRewriter
+# def on_while(node)
+# # Check if the statement starts with "do"
+# if node.location.begin.is?('do')
+# remove(node.location.begin)
+# end
+# end
+# end
+#
+# code = <<-EOF
+# while true do
+# puts 'hello'
+# end
+# EOF
+#
+# ast = Parser::CurrentRuby.parse code
+# buffer = Parser::Source::Buffer.new('(example)', source: code)
+# rewriter = RemoveDo.new
+#
+# # Rewrite the AST, returns a String with the new form.
+# puts rewriter.rewrite(buffer, ast)
+#
+# This would result in the following Ruby code:
+#
+# while true
+# puts 'hello'
+# end
+#
+# Keep in mind that {Parser::TreeRewriter} does not take care of indentation when
+# inserting/replacing code so you'll have to do this yourself.
+#
+# See also [a blog entry](http://whitequark.org/blog/2013/04/26/lets-play-with-ruby-code/)
+# describing rewriters in greater detail.
+#
+# @api public
+#
+# source://parser//lib/parser/tree_rewriter.rb#51
+class Parser::TreeRewriter < ::Parser::AST::Processor
+ # Returns `true` if the specified node is an assignment node, returns false
+ # otherwise.
+ #
+ # @api public
+ # @param node [Parser::AST::Node]
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/tree_rewriter.rb#79
+ def assignment?(node); end
+
+ # Inserts new code after the given source range.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @param content [String]
+ #
+ # source://parser//lib/parser/tree_rewriter.rb#118
+ def insert_after(range, content); end
+
+ # Inserts new code before the given source range.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @param content [String]
+ #
+ # source://parser//lib/parser/tree_rewriter.rb#108
+ def insert_before(range, content); end
+
+ # Removes the source range.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ #
+ # source://parser//lib/parser/tree_rewriter.rb#88
+ def remove(range); end
+
+ # Replaces the code of the source range `range` with `content`.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @param content [String]
+ #
+ # source://parser//lib/parser/tree_rewriter.rb#128
+ def replace(range, content); end
+
+ # Rewrites the AST/source buffer and returns a String containing the new
+ # version.
+ #
+ # @api public
+ # @param source_buffer [Parser::Source::Buffer]
+ # @param ast [Parser::AST::Node]
+ # @param crossing_deletions:, [Symbol] different_replacements:, swallowed_insertions:
+ # policy arguments for TreeRewriter (optional)
+ # @return [String]
+ #
+ # source://parser//lib/parser/tree_rewriter.rb#62
+ def rewrite(source_buffer, ast, **policy); end
+
+ # Wraps the given source range with the given values.
+ #
+ # @api public
+ # @param range [Parser::Source::Range]
+ # @param content [String]
+ #
+ # source://parser//lib/parser/tree_rewriter.rb#98
+ def wrap(range, before, after); end
+end
+
+# source://parser//lib/parser/version.rb#4
+Parser::VERSION = T.let(T.unsafe(nil), String)
+
+# source://parser//lib/parser/variables_stack.rb#5
+class Parser::VariablesStack
+ # @return [VariablesStack] a new instance of VariablesStack
+ #
+ # source://parser//lib/parser/variables_stack.rb#6
+ def initialize; end
+
+ # source://parser//lib/parser/variables_stack.rb#27
+ def declare(name); end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/variables_stack.rb#31
+ def declared?(name); end
+
+ # @return [Boolean]
+ #
+ # source://parser//lib/parser/variables_stack.rb#11
+ def empty?; end
+
+ # source://parser//lib/parser/variables_stack.rb#19
+ def pop; end
+
+ # source://parser//lib/parser/variables_stack.rb#15
+ def push; end
+
+ # source://parser//lib/parser/variables_stack.rb#23
+ def reset; end
+end
diff --git a/sorbet/rbi/gems/prettier_print@1.2.1.rbi b/sorbet/rbi/gems/prettier_print@1.2.1.rbi
new file mode 100644
index 0000000..4e88525
--- /dev/null
+++ b/sorbet/rbi/gems/prettier_print@1.2.1.rbi
@@ -0,0 +1,951 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `prettier_print` gem.
+# Please instead update this file by running `bin/tapioca gem prettier_print`.
+
+# This class implements a pretty printing algorithm. It finds line breaks and
+# nice indentations for grouped structure.
+#
+# By default, the class assumes that primitive elements are strings and each
+# byte in the strings is a single column in width. But it can be used for other
+# situations by giving suitable arguments for some methods:
+#
+# * newline object and space generation block for PrettierPrint.new
+# * optional width argument for PrettierPrint#text
+# * PrettierPrint#breakable
+#
+# There are several candidate uses:
+# * text formatting using proportional fonts
+# * multibyte characters which has columns different to number of bytes
+# * non-string formatting
+#
+# == Usage
+#
+# To use this module, you will need to generate a tree of print nodes that
+# represent indentation and newline behavior before it gets sent to the printer.
+# Each node has different semantics, depending on the desired output.
+#
+# The most basic node is a Text node. This represents plain text content that
+# cannot be broken up even if it doesn't fit on one line. You would create one
+# of those with the text method, as in:
+#
+# PrettierPrint.format { |q| q.text('my content') }
+#
+# No matter what the desired output width is, the output for the snippet above
+# will always be the same.
+#
+# If you want to allow the printer to break up the content on the space
+# character when there isn't enough width for the full string on the same line,
+# you can use the Breakable and Group nodes. For example:
+#
+# PrettierPrint.format do |q|
+# q.group do
+# q.text("my")
+# q.breakable
+# q.text("content")
+# end
+# end
+#
+# Now, if everything fits on one line (depending on the maximum width specified)
+# then it will be the same output as the first example. If, however, there is
+# not enough room on the line, then you will get two lines of output, one for
+# the first string and one for the second.
+#
+# There are other nodes for the print tree as well, described in the
+# documentation below. They control alignment, indentation, conditional
+# formatting, and more.
+#
+# == References
+# Christian Lindig, Strictly Pretty, March 2000
+# https://lindig.github.io/papers/strictly-pretty-2000.pdf
+#
+# Philip Wadler, A prettier printer, March 1998
+# https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf
+#
+# source://prettier_print//lib/prettier_print.rb#62
+class PrettierPrint
+ # Creates a buffer for pretty printing.
+ #
+ # +output+ is an output target. If it is not specified, '' is assumed. It
+ # should have a << method which accepts the first argument +obj+ of
+ # PrettierPrint#text, the first argument +separator+ of PrettierPrint#breakable,
+ # the first argument +newline+ of PrettierPrint.new, and the result of a given
+ # block for PrettierPrint.new.
+ #
+ # +maxwidth+ specifies maximum line length. If it is not specified, 80 is
+ # assumed. However actual outputs may overflow +maxwidth+ if long
+ # non-breakable texts are provided.
+ #
+ # +newline+ is used for line breaks. "\n" is used if it is not specified.
+ #
+ # The block is used to generate spaces. ->(n) { ' ' * n } is used if it is not
+ # given.
+ #
+ # @return [PrettierPrint] a new instance of PrettierPrint
+ #
+ # source://prettier_print//lib/prettier_print.rb#441
+ def initialize(output = T.unsafe(nil), maxwidth = T.unsafe(nil), newline = T.unsafe(nil), &genspace); end
+
+ # This inserts a BreakParent node into the print tree which forces the
+ # surrounding and all parent group nodes to break.
+ #
+ # source://prettier_print//lib/prettier_print.rb#814
+ def break_parent; end
+
+ # This says "you can break a line here if necessary", and a +width+\-column
+ # text +separator+ is inserted if a line is not broken at the point.
+ #
+ # If +separator+ is not specified, ' ' is used.
+ #
+ # If +width+ is not specified, +separator.length+ is used. You will have to
+ # specify this when +separator+ is a multibyte character, for example.
+ #
+ # By default, if the surrounding group is broken and a newline is inserted,
+ # the printer will indent the subsequent line up to the current level of
+ # indentation. You can disable this behavior with the +indent+ argument if
+ # that's not desired (rare).
+ #
+ # By default, when you insert a Breakable into the print tree, it only breaks
+ # the surrounding group when the group's contents cannot fit onto the
+ # remaining space of the current line. You can force it to break the
+ # surrounding group instead if you always want the newline with the +force+
+ # argument.
+ #
+ # There are a few circumstances where you'll want to force the newline into
+ # the output but no insert a break parent (because you don't want to
+ # necessarily force the groups to break unless they need to). In this case you
+ # can pass `force: :skip_break_parent` to this method and it will not insert
+ # a break parent.`
+ #
+ # source://prettier_print//lib/prettier_print.rb#802
+ def breakable(separator = T.unsafe(nil), width = T.unsafe(nil), indent: T.unsafe(nil), force: T.unsafe(nil)); end
+
+ # Another very common breakable call you receive while formatting is an
+ # empty string in flat mode and a newline in break mode. Similar to
+ # breakable_space, this is here for avoid unnecessary calculation.
+ #
+ # source://prettier_print//lib/prettier_print.rb#646
+ def breakable_empty; end
+
+ # The final of the very common breakable calls you receive while formatting
+ # is the normal breakable space but with the addition of the break_parent.
+ #
+ # source://prettier_print//lib/prettier_print.rb#652
+ def breakable_force; end
+
+ # This is the same shortcut as breakable_force, except that it doesn't indent
+ # the next line. This is necessary if you're trying to preserve some custom
+ # formatting like a multi-line string.
+ #
+ # source://prettier_print//lib/prettier_print.rb#660
+ def breakable_return; end
+
+ # The vast majority of breakable calls you receive while formatting are a
+ # space in flat mode and a newline in break mode. Since this is so common,
+ # we have a method here to skip past unnecessary calculation.
+ #
+ # source://prettier_print//lib/prettier_print.rb#639
+ def breakable_space; end
+
+ # This is an output buffer that wraps the output object and provides
+ # additional functionality depending on its type.
+ #
+ # This defaults to Buffer::StringBuffer.new("".dup)
+ #
+ # source://prettier_print//lib/prettier_print.rb#400
+ def buffer; end
+
+ # A convenience method which is same as follows:
+ #
+ # text(",")
+ # breakable
+ #
+ # source://prettier_print//lib/prettier_print.rb#669
+ def comma_breakable; end
+
+ # Returns the group most recently added to the stack.
+ #
+ # Contrived example:
+ # out = ""
+ # => ""
+ # q = PrettierPrint.new(out)
+ # => #
+ # q.group {
+ # q.text q.current_group.inspect
+ # q.text q.newline
+ # q.group(q.current_group.depth + 1) {
+ # q.text q.current_group.inspect
+ # q.text q.newline
+ # q.group(q.current_group.depth + 1) {
+ # q.text q.current_group.inspect
+ # q.text q.newline
+ # q.group(q.current_group.depth + 1) {
+ # q.text q.current_group.inspect
+ # q.text q.newline
+ # }
+ # }
+ # }
+ # }
+ # => 284
+ # puts out
+ # #
+ # #
+ # #
+ # #
+ #
+ # source://prettier_print//lib/prettier_print.rb#484
+ def current_group; end
+
+ # This is similar to #breakable except the decision to break or not is
+ # determined individually.
+ #
+ # Two #fill_breakable under a group may cause 4 results:
+ # (break,break), (break,non-break), (non-break,break), (non-break,non-break).
+ # This is different to #breakable because two #breakable under a group
+ # may cause 2 results: (break,break), (non-break,non-break).
+ #
+ # The text +separator+ is inserted if a line is not broken at this point.
+ #
+ # If +separator+ is not specified, ' ' is used.
+ #
+ # If +width+ is not specified, +separator.length+ is used. You will have to
+ # specify this when +separator+ is a multibyte character, for example.
+ #
+ # source://prettier_print//lib/prettier_print.rb#688
+ def fill_breakable(separator = T.unsafe(nil), width = T.unsafe(nil)); end
+
+ # Flushes all of the generated print tree onto the output buffer, then clears
+ # the generated tree from memory.
+ #
+ # source://prettier_print//lib/prettier_print.rb#490
+ def flush(base_indentation = T.unsafe(nil)); end
+
+ # An object that responds to call that takes one argument, of an Integer, and
+ # returns the corresponding number of spaces.
+ #
+ # By default this is: ->(n) { ' ' * n }
+ #
+ # source://prettier_print//lib/prettier_print.rb#416
+ def genspace; end
+
+ # Groups line break hints added in the block. The line break hints are all to
+ # be used or not.
+ #
+ # If +indent+ is specified, the method call is regarded as nested by
+ # nest(indent) { ... }.
+ #
+ # If +open_object+ is specified, text(open_object, open_width) is
+ # called before grouping. If +close_object+ is specified,
+ # text(close_object, close_width) is called after grouping.
+ #
+ # source://prettier_print//lib/prettier_print.rb#845
+ def group(indent = T.unsafe(nil), open_object = T.unsafe(nil), close_object = T.unsafe(nil), open_width = T.unsafe(nil), close_width = T.unsafe(nil)); end
+
+ # The stack of groups that are being printed.
+ #
+ # source://prettier_print//lib/prettier_print.rb#419
+ def groups; end
+
+ # Inserts an IfBreak node with the contents of the block being added to its
+ # list of nodes that should be printed if the surrounding node breaks. If it
+ # doesn't, then you can specify the contents to be printed with the #if_flat
+ # method used on the return object from this method. For example,
+ #
+ # q.if_break { q.text('do') }.if_flat { q.text('{') }
+ #
+ # In the example above, if the surrounding group is broken it will print 'do'
+ # and if it is not it will print '{'.
+ #
+ # source://prettier_print//lib/prettier_print.rb#917
+ def if_break; end
+
+ # This is similar to if_break in that it also inserts an IfBreak node into the
+ # print tree, however it's starting from the flat contents, and cannot be used
+ # to build the break contents.
+ #
+ # source://prettier_print//lib/prettier_print.rb#936
+ def if_flat; end
+
+ # Very similar to the #nest method, this indents the nested content by one
+ # level by inserting an Indent node into the print tree. The contents of the
+ # node are determined by the block.
+ #
+ # source://prettier_print//lib/prettier_print.rb#956
+ def indent; end
+
+ # This method calculates the position of the text relative to the current
+ # indentation level when the doc has been printed. It's useful for
+ # determining how to align text to doc nodes that are already built into the
+ # tree.
+ #
+ # source://prettier_print//lib/prettier_print.rb#696
+ def last_position(node); end
+
+ # Inserts a LineSuffix node into the print tree. The contents of the node are
+ # determined by the block.
+ #
+ # source://prettier_print//lib/prettier_print.rb#967
+ def line_suffix(priority: T.unsafe(nil)); end
+
+ # The maximum width of a line, before it is separated in to a newline
+ #
+ # This defaults to 80, and should be an Integer
+ #
+ # source://prettier_print//lib/prettier_print.rb#405
+ def maxwidth; end
+
+ # Increases left margin after newline with +indent+ for line breaks added in
+ # the block.
+ #
+ # source://prettier_print//lib/prettier_print.rb#977
+ def nest(indent); end
+
+ # The value that is appended to +output+ to add a new line.
+ #
+ # This defaults to "\n", and should be String
+ #
+ # source://prettier_print//lib/prettier_print.rb#410
+ def newline; end
+
+ # The output object. It represents the final destination of the contents of
+ # the print tree. It should respond to <<.
+ #
+ # This defaults to "".dup
+ #
+ # source://prettier_print//lib/prettier_print.rb#394
+ def output; end
+
+ # This method will remove any breakables from the list of contents so that
+ # no newlines are present in the output. If a newline is being forced into
+ # the output, the replace value will be used.
+ #
+ # source://prettier_print//lib/prettier_print.rb#721
+ def remove_breaks(node, replace = T.unsafe(nil)); end
+
+ # Adds a separated list.
+ # The list is separated by comma with breakable space, by default.
+ #
+ # #seplist iterates the +list+ using +iter_method+.
+ # It yields each object to the block given for #seplist.
+ # The procedure +separator_proc+ is called between each yields.
+ #
+ # If the iteration is zero times, +separator_proc+ is not called at all.
+ #
+ # If +separator_proc+ is nil or not given,
+ # +lambda { comma_breakable }+ is used.
+ # If +iter_method+ is not given, :each is used.
+ #
+ # For example, following 3 code fragments has similar effect.
+ #
+ # q.seplist([1,2,3]) {|v| xxx v }
+ #
+ # q.seplist([1,2,3], lambda { q.comma_breakable }, :each) {|v| xxx v }
+ #
+ # xxx 1
+ # q.comma_breakable
+ # xxx 2
+ # q.comma_breakable
+ # xxx 3
+ #
+ # source://prettier_print//lib/prettier_print.rb#760
+ def seplist(list, sep = T.unsafe(nil), iter_method = T.unsafe(nil)); end
+
+ # The current array of contents that calls to methods that generate print tree
+ # nodes will append to.
+ #
+ # source://prettier_print//lib/prettier_print.rb#423
+ def target; end
+
+ # This adds +object+ as a text of +width+ columns in width.
+ #
+ # If +width+ is not specified, object.length is used.
+ #
+ # source://prettier_print//lib/prettier_print.rb#989
+ def text(object = T.unsafe(nil), width = T.unsafe(nil)); end
+
+ # This inserts a Trim node into the print tree which, when printed, will clear
+ # all whitespace at the end of the output buffer. This is useful for the rare
+ # case where you need to delete printed indentation and force the next node
+ # to start at the beginning of the line.
+ #
+ # source://prettier_print//lib/prettier_print.rb#828
+ def trim; end
+
+ # A convenience method used by a lot of the print tree node builders that
+ # temporarily changes the target that the builders will append to.
+ #
+ # source://prettier_print//lib/prettier_print.rb#1007
+ def with_target(target); end
+
+ private
+
+ # This method returns a boolean as to whether or not the remaining commands
+ # fit onto the remaining space on the current line. If we finish printing
+ # all of the commands or if we hit a newline, then we return true. Otherwise
+ # if we continue printing past the remaining space, we return false.
+ #
+ # @return [Boolean]
+ #
+ # source://prettier_print//lib/prettier_print.rb#1019
+ def fits?(next_commands, rest_commands, remaining); end
+
+ # source://prettier_print//lib/prettier_print.rb#1091
+ def remove_breaks_with(doc, replace); end
+
+ # Resets the group stack and target array so that this pretty printer object
+ # can continue to be used before calling flush again if desired.
+ #
+ # source://prettier_print//lib/prettier_print.rb#1085
+ def reset; end
+
+ class << self
+ # This is a convenience method which is same as follows:
+ #
+ # begin
+ # q = PrettierPrint.new(output, maxwidth, newline, &genspace)
+ # ...
+ # q.flush
+ # output
+ # end
+ #
+ # @yield [q]
+ #
+ # source://prettier_print//lib/prettier_print.rb#377
+ def format(output = T.unsafe(nil), maxwidth = T.unsafe(nil), newline = T.unsafe(nil), genspace = T.unsafe(nil), indentation = T.unsafe(nil)); end
+
+ # This is similar to PrettierPrint::format but the result has no breaks.
+ #
+ # +maxwidth+, +newline+ and +genspace+ are ignored.
+ #
+ # The invocation of +breakable+ in the block doesn't break a line and is
+ # treated as just an invocation of +text+.
+ #
+ # @yield [q]
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#156
+ def singleline_format(output = T.unsafe(nil), _maxwidth = T.unsafe(nil), _newline = T.unsafe(nil), _genspace = T.unsafe(nil)); end
+ end
+end
+
+# A node in the print tree that represents aligning nested nodes to a certain
+# prefix width or string.
+#
+# source://prettier_print//lib/prettier_print.rb#65
+class PrettierPrint::Align
+ # @return [Align] a new instance of Align
+ #
+ # source://prettier_print//lib/prettier_print.rb#68
+ def initialize(indent:, contents: T.unsafe(nil)); end
+
+ # Returns the value of attribute contents.
+ #
+ # source://prettier_print//lib/prettier_print.rb#66
+ def contents; end
+
+ # Returns the value of attribute indent.
+ #
+ # source://prettier_print//lib/prettier_print.rb#66
+ def indent; end
+
+ # source://prettier_print//lib/prettier_print.rb#73
+ def pretty_print(q); end
+end
+
+# source://prettier_print//lib/prettier_print.rb#126
+PrettierPrint::BREAKABLE_EMPTY = T.let(T.unsafe(nil), PrettierPrint::Breakable)
+
+# source://prettier_print//lib/prettier_print.rb#127
+PrettierPrint::BREAKABLE_FORCE = T.let(T.unsafe(nil), PrettierPrint::Breakable)
+
+# source://prettier_print//lib/prettier_print.rb#128
+PrettierPrint::BREAKABLE_RETURN = T.let(T.unsafe(nil), PrettierPrint::Breakable)
+
+# Below here are the most common combination of options that are created when
+# creating new breakables. They are here to cut down on some allocations.
+#
+# source://prettier_print//lib/prettier_print.rb#125
+PrettierPrint::BREAKABLE_SPACE = T.let(T.unsafe(nil), PrettierPrint::Breakable)
+
+# Since there's really no difference in these instances, just using the same
+# one saves on some allocations.
+#
+# source://prettier_print//lib/prettier_print.rb#141
+PrettierPrint::BREAK_PARENT = T.let(T.unsafe(nil), PrettierPrint::BreakParent)
+
+# A node in the print tree that forces the surrounding group to print out in
+# the "break" mode as opposed to the "flat" mode. Useful for when you need to
+# force a newline into a group.
+#
+# source://prettier_print//lib/prettier_print.rb#133
+class PrettierPrint::BreakParent
+ # source://prettier_print//lib/prettier_print.rb#134
+ def pretty_print(q); end
+end
+
+# A node in the print tree that represents a place in the buffer that the
+# content can be broken onto multiple lines.
+#
+# source://prettier_print//lib/prettier_print.rb#82
+class PrettierPrint::Breakable
+ # @return [Breakable] a new instance of Breakable
+ #
+ # source://prettier_print//lib/prettier_print.rb#85
+ def initialize(separator = T.unsafe(nil), width = T.unsafe(nil), force: T.unsafe(nil), indent: T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://prettier_print//lib/prettier_print.rb#97
+ def force?; end
+
+ # @return [Boolean]
+ #
+ # source://prettier_print//lib/prettier_print.rb#101
+ def indent?; end
+
+ # source://prettier_print//lib/prettier_print.rb#105
+ def pretty_print(q); end
+
+ # Returns the value of attribute separator.
+ #
+ # source://prettier_print//lib/prettier_print.rb#83
+ def separator; end
+
+ # Returns the value of attribute width.
+ #
+ # source://prettier_print//lib/prettier_print.rb#83
+ def width; end
+end
+
+# When building up the contents in the output buffer, it's convenient to be
+# able to trim trailing whitespace before newlines. If the output object is a
+# string or array or strings, then we can do this with some gsub calls. If
+# not, then this effectively just wraps the output object and forwards on
+# calls to <<.
+#
+# source://prettier_print//lib/prettier_print.rb#277
+module PrettierPrint::Buffer
+ class << self
+ # This is a switch for building the correct output buffer wrapper class for
+ # the given output object.
+ #
+ # source://prettier_print//lib/prettier_print.rb#336
+ def for(output); end
+ end
+end
+
+# This is an output buffer that wraps an array output object. It provides a
+# trim! method that trims off trailing whitespace from the last element in
+# the array if it's an unfrozen string using the same method as the
+# StringBuffer.
+#
+# source://prettier_print//lib/prettier_print.rb#303
+class PrettierPrint::Buffer::ArrayBuffer
+ # @return [ArrayBuffer] a new instance of ArrayBuffer
+ #
+ # source://prettier_print//lib/prettier_print.rb#306
+ def initialize(output = T.unsafe(nil)); end
+
+ # source://prettier_print//lib/prettier_print.rb#310
+ def <<(object); end
+
+ # Returns the value of attribute output.
+ #
+ # source://prettier_print//lib/prettier_print.rb#304
+ def output; end
+
+ # source://prettier_print//lib/prettier_print.rb#314
+ def trim!; end
+end
+
+# This is an output buffer that wraps a string output object. It provides a
+# trim! method that trims off trailing whitespace from the string using
+# gsub!.
+#
+# source://prettier_print//lib/prettier_print.rb#281
+class PrettierPrint::Buffer::StringBuffer
+ # @return [StringBuffer] a new instance of StringBuffer
+ #
+ # source://prettier_print//lib/prettier_print.rb#284
+ def initialize(output = T.unsafe(nil)); end
+
+ # source://prettier_print//lib/prettier_print.rb#288
+ def <<(object); end
+
+ # Returns the value of attribute output.
+ #
+ # source://prettier_print//lib/prettier_print.rb#282
+ def output; end
+
+ # source://prettier_print//lib/prettier_print.rb#292
+ def trim!; end
+end
+
+# When generating spaces after a newline for indentation, by default we
+# generate one space per character needed for indentation. You can change this
+# behavior (for instance to use tabs) by passing a different genspace
+# procedure.
+#
+# source://prettier_print//lib/prettier_print.rb#350
+PrettierPrint::DEFAULT_GENSPACE = T.let(T.unsafe(nil), Proc)
+
+# The default indentation for printing is zero, assuming that the code starts
+# at the top level. That can be changed if desired to start from a different
+# indentation level.
+#
+# source://prettier_print//lib/prettier_print.rb#366
+PrettierPrint::DEFAULT_INDENTATION = T.let(T.unsafe(nil), Integer)
+
+# When printing, you can optionally specify the value that should be used
+# whenever a group needs to be broken onto multiple lines. In this case the
+# default is \n.
+#
+# source://prettier_print//lib/prettier_print.rb#344
+PrettierPrint::DEFAULT_NEWLINE = T.let(T.unsafe(nil), String)
+
+# A node in the print tree that represents a group of items which the printer
+# should try to fit onto one line. This is the basic command to tell the
+# printer when to break. Groups are usually nested, and the printer will try
+# to fit everything on one line, but if it doesn't fit it will break the
+# outermost group first and try again. It will continue breaking groups until
+# everything fits (or there are no more groups to break).
+#
+# source://prettier_print//lib/prettier_print.rb#149
+class PrettierPrint::Group
+ # @return [Group] a new instance of Group
+ #
+ # source://prettier_print//lib/prettier_print.rb#152
+ def initialize(depth, contents: T.unsafe(nil)); end
+
+ # source://prettier_print//lib/prettier_print.rb#158
+ def break; end
+
+ # @return [Boolean]
+ #
+ # source://prettier_print//lib/prettier_print.rb#162
+ def break?; end
+
+ # Returns the value of attribute contents.
+ #
+ # source://prettier_print//lib/prettier_print.rb#150
+ def contents; end
+
+ # Returns the value of attribute depth.
+ #
+ # source://prettier_print//lib/prettier_print.rb#150
+ def depth; end
+
+ # source://prettier_print//lib/prettier_print.rb#166
+ def pretty_print(q); end
+end
+
+# A node in the print tree that represents printing one thing if the
+# surrounding group node is broken and another thing if the surrounding group
+# node is flat.
+#
+# source://prettier_print//lib/prettier_print.rb#176
+class PrettierPrint::IfBreak
+ # @return [IfBreak] a new instance of IfBreak
+ #
+ # source://prettier_print//lib/prettier_print.rb#179
+ def initialize(break_contents: T.unsafe(nil), flat_contents: T.unsafe(nil)); end
+
+ # Returns the value of attribute break_contents.
+ #
+ # source://prettier_print//lib/prettier_print.rb#177
+ def break_contents; end
+
+ # Returns the value of attribute flat_contents.
+ #
+ # source://prettier_print//lib/prettier_print.rb#177
+ def flat_contents; end
+
+ # source://prettier_print//lib/prettier_print.rb#184
+ def pretty_print(q); end
+end
+
+# A small DSL-like object used for specifying the alternative contents to be
+# printed if the surrounding group doesn't break for an IfBreak node.
+#
+# source://prettier_print//lib/prettier_print.rb#874
+class PrettierPrint::IfBreakBuilder
+ # @return [IfBreakBuilder] a new instance of IfBreakBuilder
+ #
+ # source://prettier_print//lib/prettier_print.rb#877
+ def initialize(q, flat_contents); end
+
+ # Returns the value of attribute flat_contents.
+ #
+ # source://prettier_print//lib/prettier_print.rb#875
+ def flat_contents; end
+
+ # source://prettier_print//lib/prettier_print.rb#882
+ def if_flat; end
+
+ # Returns the value of attribute q.
+ #
+ # source://prettier_print//lib/prettier_print.rb#875
+ def q; end
+end
+
+# When we already know that groups are broken, we don't actually need to track
+# the flat versions of the contents. So this builder version is effectively a
+# no-op, but we need it to maintain the same API. The only thing this can
+# impact is that if there's a forced break in the flat contents, then we need
+# to propagate that break up the whole tree.
+#
+# source://prettier_print//lib/prettier_print.rb#892
+class PrettierPrint::IfFlatIgnore
+ # @return [IfFlatIgnore] a new instance of IfFlatIgnore
+ #
+ # source://prettier_print//lib/prettier_print.rb#895
+ def initialize(q); end
+
+ # source://prettier_print//lib/prettier_print.rb#899
+ def if_flat; end
+
+ # Returns the value of attribute q.
+ #
+ # source://prettier_print//lib/prettier_print.rb#893
+ def q; end
+end
+
+# A node in the print tree that is a variant of the Align node that indents
+# its contents by one level.
+#
+# source://prettier_print//lib/prettier_print.rb#200
+class PrettierPrint::Indent
+ # @return [Indent] a new instance of Indent
+ #
+ # source://prettier_print//lib/prettier_print.rb#203
+ def initialize(contents: T.unsafe(nil)); end
+
+ # Returns the value of attribute contents.
+ #
+ # source://prettier_print//lib/prettier_print.rb#201
+ def contents; end
+
+ # source://prettier_print//lib/prettier_print.rb#207
+ def pretty_print(q); end
+end
+
+# A node in the print tree that has its own special buffer for implementing
+# content that should flush before any newline.
+#
+# Useful for implementating trailing content, as it's not always practical to
+# constantly check where the line ends to avoid accidentally printing some
+# content after a line suffix node.
+#
+# source://prettier_print//lib/prettier_print.rb#220
+class PrettierPrint::LineSuffix
+ # @return [LineSuffix] a new instance of LineSuffix
+ #
+ # source://prettier_print//lib/prettier_print.rb#225
+ def initialize(priority: T.unsafe(nil), contents: T.unsafe(nil)); end
+
+ # Returns the value of attribute contents.
+ #
+ # source://prettier_print//lib/prettier_print.rb#223
+ def contents; end
+
+ # source://prettier_print//lib/prettier_print.rb#230
+ def pretty_print(q); end
+
+ # Returns the value of attribute priority.
+ #
+ # source://prettier_print//lib/prettier_print.rb#223
+ def priority; end
+end
+
+# source://prettier_print//lib/prettier_print.rb#221
+PrettierPrint::LineSuffix::DEFAULT_PRIORITY = T.let(T.unsafe(nil), Integer)
+
+# There are two modes in printing, break and flat. When we're in break mode,
+# any lines will use their newline, any if-breaks will use their break
+# contents, etc.
+#
+# source://prettier_print//lib/prettier_print.rb#356
+PrettierPrint::MODE_BREAK = T.let(T.unsafe(nil), Integer)
+
+# This is another print mode much like MODE_BREAK. When we're in flat mode, we
+# attempt to print everything on one line until we either hit a broken group,
+# a forced line, or the maximum width.
+#
+# source://prettier_print//lib/prettier_print.rb#361
+PrettierPrint::MODE_FLAT = T.let(T.unsafe(nil), Integer)
+
+# PrettierPrint::SingleLine is used by PrettierPrint.singleline_format
+#
+# It is passed to be similar to a PrettierPrint object itself, by responding to
+# all of the same print tree node builder methods, as well as the #flush
+# method.
+#
+# The significant difference here is that there are no line breaks in the
+# output. If an IfBreak node is used, only the flat contents are printed.
+# LineSuffix nodes are printed at the end of the buffer when #flush is called.
+#
+# source://prettier_print//lib/prettier_print/single_line.rb#13
+class PrettierPrint::SingleLine
+ # Create a PrettierPrint::SingleLine object
+ #
+ # Arguments:
+ # * +output+ - String (or similar) to store rendered text. Needs to respond
+ # to '<<'.
+ # * +maxwidth+ - Argument position expected to be here for compatibility.
+ # This argument is a noop.
+ # * +newline+ - Argument position expected to be here for compatibility.
+ # This argument is a noop.
+ #
+ # @return [SingleLine] a new instance of SingleLine
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#34
+ def initialize(output, _maxwidth = T.unsafe(nil), _newline = T.unsafe(nil)); end
+
+ # Here for compatibility, does nothing.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#64
+ def break_parent; end
+
+ # Appends +separator+ to the text to be output. By default +separator+ is
+ # ' '
+ #
+ # The +width+, +indent+, and +force+ arguments are here for compatibility.
+ # They are all noop arguments.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#54
+ def breakable(separator = T.unsafe(nil), _width = T.unsafe(nil), indent: T.unsafe(nil), force: T.unsafe(nil)); end
+
+ # Appends +separator+ to the output buffer. +width+ is a noop here for
+ # compatibility.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#69
+ def fill_breakable(separator = T.unsafe(nil), _width = T.unsafe(nil)); end
+
+ # Flushes the line suffixes onto the output buffer.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#41
+ def flush; end
+
+ # Opens a block for grouping objects to be pretty printed.
+ #
+ # Arguments:
+ # * +indent+ - noop argument. Present for compatibility.
+ # * +open_obj+ - text appended before the &block. Default is ''
+ # * +close_obj+ - text appended after the &block. Default is ''
+ # * +open_width+ - noop argument. Present for compatibility.
+ # * +close_width+ - noop argument. Present for compatibility.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#90
+ def group(_indent = T.unsafe(nil), open_object = T.unsafe(nil), close_object = T.unsafe(nil), _open_width = T.unsafe(nil), _close_width = T.unsafe(nil)); end
+
+ # Effectively unnecessary, but here for compatibility.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#113
+ def if_break; end
+
+ # Also effectively unnecessary, but here for compatibility.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#118
+ def if_flat; end
+
+ # A noop that immediately yields.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#122
+ def indent; end
+
+ # Changes the target output buffer to the line suffix output buffer which
+ # will get flushed at the end of printing.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#128
+ def line_suffix; end
+
+ # A buffer output that wraps any calls to line_suffix that will be flushed
+ # at the end of printing.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#23
+ def line_suffixes; end
+
+ # Takes +indent+ arg, but does nothing with it.
+ #
+ # Yields to a block.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#137
+ def nest(_indent); end
+
+ # The output object. It stores rendered text and should respond to <<.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#15
+ def output; end
+
+ # The current array of contents that the print tree builder methods should
+ # append to.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#19
+ def target; end
+
+ # Add +object+ to the text to be output.
+ #
+ # +width+ argument is here for compatibility. It is a noop argument.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#144
+ def text(object = T.unsafe(nil), _width = T.unsafe(nil)); end
+
+ # Immediately trims the output buffer.
+ #
+ # source://prettier_print//lib/prettier_print/single_line.rb#74
+ def trim; end
+end
+
+# A class that wraps the ability to call #if_flat. The contents of the
+# #if_flat block are executed immediately, so effectively this class and the
+# #if_break method that triggers it are unnecessary, but they're here to
+# maintain compatibility.
+#
+# source://prettier_print//lib/prettier_print/single_line.rb#106
+class PrettierPrint::SingleLine::IfBreakBuilder
+ # source://prettier_print//lib/prettier_print/single_line.rb#107
+ def if_flat; end
+end
+
+# Since all of the instances here are the same, we can reuse the same one to
+# cut down on allocations.
+#
+# source://prettier_print//lib/prettier_print.rb#270
+PrettierPrint::TRIM = T.let(T.unsafe(nil), PrettierPrint::Trim)
+
+# A node in the print tree that represents plain content that cannot be broken
+# up (by default this assumes strings, but it can really be anything).
+#
+# source://prettier_print//lib/prettier_print.rb#239
+class PrettierPrint::Text
+ # @return [Text] a new instance of Text
+ #
+ # source://prettier_print//lib/prettier_print.rb#242
+ def initialize; end
+
+ # source://prettier_print//lib/prettier_print.rb#247
+ def add(object: T.unsafe(nil), width: T.unsafe(nil)); end
+
+ # Returns the value of attribute objects.
+ #
+ # source://prettier_print//lib/prettier_print.rb#240
+ def objects; end
+
+ # source://prettier_print//lib/prettier_print.rb#252
+ def pretty_print(q); end
+
+ # Returns the value of attribute width.
+ #
+ # source://prettier_print//lib/prettier_print.rb#240
+ def width; end
+end
+
+# A node in the print tree that represents trimming all of the indentation of
+# the current line, in the rare case that you need to ignore the indentation
+# that you've already created. This node should be placed after a Breakable.
+#
+# source://prettier_print//lib/prettier_print.rb#262
+class PrettierPrint::Trim
+ # source://prettier_print//lib/prettier_print.rb#263
+ def pretty_print(q); end
+end
diff --git a/sorbet/rbi/gems/racc@1.7.1.rbi b/sorbet/rbi/gems/racc@1.7.1.rbi
new file mode 100644
index 0000000..d01a4f5
--- /dev/null
+++ b/sorbet/rbi/gems/racc@1.7.1.rbi
@@ -0,0 +1,161 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `racc` gem.
+# Please instead update this file by running `bin/tapioca gem racc`.
+
+# source://racc//lib/racc/parser.rb#23
+ParseError = Racc::ParseError
+
+# source://racc//lib/racc/info.rb#16
+Racc::Copyright = T.let(T.unsafe(nil), String)
+
+# source://racc//lib/racc/parser.rb#186
+class Racc::Parser
+ # source://racc//lib/racc/parser.rb#281
+ def _racc_do_parse_rb(arg, in_debug); end
+
+ # source://racc//lib/racc/parser.rb#481
+ def _racc_do_reduce(arg, act); end
+
+ # common
+ #
+ # source://racc//lib/racc/parser.rb#384
+ def _racc_evalact(act, arg); end
+
+ # source://racc//lib/racc/parser.rb#234
+ def _racc_init_sysvars; end
+
+ # source://racc//lib/racc/parser.rb#222
+ def _racc_setup; end
+
+ # source://racc//lib/racc/parser.rb#331
+ def _racc_yyparse_rb(recv, mid, arg, c_debug); end
+
+ # source://racc//lib/racc/parser.rb#264
+ def do_parse; end
+
+ # The method to fetch next token.
+ # If you use #do_parse method, you must implement #next_token.
+ #
+ # The format of return value is [TOKEN_SYMBOL, VALUE].
+ # +token-symbol+ is represented by Ruby's symbol by default, e.g. :IDENT
+ # for 'IDENT'. ";" (String) for ';'.
+ #
+ # The final symbol (End of file) must be false.
+ #
+ # @raise [NotImplementedError]
+ #
+ # source://racc//lib/racc/parser.rb#277
+ def next_token; end
+
+ # This method is called when a parse error is found.
+ #
+ # ERROR_TOKEN_ID is an internal ID of token which caused error.
+ # You can get string representation of this ID by calling
+ # #token_to_str.
+ #
+ # ERROR_VALUE is a value of error token.
+ #
+ # value_stack is a stack of symbol values.
+ # DO NOT MODIFY this object.
+ #
+ # This method raises ParseError by default.
+ #
+ # If this method returns, parsers enter "error recovering mode".
+ #
+ # @raise [ParseError]
+ #
+ # source://racc//lib/racc/parser.rb#537
+ def on_error(t, val, vstack); end
+
+ # source://racc//lib/racc/parser.rb#586
+ def racc_accept; end
+
+ # source://racc//lib/racc/parser.rb#591
+ def racc_e_pop(state, tstack, vstack); end
+
+ # source://racc//lib/racc/parser.rb#598
+ def racc_next_state(curstate, state); end
+
+ # source://racc//lib/racc/parser.rb#604
+ def racc_print_stacks(t, v); end
+
+ # source://racc//lib/racc/parser.rb#613
+ def racc_print_states(s); end
+
+ # For debugging output
+ #
+ # source://racc//lib/racc/parser.rb#560
+ def racc_read_token(t, tok, val); end
+
+ # source://racc//lib/racc/parser.rb#573
+ def racc_reduce(toks, sim, tstack, vstack); end
+
+ # source://racc//lib/racc/parser.rb#567
+ def racc_shift(tok, tstack, vstack); end
+
+ # source://racc//lib/racc/parser.rb#620
+ def racc_token2str(tok); end
+
+ # Convert internal ID of token symbol to the string.
+ #
+ # source://racc//lib/racc/parser.rb#626
+ def token_to_str(t); end
+
+ # Exit parser.
+ # Return value is +Symbol_Value_Stack[0]+.
+ #
+ # source://racc//lib/racc/parser.rb#550
+ def yyaccept; end
+
+ # Leave error recovering mode.
+ #
+ # source://racc//lib/racc/parser.rb#555
+ def yyerrok; end
+
+ # Enter error recovering mode.
+ # This method does not call #on_error.
+ #
+ # source://racc//lib/racc/parser.rb#544
+ def yyerror; end
+
+ # source://racc//lib/racc/parser.rb#326
+ def yyparse(recv, mid); end
+
+ class << self
+ # source://racc//lib/racc/parser.rb#218
+ def racc_runtime_type; end
+ end
+end
+
+# source://racc//lib/racc/parser.rb#207
+Racc::Parser::Racc_Main_Parsing_Routine = T.let(T.unsafe(nil), Symbol)
+
+Racc::Parser::Racc_Runtime_Core_Id_C = T.let(T.unsafe(nil), String)
+
+# source://racc//lib/racc/parser.rb#209
+Racc::Parser::Racc_Runtime_Core_Version = T.let(T.unsafe(nil), String)
+
+Racc::Parser::Racc_Runtime_Core_Version_C = T.let(T.unsafe(nil), String)
+
+# source://racc//lib/racc/parser.rb#189
+Racc::Parser::Racc_Runtime_Core_Version_R = T.let(T.unsafe(nil), String)
+
+# source://racc//lib/racc/parser.rb#210
+Racc::Parser::Racc_Runtime_Type = T.let(T.unsafe(nil), String)
+
+# source://racc//lib/racc/parser.rb#188
+Racc::Parser::Racc_Runtime_Version = T.let(T.unsafe(nil), String)
+
+# source://racc//lib/racc/parser.rb#208
+Racc::Parser::Racc_YY_Parse_Method = T.let(T.unsafe(nil), Symbol)
+
+# source://racc//lib/racc/parser.rb#183
+Racc::Racc_No_Extensions = T.let(T.unsafe(nil), FalseClass)
+
+# source://racc//lib/racc/info.rb#14
+Racc::VERSION = T.let(T.unsafe(nil), String)
+
+# source://racc//lib/racc/info.rb#15
+Racc::Version = T.let(T.unsafe(nil), String)
diff --git a/sorbet/rbi/gems/rack@3.0.8.rbi b/sorbet/rbi/gems/rack@3.0.8.rbi
new file mode 100644
index 0000000..d6a4eac
--- /dev/null
+++ b/sorbet/rbi/gems/rack@3.0.8.rbi
@@ -0,0 +1,5183 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `rack` gem.
+# Please instead update this file by running `bin/tapioca gem rack`.
+
+# The Rack main module, serving as a namespace for all core Rack
+# modules and classes.
+#
+# All modules meant for use in your application are autoloaded here,
+# so it should be enough just to require 'rack' in your code.
+#
+# source://rack//lib/rack/version.rb#14
+module Rack
+ class << self
+ # Return the Rack release as a dotted string.
+ #
+ # source://rack//lib/rack/version.rb#31
+ def release; end
+
+ # The Rack protocol version number implemented.
+ #
+ # source://rack//lib/rack/version.rb#23
+ def version; end
+ end
+end
+
+# source://rack//lib/rack.rb#65
+module Rack::Auth; end
+
+# Rack::Auth::AbstractHandler implements common authentication functionality.
+#
+# +realm+ should be set for all handlers.
+#
+# source://rack//lib/rack/auth/abstract/handler.rb#11
+class Rack::Auth::AbstractHandler
+ # @return [AbstractHandler] a new instance of AbstractHandler
+ #
+ # source://rack//lib/rack/auth/abstract/handler.rb#15
+ def initialize(app, realm = T.unsafe(nil), &authenticator); end
+
+ # Returns the value of attribute realm.
+ #
+ # source://rack//lib/rack/auth/abstract/handler.rb#13
+ def realm; end
+
+ # Sets the attribute realm
+ #
+ # @param value the value to set the attribute realm to.
+ #
+ # source://rack//lib/rack/auth/abstract/handler.rb#13
+ def realm=(_arg0); end
+
+ private
+
+ # source://rack//lib/rack/auth/abstract/handler.rb#31
+ def bad_request; end
+
+ # source://rack//lib/rack/auth/abstract/handler.rb#22
+ def unauthorized(www_authenticate = T.unsafe(nil)); end
+end
+
+# source://rack//lib/rack/auth/abstract/request.rb#7
+class Rack::Auth::AbstractRequest
+ # @return [AbstractRequest] a new instance of AbstractRequest
+ #
+ # source://rack//lib/rack/auth/abstract/request.rb#9
+ def initialize(env); end
+
+ # source://rack//lib/rack/auth/abstract/request.rb#33
+ def params; end
+
+ # source://rack//lib/rack/auth/abstract/request.rb#25
+ def parts; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/abstract/request.rb#17
+ def provided?; end
+
+ # source://rack//lib/rack/auth/abstract/request.rb#13
+ def request; end
+
+ # source://rack//lib/rack/auth/abstract/request.rb#29
+ def scheme; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/abstract/request.rb#21
+ def valid?; end
+
+ private
+
+ # source://rack//lib/rack/auth/abstract/request.rb#42
+ def authorization_key; end
+end
+
+# source://rack//lib/rack/auth/abstract/request.rb#40
+Rack::Auth::AbstractRequest::AUTHORIZATION_KEYS = T.let(T.unsafe(nil), Array)
+
+# Rack::Auth::Basic implements HTTP Basic Authentication, as per RFC 2617.
+#
+# Initialize with the Rack application that you want protecting,
+# and a block that checks if a username and password pair are valid.
+#
+# source://rack//lib/rack/auth/basic.rb#14
+class Rack::Auth::Basic < ::Rack::Auth::AbstractHandler
+ # source://rack//lib/rack/auth/basic.rb#16
+ def call(env); end
+
+ private
+
+ # source://rack//lib/rack/auth/basic.rb#35
+ def challenge; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/basic.rb#39
+ def valid?(auth); end
+end
+
+# source://rack//lib/rack/auth/basic.rb#43
+class Rack::Auth::Basic::Request < ::Rack::Auth::AbstractRequest
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/basic.rb#44
+ def basic?; end
+
+ # source://rack//lib/rack/auth/basic.rb#48
+ def credentials; end
+
+ # source://rack//lib/rack/auth/basic.rb#52
+ def username; end
+end
+
+# source://rack//lib/rack/auth/digest.rb#12
+module Rack::Auth::Digest; end
+
+# Rack::Auth::Digest::MD5 implements the MD5 algorithm version of
+# HTTP Digest Authentication, as per RFC 2617.
+#
+# Initialize with the [Rack] application that you want protecting,
+# and a block that looks up a plaintext password for a given username.
+#
+# +opaque+ needs to be set to a constant base64/hexadecimal string.
+#
+# source://rack//lib/rack/auth/digest.rb#144
+class Rack::Auth::Digest::MD5 < ::Rack::Auth::AbstractHandler
+ # @return [MD5] a new instance of MD5
+ #
+ # source://rack//lib/rack/auth/digest.rb#150
+ def initialize(app, realm = T.unsafe(nil), opaque = T.unsafe(nil), &authenticator); end
+
+ # source://rack//lib/rack/auth/digest.rb#163
+ def call(env); end
+
+ # Returns the value of attribute opaque.
+ #
+ # source://rack//lib/rack/auth/digest.rb#146
+ def opaque; end
+
+ # Sets the attribute opaque
+ #
+ # @param value the value to set the attribute opaque to.
+ #
+ # source://rack//lib/rack/auth/digest.rb#146
+ def opaque=(_arg0); end
+
+ # Sets the attribute passwords_hashed
+ #
+ # @param value the value to set the attribute passwords_hashed to.
+ #
+ # source://rack//lib/rack/auth/digest.rb#148
+ def passwords_hashed=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#159
+ def passwords_hashed?; end
+
+ private
+
+ # source://rack//lib/rack/auth/digest.rb#238
+ def A1(auth, password); end
+
+ # source://rack//lib/rack/auth/digest.rb#242
+ def A2(auth); end
+
+ # source://rack//lib/rack/auth/digest.rb#228
+ def H(data); end
+
+ # source://rack//lib/rack/auth/digest.rb#234
+ def KD(secret, data); end
+
+ # source://rack//lib/rack/auth/digest.rb#203
+ def challenge(hash = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/auth/digest.rb#246
+ def digest(auth, password); end
+
+ # source://rack//lib/rack/auth/digest.rb#228
+ def md5(data); end
+
+ # source://rack//lib/rack/auth/digest.rb#192
+ def params(hash = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#207
+ def valid?(auth); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#223
+ def valid_digest?(auth); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#219
+ def valid_nonce?(auth); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#215
+ def valid_opaque?(auth); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#211
+ def valid_qop?(auth); end
+end
+
+# source://rack//lib/rack/auth/digest.rb#190
+Rack::Auth::Digest::MD5::QOP = T.let(T.unsafe(nil), String)
+
+# Rack::Auth::Digest::Nonce is the default nonce generator for the
+# Rack::Auth::Digest::MD5 authentication handler.
+#
+# +private_key+ needs to set to a constant string.
+#
+# +time_limit+ can be optionally set to an integer (number of seconds),
+# to limit the validity of the generated nonces.
+#
+# source://rack//lib/rack/auth/digest.rb#21
+class Rack::Auth::Digest::Nonce
+ # @return [Nonce] a new instance of Nonce
+ #
+ # source://rack//lib/rack/auth/digest.rb#31
+ def initialize(timestamp = T.unsafe(nil), given_digest = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/auth/digest.rb#39
+ def digest; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#51
+ def fresh?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#47
+ def stale?; end
+
+ # source://rack//lib/rack/auth/digest.rb#35
+ def to_s; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#43
+ def valid?; end
+
+ class << self
+ # source://rack//lib/rack/auth/digest.rb#27
+ def parse(string); end
+
+ # Returns the value of attribute private_key.
+ #
+ # source://rack//lib/rack/auth/digest.rb#24
+ def private_key; end
+
+ # Sets the attribute private_key
+ #
+ # @param value the value to set the attribute private_key to.
+ #
+ # source://rack//lib/rack/auth/digest.rb#24
+ def private_key=(_arg0); end
+
+ # Returns the value of attribute time_limit.
+ #
+ # source://rack//lib/rack/auth/digest.rb#24
+ def time_limit; end
+
+ # Sets the attribute time_limit
+ #
+ # @param value the value to set the attribute time_limit to.
+ #
+ # source://rack//lib/rack/auth/digest.rb#24
+ def time_limit=(_arg0); end
+ end
+end
+
+# source://rack//lib/rack/auth/digest.rb#57
+class Rack::Auth::Digest::Params < ::Hash
+ # @return [Params] a new instance of Params
+ # @yield [_self]
+ # @yieldparam _self [Rack::Auth::Digest::Params] the object that the method was called on
+ #
+ # source://rack//lib/rack/auth/digest.rb#76
+ def initialize; end
+
+ # source://rack//lib/rack/auth/digest.rb#82
+ def [](k); end
+
+ # source://rack//lib/rack/auth/digest.rb#86
+ def []=(k, v); end
+
+ # From WEBrick::HTTPUtils
+ #
+ # source://rack//lib/rack/auth/digest.rb#98
+ def quote(str); end
+
+ # source://rack//lib/rack/auth/digest.rb#92
+ def to_s; end
+
+ class << self
+ # From WEBrick::HTTPUtils
+ #
+ # source://rack//lib/rack/auth/digest.rb#66
+ def dequote(str); end
+
+ # source://rack//lib/rack/auth/digest.rb#59
+ def parse(str); end
+
+ # source://rack//lib/rack/auth/digest.rb#72
+ def split_header_value(str); end
+ end
+end
+
+# source://rack//lib/rack/auth/digest.rb#90
+Rack::Auth::Digest::Params::UNQUOTED = T.let(T.unsafe(nil), Array)
+
+# source://rack//lib/rack/auth/digest.rb#104
+class Rack::Auth::Digest::Request < ::Rack::Auth::AbstractRequest
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#113
+ def correct_uri?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#109
+ def digest?; end
+
+ # source://rack//lib/rack/auth/digest.rb#105
+ def method; end
+
+ # @raise [ArgumentError]
+ #
+ # source://rack//lib/rack/auth/digest.rb#129
+ def method_missing(sym, *args); end
+
+ # source://rack//lib/rack/auth/digest.rb#117
+ def nonce; end
+
+ # source://rack//lib/rack/auth/digest.rb#121
+ def params; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/auth/digest.rb#125
+ def respond_to?(sym, *_arg1); end
+end
+
+# Proxy for response bodies allowing calling a block when
+# the response body is closed (after the response has been fully
+# sent to the client).
+#
+# source://rack//lib/rack/body_proxy.rb#7
+class Rack::BodyProxy
+ # Set the response body to wrap, and the block to call when the
+ # response has been fully sent.
+ #
+ # @return [BodyProxy] a new instance of BodyProxy
+ #
+ # source://rack//lib/rack/body_proxy.rb#10
+ def initialize(body, &block); end
+
+ # If not already closed, close the wrapped body and
+ # then call the block the proxy was initialized with.
+ #
+ # source://rack//lib/rack/body_proxy.rb#23
+ def close; end
+
+ # Whether the proxy is closed. The proxy starts as not closed,
+ # and becomes closed on the first call to close.
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/body_proxy.rb#35
+ def closed?; end
+
+ # Delegate missing methods to the wrapped body.
+ #
+ # source://rack//lib/rack/body_proxy.rb#40
+ def method_missing(method_name, *args, **_arg2, &block); end
+
+ private
+
+ # Return whether the wrapped body responds to the method.
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/body_proxy.rb#17
+ def respond_to_missing?(method_name, include_all = T.unsafe(nil)); end
+end
+
+# Rack::Builder provides a domain-specific language (DSL) to construct Rack
+# applications. It is primarily used to parse +config.ru+ files which
+# instantiate several middleware and a final application which are hosted
+# by a Rack-compatible web server.
+#
+# Example:
+#
+# app = Rack::Builder.new do
+# use Rack::CommonLogger
+# map "/ok" do
+# run lambda { |env| [200, {'content-type' => 'text/plain'}, ['OK']] }
+# end
+# end
+#
+# run app
+#
+# Or
+#
+# app = Rack::Builder.app do
+# use Rack::CommonLogger
+# run lambda { |env| [200, {'content-type' => 'text/plain'}, ['OK']] }
+# end
+#
+# run app
+#
+# +use+ adds middleware to the stack, +run+ dispatches to an application.
+# You can use +map+ to construct a Rack::URLMap in a convenient way.
+#
+# source://rack//lib/rack/builder.rb#33
+class Rack::Builder
+ # Initialize a new Rack::Builder instance. +default_app+ specifies the
+ # default application if +run+ is not called later. If a block
+ # is given, it is evaluated in the context of the instance.
+ #
+ # @return [Builder] a new instance of Builder
+ #
+ # source://rack//lib/rack/builder.rb#111
+ def initialize(default_app = T.unsafe(nil), &block); end
+
+ # Call the Rack application generated by this builder instance. Note that
+ # this rebuilds the Rack application and runs the warmup code (if any)
+ # every time it is called, so it should not be used if performance is important.
+ #
+ # source://rack//lib/rack/builder.rb#263
+ def call(env); end
+
+ # Freeze the app (set using run) and all middleware instances when building the application
+ # in to_app.
+ #
+ # source://rack//lib/rack/builder.rb#246
+ def freeze_app; end
+
+ # Creates a route within the application. Routes under the mapped path will be sent to
+ # the Rack application specified by run inside the block. Other requests will be sent to the
+ # default application specified by run outside the block.
+ #
+ # class App
+ # def call(env)
+ # [200, {'content-type' => 'text/plain'}, ["Hello World"]]
+ # end
+ # end
+ #
+ # class Heartbeat
+ # def call(env)
+ # [200, { "content-type" => "text/plain" }, ["OK"]]
+ # end
+ # end
+ #
+ # app = Rack::Builder.app do
+ # map '/heartbeat' do
+ # run Heartbeat.new
+ # end
+ # run App.new
+ # end
+ #
+ # run app
+ #
+ # The +use+ method can also be used inside the block to specify middleware to run under a specific path:
+ #
+ # app = Rack::Builder.app do
+ # map '/heartbeat' do
+ # use Middleware
+ # run Heartbeat.new
+ # end
+ # run App.new
+ # end
+ #
+ # This example includes a piece of middleware which will run before +/heartbeat+ requests hit +Heartbeat+.
+ #
+ # Note that providing a +path+ of +/+ will ignore any default application given in a +run+ statement
+ # outside the block.
+ #
+ # source://rack//lib/rack/builder.rb#239
+ def map(path, &block); end
+
+ # Takes a block or argument that is an object that responds to #call and
+ # returns a Rack response.
+ #
+ # You can use a block:
+ #
+ # run do |env|
+ # [200, { "content-type" => "text/plain" }, ["Hello World!"]]
+ # end
+ #
+ # You can also provide a lambda:
+ #
+ # run lambda { |env| [200, { "content-type" => "text/plain" }, ["OK"]] }
+ #
+ # You can also provide a class instance:
+ #
+ # class Heartbeat
+ # def call(env)
+ # [200, { "content-type" => "text/plain" }, ["OK"]]
+ # end
+ # end
+ #
+ # run Heartbeat.new
+ #
+ # @raise [ArgumentError]
+ #
+ # source://rack//lib/rack/builder.rb#180
+ def run(app = T.unsafe(nil), &block); end
+
+ # Return the Rack application generated by this instance.
+ #
+ # source://rack//lib/rack/builder.rb#251
+ def to_app; end
+
+ # Specifies middleware to use in a stack.
+ #
+ # class Middleware
+ # def initialize(app)
+ # @app = app
+ # end
+ #
+ # def call(env)
+ # env["rack.some_header"] = "setting an example"
+ # @app.call(env)
+ # end
+ # end
+ #
+ # use Middleware
+ # run lambda { |env| [200, { "content-type" => "text/plain" }, ["OK"]] }
+ #
+ # All requests through to this application will first be processed by the middleware class.
+ # The +call+ method in this example sets an additional environment key which then can be
+ # referenced in the application if required.
+ #
+ # source://rack//lib/rack/builder.rb#146
+ def use(middleware, *args, **_arg2, &block); end
+
+ # Takes a lambda or block that is used to warm-up the application. This block is called
+ # before the Rack application is returned by to_app.
+ #
+ # warmup do |app|
+ # client = Rack::MockRequest.new(app)
+ # client.get('/')
+ # end
+ #
+ # use SomeMiddleware
+ # run MyApp
+ #
+ # source://rack//lib/rack/builder.rb#196
+ def warmup(prc = T.unsafe(nil), &block); end
+
+ private
+
+ # Generate a URLMap instance by generating new Rack applications for each
+ # map block in this instance.
+ #
+ # source://rack//lib/rack/builder.rb#271
+ def generate_map(default_app, mapping); end
+
+ class << self
+ # Create a new Rack::Builder instance and return the Rack application
+ # generated from it.
+ #
+ # source://rack//lib/rack/builder.rb#123
+ def app(default_app = T.unsafe(nil), &block); end
+
+ # Load the given file as a rackup file, treating the
+ # contents as if specified inside a Rack::Builder block.
+ #
+ # Ignores content in the file after +__END__+, so that
+ # use of +__END__+ will not result in a syntax error.
+ #
+ # Example config.ru file:
+ #
+ # $ cat config.ru
+ #
+ # use Rack::ContentLength
+ # require './app.rb'
+ # run App
+ #
+ # source://rack//lib/rack/builder.rb#84
+ def load_file(path); end
+
+ # Evaluate the given +builder_script+ string in the context of
+ # a Rack::Builder block, returning a Rack application.
+ #
+ # source://rack//lib/rack/builder.rb#99
+ def new_from_string(builder_script, file = T.unsafe(nil)); end
+
+ # Parse the given config file to get a Rack application.
+ #
+ # If the config file ends in +.ru+, it is treated as a
+ # rackup file and the contents will be treated as if
+ # specified inside a Rack::Builder block.
+ #
+ # If the config file does not end in +.ru+, it is
+ # required and Rack will use the basename of the file
+ # to guess which constant will be the Rack application to run.
+ #
+ # Examples:
+ #
+ # Rack::Builder.parse_file('config.ru')
+ # # Rack application built using Rack::Builder.new
+ #
+ # Rack::Builder.parse_file('app.rb')
+ # # requires app.rb, which can be anywhere in Ruby's
+ # # load path. After requiring, assumes App constant
+ # # contains Rack application
+ #
+ # Rack::Builder.parse_file('./my_app.rb')
+ # # requires ./my_app.rb, which should be in the
+ # # process's current directory. After requiring,
+ # # assumes MyApp constant contains Rack application
+ #
+ # source://rack//lib/rack/builder.rb#62
+ def parse_file(path); end
+ end
+end
+
+# https://stackoverflow.com/questions/2223882/whats-the-difference-between-utf-8-and-utf-8-without-bom
+#
+# source://rack//lib/rack/builder.rb#36
+Rack::Builder::UTF_8_BOM = T.let(T.unsafe(nil), String)
+
+# Response Header Keys
+#
+# source://rack//lib/rack/constants.rb#19
+Rack::CACHE_CONTROL = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#20
+Rack::CONTENT_LENGTH = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#21
+Rack::CONTENT_TYPE = T.let(T.unsafe(nil), String)
+
+# Rack::Cascade tries a request on several apps, and returns the
+# first response that is not 404 or 405 (or in a list of configured
+# status codes). If all applications tried return one of the configured
+# status codes, return the last response.
+#
+# source://rack//lib/rack/cascade.rb#11
+class Rack::Cascade
+ # Set the apps to send requests to, and what statuses result in
+ # cascading. Arguments:
+ #
+ # apps: An enumerable of rack applications.
+ # cascade_for: The statuses to use cascading for. If a response is received
+ # from an app, the next app is tried.
+ #
+ # @return [Cascade] a new instance of Cascade
+ #
+ # source://rack//lib/rack/cascade.rb#24
+ def initialize(apps, cascade_for = T.unsafe(nil)); end
+
+ # Append an app to the list of apps to cascade. This app will
+ # be tried last.
+ #
+ # source://rack//lib/rack/cascade.rb#59
+ def <<(app); end
+
+ # Append an app to the list of apps to cascade. This app will
+ # be tried last.
+ #
+ # source://rack//lib/rack/cascade.rb#59
+ def add(app); end
+
+ # An array of applications to try in order.
+ #
+ # source://rack//lib/rack/cascade.rb#16
+ def apps; end
+
+ # Call each app in order. If the responses uses a status that requires
+ # cascading, try the next app. If all responses require cascading,
+ # return the response from the last app.
+ #
+ # source://rack//lib/rack/cascade.rb#35
+ def call(env); end
+
+ # Whether the given app is one of the apps to cascade to.
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/cascade.rb#64
+ def include?(app); end
+end
+
+# deprecated, no longer used
+#
+# source://rack//lib/rack/cascade.rb#13
+Rack::Cascade::NotFound = T.let(T.unsafe(nil), Array)
+
+# Middleware that applies chunked transfer encoding to response bodies
+# when the response does not include a content-length header.
+#
+# This supports the trailer response header to allow the use of trailing
+# headers in the chunked encoding. However, using this requires you manually
+# specify a response body that supports a +trailers+ method. Example:
+#
+# [200, { 'trailer' => 'expires'}, ["Hello", "World"]]
+# # error raised
+#
+# body = ["Hello", "World"]
+# def body.trailers
+# { 'expires' => Time.now.to_s }
+# end
+# [200, { 'trailer' => 'expires'}, body]
+# # No exception raised
+#
+# source://rack//lib/rack/chunked.rb#25
+class Rack::Chunked
+ include ::Rack::Utils
+
+ # @return [Chunked] a new instance of Chunked
+ #
+ # source://rack//lib/rack/chunked.rb#82
+ def initialize(app); end
+
+ # If the rack app returns a response that should have a body,
+ # but does not have content-length or transfer-encoding headers,
+ # modify the response to use chunked transfer-encoding.
+ #
+ # source://rack//lib/rack/chunked.rb#101
+ def call(env); end
+
+ # Whether the HTTP version supports chunked encoding (HTTP 1.1 does).
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/chunked.rb#87
+ def chunkable_version?(ver); end
+end
+
+# A body wrapper that emits chunked responses.
+#
+# source://rack//lib/rack/chunked.rb#29
+class Rack::Chunked::Body
+ # Store the response body to be chunked.
+ #
+ # @return [Body] a new instance of Body
+ #
+ # source://rack//lib/rack/chunked.rb#34
+ def initialize(body); end
+
+ # Close the response body if the response body supports it.
+ #
+ # source://rack//lib/rack/chunked.rb#54
+ def close; end
+
+ # For each element yielded by the response body, yield
+ # the element in chunked encoding.
+ #
+ # @yield [TAIL]
+ #
+ # source://rack//lib/rack/chunked.rb#40
+ def each(&block); end
+
+ private
+
+ # Do nothing as this class does not support trailer headers.
+ #
+ # source://rack//lib/rack/chunked.rb#61
+ def yield_trailers; end
+end
+
+# source://rack//lib/rack/chunked.rb#31
+Rack::Chunked::Body::TAIL = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/chunked.rb#30
+Rack::Chunked::Body::TERM = T.let(T.unsafe(nil), String)
+
+# A body wrapper that emits chunked responses and also supports
+# sending Trailer headers. Note that the response body provided to
+# initialize must have a +trailers+ method that returns a hash
+# of trailer headers, and the rack response itself should have a
+# Trailer header listing the headers that the +trailers+ method
+# will return.
+#
+# source://rack//lib/rack/chunked.rb#71
+class Rack::Chunked::TrailerBody < ::Rack::Chunked::Body
+ private
+
+ # Yield strings for each trailer header.
+ #
+ # source://rack//lib/rack/chunked.rb#75
+ def yield_trailers; end
+end
+
+# Rack::CommonLogger forwards every request to the given +app+, and
+# logs a line in the
+# {Apache common log format}[http://httpd.apache.org/docs/1.3/logs.html#common]
+# to the configured logger.
+#
+# source://rack//lib/rack/common_logger.rb#13
+class Rack::CommonLogger
+ # +logger+ can be any object that supports the +write+ or +<<+ methods,
+ # which includes the standard library Logger. These methods are called
+ # with a single string argument, the log message.
+ # If +logger+ is nil, CommonLogger will fall back env['rack.errors'].
+ #
+ # @return [CommonLogger] a new instance of CommonLogger
+ #
+ # source://rack//lib/rack/common_logger.rb#29
+ def initialize(app, logger = T.unsafe(nil)); end
+
+ # Log all requests in common_log format after a response has been
+ # returned. Note that if the app raises an exception, the request
+ # will not be logged, so if exception handling middleware are used,
+ # they should be loaded after this middleware. Additionally, because
+ # the logging happens after the request body has been fully sent, any
+ # exceptions raised during the sending of the response body will
+ # cause the request not to be logged.
+ #
+ # source://rack//lib/rack/common_logger.rb#41
+ def call(env); end
+
+ private
+
+ # Attempt to determine the content length for the response to
+ # include it in the logged data.
+ #
+ # source://rack//lib/rack/common_logger.rb#83
+ def extract_content_length(headers); end
+
+ # Log the request to the configured logger.
+ #
+ # source://rack//lib/rack/common_logger.rb#52
+ def log(env, status, response_headers, began_at); end
+end
+
+# Common Log Format: http://httpd.apache.org/docs/1.3/logs.html#common
+#
+# lilith.local - - [07/Aug/2006 23:58:02 -0400] "GET / HTTP/1.1" 500 -
+#
+# %{%s - %s [%s] "%s %s%s %s" %d %s\n} %
+#
+# The actual format is slightly different than the above due to the
+# separation of SCRIPT_NAME and PATH_INFO, and because the elapsed
+# time in seconds is included at the end.
+#
+# source://rack//lib/rack/common_logger.rb#23
+Rack::CommonLogger::FORMAT = T.let(T.unsafe(nil), String)
+
+# Middleware that enables conditional GET using if-none-match and
+# if-modified-since. The application should set either or both of the
+# last-modified or etag response headers according to RFC 2616. When
+# either of the conditions is met, the response body is set to be zero
+# length and the response status is set to 304 Not Modified.
+#
+# Applications that defer response body generation until the body's each
+# message is received will avoid response body generation completely when
+# a conditional GET matches.
+#
+# Adapted from Michael Klishin's Merb implementation:
+# https://github.com/wycats/merb/blob/master/merb-core/lib/merb-core/rack/middleware/conditional_get.rb
+#
+# source://rack//lib/rack/conditional_get.rb#21
+class Rack::ConditionalGet
+ # @return [ConditionalGet] a new instance of ConditionalGet
+ #
+ # source://rack//lib/rack/conditional_get.rb#22
+ def initialize(app); end
+
+ # Return empty 304 response if the response has not been
+ # modified since the last request.
+ #
+ # source://rack//lib/rack/conditional_get.rb#28
+ def call(env); end
+
+ private
+
+ # Whether the etag response header matches the if-none-match request header.
+ # If so, the request has not been modified.
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/conditional_get.rb#62
+ def etag_matches?(none_match, headers); end
+
+ # Return whether the response has not been modified since the
+ # last request.
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/conditional_get.rb#51
+ def fresh?(env, headers); end
+
+ # Whether the last-modified response header matches the if-modified-since
+ # request header. If so, the request has not been modified.
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/conditional_get.rb#68
+ def modified_since?(modified_since, headers); end
+
+ # Return a Time object for the given string (which should be in RFC2822
+ # format), or nil if the string cannot be parsed.
+ #
+ # source://rack//lib/rack/conditional_get.rb#75
+ def to_rfc2822(since); end
+end
+
+# Rack::Config modifies the environment using the block given during
+# initialization.
+#
+# Example:
+# use Rack::Config do |env|
+# env['my-key'] = 'some-value'
+# end
+#
+# source://rack//lib/rack/config.rb#11
+class Rack::Config
+ # @return [Config] a new instance of Config
+ #
+ # source://rack//lib/rack/config.rb#12
+ def initialize(app, &block); end
+
+ # source://rack//lib/rack/config.rb#17
+ def call(env); end
+end
+
+# Sets the content-length header on responses that do not specify
+# a content-length or transfer-encoding header. Note that this
+# does not fix responses that have an invalid content-length
+# header specified.
+#
+# source://rack//lib/rack/content_length.rb#12
+class Rack::ContentLength
+ include ::Rack::Utils
+
+ # @return [ContentLength] a new instance of ContentLength
+ #
+ # source://rack//lib/rack/content_length.rb#15
+ def initialize(app); end
+
+ # source://rack//lib/rack/content_length.rb#19
+ def call(env); end
+end
+
+# Sets the content-type header on responses which don't have one.
+#
+# Builder Usage:
+# use Rack::ContentType, "text/plain"
+#
+# When no content type argument is provided, "text/html" is the
+# default.
+#
+# source://rack//lib/rack/content_type.rb#15
+class Rack::ContentType
+ include ::Rack::Utils
+
+ # @return [ContentType] a new instance of ContentType
+ #
+ # source://rack//lib/rack/content_type.rb#18
+ def initialize(app, content_type = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/content_type.rb#23
+ def call(env); end
+end
+
+# source://rack//lib/rack/constants.rb#32
+Rack::DELETE = T.let(T.unsafe(nil), String)
+
+# This middleware enables content encoding of http responses,
+# usually for purposes of compression.
+#
+# Currently supported encodings:
+#
+# * gzip
+# * identity (no transformation)
+#
+# This middleware automatically detects when encoding is supported
+# and allowed. For example no encoding is made when a cache
+# directive of 'no-transform' is present, when the response status
+# code is one that doesn't allow an entity body, or when the body
+# is empty.
+#
+# Note that despite the name, Deflater does not support the +deflate+
+# encoding.
+#
+# source://rack//lib/rack/deflater.rb#28
+class Rack::Deflater
+ # Creates Rack::Deflater middleware. Options:
+ #
+ # :if :: a lambda enabling / disabling deflation based on returned boolean value
+ # (e.g use Rack::Deflater, :if => lambda { |*, body| sum=0; body.each { |i| sum += i.length }; sum > 512 }).
+ # However, be aware that calling `body.each` inside the block will break cases where `body.each` is not idempotent,
+ # such as when it is an +IO+ instance.
+ # :include :: a list of content types that should be compressed. By default, all content types are compressed.
+ # :sync :: determines if the stream is going to be flushed after every chunk. Flushing after every chunk reduces
+ # latency for time-sensitive streaming applications, but hurts compression and throughput.
+ # Defaults to +true+.
+ #
+ # @return [Deflater] a new instance of Deflater
+ #
+ # source://rack//lib/rack/deflater.rb#39
+ def initialize(app, options = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/deflater.rb#46
+ def call(env); end
+
+ private
+
+ # Whether the body should be compressed.
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/deflater.rb#136
+ def should_deflate?(env, status, headers, body); end
+end
+
+# Body class used for gzip encoded responses.
+#
+# source://rack//lib/rack/deflater.rb#83
+class Rack::Deflater::GzipStream
+ # Initialize the gzip stream. Arguments:
+ # body :: Response body to compress with gzip
+ # mtime :: The modification time of the body, used to set the
+ # modification time in the gzip header.
+ # sync :: Whether to flush each gzip chunk as soon as it is ready.
+ #
+ # @return [GzipStream] a new instance of GzipStream
+ #
+ # source://rack//lib/rack/deflater.rb#92
+ def initialize(body, mtime, sync); end
+
+ # Close the original body if possible.
+ #
+ # source://rack//lib/rack/deflater.rb#128
+ def close; end
+
+ # Yield gzip compressed strings to the given block.
+ #
+ # source://rack//lib/rack/deflater.rb#99
+ def each(&block); end
+
+ # Call the block passed to #each with the gzipped data.
+ #
+ # source://rack//lib/rack/deflater.rb#123
+ def write(data); end
+end
+
+# source://rack//lib/rack/deflater.rb#85
+Rack::Deflater::GzipStream::BUFFER_LENGTH = T.let(T.unsafe(nil), Integer)
+
+# Rack::Directory serves entries below the +root+ given, according to the
+# path info of the Rack request. If a directory is found, the file's contents
+# will be presented in an html based index. If a file is found, the env will
+# be passed to the specified +app+.
+#
+# If +app+ is not specified, a Rack::Files of the same +root+ will be used.
+#
+# source://rack//lib/rack/directory.rb#19
+class Rack::Directory
+ # Set the root directory and application for serving files.
+ #
+ # @return [Directory] a new instance of Directory
+ #
+ # source://rack//lib/rack/directory.rb#83
+ def initialize(root, app = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/directory.rb#89
+ def call(env); end
+
+ # Rack response to use for requests with invalid paths, or nil if path is valid.
+ #
+ # source://rack//lib/rack/directory.rb#109
+ def check_bad_request(path_info); end
+
+ # Rack response to use for requests with paths outside the root, or nil if path is inside the root.
+ #
+ # source://rack//lib/rack/directory.rb#119
+ def check_forbidden(path_info); end
+
+ # Rack response to use for unreadable and non-file, non-directory entries.
+ #
+ # source://rack//lib/rack/directory.rb#181
+ def entity_not_found(path_info); end
+
+ # Provide human readable file sizes
+ #
+ # source://rack//lib/rack/directory.rb#197
+ def filesize_format(int); end
+
+ # Internals of request handling. Similar to call but does
+ # not remove body for HEAD requests.
+ #
+ # source://rack//lib/rack/directory.rb#96
+ def get(env); end
+
+ # Rack response to use for directories under the root.
+ #
+ # source://rack//lib/rack/directory.rb#130
+ def list_directory(path_info, path, script_name); end
+
+ # Rack response to use for files and directories under the root.
+ # Unreadable and non-file, non-directory entries will get a 404 response.
+ #
+ # source://rack//lib/rack/directory.rb#171
+ def list_path(env, path, path_info, script_name); end
+
+ # The root of the directory hierarchy. Only requests for files and
+ # directories inside of the root directory are supported.
+ #
+ # source://rack//lib/rack/directory.rb#80
+ def root; end
+
+ # File::Stat for the given path, but return nil for missing/bad entries.
+ #
+ # source://rack//lib/rack/directory.rb#163
+ def stat(path); end
+end
+
+# source://rack//lib/rack/directory.rb#20
+Rack::Directory::DIR_FILE = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/directory.rb#43
+Rack::Directory::DIR_PAGE_FOOTER = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/directory.rb#21
+Rack::Directory::DIR_PAGE_HEADER = T.let(T.unsafe(nil), String)
+
+# Body class for directory entries, showing an index page with links
+# to each file.
+#
+# source://rack//lib/rack/directory.rb#51
+class Rack::Directory::DirectoryBody < ::Struct
+ # Yield strings for each part of the directory entry
+ #
+ # @yield [DIR_PAGE_HEADER % [ show_path, show_path ]]
+ #
+ # source://rack//lib/rack/directory.rb#53
+ def each; end
+
+ private
+
+ # Escape each element in the array of html strings.
+ #
+ # source://rack//lib/rack/directory.rb#73
+ def DIR_FILE_escape(htmls); end
+end
+
+# Stolen from Ramaze
+#
+# source://rack//lib/rack/directory.rb#189
+Rack::Directory::FILESIZE_FORMAT = T.let(T.unsafe(nil), Array)
+
+# source://rack//lib/rack/constants.rb#22
+Rack::ETAG = T.let(T.unsafe(nil), String)
+
+# Automatically sets the etag header on all String bodies.
+#
+# The etag header is skipped if etag or last-modified headers are sent or if
+# a sendfile body (body.responds_to :to_path) is given (since such cases
+# should be handled by apache/nginx).
+#
+# On initialization, you can pass two parameters: a cache-control directive
+# used when etag is absent and a directive when it is present. The first
+# defaults to nil, while the second defaults to "max-age=0, private, must-revalidate"
+#
+# source://rack//lib/rack/etag.rb#18
+class Rack::ETag
+ # @return [ETag] a new instance of ETag
+ #
+ # source://rack//lib/rack/etag.rb#22
+ def initialize(app, no_cache_control = T.unsafe(nil), cache_control = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/etag.rb#28
+ def call(env); end
+
+ private
+
+ # source://rack//lib/rack/etag.rb#58
+ def digest_body(body); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/etag.rb#50
+ def etag_status?(status); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/etag.rb#54
+ def skip_caching?(headers); end
+end
+
+# source://rack//lib/rack/etag.rb#20
+Rack::ETag::DEFAULT_CACHE_CONTROL = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/etag.rb#19
+Rack::ETag::ETAG_STRING = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#23
+Rack::EXPIRES = T.let(T.unsafe(nil), String)
+
+# This middleware provides hooks to certain places in the request /
+# response lifecycle. This is so that middleware that don't need to filter
+# the response data can safely leave it alone and not have to send messages
+# down the traditional "rack stack".
+#
+# The events are:
+#
+# * on_start(request, response)
+#
+# This event is sent at the start of the request, before the next
+# middleware in the chain is called. This method is called with a request
+# object, and a response object. Right now, the response object is always
+# nil, but in the future it may actually be a real response object.
+#
+# * on_commit(request, response)
+#
+# The response has been committed. The application has returned, but the
+# response has not been sent to the webserver yet. This method is always
+# called with a request object and the response object. The response
+# object is constructed from the rack triple that the application returned.
+# Changes may still be made to the response object at this point.
+#
+# * on_send(request, response)
+#
+# The webserver has started iterating over the response body and presumably
+# has started sending data over the wire. This method is always called with
+# a request object and the response object. The response object is
+# constructed from the rack triple that the application returned. Changes
+# SHOULD NOT be made to the response object as the webserver has already
+# started sending data. Any mutations will likely result in an exception.
+#
+# * on_finish(request, response)
+#
+# The webserver has closed the response, and all data has been written to
+# the response socket. The request and response object should both be
+# read-only at this point. The body MAY NOT be available on the response
+# object as it may have been flushed to the socket.
+#
+# * on_error(request, response, error)
+#
+# An exception has occurred in the application or an `on_commit` event.
+# This method will get the request, the response (if available) and the
+# exception that was raised.
+#
+# ## Order
+#
+# `on_start` is called on the handlers in the order that they were passed to
+# the constructor. `on_commit`, on_send`, `on_finish`, and `on_error` are
+# called in the reverse order. `on_finish` handlers are called inside an
+# `ensure` block, so they are guaranteed to be called even if something
+# raises an exception. If something raises an exception in a `on_finish`
+# method, then nothing is guaranteed.
+#
+# source://rack//lib/rack/events.rb#61
+class Rack::Events
+ # @return [Events] a new instance of Events
+ #
+ # source://rack//lib/rack/events.rb#106
+ def initialize(app, handlers); end
+
+ # source://rack//lib/rack/events.rb#111
+ def call(env); end
+
+ private
+
+ # source://rack//lib/rack/events.rb#149
+ def make_request(env); end
+
+ # source://rack//lib/rack/events.rb#153
+ def make_response(status, headers, body); end
+
+ # source://rack//lib/rack/events.rb#137
+ def on_commit(request, response); end
+
+ # source://rack//lib/rack/events.rb#133
+ def on_error(request, response, e); end
+
+ # source://rack//lib/rack/events.rb#145
+ def on_finish(request, response); end
+
+ # source://rack//lib/rack/events.rb#141
+ def on_start(request, response); end
+end
+
+# source://rack//lib/rack/events.rb#62
+module Rack::Events::Abstract
+ # source://rack//lib/rack/events.rb#66
+ def on_commit(req, res); end
+
+ # source://rack//lib/rack/events.rb#75
+ def on_error(req, res, e); end
+
+ # source://rack//lib/rack/events.rb#72
+ def on_finish(req, res); end
+
+ # source://rack//lib/rack/events.rb#69
+ def on_send(req, res); end
+
+ # source://rack//lib/rack/events.rb#63
+ def on_start(req, res); end
+end
+
+# source://rack//lib/rack/events.rb#95
+class Rack::Events::BufferedResponse < ::Rack::Response::Raw
+ # @return [BufferedResponse] a new instance of BufferedResponse
+ #
+ # source://rack//lib/rack/events.rb#98
+ def initialize(status, headers, body); end
+
+ # Returns the value of attribute body.
+ #
+ # source://rack//lib/rack/events.rb#96
+ def body; end
+
+ # source://rack//lib/rack/events.rb#103
+ def to_a; end
+end
+
+# source://rack//lib/rack/events.rb#79
+class Rack::Events::EventedBodyProxy < ::Rack::BodyProxy
+ # @return [EventedBodyProxy] a new instance of EventedBodyProxy
+ #
+ # source://rack//lib/rack/events.rb#82
+ def initialize(body, request, response, handlers, &block); end
+
+ # source://rack//lib/rack/events.rb#89
+ def each; end
+
+ # Returns the value of attribute request.
+ #
+ # source://rack//lib/rack/events.rb#80
+ def request; end
+
+ # Returns the value of attribute response.
+ #
+ # source://rack//lib/rack/events.rb#80
+ def response; end
+end
+
+# source://rack//lib/rack/file.rb#8
+Rack::File = Rack::Files
+
+# Rack::Files serves files below the +root+ directory given, according to the
+# path info of the Rack request.
+# e.g. when Rack::Files.new("/etc") is used, you can access 'passwd' file
+# as http://localhost:9292/passwd
+#
+# Handlers can detect if bodies are a Rack::Files, and use mechanisms
+# like sendfile on the +path+.
+#
+# source://rack//lib/rack/files.rb#20
+class Rack::Files
+ # @return [Files] a new instance of Files
+ #
+ # source://rack//lib/rack/files.rb#27
+ def initialize(root, headers = T.unsafe(nil), default_mime = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/files.rb#34
+ def call(env); end
+
+ # source://rack//lib/rack/files.rb#39
+ def get(env); end
+
+ # Returns the value of attribute root.
+ #
+ # source://rack//lib/rack/files.rb#25
+ def root; end
+
+ # source://rack//lib/rack/files.rb#68
+ def serving(request, path); end
+
+ private
+
+ # source://rack//lib/rack/files.rb#190
+ def fail(status, body, headers = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/files.rb#209
+ def filesize(path); end
+
+ # The MIME type for the contents of the file located at @path
+ #
+ # source://rack//lib/rack/files.rb#205
+ def mime_type(path, default_mime); end
+end
+
+# source://rack//lib/rack/files.rb#21
+Rack::Files::ALLOWED_VERBS = T.let(T.unsafe(nil), Array)
+
+# source://rack//lib/rack/files.rb#22
+Rack::Files::ALLOW_HEADER = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/files.rb#121
+class Rack::Files::BaseIterator
+ # @return [BaseIterator] a new instance of BaseIterator
+ #
+ # source://rack//lib/rack/files.rb#124
+ def initialize(path, ranges, options); end
+
+ # source://rack//lib/rack/files.rb#144
+ def bytesize; end
+
+ # source://rack//lib/rack/files.rb#153
+ def close; end
+
+ # source://rack//lib/rack/files.rb#130
+ def each; end
+
+ # Returns the value of attribute options.
+ #
+ # source://rack//lib/rack/files.rb#122
+ def options; end
+
+ # Returns the value of attribute path.
+ #
+ # source://rack//lib/rack/files.rb#122
+ def path; end
+
+ # Returns the value of attribute ranges.
+ #
+ # source://rack//lib/rack/files.rb#122
+ def ranges; end
+
+ private
+
+ # source://rack//lib/rack/files.rb#171
+ def each_range_part(file, range); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/files.rb#157
+ def multipart?; end
+
+ # source://rack//lib/rack/files.rb#161
+ def multipart_heading(range); end
+end
+
+# source://rack//lib/rack/files.rb#184
+class Rack::Files::Iterator < ::Rack::Files::BaseIterator
+ # source://rack//lib/rack/files.rb#122
+ def to_path; end
+end
+
+# source://rack//lib/rack/files.rb#23
+Rack::Files::MULTIPART_BOUNDARY = T.let(T.unsafe(nil), String)
+
+# Rack::ForwardRequest gets caught by Rack::Recursive and redirects
+# the current request to the app at +url+.
+#
+# raise ForwardRequest.new("/not-found")
+#
+# source://rack//lib/rack/recursive.rb#14
+class Rack::ForwardRequest < ::Exception
+ # @return [ForwardRequest] a new instance of ForwardRequest
+ #
+ # source://rack//lib/rack/recursive.rb#17
+ def initialize(url, env = T.unsafe(nil)); end
+
+ # Returns the value of attribute env.
+ #
+ # source://rack//lib/rack/recursive.rb#15
+ def env; end
+
+ # Returns the value of attribute url.
+ #
+ # source://rack//lib/rack/recursive.rb#15
+ def url; end
+end
+
+# HTTP method verbs
+#
+# source://rack//lib/rack/constants.rb#28
+Rack::GET = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#33
+Rack::HEAD = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#7
+Rack::HTTPS = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#16
+Rack::HTTP_COOKIE = T.let(T.unsafe(nil), String)
+
+# Request env keys
+#
+# source://rack//lib/rack/constants.rb#5
+Rack::HTTP_HOST = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#6
+Rack::HTTP_PORT = T.let(T.unsafe(nil), String)
+
+# Rack::Head returns an empty body for all HEAD requests. It leaves
+# all other requests unchanged.
+#
+# source://rack//lib/rack/head.rb#9
+class Rack::Head
+ # @return [Head] a new instance of Head
+ #
+ # source://rack//lib/rack/head.rb#10
+ def initialize(app); end
+
+ # source://rack//lib/rack/head.rb#14
+ def call(env); end
+end
+
+# Rack::Headers is a Hash subclass that downcases all keys. It's designed
+# to be used by rack applications that don't implement the Rack 3 SPEC
+# (by using non-lowercase response header keys), automatically handling
+# the downcasing of keys.
+#
+# source://rack//lib/rack/headers.rb#6
+class Rack::Headers < ::Hash
+ # source://rack//lib/rack/headers.rb#26
+ def [](key); end
+
+ # source://rack//lib/rack/headers.rb#30
+ def []=(key, value); end
+
+ # source://rack//lib/rack/headers.rb#35
+ def assoc(key); end
+
+ # @raise [TypeError]
+ #
+ # source://rack//lib/rack/headers.rb#39
+ def compare_by_identity; end
+
+ # source://rack//lib/rack/headers.rb#43
+ def delete(key); end
+
+ # source://rack//lib/rack/headers.rb#47
+ def dig(key, *a); end
+
+ # :nocov:
+ #
+ # source://rack//lib/rack/headers.rb#143
+ def except(*a); end
+
+ # source://rack//lib/rack/headers.rb#51
+ def fetch(key, *default, &block); end
+
+ # source://rack//lib/rack/headers.rb#56
+ def fetch_values(*a); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/headers.rb#60
+ def has_key?(key); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/headers.rb#60
+ def include?(key); end
+
+ # source://rack//lib/rack/headers.rb#67
+ def invert; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/headers.rb#60
+ def key?(key); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/headers.rb#60
+ def member?(key); end
+
+ # source://rack//lib/rack/headers.rb#73
+ def merge(hash, &block); end
+
+ # source://rack//lib/rack/headers.rb#102
+ def merge!(hash, &block); end
+
+ # source://rack//lib/rack/headers.rb#77
+ def reject(&block); end
+
+ # source://rack//lib/rack/headers.rb#83
+ def replace(hash); end
+
+ # source://rack//lib/rack/headers.rb#88
+ def select(&block); end
+
+ # :nocov:
+ #
+ # source://rack//lib/rack/headers.rb#121
+ def slice(*a); end
+
+ # source://rack//lib/rack/headers.rb#30
+ def store(key, value); end
+
+ # source://rack//lib/rack/headers.rb#94
+ def to_proc; end
+
+ # source://rack//lib/rack/headers.rb#127
+ def transform_keys(&block); end
+
+ # source://rack//lib/rack/headers.rb#131
+ def transform_keys!; end
+
+ # source://rack//lib/rack/headers.rb#98
+ def transform_values(&block); end
+
+ # source://rack//lib/rack/headers.rb#102
+ def update(hash, &block); end
+
+ # source://rack//lib/rack/headers.rb#114
+ def values_at(*keys); end
+
+ private
+
+ # source://rack//lib/rack/headers.rb#150
+ def downcase_key(key); end
+
+ class << self
+ # source://rack//lib/rack/headers.rb#7
+ def [](*items); end
+ end
+end
+
+# source://rack//lib/rack/constants.rb#35
+Rack::LINK = T.let(T.unsafe(nil), String)
+
+# Rack::Lint validates your application and the requests and
+# responses according to the Rack spec.
+#
+# source://rack//lib/rack/lint.rb#12
+class Rack::Lint
+ # @return [Lint] a new instance of Lint
+ #
+ # source://rack//lib/rack/lint.rb#13
+ def initialize(app); end
+
+ # AUTHORS: n.b. The trailing whitespace between paragraphs is important and
+ # should not be removed. The whitespace creates paragraphs in the RDoc
+ # output.
+ #
+ # This specification aims to formalize the Rack protocol. You
+ # can (and should) use Rack::Lint to enforce it.
+ #
+ # When you develop middleware, be sure to add a Lint before and
+ # after to catch all mistakes.
+ #
+ # = Rack applications
+ #
+ # A Rack application is a Ruby object (not a class) that
+ # responds to +call+.
+ #
+ # source://rack//lib/rack/lint.rb#34
+ def call(env = T.unsafe(nil)); end
+end
+
+# :stopdoc:
+#
+# source://rack//lib/rack/lint.rb#19
+class Rack::Lint::LintError < ::RuntimeError; end
+
+# source://rack//lib/rack/lint.rb#38
+class Rack::Lint::Wrapper
+ # @return [Wrapper] a new instance of Wrapper
+ #
+ # source://rack//lib/rack/lint.rb#39
+ def initialize(app, env); end
+
+ # ==== Streaming Body
+ #
+ # @raise [LintError]
+ #
+ # source://rack//lib/rack/lint.rb#855
+ def call(stream); end
+
+ # === The content-length
+ #
+ # source://rack//lib/rack/lint.rb#693
+ def check_content_length(status, headers); end
+
+ # === The content-type
+ #
+ # source://rack//lib/rack/lint.rb#677
+ def check_content_type(status, headers); end
+
+ # == The Environment
+ #
+ # @raise [LintError]
+ #
+ # source://rack//lib/rack/lint.rb#97
+ def check_environment(env); end
+
+ # === The Error Stream
+ #
+ # source://rack//lib/rack/lint.rb#491
+ def check_error(error); end
+
+ # source://rack//lib/rack/lint.rb#667
+ def check_header_value(key, value); end
+
+ # === The Headers
+ #
+ # source://rack//lib/rack/lint.rb#627
+ def check_headers(headers); end
+
+ # === Hijacking
+ #
+ # The hijacking interfaces provides a means for an application to take
+ # control of the HTTP connection. There are two distinct hijack
+ # interfaces: full hijacking where the application takes over the raw
+ # connection, and partial hijacking where the application takes over
+ # just the response body stream. In both cases, the application is
+ # responsible for closing the hijacked stream.
+ #
+ # Full hijacking only works with HTTP/1. Partial hijacking is functionally
+ # equivalent to streaming bodies, and is still optionally supported for
+ # backwards compatibility with older Rack versions.
+ #
+ # ==== Full Hijack
+ #
+ # Full hijack is used to completely take over an HTTP/1 connection. It
+ # occurs before any headers are written and causes the request to
+ # ignores any response generated by the application.
+ #
+ # It is intended to be used when applications need access to raw HTTP/1
+ # connection.
+ #
+ # source://rack//lib/rack/lint.rb#551
+ def check_hijack(env); end
+
+ # ==== Partial Hijack
+ #
+ # Partial hijack is used for bi-directional streaming of the request and
+ # response body. It occurs after the status and headers are written by
+ # the server and causes the server to ignore the Body of the response.
+ #
+ # It is intended to be used when applications need bi-directional
+ # streaming.
+ #
+ # source://rack//lib/rack/lint.rb#579
+ def check_hijack_response(headers, env); end
+
+ # === The Input Stream
+ #
+ # The input stream is an IO-like object which contains the raw HTTP
+ # POST data.
+ #
+ # source://rack//lib/rack/lint.rb#387
+ def check_input(input); end
+
+ # == The Response
+ #
+ # === The Status
+ #
+ # source://rack//lib/rack/lint.rb#616
+ def check_status(status); end
+
+ # === The Body
+ #
+ # The Body is typically an +Array+ of +String+ instances, an enumerable
+ # that yields +String+ instances, a +Proc+ instance, or a File-like
+ # object.
+ #
+ # The Body must respond to +each+ or +call+. It may optionally respond
+ # to +to_path+ or +to_ary+. A Body that responds to +each+ is considered
+ # to be an Enumerable Body. A Body that responds to +call+ is considered
+ # to be a Streaming Body.
+ #
+ # A Body that responds to both +each+ and +call+ must be treated as an
+ # Enumerable Body, not a Streaming Body. If it responds to +each+, you
+ # must call +each+ and not +call+. If the Body doesn't respond to
+ # +each+, then you can assume it responds to +call+.
+ #
+ # The Body must either be consumed or returned. The Body is consumed by
+ # optionally calling either +each+ or +call+.
+ # Then, if the Body responds to +close+, it must be called to release
+ # any resources associated with the generation of the body.
+ # In other words, +close+ must always be called at least once; typically
+ # after the web server has sent the response to the client, but also in
+ # cases where the Rack application makes internal/virtual requests and
+ # discards the response.
+ #
+ # source://rack//lib/rack/lint.rb#744
+ def close; end
+
+ # ==== Enumerable Body
+ #
+ # @raise [LintError]
+ #
+ # source://rack//lib/rack/lint.rb#778
+ def each; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/lint.rb#826
+ def respond_to?(name, *_arg1); end
+
+ # @raise [LintError]
+ #
+ # source://rack//lib/rack/lint.rb#54
+ def response; end
+
+ # If the Body responds to +to_ary+, it must return an +Array+ whose
+ # contents are identical to that produced by calling +each+.
+ # Middleware may call +to_ary+ directly on the Body and return a new
+ # Body in its place. In other words, middleware can only process the
+ # Body directly if it responds to +to_ary+. If the Body responds to both
+ # +to_ary+ and +close+, its implementation of +to_ary+ must call
+ # +close+.
+ #
+ # source://rack//lib/rack/lint.rb#842
+ def to_ary; end
+
+ # source://rack//lib/rack/lint.rb#822
+ def to_path; end
+
+ # source://rack//lib/rack/lint.rb#706
+ def verify_content_length(size); end
+
+ # source://rack//lib/rack/lint.rb#760
+ def verify_to_path; end
+end
+
+# source://rack//lib/rack/lint.rb#820
+Rack::Lint::Wrapper::BODY_METHODS = T.let(T.unsafe(nil), Hash)
+
+# source://rack//lib/rack/lint.rb#500
+class Rack::Lint::Wrapper::ErrorWrapper
+ # @return [ErrorWrapper] a new instance of ErrorWrapper
+ #
+ # source://rack//lib/rack/lint.rb#501
+ def initialize(error); end
+
+ # * +close+ must never be called on the error stream.
+ #
+ # @raise [LintError]
+ #
+ # source://rack//lib/rack/lint.rb#523
+ def close(*args); end
+
+ # * +flush+ must be called without arguments and must be called
+ # in order to make the error appear for sure.
+ #
+ # source://rack//lib/rack/lint.rb#518
+ def flush; end
+
+ # * +puts+ must be called with a single argument that responds to +to_s+.
+ #
+ # source://rack//lib/rack/lint.rb#506
+ def puts(str); end
+
+ # * +write+ must be called with a single argument that is a String.
+ #
+ # @raise [LintError]
+ #
+ # source://rack//lib/rack/lint.rb#511
+ def write(str); end
+end
+
+# source://rack//lib/rack/lint.rb#405
+class Rack::Lint::Wrapper::InputWrapper
+ # @return [InputWrapper] a new instance of InputWrapper
+ #
+ # source://rack//lib/rack/lint.rb#406
+ def initialize(input); end
+
+ # * +close+ can be called on the input stream to indicate that the
+ # any remaining input is not needed.
+ #
+ # source://rack//lib/rack/lint.rb#483
+ def close(*args); end
+
+ # * +each+ must be called without arguments and only yield Strings.
+ #
+ # @raise [LintError]
+ #
+ # source://rack//lib/rack/lint.rb#471
+ def each(*args); end
+
+ # * +gets+ must be called without arguments and return a string,
+ # or +nil+ on EOF.
+ #
+ # @raise [LintError]
+ #
+ # source://rack//lib/rack/lint.rb#412
+ def gets(*args); end
+
+ # * +read+ behaves like IO#read.
+ # Its signature is read([length, [buffer]]).
+ #
+ # If given, +length+ must be a non-negative Integer (>= 0) or +nil+,
+ # and +buffer+ must be a String and may not be nil.
+ #
+ # If +length+ is given and not nil, then this method reads at most
+ # +length+ bytes from the input stream.
+ #
+ # If +length+ is not given or nil, then this method reads
+ # all data until EOF.
+ #
+ # When EOF is reached, this method returns nil if +length+ is given
+ # and not nil, or "" if +length+ is not given or is nil.
+ #
+ # If +buffer+ is given, then the read data will be placed
+ # into +buffer+ instead of a newly created String object.
+ #
+ # source://rack//lib/rack/lint.rb#438
+ def read(*args); end
+end
+
+# source://rack//lib/rack/lint.rb#875
+class Rack::Lint::Wrapper::StreamWrapper
+ extend ::Forwardable
+
+ # @return [StreamWrapper] a new instance of StreamWrapper
+ #
+ # source://rack//lib/rack/lint.rb#890
+ def initialize(stream); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def <<(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def close(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def close_read(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def close_write(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def closed?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def flush(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def read(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def write(*args, **_arg1, &block); end
+end
+
+# The semantics of these IO methods must be a best effort match to
+# those of a normal Ruby IO or Socket object, using standard arguments
+# and raising standard exceptions. Servers are encouraged to simply
+# pass on real IO objects, although it is recognized that this approach
+# is not directly compatible with HTTP/2.
+#
+# source://rack//lib/rack/lint.rb#883
+Rack::Lint::Wrapper::StreamWrapper::REQUIRED_METHODS = T.let(T.unsafe(nil), Array)
+
+# Rack::Lock locks every request inside a mutex, so that every request
+# will effectively be executed synchronously.
+#
+# source://rack//lib/rack/lock.rb#8
+class Rack::Lock
+ # @return [Lock] a new instance of Lock
+ #
+ # source://rack//lib/rack/lock.rb#9
+ def initialize(app, mutex = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/lock.rb#13
+ def call(env); end
+
+ private
+
+ # source://rack//lib/rack/lock.rb#25
+ def unlock; end
+end
+
+# Sets up rack.logger to write to rack.errors stream
+#
+# source://rack//lib/rack/logger.rb#9
+class Rack::Logger
+ # @return [Logger] a new instance of Logger
+ #
+ # source://rack//lib/rack/logger.rb#10
+ def initialize(app, level = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/logger.rb#14
+ def call(env); end
+end
+
+# Rack::MediaType parse media type and parameters out of content_type string
+#
+# source://rack//lib/rack/media_type.rb#6
+class Rack::MediaType
+ class << self
+ # The media type parameters provided in CONTENT_TYPE as a Hash, or
+ # an empty Hash if no CONTENT_TYPE or media-type parameters were
+ # provided. e.g., when the CONTENT_TYPE is "text/plain;charset=utf-8",
+ # this method responds with the following Hash:
+ # { 'charset' => 'utf-8' }
+ #
+ # source://rack//lib/rack/media_type.rb#26
+ def params(content_type); end
+
+ # The media type (type/subtype) portion of the CONTENT_TYPE header
+ # without any media type parameters. e.g., when CONTENT_TYPE is
+ # "text/plain;charset=utf-8", the media-type is "text/plain".
+ #
+ # For more information on the use of media types in HTTP, see:
+ # http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7
+ #
+ # source://rack//lib/rack/media_type.rb#16
+ def type(content_type); end
+
+ private
+
+ # source://rack//lib/rack/media_type.rb#38
+ def strip_doublequotes(str); end
+ end
+end
+
+# source://rack//lib/rack/media_type.rb#7
+Rack::MediaType::SPLIT_PATTERN = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/method_override.rb#8
+class Rack::MethodOverride
+ # @return [MethodOverride] a new instance of MethodOverride
+ #
+ # source://rack//lib/rack/method_override.rb#15
+ def initialize(app); end
+
+ # source://rack//lib/rack/method_override.rb#19
+ def call(env); end
+
+ # source://rack//lib/rack/method_override.rb#31
+ def method_override(env); end
+
+ private
+
+ # source://rack//lib/rack/method_override.rb#44
+ def allowed_methods; end
+
+ # source://rack//lib/rack/method_override.rb#48
+ def method_override_param(req); end
+end
+
+# source://rack//lib/rack/method_override.rb#13
+Rack::MethodOverride::ALLOWED_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rack//lib/rack/method_override.rb#9
+Rack::MethodOverride::HTTP_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rack//lib/rack/method_override.rb#12
+Rack::MethodOverride::HTTP_METHOD_OVERRIDE_HEADER = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/method_override.rb#11
+Rack::MethodOverride::METHOD_OVERRIDE_PARAM_KEY = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/mime.rb#4
+module Rack::Mime
+ private
+
+ # Returns true if the given value is a mime match for the given mime match
+ # specification, false otherwise.
+ #
+ # Rack::Mime.match?('text/html', 'text/*') => true
+ # Rack::Mime.match?('text/plain', '*') => true
+ # Rack::Mime.match?('text/html', 'application/json') => false
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/mime.rb#30
+ def match?(value, matcher); end
+
+ # Returns String with mime type if found, otherwise use +fallback+.
+ # +ext+ should be filename extension in the '.ext' format that
+ # File.extname(file) returns.
+ # +fallback+ may be any object
+ #
+ # Also see the documentation for MIME_TYPES
+ #
+ # Usage:
+ # Rack::Mime.mime_type('.foo')
+ #
+ # This is a shortcut for:
+ # Rack::Mime::MIME_TYPES.fetch('.foo', 'application/octet-stream')
+ #
+ # source://rack//lib/rack/mime.rb#18
+ def mime_type(ext, fallback = T.unsafe(nil)); end
+
+ class << self
+ # Returns true if the given value is a mime match for the given mime match
+ # specification, false otherwise.
+ #
+ # Rack::Mime.match?('text/html', 'text/*') => true
+ # Rack::Mime.match?('text/plain', '*') => true
+ # Rack::Mime.match?('text/html', 'application/json') => false
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/mime.rb#30
+ def match?(value, matcher); end
+
+ # Returns String with mime type if found, otherwise use +fallback+.
+ # +ext+ should be filename extension in the '.ext' format that
+ # File.extname(file) returns.
+ # +fallback+ may be any object
+ #
+ # Also see the documentation for MIME_TYPES
+ #
+ # Usage:
+ # Rack::Mime.mime_type('.foo')
+ #
+ # This is a shortcut for:
+ # Rack::Mime::MIME_TYPES.fetch('.foo', 'application/octet-stream')
+ #
+ # source://rack//lib/rack/mime.rb#18
+ def mime_type(ext, fallback = T.unsafe(nil)); end
+ end
+end
+
+# List of most common mime-types, selected various sources
+# according to their usefulness in a webserving scope for Ruby
+# users.
+#
+# To amend this list with your local mime.types list you can use:
+#
+# require 'webrick/httputils'
+# list = WEBrick::HTTPUtils.load_mime_types('/etc/mime.types')
+# Rack::Mime::MIME_TYPES.merge!(list)
+#
+# N.B. On Ubuntu the mime.types file does not include the leading period, so
+# users may need to modify the data before merging into the hash.
+#
+# source://rack//lib/rack/mime.rb#51
+Rack::Mime::MIME_TYPES = T.let(T.unsafe(nil), Hash)
+
+# Rack::MockRequest helps testing your Rack application without
+# actually using HTTP.
+#
+# After performing a request on a URL with get/post/put/patch/delete, it
+# returns a MockResponse with useful helper methods for effective
+# testing.
+#
+# You can pass a hash with additional configuration to the
+# get/post/put/patch/delete.
+# :input:: A String or IO-like to be used as rack.input.
+# :fatal:: Raise a FatalWarning if the app writes to rack.errors.
+# :lint:: If true, wrap the application in a Rack::Lint.
+#
+# source://rack//lib/rack/mock_request.rb#23
+class Rack::MockRequest
+ # @return [MockRequest] a new instance of MockRequest
+ #
+ # source://rack//lib/rack/mock_request.rb#49
+ def initialize(app); end
+
+ # Make a DELETE request and return a MockResponse. See #request.
+ #
+ # source://rack//lib/rack/mock_request.rb#62
+ def delete(uri, opts = T.unsafe(nil)); end
+
+ # Make a GET request and return a MockResponse. See #request.
+ #
+ # source://rack//lib/rack/mock_request.rb#54
+ def get(uri, opts = T.unsafe(nil)); end
+
+ # Make a HEAD request and return a MockResponse. See #request.
+ #
+ # source://rack//lib/rack/mock_request.rb#64
+ def head(uri, opts = T.unsafe(nil)); end
+
+ # Make an OPTIONS request and return a MockResponse. See #request.
+ #
+ # source://rack//lib/rack/mock_request.rb#66
+ def options(uri, opts = T.unsafe(nil)); end
+
+ # Make a PATCH request and return a MockResponse. See #request.
+ #
+ # source://rack//lib/rack/mock_request.rb#60
+ def patch(uri, opts = T.unsafe(nil)); end
+
+ # Make a POST request and return a MockResponse. See #request.
+ #
+ # source://rack//lib/rack/mock_request.rb#56
+ def post(uri, opts = T.unsafe(nil)); end
+
+ # Make a PUT request and return a MockResponse. See #request.
+ #
+ # source://rack//lib/rack/mock_request.rb#58
+ def put(uri, opts = T.unsafe(nil)); end
+
+ # Make a request using the given request method for the given
+ # uri to the rack application and return a MockResponse.
+ # Options given are passed to MockRequest.env_for.
+ #
+ # source://rack//lib/rack/mock_request.rb#71
+ def request(method = T.unsafe(nil), uri = T.unsafe(nil), opts = T.unsafe(nil)); end
+
+ class << self
+ # Return the Rack environment used for a request to +uri+.
+ # All options that are strings are added to the returned environment.
+ # Options:
+ # :fatal :: Whether to raise an exception if request outputs to rack.errors
+ # :input :: The rack.input to set
+ # :http_version :: The SERVER_PROTOCOL to set
+ # :method :: The HTTP request method to use
+ # :params :: The params to use
+ # :script_name :: The SCRIPT_NAME to set
+ #
+ # source://rack//lib/rack/mock_request.rb#103
+ def env_for(uri = T.unsafe(nil), opts = T.unsafe(nil)); end
+
+ # For historical reasons, we're pinning to RFC 2396.
+ # URI::Parser = URI::RFC2396_Parser
+ #
+ # source://rack//lib/rack/mock_request.rb#89
+ def parse_uri_rfc2396(uri); end
+ end
+end
+
+# source://rack//lib/rack/mock_request.rb#44
+Rack::MockRequest::DEFAULT_ENV = T.let(T.unsafe(nil), Hash)
+
+# source://rack//lib/rack/mock_request.rb#27
+class Rack::MockRequest::FatalWarner
+ # source://rack//lib/rack/mock_request.rb#36
+ def flush; end
+
+ # @raise [FatalWarning]
+ #
+ # source://rack//lib/rack/mock_request.rb#28
+ def puts(warning); end
+
+ # source://rack//lib/rack/mock_request.rb#39
+ def string; end
+
+ # @raise [FatalWarning]
+ #
+ # source://rack//lib/rack/mock_request.rb#32
+ def write(warning); end
+end
+
+# source://rack//lib/rack/mock_request.rb#24
+class Rack::MockRequest::FatalWarning < ::RuntimeError; end
+
+# Rack::MockResponse provides useful helpers for testing your apps.
+# Usually, you don't create the MockResponse on your own, but use
+# MockRequest.
+#
+# source://rack//lib/rack/mock_response.rb#13
+class Rack::MockResponse < ::Rack::Response
+ # @return [MockResponse] a new instance of MockResponse
+ #
+ # source://rack//lib/rack/mock_response.rb#24
+ def initialize(status, headers, body, errors = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/mock_response.rb#39
+ def =~(other); end
+
+ # source://rack//lib/rack/mock_response.rb#47
+ def body; end
+
+ # source://rack//lib/rack/mock_response.rb#73
+ def cookie(name); end
+
+ # Headers
+ #
+ # source://rack//lib/rack/mock_response.rb#19
+ def cookies; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/mock_response.rb#69
+ def empty?; end
+
+ # Errors
+ #
+ # source://rack//lib/rack/mock_response.rb#22
+ def errors; end
+
+ # Errors
+ #
+ # source://rack//lib/rack/mock_response.rb#22
+ def errors=(_arg0); end
+
+ # source://rack//lib/rack/mock_response.rb#43
+ def match(other); end
+
+ # Headers
+ #
+ # source://rack//lib/rack/mock_response.rb#19
+ def original_headers; end
+
+ private
+
+ # source://rack//lib/rack/mock_response.rb#102
+ def identify_cookie_attributes(cookie_filling); end
+
+ # source://rack//lib/rack/mock_response.rb#79
+ def parse_cookies_from_header; end
+
+ class << self
+ def [](*_arg0); end
+ end
+end
+
+# A multipart form data parser, adapted from IOWA.
+#
+# Usually, Rack::Request#POST takes care of calling this.
+#
+# source://rack//lib/rack/multipart/parser.rb#8
+module Rack::Multipart
+ class << self
+ # source://rack//lib/rack/multipart.rb#39
+ def build_multipart(params, first = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/multipart.rb#35
+ def extract_multipart(request, params = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/multipart.rb#17
+ def parse_multipart(env, params = T.unsafe(nil)); end
+ end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#32
+Rack::Multipart::ATTRIBUTE = T.let(T.unsafe(nil), Regexp)
+
+# Updated definitions from RFC 2231
+#
+# source://rack//lib/rack/multipart/parser.rb#31
+Rack::Multipart::ATTRIBUTE_CHAR = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#26
+Rack::Multipart::BROKEN = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#24
+Rack::Multipart::CONDISP = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#43
+Rack::Multipart::DISPPARM = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#21
+Rack::Multipart::EOL = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/multipart/parser.rb#39
+Rack::Multipart::EXTENDED_INITIAL_NAME = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#41
+Rack::Multipart::EXTENDED_INITIAL_PARAMETER = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#40
+Rack::Multipart::EXTENDED_INITIAL_VALUE = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#36
+Rack::Multipart::EXTENDED_OTHER_NAME = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#38
+Rack::Multipart::EXTENDED_OTHER_PARAMETER = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#37
+Rack::Multipart::EXTENDED_OTHER_VALUE = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#42
+Rack::Multipart::EXTENDED_PARAMETER = T.let(T.unsafe(nil), Regexp)
+
+# Use specific error class when parsing multipart request
+# that ends early.
+#
+# source://rack//lib/rack/multipart/parser.rb#15
+class Rack::Multipart::EmptyContentError < ::EOFError; end
+
+# Base class for multipart exceptions that do not subclass from
+# other exception classes for backwards compatibility.
+#
+# source://rack//lib/rack/multipart/parser.rb#19
+class Rack::Multipart::Error < ::StandardError; end
+
+# source://rack//lib/rack/multipart/generator.rb#7
+class Rack::Multipart::Generator
+ # @return [Generator] a new instance of Generator
+ #
+ # source://rack//lib/rack/multipart/generator.rb#8
+ def initialize(params, first = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/multipart/generator.rb#16
+ def dump; end
+
+ private
+
+ # source://rack//lib/rack/multipart/generator.rb#89
+ def content_for_other(file, name); end
+
+ # source://rack//lib/rack/multipart/generator.rb#77
+ def content_for_tempfile(io, file, name); end
+
+ # source://rack//lib/rack/multipart/generator.rb#52
+ def flattened_params; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/multipart/generator.rb#37
+ def multipart?; end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#22
+Rack::Multipart::MULTIPART = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart.rb#14
+Rack::Multipart::MULTIPART_BOUNDARY = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/multipart/parser.rb#28
+Rack::Multipart::MULTIPART_CONTENT_DISPOSITION = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#29
+Rack::Multipart::MULTIPART_CONTENT_ID = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#27
+Rack::Multipart::MULTIPART_CONTENT_TYPE = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#9
+class Rack::Multipart::MultipartPartLimitError < ::Errno::EMFILE; end
+
+# source://rack//lib/rack/multipart/parser.rb#11
+class Rack::Multipart::MultipartTotalPartLimitError < ::StandardError; end
+
+# source://rack//lib/rack/multipart/parser.rb#46
+class Rack::Multipart::Parser
+ # @return [Parser] a new instance of Parser
+ #
+ # source://rack//lib/rack/multipart/parser.rb#205
+ def initialize(boundary, tempfile, bufsize, query_parser); end
+
+ # source://rack//lib/rack/multipart/parser.rb#220
+ def parse(io); end
+
+ # source://rack//lib/rack/multipart/parser.rb#243
+ def result; end
+
+ # Returns the value of attribute state.
+ #
+ # source://rack//lib/rack/multipart/parser.rb#203
+ def state; end
+
+ private
+
+ # Scan until the we find the start or end of the boundary.
+ # If we find it, return the appropriate symbol for the start or
+ # end of the boundary. If we don't find the start or end of the
+ # boundary, clear the buffer and return nil.
+ #
+ # source://rack//lib/rack/multipart/parser.rb#346
+ def consume_boundary; end
+
+ # From WEBrick::HTTPUtils
+ #
+ # source://rack//lib/rack/multipart/parser.rb#255
+ def dequote(str); end
+
+ # source://rack//lib/rack/multipart/parser.rb#355
+ def get_filename(head); end
+
+ # source://rack//lib/rack/multipart/parser.rb#290
+ def handle_consume_token; end
+
+ # source://rack//lib/rack/multipart/parser.rb#427
+ def handle_empty_content!(content); end
+
+ # This handles the initial parser state. We read until we find the starting
+ # boundary, then we can transition to the next state. If we find the ending
+ # boundary, this is an invalid multipart upload, but keep scanning for opening
+ # boundary in that case. If no boundary found, we need to keep reading data
+ # and retry. It's highly unlikely the initial read will not consume the
+ # boundary. The client would have to deliberately craft a response
+ # with the opening boundary beyond the buffer size for that to happen.
+ #
+ # source://rack//lib/rack/multipart/parser.rb#274
+ def handle_fast_forward; end
+
+ # source://rack//lib/rack/multipart/parser.rb#323
+ def handle_mime_body; end
+
+ # source://rack//lib/rack/multipart/parser.rb#300
+ def handle_mime_head; end
+
+ # source://rack//lib/rack/multipart/parser.rb#261
+ def read_data(io, outbuf); end
+
+ # source://rack//lib/rack/multipart/parser.rb#393
+ def tag_multipart_encoding(filename, content_type, name, body); end
+
+ class << self
+ # source://rack//lib/rack/multipart/parser.rb#92
+ def parse(io, content_length, content_type, tmpfile, bufsize, qp); end
+
+ # source://rack//lib/rack/multipart/parser.rb#85
+ def parse_boundary(content_type); end
+ end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#47
+Rack::Multipart::Parser::BUFSIZE = T.let(T.unsafe(nil), Integer)
+
+# source://rack//lib/rack/multipart/parser.rb#53
+class Rack::Multipart::Parser::BoundedIO
+ # @return [BoundedIO] a new instance of BoundedIO
+ #
+ # source://rack//lib/rack/multipart/parser.rb#54
+ def initialize(io, content_length); end
+
+ # source://rack//lib/rack/multipart/parser.rb#60
+ def read(size, outbuf = T.unsafe(nil)); end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#390
+Rack::Multipart::Parser::CHARSET = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/multipart/parser.rb#112
+class Rack::Multipart::Parser::Collector
+ include ::Enumerable
+
+ # @return [Collector] a new instance of Collector
+ #
+ # source://rack//lib/rack/multipart/parser.rb#148
+ def initialize(tempfile); end
+
+ # source://rack//lib/rack/multipart/parser.rb#154
+ def each; end
+
+ # source://rack//lib/rack/multipart/parser.rb#174
+ def on_mime_body(mime_index, content); end
+
+ # source://rack//lib/rack/multipart/parser.rb#178
+ def on_mime_finish(mime_index); end
+
+ # source://rack//lib/rack/multipart/parser.rb#158
+ def on_mime_head(mime_index, head, filename, content_type, name); end
+
+ private
+
+ # source://rack//lib/rack/multipart/parser.rb#183
+ def check_part_limits; end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#136
+class Rack::Multipart::Parser::Collector::BufferPart < ::Rack::Multipart::Parser::Collector::MimePart
+ # source://rack//lib/rack/multipart/parser.rb#138
+ def close; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/multipart/parser.rb#137
+ def file?; end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#113
+class Rack::Multipart::Parser::Collector::MimePart < ::Struct
+ # @yield [data]
+ #
+ # source://rack//lib/rack/multipart/parser.rb#114
+ def get_data; end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#141
+class Rack::Multipart::Parser::Collector::TempfilePart < ::Rack::Multipart::Parser::Collector::MimePart
+ # source://rack//lib/rack/multipart/parser.rb#143
+ def close; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/multipart/parser.rb#142
+ def file?; end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#83
+Rack::Multipart::Parser::EMPTY = T.let(T.unsafe(nil), Rack::Multipart::Parser::MultipartInfo)
+
+# source://rack//lib/rack/multipart/parser.rb#82
+class Rack::Multipart::Parser::MultipartInfo < ::Struct
+ # Returns the value of attribute params
+ #
+ # @return [Object] the current value of params
+ def params; end
+
+ # Sets the attribute params
+ #
+ # @param value [Object] the value to set the attribute params to.
+ # @return [Object] the newly set value
+ def params=(_); end
+
+ # Returns the value of attribute tmp_files
+ #
+ # @return [Object] the current value of tmp_files
+ def tmp_files; end
+
+ # Sets the attribute tmp_files
+ #
+ # @param value [Object] the value to set the attribute tmp_files to.
+ # @return [Object] the newly set value
+ def tmp_files=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#49
+Rack::Multipart::Parser::TEMPFILE_FACTORY = T.let(T.unsafe(nil), Proc)
+
+# source://rack//lib/rack/multipart/parser.rb#48
+Rack::Multipart::Parser::TEXT_PLAIN = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/multipart/parser.rb#35
+Rack::Multipart::REGULAR_PARAMETER = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#34
+Rack::Multipart::REGULAR_PARAMETER_NAME = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#44
+Rack::Multipart::RFC2183 = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#33
+Rack::Multipart::SECTION = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/parser.rb#23
+Rack::Multipart::TOKEN = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/multipart/uploaded_file.rb#8
+class Rack::Multipart::UploadedFile
+ # @return [UploadedFile] a new instance of UploadedFile
+ #
+ # source://rack//lib/rack/multipart/uploaded_file.rb#16
+ def initialize(filepath = T.unsafe(nil), ct = T.unsafe(nil), bin = T.unsafe(nil), path: T.unsafe(nil), content_type: T.unsafe(nil), binary: T.unsafe(nil), filename: T.unsafe(nil), io: T.unsafe(nil)); end
+
+ # The content type of the "uploaded" file
+ #
+ # source://rack//lib/rack/multipart/uploaded_file.rb#14
+ def content_type; end
+
+ # The content type of the "uploaded" file
+ #
+ # source://rack//lib/rack/multipart/uploaded_file.rb#14
+ def content_type=(_arg0); end
+
+ # source://rack//lib/rack/multipart/uploaded_file.rb#31
+ def local_path; end
+
+ # source://rack//lib/rack/multipart/uploaded_file.rb#40
+ def method_missing(method_name, *args, &block); end
+
+ # The filename, *not* including the path, of the "uploaded" file
+ #
+ # source://rack//lib/rack/multipart/uploaded_file.rb#11
+ def original_filename; end
+
+ # source://rack//lib/rack/multipart/uploaded_file.rb#31
+ def path; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/multipart/uploaded_file.rb#36
+ def respond_to?(*args); end
+end
+
+# source://rack//lib/rack/multipart/parser.rb#25
+Rack::Multipart::VALUE = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/null_logger.rb#6
+class Rack::NullLogger
+ # @return [NullLogger] a new instance of NullLogger
+ #
+ # source://rack//lib/rack/null_logger.rb#7
+ def initialize(app); end
+
+ # source://rack//lib/rack/null_logger.rb#45
+ def <<(msg); end
+
+ # source://rack//lib/rack/null_logger.rb#43
+ def add(severity, message = T.unsafe(nil), progname = T.unsafe(nil), &block); end
+
+ # source://rack//lib/rack/null_logger.rb#11
+ def call(env); end
+
+ # source://rack//lib/rack/null_logger.rb#42
+ def close; end
+
+ # source://rack//lib/rack/null_logger.rb#34
+ def datetime_format; end
+
+ # source://rack//lib/rack/null_logger.rb#39
+ def datetime_format=(datetime_format); end
+
+ # source://rack//lib/rack/null_logger.rb#17
+ def debug(progname = T.unsafe(nil), &block); end
+
+ # source://rack//lib/rack/null_logger.rb#27
+ def debug!; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/null_logger.rb#23
+ def debug?; end
+
+ # source://rack//lib/rack/null_logger.rb#19
+ def error(progname = T.unsafe(nil), &block); end
+
+ # source://rack//lib/rack/null_logger.rb#28
+ def error!; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/null_logger.rb#25
+ def error?; end
+
+ # source://rack//lib/rack/null_logger.rb#20
+ def fatal(progname = T.unsafe(nil), &block); end
+
+ # source://rack//lib/rack/null_logger.rb#29
+ def fatal!; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/null_logger.rb#26
+ def fatal?; end
+
+ # source://rack//lib/rack/null_logger.rb#35
+ def formatter; end
+
+ # source://rack//lib/rack/null_logger.rb#40
+ def formatter=(formatter); end
+
+ # source://rack//lib/rack/null_logger.rb#16
+ def info(progname = T.unsafe(nil), &block); end
+
+ # source://rack//lib/rack/null_logger.rb#30
+ def info!; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/null_logger.rb#22
+ def info?; end
+
+ # source://rack//lib/rack/null_logger.rb#32
+ def level; end
+
+ # source://rack//lib/rack/null_logger.rb#37
+ def level=(level); end
+
+ # source://rack//lib/rack/null_logger.rb#44
+ def log(severity, message = T.unsafe(nil), progname = T.unsafe(nil), &block); end
+
+ # source://rack//lib/rack/null_logger.rb#33
+ def progname; end
+
+ # source://rack//lib/rack/null_logger.rb#38
+ def progname=(progname); end
+
+ # source://rack//lib/rack/null_logger.rb#46
+ def reopen(logdev = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/null_logger.rb#36
+ def sev_threshold; end
+
+ # source://rack//lib/rack/null_logger.rb#41
+ def sev_threshold=(sev_threshold); end
+
+ # source://rack//lib/rack/null_logger.rb#21
+ def unknown(progname = T.unsafe(nil), &block); end
+
+ # source://rack//lib/rack/null_logger.rb#18
+ def warn(progname = T.unsafe(nil), &block); end
+
+ # source://rack//lib/rack/null_logger.rb#31
+ def warn!; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/null_logger.rb#24
+ def warn?; end
+end
+
+# source://rack//lib/rack/constants.rb#34
+Rack::OPTIONS = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#31
+Rack::PATCH = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#8
+Rack::PATH_INFO = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#29
+Rack::POST = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#30
+Rack::PUT = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#12
+Rack::QUERY_STRING = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/query_parser.rb#6
+class Rack::QueryParser
+ # @return [QueryParser] a new instance of QueryParser
+ #
+ # source://rack//lib/rack/query_parser.rb#33
+ def initialize(params_class, _key_space_limit = T.unsafe(nil), param_depth_limit); end
+
+ # source://rack//lib/rack/query_parser.rb#167
+ def make_params; end
+
+ # source://rack//lib/rack/query_parser.rb#171
+ def new_depth_limit(param_depth_limit); end
+
+ # normalize_params recursively expands parameters into structural types. If
+ # the structural types represented by two different parameter names are in
+ # conflict, a ParameterTypeError is raised. The depth argument is deprecated
+ # and should no longer be used, it is kept for backwards compatibility with
+ # earlier versions of rack.
+ #
+ # source://rack//lib/rack/query_parser.rb#95
+ def normalize_params(params, name, v, _depth = T.unsafe(nil)); end
+
+ # Returns the value of attribute param_depth_limit.
+ #
+ # source://rack//lib/rack/query_parser.rb#31
+ def param_depth_limit; end
+
+ # parse_nested_query expands a query string into structural types. Supported
+ # types are Arrays, Hashes and basic value types. It is possible to supply
+ # query strings with parameters of conflicting types, in this case a
+ # ParameterTypeError is raised. Users are encouraged to return a 400 in this
+ # case.
+ #
+ # source://rack//lib/rack/query_parser.rb#74
+ def parse_nested_query(qs, separator = T.unsafe(nil)); end
+
+ # Stolen from Mongrel, with some small modifications:
+ # Parses a query string by breaking it up at the '&'. You can also use this
+ # to parse cookies by changing the characters used in the second parameter
+ # (which defaults to '&').
+ #
+ # source://rack//lib/rack/query_parser.rb#46
+ def parse_query(qs, separator = T.unsafe(nil), &unescaper); end
+
+ private
+
+ # @raise [ParamsTooDeepError]
+ #
+ # source://rack//lib/rack/query_parser.rb#99
+ def _normalize_params(params, name, v, depth); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/query_parser.rb#181
+ def params_hash_has_key?(hash, key); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/query_parser.rb#177
+ def params_hash_type?(obj); end
+
+ # source://rack//lib/rack/query_parser.rb#193
+ def unescape(string, encoding = T.unsafe(nil)); end
+
+ class << self
+ # source://rack//lib/rack/query_parser.rb#23
+ def make_default(_key_space_limit = T.unsafe(nil), param_depth_limit); end
+ end
+end
+
+# source://rack//lib/rack/query_parser.rb#8
+Rack::QueryParser::COMMON_SEP = T.let(T.unsafe(nil), Hash)
+
+# source://rack//lib/rack/query_parser.rb#7
+Rack::QueryParser::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
+
+# InvalidParameterError is the error that is raised when incoming structural
+# parameters (parsed by parse_nested_query) contain invalid format or byte
+# sequence.
+#
+# source://rack//lib/rack/query_parser.rb#17
+class Rack::QueryParser::InvalidParameterError < ::ArgumentError; end
+
+# ParameterTypeError is the error that is raised when incoming structural
+# parameters (parsed by parse_nested_query) contain conflicting types.
+#
+# source://rack//lib/rack/query_parser.rb#12
+class Rack::QueryParser::ParameterTypeError < ::TypeError; end
+
+# source://rack//lib/rack/query_parser.rb#197
+class Rack::QueryParser::Params
+ # @return [Params] a new instance of Params
+ #
+ # source://rack//lib/rack/query_parser.rb#198
+ def initialize; end
+
+ # source://rack//lib/rack/query_parser.rb#203
+ def [](key); end
+
+ # source://rack//lib/rack/query_parser.rb#207
+ def []=(key, value); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/query_parser.rb#211
+ def key?(key); end
+
+ # Recursively unwraps nested `Params` objects and constructs an object
+ # of the same shape, but using the objects' internal representations
+ # (Ruby hashes) in place of the objects. The result is a hash consisting
+ # purely of Ruby primitives.
+ #
+ # Mutation warning!
+ #
+ # 1. This method mutates the internal representation of the `Params`
+ # objects in order to save object allocations.
+ #
+ # 2. The value you get back is a reference to the internal hash
+ # representation, not a copy.
+ #
+ # 3. Because the `Params` object's internal representation is mutable
+ # through the `#[]=` method, it is not thread safe. The result of
+ # getting the hash representation while another thread is adding a
+ # key to it is non-deterministic.
+ #
+ # source://rack//lib/rack/query_parser.rb#233
+ def to_h; end
+
+ # Recursively unwraps nested `Params` objects and constructs an object
+ # of the same shape, but using the objects' internal representations
+ # (Ruby hashes) in place of the objects. The result is a hash consisting
+ # purely of Ruby primitives.
+ #
+ # Mutation warning!
+ #
+ # 1. This method mutates the internal representation of the `Params`
+ # objects in order to save object allocations.
+ #
+ # 2. The value you get back is a reference to the internal hash
+ # representation, not a copy.
+ #
+ # 3. Because the `Params` object's internal representation is mutable
+ # through the `#[]=` method, it is not thread safe. The result of
+ # getting the hash representation while another thread is adding a
+ # key to it is non-deterministic.
+ #
+ # source://rack//lib/rack/query_parser.rb#233
+ def to_params_hash; end
+end
+
+# ParamsTooDeepError is the error that is raised when params are recursively
+# nested over the specified limit.
+#
+# source://rack//lib/rack/query_parser.rb#21
+class Rack::QueryParser::ParamsTooDeepError < ::RangeError; end
+
+# source://rack//lib/rack/constants.rb#42
+Rack::RACK_ERRORS = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#49
+Rack::RACK_HIJACK = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#44
+Rack::RACK_INPUT = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#50
+Rack::RACK_IS_HIJACK = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#43
+Rack::RACK_LOGGER = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#63
+Rack::RACK_METHODOVERRIDE_ORIGINAL_METHOD = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#52
+Rack::RACK_MULTIPART_BUFFER_SIZE = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#53
+Rack::RACK_MULTIPART_TEMPFILE_FACTORY = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#51
+Rack::RACK_RECURSIVE_INCLUDE = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#59
+Rack::RACK_REQUEST_COOKIE_HASH = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#60
+Rack::RACK_REQUEST_COOKIE_STRING = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#58
+Rack::RACK_REQUEST_FORM_ERROR = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#56
+Rack::RACK_REQUEST_FORM_HASH = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#55
+Rack::RACK_REQUEST_FORM_INPUT = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#57
+Rack::RACK_REQUEST_FORM_VARS = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#61
+Rack::RACK_REQUEST_QUERY_HASH = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#62
+Rack::RACK_REQUEST_QUERY_STRING = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#54
+Rack::RACK_RESPONSE_FINISHED = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#45
+Rack::RACK_SESSION = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#46
+Rack::RACK_SESSION_OPTIONS = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#47
+Rack::RACK_SHOWSTATUS_DETAIL = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#41
+Rack::RACK_TEMPFILES = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#48
+Rack::RACK_URL_SCHEME = T.let(T.unsafe(nil), String)
+
+# Rack environment variables
+#
+# source://rack//lib/rack/constants.rb#40
+Rack::RACK_VERSION = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/version.rb#28
+Rack::RELEASE = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#9
+Rack::REQUEST_METHOD = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#10
+Rack::REQUEST_PATH = T.let(T.unsafe(nil), String)
+
+# Rack::Recursive allows applications called down the chain to
+# include data from other applications (by using
+# rack['rack.recursive.include'][...] or raise a
+# ForwardRequest to redirect internally.
+#
+# source://rack//lib/rack/recursive.rb#36
+class Rack::Recursive
+ # @return [Recursive] a new instance of Recursive
+ #
+ # source://rack//lib/rack/recursive.rb#37
+ def initialize(app); end
+
+ # source://rack//lib/rack/recursive.rb#45
+ def _call(env); end
+
+ # source://rack//lib/rack/recursive.rb#41
+ def call(env); end
+
+ # source://rack//lib/rack/recursive.rb#52
+ def include(env, path); end
+end
+
+# High performant source reloader
+#
+# This class acts as Rack middleware.
+#
+# What makes it especially suited for use in a production environment is that
+# any file will only be checked once and there will only be made one system
+# call stat(2).
+#
+# Please note that this will not reload files in the background, it does so
+# only when actively called.
+#
+# It is performing a check/reload cycle at the start of every request, but
+# also respects a cool down time, during which nothing will be done.
+#
+# source://rack//lib/rack/reloader.rb#24
+class Rack::Reloader
+ # @return [Reloader] a new instance of Reloader
+ #
+ # source://rack//lib/rack/reloader.rb#25
+ def initialize(app, cooldown = T.unsafe(nil), backend = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/reloader.rb#36
+ def call(env); end
+
+ # source://rack//lib/rack/reloader.rb#50
+ def reload!(stderr = T.unsafe(nil)); end
+
+ # A safe Kernel::load, issuing the hooks depending on the results
+ #
+ # source://rack//lib/rack/reloader.rb#58
+ def safe_load(file, mtime, stderr = T.unsafe(nil)); end
+end
+
+# source://rack//lib/rack/reloader.rb#68
+module Rack::Reloader::Stat
+ # Takes a relative or absolute +file+ name, a couple possible +paths+ that
+ # the +file+ might reside in. Returns the full path and File::Stat for the
+ # path.
+ #
+ # source://rack//lib/rack/reloader.rb#88
+ def figure_path(file, paths); end
+
+ # source://rack//lib/rack/reloader.rb#69
+ def rotation; end
+
+ # source://rack//lib/rack/reloader.rb#103
+ def safe_stat(file); end
+end
+
+# Rack::Request provides a convenient interface to a Rack
+# environment. It is stateless, the environment +env+ passed to the
+# constructor will be directly modified.
+#
+# req = Rack::Request.new(env)
+# req.post?
+# req.params["data"]
+#
+# source://rack//lib/rack/request.rb#16
+class Rack::Request
+ include ::Rack::Request::Env
+ include ::Rack::Request::Helpers
+
+ # @return [Request] a new instance of Request
+ #
+ # source://rack//lib/rack/request.rb#62
+ def initialize(env); end
+
+ # source://rack//lib/rack/request.rb#76
+ def delete_param(k); end
+
+ # source://rack//lib/rack/request.rb#67
+ def params; end
+
+ # source://rack//lib/rack/request.rb#71
+ def update_param(k, v); end
+
+ class << self
+ # The priority when checking forwarded headers. The default
+ # is [:forwarded, :x_forwarded], which means, check the
+ # +Forwarded+ header first, followed by the appropriate
+ # X-Forwarded-* header. You can revert the priority by
+ # reversing the priority, or remove checking of either
+ # or both headers by removing elements from the array.
+ #
+ # This should be set as appropriate in your environment
+ # based on what reverse proxies are in use. If you are not
+ # using reverse proxies, you should probably use an empty
+ # array.
+ #
+ # source://rack//lib/rack/request.rb#31
+ def forwarded_priority; end
+
+ # The priority when checking forwarded headers. The default
+ # is [:forwarded, :x_forwarded], which means, check the
+ # +Forwarded+ header first, followed by the appropriate
+ # X-Forwarded-* header. You can revert the priority by
+ # reversing the priority, or remove checking of either
+ # or both headers by removing elements from the array.
+ #
+ # This should be set as appropriate in your environment
+ # based on what reverse proxies are in use. If you are not
+ # using reverse proxies, you should probably use an empty
+ # array.
+ #
+ # source://rack//lib/rack/request.rb#31
+ def forwarded_priority=(_arg0); end
+
+ # Returns the value of attribute ip_filter.
+ #
+ # source://rack//lib/rack/request.rb#18
+ def ip_filter; end
+
+ # Sets the attribute ip_filter
+ #
+ # @param value the value to set the attribute ip_filter to.
+ #
+ # source://rack//lib/rack/request.rb#18
+ def ip_filter=(_arg0); end
+
+ # The priority when checking either the X-Forwarded-Proto
+ # or X-Forwarded-Scheme header for the forwarded protocol.
+ # The default is [:proto, :scheme], to try the
+ # X-Forwarded-Proto header before the
+ # X-Forwarded-Scheme header. Rack 2 had behavior
+ # similar to [:scheme, :proto]. You can remove either or
+ # both of the entries in array to ignore that respective header.
+ #
+ # source://rack//lib/rack/request.rb#40
+ def x_forwarded_proto_priority; end
+
+ # The priority when checking either the X-Forwarded-Proto
+ # or X-Forwarded-Scheme header for the forwarded protocol.
+ # The default is [:proto, :scheme], to try the
+ # X-Forwarded-Proto header before the
+ # X-Forwarded-Scheme header. Rack 2 had behavior
+ # similar to [:scheme, :proto]. You can remove either or
+ # both of the entries in array to ignore that respective header.
+ #
+ # source://rack//lib/rack/request.rb#40
+ def x_forwarded_proto_priority=(_arg0); end
+ end
+end
+
+# source://rack//lib/rack/request.rb#60
+Rack::Request::ALLOWED_SCHEMES = T.let(T.unsafe(nil), Array)
+
+# source://rack//lib/rack/request.rb#82
+module Rack::Request::Env
+ # source://rack//lib/rack/request.rb#86
+ def initialize(env); end
+
+ # Add a header that may have multiple values.
+ #
+ # Example:
+ # request.add_header 'Accept', 'image/png'
+ # request.add_header 'Accept', '*/*'
+ #
+ # assert_equal 'image/png,*/*', request.get_header('Accept')
+ #
+ # http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
+ #
+ # source://rack//lib/rack/request.rb#129
+ def add_header(key, v); end
+
+ # Delete a request specific value for `name`.
+ #
+ # source://rack//lib/rack/request.rb#140
+ def delete_header(name); end
+
+ # Loops through each key / value pair in the request specific data.
+ #
+ # source://rack//lib/rack/request.rb#111
+ def each_header(&block); end
+
+ # The environment of the request.
+ #
+ # source://rack//lib/rack/request.rb#84
+ def env; end
+
+ # If a block is given, it yields to the block if the value hasn't been set
+ # on the request.
+ #
+ # source://rack//lib/rack/request.rb#106
+ def fetch_header(name, &block); end
+
+ # Get a request specific value for `name`.
+ #
+ # source://rack//lib/rack/request.rb#100
+ def get_header(name); end
+
+ # Predicate method to test to see if `name` has been set as request
+ # specific data
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#95
+ def has_header?(name); end
+
+ # Set a request specific value for `name` to `v`
+ #
+ # source://rack//lib/rack/request.rb#116
+ def set_header(name, v); end
+
+ private
+
+ # source://rack//lib/rack/request.rb#144
+ def initialize_copy(other); end
+end
+
+# source://rack//lib/rack/request.rb#149
+module Rack::Request::Helpers
+ # Returns the data received in the query string.
+ #
+ # source://rack//lib/rack/request.rb#484
+ def GET; end
+
+ # Returns the data received in the request body.
+ #
+ # This method support both application/x-www-form-urlencoded and
+ # multipart/form-data.
+ #
+ # source://rack//lib/rack/request.rb#498
+ def POST; end
+
+ # shortcut for request.params[key]
+ #
+ # source://rack//lib/rack/request.rb#609
+ def [](key); end
+
+ # shortcut for request.params[key] = value
+ #
+ # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
+ #
+ # source://rack//lib/rack/request.rb#618
+ def []=(key, value); end
+
+ # source://rack//lib/rack/request.rb#596
+ def accept_encoding; end
+
+ # source://rack//lib/rack/request.rb#600
+ def accept_language; end
+
+ # The authority of the incoming request as defined by RFC3976.
+ # https://tools.ietf.org/html/rfc3986#section-3.2
+ #
+ # In HTTP/1, this is the `host` header.
+ # In HTTP/2, this is the `:authority` pseudo-header.
+ #
+ # source://rack//lib/rack/request.rb#266
+ def authority; end
+
+ # source://rack//lib/rack/request.rb#579
+ def base_url; end
+
+ # source://rack//lib/rack/request.rb#190
+ def body; end
+
+ # The character set of the request body if a "charset" media type
+ # parameter was given, or nil if no "charset" was specified. Note
+ # that, per RFC2616, text/* media types that specify no explicit
+ # charset are to be considered ISO-8859-1.
+ #
+ # source://rack//lib/rack/request.rb#458
+ def content_charset; end
+
+ # source://rack//lib/rack/request.rb#199
+ def content_length; end
+
+ # source://rack//lib/rack/request.rb#308
+ def content_type; end
+
+ # source://rack//lib/rack/request.rb#293
+ def cookies; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type DELETE
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#220
+ def delete?; end
+
+ # Destructively delete a parameter, whether it's in GET or POST. Returns the value of the deleted parameter.
+ #
+ # If the parameter is in both GET and POST, the POST value takes precedence since that's how #params works.
+ #
+ # env['rack.input'] is not touched.
+ #
+ # source://rack//lib/rack/request.rb#574
+ def delete_param(k); end
+
+ # Determine whether the request body contains form-data by checking
+ # the request content-type for one of the media-types:
+ # "application/x-www-form-urlencoded" or "multipart/form-data". The
+ # list of form-data media types can be modified through the
+ # +FORM_DATA_MEDIA_TYPES+ array.
+ #
+ # A request body is also assumed to contain form-data when no
+ # content-type header is provided and the request_method is POST.
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#470
+ def form_data?; end
+
+ # source://rack//lib/rack/request.rb#393
+ def forwarded_authority; end
+
+ # source://rack//lib/rack/request.rb#353
+ def forwarded_for; end
+
+ # source://rack//lib/rack/request.rb#374
+ def forwarded_port; end
+
+ # source://rack//lib/rack/request.rb#592
+ def fullpath; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type GET
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#223
+ def get?; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type HEAD
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#226
+ def head?; end
+
+ # Returns a formatted host, suitable for being used in a URI.
+ #
+ # source://rack//lib/rack/request.rb#333
+ def host; end
+
+ # The `HTTP_HOST` header.
+ #
+ # source://rack//lib/rack/request.rb#318
+ def host_authority; end
+
+ # source://rack//lib/rack/request.rb#322
+ def host_with_port(authority = T.unsafe(nil)); end
+
+ # Returns an address suitable for being to resolve to an address.
+ # In the case of a domain name or IPv4 address, the result is the same
+ # as +host+. In the case of IPv6 or future address formats, the square
+ # brackets are removed.
+ #
+ # source://rack//lib/rack/request.rb#341
+ def hostname; end
+
+ # source://rack//lib/rack/request.rb#414
+ def ip; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type LINK
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#232
+ def link?; end
+
+ # source://rack//lib/rack/request.rb#200
+ def logger; end
+
+ # The media type (type/subtype) portion of the CONTENT_TYPE header
+ # without any media type parameters. e.g., when CONTENT_TYPE is
+ # "text/plain;charset=utf-8", the media-type is "text/plain".
+ #
+ # For more information on the use of media types in HTTP, see:
+ # http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7
+ #
+ # source://rack//lib/rack/request.rb#441
+ def media_type; end
+
+ # The media type parameters provided in CONTENT_TYPE as a Hash, or
+ # an empty Hash if no CONTENT_TYPE or media-type parameters were
+ # provided. e.g., when the CONTENT_TYPE is "text/plain;charset=utf-8",
+ # this method responds with the following Hash:
+ # { 'charset' => 'utf-8' }
+ #
+ # source://rack//lib/rack/request.rb#450
+ def media_type_params; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type OPTIONS
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#229
+ def options?; end
+
+ # The union of GET and POST data.
+ #
+ # Note that modifications will not be persisted in the env. Use update_param or delete_param if you want to destructively modify params.
+ #
+ # source://rack//lib/rack/request.rb#545
+ def params; end
+
+ # Determine whether the request body contains data by checking
+ # the request media_type against registered parse-data media-types
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#479
+ def parseable_data?; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type PATCH
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#235
+ def patch?; end
+
+ # source://rack//lib/rack/request.rb#588
+ def path; end
+
+ # source://rack//lib/rack/request.rb#194
+ def path_info; end
+
+ # source://rack//lib/rack/request.rb#195
+ def path_info=(s); end
+
+ # source://rack//lib/rack/request.rb#345
+ def port; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type POST
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#238
+ def post?; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type PUT
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#241
+ def put?; end
+
+ # source://rack//lib/rack/request.rb#198
+ def query_string; end
+
+ # the referer of the client
+ #
+ # source://rack//lib/rack/request.rb#204
+ def referer; end
+
+ # the referer of the client
+ #
+ # source://rack//lib/rack/request.rb#204
+ def referrer; end
+
+ # source://rack//lib/rack/request.rb#197
+ def request_method; end
+
+ # source://rack//lib/rack/request.rb#249
+ def scheme; end
+
+ # source://rack//lib/rack/request.rb#191
+ def script_name; end
+
+ # source://rack//lib/rack/request.rb#192
+ def script_name=(s); end
+
+ # The authority as defined by the `SERVER_NAME` and `SERVER_PORT`
+ # variables.
+ #
+ # source://rack//lib/rack/request.rb#272
+ def server_authority; end
+
+ # source://rack//lib/rack/request.rb#285
+ def server_name; end
+
+ # source://rack//lib/rack/request.rb#289
+ def server_port; end
+
+ # source://rack//lib/rack/request.rb#207
+ def session; end
+
+ # source://rack//lib/rack/request.rb#213
+ def session_options; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#410
+ def ssl?; end
+
+ # Checks the HTTP request method (or verb) to see if it was of type TRACE
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#244
+ def trace?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#604
+ def trusted_proxy?(ip); end
+
+ # Checks the HTTP request method (or verb) to see if it was of type UNLINK
+ #
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#247
+ def unlink?; end
+
+ # Destructively update a parameter, whether it's in GET and/or POST. Returns nil.
+ #
+ # The parameter is updated wherever it was previous defined, so GET, POST, or both. If it wasn't previously defined, it's inserted into GET.
+ #
+ # env['rack.input'] is not touched.
+ #
+ # source://rack//lib/rack/request.rb#554
+ def update_param(k, v); end
+
+ # Tries to return a remake of the original request URL as a string.
+ #
+ # source://rack//lib/rack/request.rb#584
+ def url; end
+
+ # source://rack//lib/rack/request.rb#201
+ def user_agent; end
+
+ # like Hash#values_at
+ #
+ # source://rack//lib/rack/request.rb#625
+ def values_at(*keys); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/request.rb#313
+ def xhr?; end
+
+ private
+
+ # source://rack//lib/rack/request.rb#757
+ def allowed_scheme(header); end
+
+ # source://rack//lib/rack/request.rb#631
+ def default_session; end
+
+ # source://rack//lib/rack/request.rb#761
+ def forwarded_priority; end
+
+ # source://rack//lib/rack/request.rb#733
+ def forwarded_scheme; end
+
+ # Get an array of values set in the RFC 7239 `Forwarded` request header.
+ #
+ # source://rack//lib/rack/request.rb#659
+ def get_http_forwarded(token); end
+
+ # source://rack//lib/rack/request.rb#647
+ def parse_http_accept_header(header); end
+
+ # source://rack//lib/rack/request.rb#671
+ def parse_multipart; end
+
+ # source://rack//lib/rack/request.rb#667
+ def parse_query(qs, d = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/request.rb#663
+ def query_parser; end
+
+ # source://rack//lib/rack/request.rb#724
+ def reject_trusted_ip_addresses(ip_addresses); end
+
+ # source://rack//lib/rack/request.rb#718
+ def split_authority(authority); end
+
+ # source://rack//lib/rack/request.rb#675
+ def split_header(value); end
+
+ # Assist with compatibility when processing `X-Forwarded-For`.
+ #
+ # source://rack//lib/rack/request.rb#634
+ def wrap_ipv6(host); end
+
+ # source://rack//lib/rack/request.rb#765
+ def x_forwarded_proto_priority; end
+end
+
+# source://rack//lib/rack/request.rb#703
+Rack::Request::Helpers::AUTHORITY = T.let(T.unsafe(nil), Regexp)
+
+# Default ports depending on scheme. Used to decide whether or not
+# to include the port in a generated URI.
+#
+# source://rack//lib/rack/request.rb#168
+Rack::Request::Helpers::DEFAULT_PORTS = T.let(T.unsafe(nil), Hash)
+
+# The set of form-data media-types. Requests that do not indicate
+# one of the media types present in this list will not be eligible
+# for form-data / param parsing.
+#
+# source://rack//lib/rack/request.rb#153
+Rack::Request::Helpers::FORM_DATA_MEDIA_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rack//lib/rack/request.rb#728
+Rack::Request::Helpers::FORWARDED_SCHEME_HEADERS = T.let(T.unsafe(nil), Hash)
+
+# source://rack//lib/rack/request.rb#176
+Rack::Request::Helpers::HTTP_FORWARDED = T.let(T.unsafe(nil), String)
+
+# The address of the client which connected to the proxy.
+#
+# source://rack//lib/rack/request.rb#171
+Rack::Request::Helpers::HTTP_X_FORWARDED_FOR = T.let(T.unsafe(nil), String)
+
+# The contents of the host/:authority header sent to the proxy.
+#
+# source://rack//lib/rack/request.rb#174
+Rack::Request::Helpers::HTTP_X_FORWARDED_HOST = T.let(T.unsafe(nil), String)
+
+# The port used to connect to the proxy.
+#
+# source://rack//lib/rack/request.rb#185
+Rack::Request::Helpers::HTTP_X_FORWARDED_PORT = T.let(T.unsafe(nil), String)
+
+# The protocol used to connect to the proxy.
+#
+# source://rack//lib/rack/request.rb#182
+Rack::Request::Helpers::HTTP_X_FORWARDED_PROTO = T.let(T.unsafe(nil), String)
+
+# The value of the scheme sent to the proxy.
+#
+# source://rack//lib/rack/request.rb#179
+Rack::Request::Helpers::HTTP_X_FORWARDED_SCHEME = T.let(T.unsafe(nil), String)
+
+# Another way for specifying https scheme was used.
+#
+# source://rack//lib/rack/request.rb#188
+Rack::Request::Helpers::HTTP_X_FORWARDED_SSL = T.let(T.unsafe(nil), String)
+
+# The set of media-types. Requests that do not indicate
+# one of the media types present in this list will not be eligible
+# for param parsing like soap attachments or generic multiparts
+#
+# source://rack//lib/rack/request.rb#161
+Rack::Request::Helpers::PARSEABLE_DATA_MEDIA_TYPES = T.let(T.unsafe(nil), Array)
+
+# Rack::Response provides a convenient interface to create a Rack
+# response.
+#
+# It allows setting of headers and cookies, and provides useful
+# defaults (an OK response with empty headers and body).
+#
+# You can use Response#write to iteratively generate your response,
+# but note that this is buffered by Rack::Response until you call
+# +finish+. +finish+ however can take a block inside which calls to
+# +write+ are synchronous with the Rack response.
+#
+# Your application's +call+ should end returning Response#finish.
+#
+# source://rack//lib/rack/response.rb#23
+class Rack::Response
+ include ::Rack::Response::Helpers
+
+ # Initialize the response object with the specified +body+, +status+
+ # and +headers+.
+ #
+ # If the +body+ is +nil+, construct an empty response object with internal
+ # buffering.
+ #
+ # If the +body+ responds to +to_str+, assume it's a string-like object and
+ # construct a buffered response object containing using that string as the
+ # initial contents of the buffer.
+ #
+ # Otherwise it is expected +body+ conforms to the normal requirements of a
+ # Rack response body, typically implementing one of +each+ (enumerable
+ # body) or +call+ (streaming body).
+ #
+ # The +status+ defaults to +200+ which is the "OK" HTTP status code. You
+ # can provide any other valid status code.
+ #
+ # The +headers+ must be a +Hash+ of key-value header pairs which conform to
+ # the Rack specification for response headers. The key must be a +String+
+ # instance and the value can be either a +String+ or +Array+ instance.
+ #
+ # @return [Response] a new instance of Response
+ # @yield [_self]
+ # @yieldparam _self [Rack::Response] the object that the method was called on
+ #
+ # source://rack//lib/rack/response.rb#61
+ def initialize(body = T.unsafe(nil), status = T.unsafe(nil), headers = T.unsafe(nil)); end
+
+ # @raise [ArgumentError]
+ #
+ # source://rack//lib/rack/response.rb#163
+ def [](key); end
+
+ # @raise [ArgumentError]
+ #
+ # source://rack//lib/rack/response.rb#167
+ def []=(key, value); end
+
+ # Returns the value of attribute body.
+ #
+ # source://rack//lib/rack/response.rb#31
+ def body; end
+
+ # Sets the attribute body
+ #
+ # @param value the value to set the attribute body to.
+ #
+ # source://rack//lib/rack/response.rb#31
+ def body=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#101
+ def chunked?; end
+
+ # source://rack//lib/rack/response.rb#151
+ def close; end
+
+ # @raise [ArgumentError]
+ #
+ # source://rack//lib/rack/response.rb#171
+ def delete_header(key); end
+
+ # source://rack//lib/rack/response.rb#131
+ def each(&callback); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#155
+ def empty?; end
+
+ # Generate a response array consistent with the requirements of the SPEC.
+ # which is suitable to be returned from the middleware `#call(env)` method.
+ #
+ # @return [Array] a 3-tuple suitable of `[status, headers, body]`
+ #
+ # source://rack//lib/rack/response.rb#113
+ def finish(&block); end
+
+ # @raise [ArgumentError]
+ #
+ # source://rack//lib/rack/response.rb#163
+ def get_header(key); end
+
+ # @raise [ArgumentError]
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#159
+ def has_header?(key); end
+
+ # Deprecated, use headers instead.
+ #
+ # source://rack//lib/rack/response.rb#35
+ def header; end
+
+ # Returns the value of attribute headers.
+ #
+ # source://rack//lib/rack/response.rb#32
+ def headers; end
+
+ # Returns the value of attribute length.
+ #
+ # source://rack//lib/rack/response.rb#31
+ def length; end
+
+ # Sets the attribute length
+ #
+ # @param value the value to set the attribute length to.
+ #
+ # source://rack//lib/rack/response.rb#31
+ def length=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#105
+ def no_entity_body?; end
+
+ # source://rack//lib/rack/response.rb#96
+ def redirect(target, status = T.unsafe(nil)); end
+
+ # @raise [ArgumentError]
+ #
+ # source://rack//lib/rack/response.rb#167
+ def set_header(key, value); end
+
+ # Returns the value of attribute status.
+ #
+ # source://rack//lib/rack/response.rb#31
+ def status; end
+
+ # Sets the attribute status
+ #
+ # @param value the value to set the attribute status to.
+ #
+ # source://rack//lib/rack/response.rb#31
+ def status=(_arg0); end
+
+ # Generate a response array consistent with the requirements of the SPEC.
+ # which is suitable to be returned from the middleware `#call(env)` method.
+ # For *response
+ #
+ # @return [Array] a 3-tuple suitable of `[status, headers, body]`
+ #
+ # source://rack//lib/rack/response.rb#113
+ def to_a(&block); end
+
+ # Append to body and update content-length.
+ #
+ # NOTE: Do not mix #write and direct #body access!
+ #
+ # source://rack//lib/rack/response.rb#145
+ def write(chunk); end
+
+ class << self
+ # source://rack//lib/rack/response.rb#24
+ def [](status, headers, body); end
+ end
+end
+
+# source://rack//lib/rack/response.rb#28
+Rack::Response::CHUNKED = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/response.rb#179
+module Rack::Response::Helpers
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#190
+ def accepted?; end
+
+ # Add a header that may have multiple values.
+ #
+ # Example:
+ # response.add_header 'vary', 'accept-encoding'
+ # response.add_header 'vary', 'cookie'
+ #
+ # assert_equal 'accept-encoding,cookie', response.get_header('vary')
+ #
+ # http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
+ #
+ # @raise [ArgumentError]
+ #
+ # source://rack//lib/rack/response.rb#218
+ def add_header(key, value); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#193
+ def bad_request?; end
+
+ # Specify that the content should be cached.
+ #
+ # @option directive
+ # @param duration [Integer] The number of seconds until the cache expires.
+ # @param directive [Hash] a customizable set of options
+ #
+ # source://rack//lib/rack/response.rb#306
+ def cache!(duration = T.unsafe(nil), directive: T.unsafe(nil)); end
+
+ # source://rack//lib/rack/response.rb#289
+ def cache_control; end
+
+ # source://rack//lib/rack/response.rb#293
+ def cache_control=(value); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#185
+ def client_error?; end
+
+ # source://rack//lib/rack/response.rb#256
+ def content_length; end
+
+ # Get the content type of the response.
+ #
+ # source://rack//lib/rack/response.rb#239
+ def content_type; end
+
+ # Set the content type of the response.
+ #
+ # source://rack//lib/rack/response.rb#244
+ def content_type=(content_type); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#189
+ def created?; end
+
+ # source://rack//lib/rack/response.rb#273
+ def delete_cookie(key, value = T.unsafe(nil)); end
+
+ # Specifies that the content shouldn't be cached. Overrides `cache!` if already called.
+ #
+ # source://rack//lib/rack/response.rb#298
+ def do_not_cache!; end
+
+ # source://rack//lib/rack/response.rb#313
+ def etag; end
+
+ # source://rack//lib/rack/response.rb#317
+ def etag=(value); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#195
+ def forbidden?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#205
+ def include?(header); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#182
+ def informational?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#180
+ def invalid?; end
+
+ # source://rack//lib/rack/response.rb#261
+ def location; end
+
+ # source://rack//lib/rack/response.rb#265
+ def location=(location); end
+
+ # source://rack//lib/rack/response.rb#248
+ def media_type; end
+
+ # source://rack//lib/rack/response.rb#252
+ def media_type_params; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#197
+ def method_not_allowed?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#192
+ def moved_permanently?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#191
+ def no_content?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#198
+ def not_acceptable?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#196
+ def not_found?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#188
+ def ok?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#200
+ def precondition_failed?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#203
+ def redirect?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#184
+ def redirection?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#199
+ def request_timeout?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#186
+ def server_error?; end
+
+ # source://rack//lib/rack/response.rb#269
+ def set_cookie(key, value); end
+
+ # source://rack//lib/rack/response.rb#281
+ def set_cookie_header; end
+
+ # source://rack//lib/rack/response.rb#285
+ def set_cookie_header=(value); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#183
+ def successful?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#194
+ def unauthorized?; end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#201
+ def unprocessable?; end
+
+ protected
+
+ # source://rack//lib/rack/response.rb#351
+ def append(chunk); end
+
+ # source://rack//lib/rack/response.rb#323
+ def buffered_body!; end
+end
+
+# source://rack//lib/rack/response.rb#365
+class Rack::Response::Raw
+ include ::Rack::Response::Helpers
+
+ # @return [Raw] a new instance of Raw
+ #
+ # source://rack//lib/rack/response.rb#371
+ def initialize(status, headers); end
+
+ # source://rack//lib/rack/response.rb#388
+ def delete_header(key); end
+
+ # source://rack//lib/rack/response.rb#380
+ def get_header(key); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/response.rb#376
+ def has_header?(key); end
+
+ # Returns the value of attribute headers.
+ #
+ # source://rack//lib/rack/response.rb#368
+ def headers; end
+
+ # source://rack//lib/rack/response.rb#384
+ def set_header(key, value); end
+
+ # Returns the value of attribute status.
+ #
+ # source://rack//lib/rack/response.rb#369
+ def status; end
+
+ # Sets the attribute status
+ #
+ # @param value the value to set the attribute status to.
+ #
+ # source://rack//lib/rack/response.rb#369
+ def status=(_arg0); end
+end
+
+# source://rack//lib/rack/response.rb#29
+Rack::Response::STATUS_WITH_NO_ENTITY_BODY = T.let(T.unsafe(nil), Hash)
+
+# Class which can make any IO object rewindable, including non-rewindable ones. It does
+# this by buffering the data into a tempfile, which is rewindable.
+#
+# Don't forget to call #close when you're done. This frees up temporary resources that
+# RewindableInput uses, though it does *not* close the original IO object.
+#
+# source://rack//lib/rack/rewindable_input.rb#14
+class Rack::RewindableInput
+ # @return [RewindableInput] a new instance of RewindableInput
+ #
+ # source://rack//lib/rack/rewindable_input.rb#29
+ def initialize(io); end
+
+ # Closes this RewindableInput object without closing the originally
+ # wrapped IO object. Cleans up any temporary resources that this RewindableInput
+ # has created.
+ #
+ # This method may be called multiple times. It does nothing on subsequent calls.
+ #
+ # source://rack//lib/rack/rewindable_input.rb#65
+ def close; end
+
+ # source://rack//lib/rack/rewindable_input.rb#45
+ def each(&block); end
+
+ # source://rack//lib/rack/rewindable_input.rb#35
+ def gets; end
+
+ # source://rack//lib/rack/rewindable_input.rb#40
+ def read(*args); end
+
+ # source://rack//lib/rack/rewindable_input.rb#50
+ def rewind; end
+
+ # source://rack//lib/rack/rewindable_input.rb#55
+ def size; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/rewindable_input.rb#109
+ def filesystem_has_posix_semantics?; end
+
+ # source://rack//lib/rack/rewindable_input.rb#78
+ def make_rewindable; end
+end
+
+# Makes rack.input rewindable, for compatibility with applications and middleware
+# designed for earlier versions of Rack (where rack.input was required to be
+# rewindable).
+#
+# source://rack//lib/rack/rewindable_input.rb#18
+class Rack::RewindableInput::Middleware
+ # @return [Middleware] a new instance of Middleware
+ #
+ # source://rack//lib/rack/rewindable_input.rb#19
+ def initialize(app); end
+
+ # source://rack//lib/rack/rewindable_input.rb#23
+ def call(env); end
+end
+
+# Sets an "x-runtime" response header, indicating the response
+# time of the request, in seconds
+#
+# You can put it right before the application to see the processing
+# time, or before all the other middlewares to include time for them,
+# too.
+#
+# source://rack//lib/rack/runtime.rb#12
+class Rack::Runtime
+ # @return [Runtime] a new instance of Runtime
+ #
+ # source://rack//lib/rack/runtime.rb#16
+ def initialize(app, name = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/runtime.rb#22
+ def call(env); end
+end
+
+# source://rack//lib/rack/runtime.rb#13
+Rack::Runtime::FORMAT_STRING = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/runtime.rb#14
+Rack::Runtime::HEADER_NAME = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#11
+Rack::SCRIPT_NAME = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#14
+Rack::SERVER_NAME = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#15
+Rack::SERVER_PORT = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#13
+Rack::SERVER_PROTOCOL = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#24
+Rack::SET_COOKIE = T.let(T.unsafe(nil), String)
+
+# = Sendfile
+#
+# The Sendfile middleware intercepts responses whose body is being
+# served from a file and replaces it with a server specific x-sendfile
+# header. The web server is then responsible for writing the file contents
+# to the client. This can dramatically reduce the amount of work required
+# by the Ruby backend and takes advantage of the web server's optimized file
+# delivery code.
+#
+# In order to take advantage of this middleware, the response body must
+# respond to +to_path+ and the request must include an x-sendfile-type
+# header. Rack::Files and other components implement +to_path+ so there's
+# rarely anything you need to do in your application. The x-sendfile-type
+# header is typically set in your web servers configuration. The following
+# sections attempt to document
+#
+# === Nginx
+#
+# Nginx supports the x-accel-redirect header. This is similar to x-sendfile
+# but requires parts of the filesystem to be mapped into a private URL
+# hierarchy.
+#
+# The following example shows the Nginx configuration required to create
+# a private "/files/" area, enable x-accel-redirect, and pass the special
+# x-sendfile-type and x-accel-mapping headers to the backend:
+#
+# location ~ /files/(.*) {
+# internal;
+# alias /var/www/$1;
+# }
+#
+# location / {
+# proxy_redirect off;
+#
+# proxy_set_header Host $host;
+# proxy_set_header X-Real-IP $remote_addr;
+# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+#
+# proxy_set_header x-sendfile-type x-accel-redirect;
+# proxy_set_header x-accel-mapping /var/www/=/files/;
+#
+# proxy_pass http://127.0.0.1:8080/;
+# }
+#
+# Note that the x-sendfile-type header must be set exactly as shown above.
+# The x-accel-mapping header should specify the location on the file system,
+# followed by an equals sign (=), followed name of the private URL pattern
+# that it maps to. The middleware performs a simple substitution on the
+# resulting path.
+#
+# See Also: https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile
+#
+# === lighttpd
+#
+# Lighttpd has supported some variation of the x-sendfile header for some
+# time, although only recent version support x-sendfile in a reverse proxy
+# configuration.
+#
+# $HTTP["host"] == "example.com" {
+# proxy-core.protocol = "http"
+# proxy-core.balancer = "round-robin"
+# proxy-core.backends = (
+# "127.0.0.1:8000",
+# "127.0.0.1:8001",
+# ...
+# )
+#
+# proxy-core.allow-x-sendfile = "enable"
+# proxy-core.rewrite-request = (
+# "x-sendfile-type" => (".*" => "x-sendfile")
+# )
+# }
+#
+# See Also: http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModProxyCore
+#
+# === Apache
+#
+# x-sendfile is supported under Apache 2.x using a separate module:
+#
+# https://tn123.org/mod_xsendfile/
+#
+# Once the module is compiled and installed, you can enable it using
+# XSendFile config directive:
+#
+# RequestHeader Set x-sendfile-type x-sendfile
+# ProxyPassReverse / http://localhost:8001/
+# XSendFile on
+#
+# === Mapping parameter
+#
+# The third parameter allows for an overriding extension of the
+# x-accel-mapping header. Mappings should be provided in tuples of internal to
+# external. The internal values may contain regular expression syntax, they
+# will be matched with case indifference.
+#
+# source://rack//lib/rack/sendfile.rb#104
+class Rack::Sendfile
+ # @return [Sendfile] a new instance of Sendfile
+ #
+ # source://rack//lib/rack/sendfile.rb#105
+ def initialize(app, variation = T.unsafe(nil), mappings = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/sendfile.rb#113
+ def call(env); end
+
+ private
+
+ # source://rack//lib/rack/sendfile.rb#154
+ def map_accel_path(env, path); end
+
+ # source://rack//lib/rack/sendfile.rb#148
+ def variation(env); end
+end
+
+# Rack::ShowExceptions catches all exceptions raised from the app it
+# wraps. It shows a useful backtrace with the sourcefile and
+# clickable context, the whole Rack environment and the request
+# data.
+#
+# Be careful when you use this on public-facing sites as it could
+# reveal information helpful to attackers.
+#
+# source://rack//lib/rack/show_exceptions.rb#19
+class Rack::ShowExceptions
+ # @return [ShowExceptions] a new instance of ShowExceptions
+ #
+ # source://rack//lib/rack/show_exceptions.rb#22
+ def initialize(app); end
+
+ # source://rack//lib/rack/show_exceptions.rb#26
+ def call(env); end
+
+ # source://rack//lib/rack/show_exceptions.rb#61
+ def dump_exception(exception); end
+
+ # source://rack//lib/rack/show_exceptions.rb#112
+ def h(obj); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/show_exceptions.rb#52
+ def prefers_plaintext?(env); end
+
+ # source://rack//lib/rack/show_exceptions.rb#72
+ def pretty(env, exception); end
+
+ # source://rack//lib/rack/show_exceptions.rb#108
+ def template; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/show_exceptions.rb#56
+ def accepts_html?(env); end
+end
+
+# source://rack//lib/rack/show_exceptions.rb#20
+Rack::ShowExceptions::CONTEXT = T.let(T.unsafe(nil), Integer)
+
+# source://rack//lib/rack/show_exceptions.rb#127
+Rack::ShowExceptions::TEMPLATE = T.let(T.unsafe(nil), ERB)
+
+# Rack::ShowStatus catches all empty responses and replaces them
+# with a site explaining the error.
+#
+# Additional details can be put into rack.showstatus.detail
+# and will be shown as HTML. If such details exist, the error page
+# is always rendered, even if the reply was not empty.
+#
+# source://rack//lib/rack/show_status.rb#18
+class Rack::ShowStatus
+ # @return [ShowStatus] a new instance of ShowStatus
+ #
+ # source://rack//lib/rack/show_status.rb#19
+ def initialize(app); end
+
+ # source://rack//lib/rack/show_status.rb#24
+ def call(env); end
+
+ # source://rack//lib/rack/show_status.rb#54
+ def h(obj); end
+end
+
+# source://rack//lib/rack/show_status.rb#69
+Rack::ShowStatus::TEMPLATE = T.let(T.unsafe(nil), String)
+
+# The Rack::Static middleware intercepts requests for static files
+# (javascript files, images, stylesheets, etc) based on the url prefixes or
+# route mappings passed in the options, and serves them using a Rack::Files
+# object. This allows a Rack stack to serve both static and dynamic content.
+#
+# Examples:
+#
+# Serve all requests beginning with /media from the "media" folder located
+# in the current directory (ie media/*):
+#
+# use Rack::Static, :urls => ["/media"]
+#
+# Same as previous, but instead of returning 404 for missing files under
+# /media, call the next middleware:
+#
+# use Rack::Static, :urls => ["/media"], :cascade => true
+#
+# Serve all requests beginning with /css or /images from the folder "public"
+# in the current directory (ie public/css/* and public/images/*):
+#
+# use Rack::Static, :urls => ["/css", "/images"], :root => "public"
+#
+# Serve all requests to / with "index.html" from the folder "public" in the
+# current directory (ie public/index.html):
+#
+# use Rack::Static, :urls => {"/" => 'index.html'}, :root => 'public'
+#
+# Serve all requests normally from the folder "public" in the current
+# directory but uses index.html as default route for "/"
+#
+# use Rack::Static, :urls => [""], :root => 'public', :index =>
+# 'index.html'
+#
+# Set custom HTTP Headers for based on rules:
+#
+# use Rack::Static, :root => 'public',
+# :header_rules => [
+# [rule, {header_field => content, header_field => content}],
+# [rule, {header_field => content}]
+# ]
+#
+# Rules for selecting files:
+#
+# 1) All files
+# Provide the :all symbol
+# :all => Matches every file
+#
+# 2) Folders
+# Provide the folder path as a string
+# '/folder' or '/folder/subfolder' => Matches files in a certain folder
+#
+# 3) File Extensions
+# Provide the file extensions as an array
+# ['css', 'js'] or %w(css js) => Matches files ending in .css or .js
+#
+# 4) Regular Expressions / Regexp
+# Provide a regular expression
+# %r{\.(?:css|js)\z} => Matches files ending in .css or .js
+# /\.(?:eot|ttf|otf|woff2|woff|svg)\z/ => Matches files ending in
+# the most common web font formats (.eot, .ttf, .otf, .woff2, .woff, .svg)
+# Note: This Regexp is available as a shortcut, using the :fonts rule
+#
+# 5) Font Shortcut
+# Provide the :fonts symbol
+# :fonts => Uses the Regexp rule stated right above to match all common web font endings
+#
+# Rule Ordering:
+# Rules are applied in the order that they are provided.
+# List rather general rules above special ones.
+#
+# Complete example use case including HTTP header rules:
+#
+# use Rack::Static, :root => 'public',
+# :header_rules => [
+# # Cache all static files in public caches (e.g. Rack::Cache)
+# # as well as in the browser
+# [:all, {'cache-control' => 'public, max-age=31536000'}],
+#
+# # Provide web fonts with cross-origin access-control-headers
+# # Firefox requires this when serving assets using a Content Delivery Network
+# [:fonts, {'access-control-allow-origin' => '*'}]
+# ]
+#
+# source://rack//lib/rack/static.rb#92
+class Rack::Static
+ # @return [Static] a new instance of Static
+ #
+ # source://rack//lib/rack/static.rb#93
+ def initialize(app, options = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/static.rb#109
+ def add_index_root?(path); end
+
+ # Convert HTTP header rules to HTTP headers
+ #
+ # source://rack//lib/rack/static.rb#166
+ def applicable_rules(path); end
+
+ # source://rack//lib/rack/static.rb#125
+ def call(env); end
+
+ # source://rack//lib/rack/static.rb#121
+ def can_serve(path); end
+
+ # source://rack//lib/rack/static.rb#113
+ def overwrite_file_path(path); end
+
+ # source://rack//lib/rack/static.rb#117
+ def route_file(path); end
+end
+
+# source://rack//lib/rack/constants.rb#37
+Rack::TRACE = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/constants.rb#25
+Rack::TRANSFER_ENCODING = T.let(T.unsafe(nil), String)
+
+# Middleware tracks and cleans Tempfiles created throughout a request (i.e. Rack::Multipart)
+# Ideas/strategy based on posts by Eric Wong and Charles Oliver Nutter
+# https://groups.google.com/forum/#!searchin/rack-devel/temp/rack-devel/brK8eh-MByw/sw61oJJCGRMJ
+#
+# source://rack//lib/rack/tempfile_reaper.rb#11
+class Rack::TempfileReaper
+ # @return [TempfileReaper] a new instance of TempfileReaper
+ #
+ # source://rack//lib/rack/tempfile_reaper.rb#12
+ def initialize(app); end
+
+ # source://rack//lib/rack/tempfile_reaper.rb#16
+ def call(env); end
+end
+
+# source://rack//lib/rack/constants.rb#36
+Rack::UNLINK = T.let(T.unsafe(nil), String)
+
+# Rack::URLMap takes a hash mapping urls or paths to apps, and
+# dispatches accordingly. Support for HTTP/1.1 host names exists if
+# the URLs start with http:// or https://.
+#
+# URLMap modifies the SCRIPT_NAME and PATH_INFO such that the part
+# relevant for dispatch is in the SCRIPT_NAME, and the rest in the
+# PATH_INFO. This should be taken care of when you need to
+# reconstruct the URL in order to create links.
+#
+# URLMap dispatches in such a way that the longest paths are tried
+# first, since they are most specific.
+#
+# source://rack//lib/rack/urlmap.rb#20
+class Rack::URLMap
+ # @return [URLMap] a new instance of URLMap
+ #
+ # source://rack//lib/rack/urlmap.rb#21
+ def initialize(map = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/urlmap.rb#48
+ def call(env); end
+
+ # source://rack//lib/rack/urlmap.rb#25
+ def remap(map); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/urlmap.rb#87
+ def casecmp?(v1, v2); end
+end
+
+# Rack::Utils contains a grab-bag of useful methods for writing web
+# applications adopted from all kinds of Ruby libraries.
+#
+# source://rack//lib/rack/utils.rb#19
+module Rack::Utils
+ private
+
+ # source://rack//lib/rack/utils.rb#254
+ def add_cookie_to_header(header, key, value); end
+
+ # source://rack//lib/rack/utils.rb#389
+ def add_remove_cookie_to_header(header, key, value = T.unsafe(nil)); end
+
+ # Return best accept value to use, based on the algorithm
+ # in RFC 2616 Section 14. If there are multiple best
+ # matches (same specificity and quality), the value returned
+ # is arbitrary.
+ #
+ # source://rack//lib/rack/utils.rb#173
+ def best_q_match(q_value_header, available_mimes); end
+
+ # source://rack//lib/rack/utils.rb#127
+ def build_nested_query(value, prefix = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/utils.rb#117
+ def build_query(params); end
+
+ # Parses the "Range:" header, if present, into an array of Range objects.
+ # Returns nil if the header is missing or syntactically invalid.
+ # Returns an empty array if none of the ranges are satisfiable.
+ #
+ # source://rack//lib/rack/utils.rb#431
+ def byte_ranges(env, size); end
+
+ # source://rack//lib/rack/utils.rb#632
+ def clean_path_info(path_info); end
+
+ # :nocov:
+ #
+ # source://rack//lib/rack/utils.rb#98
+ def clock_time; end
+
+ # source://rack//lib/rack/utils.rb#383
+ def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
+
+ # :call-seq:
+ # delete_set_cookie_header(key, value = {}) -> encoded string
+ #
+ # Generate an encoded string based on the given +key+ and +value+ using
+ # set_cookie_header for the purpose of causing the specified cookie to be
+ # deleted. The +value+ may be an instance of +Hash+ and can include
+ # attributes as outlined by set_cookie_header. The encoded cookie will have
+ # a +max_age+ of 0 seconds, an +expires+ date in the past and an empty
+ # +value+. When used with the +set-cookie+ header, it will cause the client
+ # to *remove* any matching cookie.
+ #
+ # delete_set_cookie_header("myname")
+ # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
+ #
+ # source://rack//lib/rack/utils.rb#373
+ def delete_set_cookie_header(key, value = T.unsafe(nil)); end
+
+ # :call-seq:
+ # delete_set_cookie_header!(header, key, value = {}) -> header value
+ #
+ # Set an expired cookie in the specified headers with the given cookie
+ # +key+ and +value+ using delete_set_cookie_header. This causes
+ # the client to immediately delete the specified cookie.
+ #
+ # delete_set_cookie_header!(nil, "mycookie")
+ # # => "mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
+ #
+ # If the header is non-nil, it will be modified in place.
+ #
+ # header = []
+ # delete_set_cookie_header!(header, "mycookie")
+ # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
+ # header
+ # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
+ #
+ # source://rack//lib/rack/utils.rb#413
+ def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
+
+ # URI escapes. (CGI style space to +)
+ #
+ # source://rack//lib/rack/utils.rb#38
+ def escape(s); end
+
+ # Escape ampersands, brackets and quotes to their HTML/XML entities.
+ #
+ # source://rack//lib/rack/utils.rb#198
+ def escape_html(string); end
+
+ # Like URI escaping, but with %20 instead of +. Strictly speaking this is
+ # true URI escaping.
+ #
+ # source://rack//lib/rack/utils.rb#44
+ def escape_path(s); end
+
+ # source://rack//lib/rack/utils.rb#156
+ def forwarded_values(forwarded_header); end
+
+ # source://rack//lib/rack/utils.rb#435
+ def get_byte_ranges(http_range, size); end
+
+ # source://rack//lib/rack/utils.rb#377
+ def make_delete_cookie_header(header, key, value); end
+
+ # :call-seq:
+ # parse_cookies(env) -> hash
+ #
+ # Parse cookies from the provided request environment using
+ # parse_cookies_header. Returns a map of cookie +key+ to cookie +value+.
+ #
+ # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
+ # # => {'myname' => 'myvalue'}
+ #
+ # source://rack//lib/rack/utils.rb#278
+ def parse_cookies(env); end
+
+ # :call-seq:
+ # parse_cookies_header(value) -> hash
+ #
+ # Parse cookies from the provided header +value+ according to RFC6265. The
+ # syntax for cookie headers only supports semicolons. Returns a map of
+ # cookie +key+ to cookie +value+.
+ #
+ # parse_cookies_header('myname=myvalue; max-age=0')
+ # # => {"myname"=>"myvalue", "max-age"=>"0"}
+ #
+ # source://rack//lib/rack/utils.rb#244
+ def parse_cookies_header(value); end
+
+ # source://rack//lib/rack/utils.rb#113
+ def parse_nested_query(qs, d = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/utils.rb#109
+ def parse_query(qs, d = T.unsafe(nil), &unescaper); end
+
+ # source://rack//lib/rack/utils.rb#145
+ def q_values(q_value_header); end
+
+ # source://rack//lib/rack/utils.rb#424
+ def rfc2822(time); end
+
+ # :nocov:
+ #
+ # source://rack//lib/rack/utils.rb#472
+ def secure_compare(a, b); end
+
+ # source://rack//lib/rack/utils.rb#202
+ def select_best_encoding(available_encodings, accept_encoding); end
+
+ # :call-seq:
+ # set_cookie_header(key, value) -> encoded string
+ #
+ # Generate an encoded string using the provided +key+ and +value+ suitable
+ # for the +set-cookie+ header according to RFC6265. The +value+ may be an
+ # instance of either +String+ or +Hash+.
+ #
+ # If the cookie +value+ is an instance of +Hash+, it considers the following
+ # cookie attribute keys: +domain+, +max_age+, +expires+ (must be instance
+ # of +Time+), +secure+, +http_only+, +same_site+ and +value+. For more
+ # details about the interpretation of these fields, consult
+ # [RFC6265 Section 5.2](https://datatracker.ietf.org/doc/html/rfc6265#section-5.2).
+ #
+ # An extra cookie attribute +escape_key+ can be provided to control whether
+ # or not the cookie key is URL encoded. If explicitly set to +false+, the
+ # cookie key name will not be url encoded (escaped). The default is +true+.
+ #
+ # set_cookie_header("myname", "myvalue")
+ # # => "myname=myvalue"
+ #
+ # set_cookie_header("myname", {value: "myvalue", max_age: 10})
+ # # => "myname=myvalue; max-age=10"
+ #
+ # source://rack//lib/rack/utils.rb#305
+ def set_cookie_header(key, value); end
+
+ # :call-seq:
+ # set_cookie_header!(headers, key, value) -> header value
+ #
+ # Append a cookie in the specified headers with the given cookie +key+ and
+ # +value+ using set_cookie_header.
+ #
+ # If the headers already contains a +set-cookie+ key, it will be converted
+ # to an +Array+ if not already, and appended to.
+ #
+ # source://rack//lib/rack/utils.rb#347
+ def set_cookie_header!(headers, key, value); end
+
+ # source://rack//lib/rack/utils.rb#622
+ def status_code(status); end
+
+ # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
+ # target encoding of the string returned, and it defaults to UTF-8
+ #
+ # source://rack//lib/rack/utils.rb#56
+ def unescape(s, encoding = T.unsafe(nil)); end
+
+ # Unescapes the **path** component of a URI. See Rack::Utils.unescape for
+ # unescaping query parameters or form components.
+ #
+ # source://rack//lib/rack/utils.rb#50
+ def unescape_path(s); end
+
+ # source://rack//lib/rack/utils.rb#649
+ def valid_path?(path); end
+
+ class << self
+ # source://rack//lib/rack/utils.rb#254
+ def add_cookie_to_header(header, key, value); end
+
+ # source://rack//lib/rack/utils.rb#389
+ def add_remove_cookie_to_header(header, key, value = T.unsafe(nil)); end
+
+ # Return best accept value to use, based on the algorithm
+ # in RFC 2616 Section 14. If there are multiple best
+ # matches (same specificity and quality), the value returned
+ # is arbitrary.
+ #
+ # source://rack//lib/rack/utils.rb#173
+ def best_q_match(q_value_header, available_mimes); end
+
+ # source://rack//lib/rack/utils.rb#127
+ def build_nested_query(value, prefix = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/utils.rb#117
+ def build_query(params); end
+
+ # Parses the "Range:" header, if present, into an array of Range objects.
+ # Returns nil if the header is missing or syntactically invalid.
+ # Returns an empty array if none of the ranges are satisfiable.
+ #
+ # source://rack//lib/rack/utils.rb#431
+ def byte_ranges(env, size); end
+
+ # source://rack//lib/rack/utils.rb#632
+ def clean_path_info(path_info); end
+
+ # source://rack//lib/rack/utils.rb#98
+ def clock_time; end
+
+ # Returns the value of attribute default_query_parser.
+ #
+ # source://rack//lib/rack/utils.rb#28
+ def default_query_parser; end
+
+ # Sets the attribute default_query_parser
+ #
+ # @param value the value to set the attribute default_query_parser to.
+ #
+ # source://rack//lib/rack/utils.rb#28
+ def default_query_parser=(_arg0); end
+
+ # source://rack//lib/rack/utils.rb#383
+ def delete_cookie_header!(headers, key, value = T.unsafe(nil)); end
+
+ # :call-seq:
+ # delete_set_cookie_header(key, value = {}) -> encoded string
+ #
+ # Generate an encoded string based on the given +key+ and +value+ using
+ # set_cookie_header for the purpose of causing the specified cookie to be
+ # deleted. The +value+ may be an instance of +Hash+ and can include
+ # attributes as outlined by set_cookie_header. The encoded cookie will have
+ # a +max_age+ of 0 seconds, an +expires+ date in the past and an empty
+ # +value+. When used with the +set-cookie+ header, it will cause the client
+ # to *remove* any matching cookie.
+ #
+ # delete_set_cookie_header("myname")
+ # # => "myname=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
+ #
+ # source://rack//lib/rack/utils.rb#373
+ def delete_set_cookie_header(key, value = T.unsafe(nil)); end
+
+ # :call-seq:
+ # delete_set_cookie_header!(header, key, value = {}) -> header value
+ #
+ # Set an expired cookie in the specified headers with the given cookie
+ # +key+ and +value+ using delete_set_cookie_header. This causes
+ # the client to immediately delete the specified cookie.
+ #
+ # delete_set_cookie_header!(nil, "mycookie")
+ # # => "mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"
+ #
+ # If the header is non-nil, it will be modified in place.
+ #
+ # header = []
+ # delete_set_cookie_header!(header, "mycookie")
+ # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
+ # header
+ # # => ["mycookie=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT"]
+ #
+ # source://rack//lib/rack/utils.rb#413
+ def delete_set_cookie_header!(header, key, value = T.unsafe(nil)); end
+
+ # URI escapes. (CGI style space to +)
+ #
+ # source://rack//lib/rack/utils.rb#38
+ def escape(s); end
+
+ # Escape ampersands, brackets and quotes to their HTML/XML entities.
+ #
+ # source://rack//lib/rack/utils.rb#198
+ def escape_html(string); end
+
+ # Like URI escaping, but with %20 instead of +. Strictly speaking this is
+ # true URI escaping.
+ #
+ # source://rack//lib/rack/utils.rb#44
+ def escape_path(s); end
+
+ # source://rack//lib/rack/utils.rb#156
+ def forwarded_values(forwarded_header); end
+
+ # source://rack//lib/rack/utils.rb#435
+ def get_byte_ranges(http_range, size); end
+
+ # source://rack//lib/rack/utils.rb#88
+ def key_space_limit; end
+
+ # source://rack//lib/rack/utils.rb#93
+ def key_space_limit=(v); end
+
+ # source://rack//lib/rack/utils.rb#377
+ def make_delete_cookie_header(header, key, value); end
+
+ # Returns the value of attribute multipart_file_limit.
+ #
+ # source://rack//lib/rack/utils.rb#63
+ def multipart_file_limit; end
+
+ # Sets the attribute multipart_file_limit
+ #
+ # @param value the value to set the attribute multipart_file_limit to.
+ #
+ # source://rack//lib/rack/utils.rb#63
+ def multipart_file_limit=(_arg0); end
+
+ # Returns the value of attribute multipart_file_limit.
+ # multipart_part_limit is the original name of multipart_file_limit, but
+ # the limit only counts parts with filenames.
+ #
+ # source://rack//lib/rack/utils.rb#63
+ def multipart_part_limit; end
+
+ # Sets the attribute multipart_file_limit
+ #
+ # @param value the value to set the attribute multipart_file_limit to.
+ #
+ # source://rack//lib/rack/utils.rb#63
+ def multipart_part_limit=(_arg0); end
+
+ # Returns the value of attribute multipart_total_part_limit.
+ #
+ # source://rack//lib/rack/utils.rb#61
+ def multipart_total_part_limit; end
+
+ # Sets the attribute multipart_total_part_limit
+ #
+ # @param value the value to set the attribute multipart_total_part_limit to.
+ #
+ # source://rack//lib/rack/utils.rb#61
+ def multipart_total_part_limit=(_arg0); end
+
+ # source://rack//lib/rack/utils.rb#80
+ def param_depth_limit; end
+
+ # source://rack//lib/rack/utils.rb#84
+ def param_depth_limit=(v); end
+
+ # :call-seq:
+ # parse_cookies(env) -> hash
+ #
+ # Parse cookies from the provided request environment using
+ # parse_cookies_header. Returns a map of cookie +key+ to cookie +value+.
+ #
+ # parse_cookies({'HTTP_COOKIE' => 'myname=myvalue'})
+ # # => {'myname' => 'myvalue'}
+ #
+ # source://rack//lib/rack/utils.rb#278
+ def parse_cookies(env); end
+
+ # :call-seq:
+ # parse_cookies_header(value) -> hash
+ #
+ # Parse cookies from the provided header +value+ according to RFC6265. The
+ # syntax for cookie headers only supports semicolons. Returns a map of
+ # cookie +key+ to cookie +value+.
+ #
+ # parse_cookies_header('myname=myvalue; max-age=0')
+ # # => {"myname"=>"myvalue", "max-age"=>"0"}
+ #
+ # source://rack//lib/rack/utils.rb#244
+ def parse_cookies_header(value); end
+
+ # source://rack//lib/rack/utils.rb#113
+ def parse_nested_query(qs, d = T.unsafe(nil)); end
+
+ # source://rack//lib/rack/utils.rb#109
+ def parse_query(qs, d = T.unsafe(nil), &unescaper); end
+
+ # source://rack//lib/rack/utils.rb#145
+ def q_values(q_value_header); end
+
+ # source://rack//lib/rack/utils.rb#424
+ def rfc2822(time); end
+
+ # source://rack//lib/rack/utils.rb#472
+ def secure_compare(a, b); end
+
+ # source://rack//lib/rack/utils.rb#202
+ def select_best_encoding(available_encodings, accept_encoding); end
+
+ # :call-seq:
+ # set_cookie_header(key, value) -> encoded string
+ #
+ # Generate an encoded string using the provided +key+ and +value+ suitable
+ # for the +set-cookie+ header according to RFC6265. The +value+ may be an
+ # instance of either +String+ or +Hash+.
+ #
+ # If the cookie +value+ is an instance of +Hash+, it considers the following
+ # cookie attribute keys: +domain+, +max_age+, +expires+ (must be instance
+ # of +Time+), +secure+, +http_only+, +same_site+ and +value+. For more
+ # details about the interpretation of these fields, consult
+ # [RFC6265 Section 5.2](https://datatracker.ietf.org/doc/html/rfc6265#section-5.2).
+ #
+ # An extra cookie attribute +escape_key+ can be provided to control whether
+ # or not the cookie key is URL encoded. If explicitly set to +false+, the
+ # cookie key name will not be url encoded (escaped). The default is +true+.
+ #
+ # set_cookie_header("myname", "myvalue")
+ # # => "myname=myvalue"
+ #
+ # set_cookie_header("myname", {value: "myvalue", max_age: 10})
+ # # => "myname=myvalue; max-age=10"
+ #
+ # source://rack//lib/rack/utils.rb#305
+ def set_cookie_header(key, value); end
+
+ # :call-seq:
+ # set_cookie_header!(headers, key, value) -> header value
+ #
+ # Append a cookie in the specified headers with the given cookie +key+ and
+ # +value+ using set_cookie_header.
+ #
+ # If the headers already contains a +set-cookie+ key, it will be converted
+ # to an +Array+ if not already, and appended to.
+ #
+ # source://rack//lib/rack/utils.rb#347
+ def set_cookie_header!(headers, key, value); end
+
+ # source://rack//lib/rack/utils.rb#622
+ def status_code(status); end
+
+ # Unescapes a URI escaped string with +encoding+. +encoding+ will be the
+ # target encoding of the string returned, and it defaults to UTF-8
+ #
+ # source://rack//lib/rack/utils.rb#56
+ def unescape(s, encoding = T.unsafe(nil)); end
+
+ # Unescapes the **path** component of a URI. See Rack::Utils.unescape for
+ # unescaping query parameters or form components.
+ #
+ # source://rack//lib/rack/utils.rb#50
+ def unescape_path(s); end
+
+ # @return [Boolean]
+ #
+ # source://rack//lib/rack/utils.rb#649
+ def valid_path?(path); end
+ end
+end
+
+# source://rack//lib/rack/utils.rb#24
+Rack::Utils::COMMON_SEP = T.let(T.unsafe(nil), Hash)
+
+# Context allows the use of a compatible middleware at different points
+# in a request handling stack. A compatible middleware must define
+# #context which should take the arguments env and app. The first of which
+# would be the request environment. The second of which would be the rack
+# application that the request would be forwarded to.
+#
+# source://rack//lib/rack/utils.rb#495
+class Rack::Utils::Context
+ # @return [Context] a new instance of Context
+ #
+ # source://rack//lib/rack/utils.rb#498
+ def initialize(app_f, app_r); end
+
+ # Returns the value of attribute app.
+ #
+ # source://rack//lib/rack/utils.rb#496
+ def app; end
+
+ # source://rack//lib/rack/utils.rb#503
+ def call(env); end
+
+ # source://rack//lib/rack/utils.rb#511
+ def context(env, app = T.unsafe(nil)); end
+
+ # Returns the value of attribute for.
+ #
+ # source://rack//lib/rack/utils.rb#496
+ def for; end
+
+ # source://rack//lib/rack/utils.rb#507
+ def recontext(app); end
+end
+
+# source://rack//lib/rack/utils.rb#23
+Rack::Utils::DEFAULT_SEP = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/utils.rb#186
+Rack::Utils::ESCAPE_HTML = T.let(T.unsafe(nil), Hash)
+
+# source://rack//lib/rack/utils.rb#195
+Rack::Utils::ESCAPE_HTML_PATTERN = T.let(T.unsafe(nil), Regexp)
+
+# Every standard HTTP code mapped to the appropriate message.
+# Generated with:
+# curl -s https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv | \
+# ruby -ne 'm = /^(\d{3}),(?!Unassigned|\(Unused\))([^,]+)/.match($_) and \
+# puts "#{m[1]} => \x27#{m[2].strip}\x27,"'
+#
+# source://rack//lib/rack/utils.rb#549
+Rack::Utils::HTTP_STATUS_CODES = T.let(T.unsafe(nil), Hash)
+
+# A wrapper around Headers
+# header when set.
+#
+# @api private
+#
+# source://rack//lib/rack/utils.rb#520
+class Rack::Utils::HeaderHash < ::Hash
+ class << self
+ # @api private
+ #
+ # source://rack//lib/rack/utils.rb#521
+ def [](headers); end
+
+ # @api private
+ # @raise [TypeError]
+ #
+ # source://rack//lib/rack/utils.rb#539
+ def allocate; end
+
+ # @api private
+ #
+ # source://rack//lib/rack/utils.rb#532
+ def new(hash = T.unsafe(nil)); end
+ end
+end
+
+# source://rack//lib/rack/utils.rb#21
+Rack::Utils::InvalidParameterError = Rack::QueryParser::InvalidParameterError
+
+# source://rack//lib/rack/utils.rb#25
+Rack::Utils::KeySpaceConstrainedParams = Rack::QueryParser::Params
+
+# source://rack//lib/rack/utils.rb#647
+Rack::Utils::NULL_BYTE = T.let(T.unsafe(nil), String)
+
+# source://rack//lib/rack/utils.rb#630
+Rack::Utils::PATH_SEPS = T.let(T.unsafe(nil), Regexp)
+
+# source://rack//lib/rack/utils.rb#20
+Rack::Utils::ParameterTypeError = Rack::QueryParser::ParameterTypeError
+
+# source://rack//lib/rack/utils.rb#22
+Rack::Utils::ParamsTooDeepError = Rack::QueryParser::ParamsTooDeepError
+
+# Responses with HTTP status codes that should not have an entity body
+#
+# source://rack//lib/rack/utils.rb#616
+Rack::Utils::STATUS_WITH_NO_ENTITY_BODY = T.let(T.unsafe(nil), Hash)
+
+# source://rack//lib/rack/utils.rb#618
+Rack::Utils::SYMBOL_TO_STATUS_CODE = T.let(T.unsafe(nil), Hash)
+
+# The Rack protocol version number implemented.
+#
+# source://rack//lib/rack/version.rb#16
+Rack::VERSION = T.let(T.unsafe(nil), Array)
+
+# source://rack//lib/rack/version.rb#19
+Rack::VERSION_STRING = T.let(T.unsafe(nil), String)
diff --git a/sorbet/rbi/gems/rainbow@3.1.1.rbi b/sorbet/rbi/gems/rainbow@3.1.1.rbi
new file mode 100644
index 0000000..87f4c33
--- /dev/null
+++ b/sorbet/rbi/gems/rainbow@3.1.1.rbi
@@ -0,0 +1,402 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `rainbow` gem.
+# Please instead update this file by running `bin/tapioca gem rainbow`.
+
+class Object < ::BasicObject
+ include ::Kernel
+ include ::PP::ObjectMixin
+
+ private
+
+ # source://rainbow//lib/rainbow/global.rb#23
+ def Rainbow(string); end
+end
+
+# source://rainbow//lib/rainbow/string_utils.rb#3
+module Rainbow
+ class << self
+ # source://rainbow//lib/rainbow/global.rb#10
+ def enabled; end
+
+ # source://rainbow//lib/rainbow/global.rb#14
+ def enabled=(value); end
+
+ # source://rainbow//lib/rainbow/global.rb#6
+ def global; end
+
+ # source://rainbow//lib/rainbow.rb#6
+ def new; end
+
+ # source://rainbow//lib/rainbow/global.rb#18
+ def uncolor(string); end
+ end
+end
+
+# source://rainbow//lib/rainbow/color.rb#4
+class Rainbow::Color
+ # Returns the value of attribute ground.
+ #
+ # source://rainbow//lib/rainbow/color.rb#5
+ def ground; end
+
+ class << self
+ # source://rainbow//lib/rainbow/color.rb#7
+ def build(ground, values); end
+
+ # source://rainbow//lib/rainbow/color.rb#40
+ def parse_hex_color(hex); end
+ end
+end
+
+# source://rainbow//lib/rainbow/color.rb#54
+class Rainbow::Color::Indexed < ::Rainbow::Color
+ # @return [Indexed] a new instance of Indexed
+ #
+ # source://rainbow//lib/rainbow/color.rb#57
+ def initialize(ground, num); end
+
+ # source://rainbow//lib/rainbow/color.rb#62
+ def codes; end
+
+ # Returns the value of attribute num.
+ #
+ # source://rainbow//lib/rainbow/color.rb#55
+ def num; end
+end
+
+# source://rainbow//lib/rainbow/color.rb#69
+class Rainbow::Color::Named < ::Rainbow::Color::Indexed
+ # @return [Named] a new instance of Named
+ #
+ # source://rainbow//lib/rainbow/color.rb#90
+ def initialize(ground, name); end
+
+ class << self
+ # source://rainbow//lib/rainbow/color.rb#82
+ def color_names; end
+
+ # source://rainbow//lib/rainbow/color.rb#86
+ def valid_names; end
+ end
+end
+
+# source://rainbow//lib/rainbow/color.rb#70
+Rainbow::Color::Named::NAMES = T.let(T.unsafe(nil), Hash)
+
+# source://rainbow//lib/rainbow/color.rb#100
+class Rainbow::Color::RGB < ::Rainbow::Color::Indexed
+ # @return [RGB] a new instance of RGB
+ #
+ # source://rainbow//lib/rainbow/color.rb#107
+ def initialize(ground, *values); end
+
+ # Returns the value of attribute b.
+ #
+ # source://rainbow//lib/rainbow/color.rb#101
+ def b; end
+
+ # source://rainbow//lib/rainbow/color.rb#116
+ def codes; end
+
+ # Returns the value of attribute g.
+ #
+ # source://rainbow//lib/rainbow/color.rb#101
+ def g; end
+
+ # Returns the value of attribute r.
+ #
+ # source://rainbow//lib/rainbow/color.rb#101
+ def r; end
+
+ private
+
+ # source://rainbow//lib/rainbow/color.rb#122
+ def code_from_rgb; end
+
+ class << self
+ # source://rainbow//lib/rainbow/color.rb#103
+ def to_ansi_domain(value); end
+ end
+end
+
+# source://rainbow//lib/rainbow/color.rb#129
+class Rainbow::Color::X11Named < ::Rainbow::Color::RGB
+ include ::Rainbow::X11ColorNames
+
+ # @return [X11Named] a new instance of X11Named
+ #
+ # source://rainbow//lib/rainbow/color.rb#140
+ def initialize(ground, name); end
+
+ class << self
+ # source://rainbow//lib/rainbow/color.rb#132
+ def color_names; end
+
+ # source://rainbow//lib/rainbow/color.rb#136
+ def valid_names; end
+ end
+end
+
+# source://rainbow//lib/rainbow/null_presenter.rb#4
+class Rainbow::NullPresenter < ::String
+ # source://rainbow//lib/rainbow/null_presenter.rb#9
+ def background(*_values); end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#9
+ def bg(*_values); end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#49
+ def black; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#33
+ def blink; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#65
+ def blue; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#17
+ def bold; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#17
+ def bright; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#5
+ def color(*_values); end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#45
+ def cross_out; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#73
+ def cyan; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#21
+ def dark; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#21
+ def faint; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#5
+ def fg(*_values); end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#5
+ def foreground(*_values); end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#57
+ def green; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#41
+ def hide; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#37
+ def inverse; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#25
+ def italic; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#69
+ def magenta; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#81
+ def method_missing(method_name, *args); end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#53
+ def red; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#13
+ def reset; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#45
+ def strike; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#29
+ def underline; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#77
+ def white; end
+
+ # source://rainbow//lib/rainbow/null_presenter.rb#61
+ def yellow; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rainbow//lib/rainbow/null_presenter.rb#89
+ def respond_to_missing?(method_name, *args); end
+end
+
+# source://rainbow//lib/rainbow/presenter.rb#8
+class Rainbow::Presenter < ::String
+ # Sets background color of this text.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#30
+ def background(*values); end
+
+ # Sets background color of this text.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#30
+ def bg(*values); end
+
+ # source://rainbow//lib/rainbow/presenter.rb#92
+ def black; end
+
+ # Turns on blinking attribute for this text (not well supported by terminal
+ # emulators).
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#72
+ def blink; end
+
+ # source://rainbow//lib/rainbow/presenter.rb#108
+ def blue; end
+
+ # Turns on bright/bold for this text.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#45
+ def bold; end
+
+ # Turns on bright/bold for this text.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#45
+ def bright; end
+
+ # Sets color of this text.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#22
+ def color(*values); end
+
+ # source://rainbow//lib/rainbow/presenter.rb#86
+ def cross_out; end
+
+ # source://rainbow//lib/rainbow/presenter.rb#116
+ def cyan; end
+
+ # Turns on faint/dark for this text (not well supported by terminal
+ # emulators).
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#53
+ def dark; end
+
+ # Turns on faint/dark for this text (not well supported by terminal
+ # emulators).
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#53
+ def faint; end
+
+ # Sets color of this text.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#22
+ def fg(*values); end
+
+ # Sets color of this text.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#22
+ def foreground(*values); end
+
+ # source://rainbow//lib/rainbow/presenter.rb#100
+ def green; end
+
+ # Hides this text (set its color to the same as background).
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#82
+ def hide; end
+
+ # Inverses current foreground/background colors.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#77
+ def inverse; end
+
+ # Turns on italic style for this text (not well supported by terminal
+ # emulators).
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#61
+ def italic; end
+
+ # source://rainbow//lib/rainbow/presenter.rb#112
+ def magenta; end
+
+ # We take care of X11 color method call here.
+ # Such as #aqua, #ghostwhite.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#126
+ def method_missing(method_name, *args); end
+
+ # source://rainbow//lib/rainbow/presenter.rb#96
+ def red; end
+
+ # Resets terminal to default colors/backgrounds.
+ #
+ # It shouldn't be needed to use this method because all methods
+ # append terminal reset code to end of string.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#40
+ def reset; end
+
+ # source://rainbow//lib/rainbow/presenter.rb#86
+ def strike; end
+
+ # Turns on underline decoration for this text.
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#66
+ def underline; end
+
+ # source://rainbow//lib/rainbow/presenter.rb#120
+ def white; end
+
+ # source://rainbow//lib/rainbow/presenter.rb#104
+ def yellow; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rainbow//lib/rainbow/presenter.rb#134
+ def respond_to_missing?(method_name, *args); end
+
+ # source://rainbow//lib/rainbow/presenter.rb#140
+ def wrap_with_sgr(codes); end
+end
+
+# source://rainbow//lib/rainbow/presenter.rb#9
+Rainbow::Presenter::TERM_EFFECTS = T.let(T.unsafe(nil), Hash)
+
+# source://rainbow//lib/rainbow/string_utils.rb#4
+class Rainbow::StringUtils
+ class << self
+ # source://rainbow//lib/rainbow/string_utils.rb#17
+ def uncolor(string); end
+
+ # source://rainbow//lib/rainbow/string_utils.rb#5
+ def wrap_with_sgr(string, codes); end
+ end
+end
+
+# source://rainbow//lib/rainbow/wrapper.rb#7
+class Rainbow::Wrapper
+ # @return [Wrapper] a new instance of Wrapper
+ #
+ # source://rainbow//lib/rainbow/wrapper.rb#10
+ def initialize(enabled = T.unsafe(nil)); end
+
+ # Returns the value of attribute enabled.
+ #
+ # source://rainbow//lib/rainbow/wrapper.rb#8
+ def enabled; end
+
+ # Sets the attribute enabled
+ #
+ # @param value the value to set the attribute enabled to.
+ #
+ # source://rainbow//lib/rainbow/wrapper.rb#8
+ def enabled=(_arg0); end
+
+ # source://rainbow//lib/rainbow/wrapper.rb#14
+ def wrap(string); end
+end
+
+# source://rainbow//lib/rainbow/x11_color_names.rb#4
+module Rainbow::X11ColorNames; end
+
+# source://rainbow//lib/rainbow/x11_color_names.rb#5
+Rainbow::X11ColorNames::NAMES = T.let(T.unsafe(nil), Hash)
diff --git a/sorbet/rbi/gems/rake@13.0.6.rbi b/sorbet/rbi/gems/rake@13.0.6.rbi
new file mode 100644
index 0000000..0202f06
--- /dev/null
+++ b/sorbet/rbi/gems/rake@13.0.6.rbi
@@ -0,0 +1,3024 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `rake` gem.
+# Please instead update this file by running `bin/tapioca gem rake`.
+
+# :stopdoc:
+#
+# Some top level Constants.
+#
+# source://rake//lib/rake.rb#70
+FileList = Rake::FileList
+
+# --
+# This a FileUtils extension that defines several additional commands to be
+# added to the FileUtils utility functions.
+#
+# source://rake//lib/rake/file_utils.rb#8
+module FileUtils
+ # Run a Ruby interpreter with the given arguments.
+ #
+ # Example:
+ # ruby %{-pe '$_.upcase!' ; rm # -rf /.
+ #
+ # If a block is given, upon command completion the block is called with an
+ # OK flag (true on a zero exit status) and a Process::Status object.
+ # Without a block a RuntimeError is raised when the command exits non-zero.
+ #
+ # Examples:
+ #
+ # sh 'ls -ltr'
+ #
+ # sh 'ls', 'file with spaces'
+ #
+ # # check exit status after command runs
+ # sh %{grep pattern file} do |ok, res|
+ # if !ok
+ # puts "pattern not found (status = #{res.exitstatus})"
+ # end
+ # end
+ #
+ # source://rake//lib/rake/file_utils.rb#43
+ def sh(*cmd, &block); end
+
+ # Split a file path into individual directory names.
+ #
+ # Example:
+ # split_all("a/b/c") => ['a', 'b', 'c']
+ #
+ # source://rake//lib/rake/file_utils.rb#128
+ def split_all(path); end
+
+ private
+
+ # source://rake//lib/rake/file_utils.rb#61
+ def create_shell_runner(cmd); end
+
+ # source://rake//lib/rake/file_utils.rb#86
+ def set_verbose_option(options); end
+
+ # source://rake//lib/rake/file_utils.rb#73
+ def sh_show_command(cmd); end
+end
+
+# source://rake//lib/rake/file_utils.rb#108
+FileUtils::LN_SUPPORTED = T.let(T.unsafe(nil), Array)
+
+# Path to the currently running Ruby program
+#
+# source://rake//lib/rake/file_utils.rb#10
+FileUtils::RUBY = T.let(T.unsafe(nil), String)
+
+# source://rake//lib/rake/ext/core.rb#2
+class Module
+ # Check for an existing method in the current class before extending. If
+ # the method already exists, then a warning is printed and the extension is
+ # not added. Otherwise the block is yielded and any definitions in the
+ # block will take effect.
+ #
+ # Usage:
+ #
+ # class String
+ # rake_extension("xyz") do
+ # def xyz
+ # ...
+ # end
+ # end
+ # end
+ #
+ # source://rake//lib/rake/ext/core.rb#18
+ def rake_extension(method); end
+end
+
+# source://rake//lib/rake.rb#24
+module Rake
+ extend ::FileUtils::StreamUtils_
+ extend ::FileUtils
+ extend ::Rake::FileUtilsExt
+
+ class << self
+ # Add files to the rakelib list
+ #
+ # source://rake//lib/rake/rake_module.rb#33
+ def add_rakelib(*files); end
+
+ # Current Rake Application
+ #
+ # source://rake//lib/rake/rake_module.rb#8
+ def application; end
+
+ # Set the current Rake application object.
+ #
+ # source://rake//lib/rake/rake_module.rb#13
+ def application=(app); end
+
+ # Yield each file or directory component.
+ #
+ # source://rake//lib/rake/file_list.rb#418
+ def each_dir_parent(dir); end
+
+ # Convert Pathname and Pathname-like objects to strings;
+ # leave everything else alone
+ #
+ # source://rake//lib/rake/file_list.rb#429
+ def from_pathname(path); end
+
+ # Load a rakefile.
+ #
+ # source://rake//lib/rake/rake_module.rb#28
+ def load_rakefile(path); end
+
+ # Return the original directory where the Rake application was started.
+ #
+ # source://rake//lib/rake/rake_module.rb#23
+ def original_dir; end
+
+ # source://rake//lib/rake/rake_module.rb#17
+ def suggested_thread_count; end
+
+ # Make +block_application+ the default rake application inside a block so
+ # you can load rakefiles into a different application.
+ #
+ # This is useful when you want to run rake tasks inside a library without
+ # running rake in a sub-shell.
+ #
+ # Example:
+ #
+ # Dir.chdir 'other/directory'
+ #
+ # other_rake = Rake.with_application do |rake|
+ # rake.load_rakefile
+ # end
+ #
+ # puts other_rake.tasks
+ #
+ # source://rake//lib/rake/rake_module.rb#54
+ def with_application(block_application = T.unsafe(nil)); end
+ end
+end
+
+# Rake main application object. When invoking +rake+ from the
+# command line, a Rake::Application object is created and run.
+#
+# source://rake//lib/rake/application.rb#19
+class Rake::Application
+ include ::Rake::TaskManager
+ include ::Rake::TraceOutput
+
+ # Initialize a Rake::Application object.
+ #
+ # @return [Application] a new instance of Application
+ #
+ # source://rake//lib/rake/application.rb#49
+ def initialize; end
+
+ # Add a file to the list of files to be imported.
+ #
+ # source://rake//lib/rake/application.rb#777
+ def add_import(fn); end
+
+ # Add a loader to handle imported files ending in the extension
+ # +ext+.
+ #
+ # source://rake//lib/rake/application.rb#139
+ def add_loader(ext, loader); end
+
+ # Collect the list of tasks on the command line. If no tasks are
+ # given, return a list containing only the default task.
+ # Environmental assignments are processed at this time as well.
+ #
+ # `args` is the list of arguments to peruse to get the list of tasks.
+ # It should be the command line that was given to rake, less any
+ # recognised command-line options, which OptionParser.parse will
+ # have taken care of already.
+ #
+ # source://rake//lib/rake/application.rb#758
+ def collect_command_line_tasks(args); end
+
+ # Default task name ("default").
+ # (May be overridden by subclasses)
+ #
+ # source://rake//lib/rake/application.rb#772
+ def default_task_name; end
+
+ # Warn about deprecated usage.
+ #
+ # Example:
+ # Rake.application.deprecate("import", "Rake.import", caller.first)
+ #
+ # source://rake//lib/rake/application.rb#258
+ def deprecate(old_usage, new_usage, call_site); end
+
+ # source://rake//lib/rake/application.rb#222
+ def display_cause_details(ex); end
+
+ # Display the error message that caused the exception.
+ #
+ # source://rake//lib/rake/application.rb#206
+ def display_error_message(ex); end
+
+ # source://rake//lib/rake/application.rb#245
+ def display_exception_backtrace(ex); end
+
+ # source://rake//lib/rake/application.rb#214
+ def display_exception_details(ex); end
+
+ # source://rake//lib/rake/application.rb#229
+ def display_exception_details_seen; end
+
+ # source://rake//lib/rake/application.rb#237
+ def display_exception_message_details(ex); end
+
+ # Display the tasks and prerequisites
+ #
+ # source://rake//lib/rake/application.rb#381
+ def display_prerequisites; end
+
+ # Display the tasks and comments.
+ #
+ # source://rake//lib/rake/application.rb#298
+ def display_tasks_and_comments; end
+
+ # Calculate the dynamic width of the
+ #
+ # source://rake//lib/rake/application.rb#349
+ def dynamic_width; end
+
+ # source://rake//lib/rake/application.rb#353
+ def dynamic_width_stty; end
+
+ # source://rake//lib/rake/application.rb#357
+ def dynamic_width_tput; end
+
+ # Exit the program because of an unhandled exception.
+ # (may be overridden by subclasses)
+ #
+ # source://rake//lib/rake/application.rb#201
+ def exit_because_of_exception(ex); end
+
+ # source://rake//lib/rake/application.rb#678
+ def find_rakefile_location; end
+
+ # Read and handle the command line options. Returns the command line
+ # arguments that we didn't understand, which should (in theory) be just
+ # task names and env vars.
+ #
+ # source://rake//lib/rake/application.rb#644
+ def handle_options(argv); end
+
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/application.rb#233
+ def has_cause?(ex); end
+
+ # True if one of the files in RAKEFILES is in the current directory.
+ # If a match is found, it is copied into @rakefile.
+ #
+ # source://rake//lib/rake/application.rb#274
+ def have_rakefile; end
+
+ # Initialize the command line parameters and app name.
+ #
+ # source://rake//lib/rake/application.rb#88
+ def init(app_name = T.unsafe(nil), argv = T.unsafe(nil)); end
+
+ # Invokes a task with arguments that are extracted from +task_string+
+ #
+ # source://rake//lib/rake/application.rb#157
+ def invoke_task(task_string); end
+
+ # Load the pending list of imported files.
+ #
+ # source://rake//lib/rake/application.rb#782
+ def load_imports; end
+
+ # Find the rakefile and then load it and any pending imports.
+ #
+ # source://rake//lib/rake/application.rb#102
+ def load_rakefile; end
+
+ # The name of the application (typically 'rake')
+ #
+ # source://rake//lib/rake/application.rb#24
+ def name; end
+
+ # Application options from the command line
+ #
+ # source://rake//lib/rake/application.rb#145
+ def options; end
+
+ # The original directory where rake was invoked.
+ #
+ # source://rake//lib/rake/application.rb#27
+ def original_dir; end
+
+ # source://rake//lib/rake/application.rb#163
+ def parse_task_string(string); end
+
+ # source://rake//lib/rake/application.rb#690
+ def print_rakefile_directory(location); end
+
+ # Similar to the regular Ruby +require+ command, but will check
+ # for *.rake files in addition to *.rb files.
+ #
+ # source://rake//lib/rake/application.rb#664
+ def rake_require(file_name, paths = T.unsafe(nil), loaded = T.unsafe(nil)); end
+
+ # Name of the actual rakefile used.
+ #
+ # source://rake//lib/rake/application.rb#30
+ def rakefile; end
+
+ # source://rake//lib/rake/application.rb#798
+ def rakefile_location(backtrace = T.unsafe(nil)); end
+
+ # source://rake//lib/rake/application.rb#695
+ def raw_load_rakefile; end
+
+ # Run the Rake application. The run method performs the following
+ # three steps:
+ #
+ # * Initialize the command line options (+init+).
+ # * Define the tasks (+load_rakefile+).
+ # * Run the top level tasks (+top_level+).
+ #
+ # If you wish to build a custom rake command, you should call
+ # +init+ on your application. Then define any tasks. Finally,
+ # call +top_level+ to run your top level tasks.
+ #
+ # source://rake//lib/rake/application.rb#79
+ def run(argv = T.unsafe(nil)); end
+
+ # Run the given block with the thread startup and shutdown.
+ #
+ # source://rake//lib/rake/application.rb#122
+ def run_with_threads; end
+
+ # source://rake//lib/rake/application.rb#807
+ def set_default_options; end
+
+ # Provide standard exception handling for the given block.
+ #
+ # source://rake//lib/rake/application.rb#185
+ def standard_exception_handling; end
+
+ # A list of all the standard options used in rake, suitable for
+ # passing to OptionParser.
+ #
+ # source://rake//lib/rake/application.rb#402
+ def standard_rake_options; end
+
+ # The directory path containing the system wide rakefiles.
+ #
+ # source://rake//lib/rake/application.rb#727
+ def system_dir; end
+
+ # Number of columns on the terminal
+ #
+ # source://rake//lib/rake/application.rb#33
+ def terminal_columns; end
+
+ # Number of columns on the terminal
+ #
+ # source://rake//lib/rake/application.rb#33
+ def terminal_columns=(_arg0); end
+
+ # source://rake//lib/rake/application.rb#337
+ def terminal_width; end
+
+ # Return the thread pool used for multithreaded processing.
+ #
+ # source://rake//lib/rake/application.rb#150
+ def thread_pool; end
+
+ # Run the top level tasks of a Rake application.
+ #
+ # source://rake//lib/rake/application.rb#109
+ def top_level; end
+
+ # List of the top level task names (task names from the command line).
+ #
+ # source://rake//lib/rake/application.rb#36
+ def top_level_tasks; end
+
+ # source://rake//lib/rake/application.rb#388
+ def trace(*strings); end
+
+ # source://rake//lib/rake/application.rb#370
+ def truncate(string, width); end
+
+ # We will truncate output if we are outputting to a TTY or if we've been
+ # given an explicit column width to honor
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/application.rb#293
+ def truncate_output?; end
+
+ # Override the detected TTY output state (mostly for testing)
+ #
+ # source://rake//lib/rake/application.rb#39
+ def tty_output=(_arg0); end
+
+ # True if we are outputting to TTY, false otherwise
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/application.rb#287
+ def tty_output?; end
+
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/application.rb#361
+ def unix?; end
+
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/application.rb#366
+ def windows?; end
+
+ private
+
+ # source://rake//lib/rake/application.rb#721
+ def glob(path, &block); end
+
+ # Does the exception have a task invocation chain?
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/application.rb#267
+ def has_chain?(exception); end
+
+ # source://rake//lib/rake/application.rb#620
+ def select_tasks_to_show(options, show_tasks, value); end
+
+ # source://rake//lib/rake/application.rb#627
+ def select_trace_output(options, trace_option, value); end
+
+ # source://rake//lib/rake/application.rb#393
+ def sort_options(options); end
+
+ # source://rake//lib/rake/application.rb#744
+ def standard_system_dir; end
+end
+
+# source://rake//lib/rake/application.rb#41
+Rake::Application::DEFAULT_RAKEFILES = T.let(T.unsafe(nil), Array)
+
+# source://rake//lib/rake/backtrace.rb#3
+module Rake::Backtrace
+ class << self
+ # source://rake//lib/rake/backtrace.rb#18
+ def collapse(backtrace); end
+ end
+end
+
+# source://rake//lib/rake/backtrace.rb#8
+Rake::Backtrace::SUPPRESSED_PATHS = T.let(T.unsafe(nil), Array)
+
+# source://rake//lib/rake/backtrace.rb#12
+Rake::Backtrace::SUPPRESSED_PATHS_RE = T.let(T.unsafe(nil), String)
+
+# source://rake//lib/rake/backtrace.rb#16
+Rake::Backtrace::SUPPRESS_PATTERN = T.let(T.unsafe(nil), Regexp)
+
+# source://rake//lib/rake/backtrace.rb#4
+Rake::Backtrace::SYS_KEYS = T.let(T.unsafe(nil), Array)
+
+# source://rake//lib/rake/backtrace.rb#5
+Rake::Backtrace::SYS_PATHS = T.let(T.unsafe(nil), Array)
+
+# Mixin for creating easily cloned objects.
+#
+# source://rake//lib/rake/cloneable.rb#6
+module Rake::Cloneable
+ private
+
+ # The hook that is invoked by 'clone' and 'dup' methods.
+ #
+ # source://rake//lib/rake/cloneable.rb#8
+ def initialize_copy(source); end
+end
+
+# source://rake//lib/rake/application.rb#13
+class Rake::CommandLineOptionError < ::StandardError; end
+
+# Based on a script at:
+# http://stackoverflow.com/questions/891537/ruby-detect-number-of-cpus-installed
+#
+# source://rake//lib/rake/cpu_counter.rb#6
+class Rake::CpuCounter
+ # source://rake//lib/rake/cpu_counter.rb#22
+ def count; end
+
+ # source://rake//lib/rake/cpu_counter.rb#11
+ def count_with_default(default = T.unsafe(nil)); end
+
+ class << self
+ # source://rake//lib/rake/cpu_counter.rb#7
+ def count; end
+ end
+end
+
+# DSL is a module that provides #task, #desc, #namespace, etc. Use this
+# when you'd like to use rake outside the top level scope.
+#
+# For a Rakefile you run from the command line this module is automatically
+# included.
+#
+# source://rake//lib/rake/dsl_definition.rb#14
+module Rake::DSL
+ include ::FileUtils::StreamUtils_
+ include ::FileUtils
+ include ::Rake::FileUtilsExt
+
+ private
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def cd(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chdir(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chmod(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chmod_R(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chown(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chown_R(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def copy(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def cp(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def cp_lr(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def cp_r(*args, **options, &block); end
+
+ # Describes the next rake task. Duplicate descriptions are discarded.
+ # Descriptions are shown with rake -T (up to the first
+ # sentence) and rake -D (the entire description).
+ #
+ # Example:
+ # desc "Run the Unit Tests"
+ # task test: [:build]
+ # # ... run tests
+ # end
+ #
+ # source://rake//lib/rake/dsl_definition.rb#165
+ def desc(description); end
+
+ # Declare a set of files tasks to create the given directories on
+ # demand.
+ #
+ # Example:
+ # directory "testdata/doc"
+ #
+ # source://rake//lib/rake/dsl_definition.rb#92
+ def directory(*args, &block); end
+
+ # Declare a file task.
+ #
+ # Example:
+ # file "config.cfg" => ["config.template"] do
+ # open("config.cfg", "w") do |outfile|
+ # open("config.template") do |infile|
+ # while line = infile.gets
+ # outfile.puts line
+ # end
+ # end
+ # end
+ # end
+ #
+ # source://rake//lib/rake/dsl_definition.rb#76
+ def file(*args, &block); end
+
+ # Declare a file creation task.
+ # (Mainly used for the directory command).
+ #
+ # source://rake//lib/rake/dsl_definition.rb#82
+ def file_create(*args, &block); end
+
+ # Import the partial Rakefiles +fn+. Imported files are loaded
+ # _after_ the current file is completely loaded. This allows the
+ # import statement to appear anywhere in the importing file, and yet
+ # allowing the imported files to depend on objects defined in the
+ # importing file.
+ #
+ # A common use of the import statement is to include files
+ # containing dependency declarations.
+ #
+ # See also the --rakelibdir command line option.
+ #
+ # Example:
+ # import ".depend", "my_rules"
+ #
+ # source://rake//lib/rake/dsl_definition.rb#183
+ def import(*fns); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def install(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def link(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def ln(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def ln_s(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def ln_sf(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def ln_sr(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def makedirs(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def mkdir(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def mkdir_p(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def mkpath(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def move(*args, **options, &block); end
+
+ # Declare a task that performs its prerequisites in
+ # parallel. Multitasks does *not* guarantee that its prerequisites
+ # will execute in any given order (which is obvious when you think
+ # about it)
+ #
+ # Example:
+ # multitask deploy: %w[deploy_gem deploy_rdoc]
+ #
+ # source://rake//lib/rake/dsl_definition.rb#112
+ def multitask(*args, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def mv(*args, **options, &block); end
+
+ # Create a new rake namespace and use it for evaluating the given
+ # block. Returns a NameSpace object that can be used to lookup
+ # tasks defined in the namespace.
+ #
+ # Example:
+ #
+ # ns = namespace "nested" do
+ # # the "nested:run" task
+ # task :run
+ # end
+ # task_run = ns[:run] # find :run in the given namespace.
+ #
+ # Tasks can also be defined in a namespace by using a ":" in the task
+ # name:
+ #
+ # task "nested:test" do
+ # # ...
+ # end
+ #
+ # source://rake//lib/rake/dsl_definition.rb#135
+ def namespace(name = T.unsafe(nil), &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#77
+ def nowrite(value = T.unsafe(nil)); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#123
+ def rake_check_options(options, *optdecl); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#116
+ def rake_output_message(message); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def remove(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rm(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rm_f(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rm_r(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rm_rf(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rmdir(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rmtree(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils.rb#100
+ def ruby(*args, **options, &block); end
+
+ # Declare a rule for auto-tasks.
+ #
+ # Example:
+ # rule '.o' => '.c' do |t|
+ # sh 'cc', '-o', t.name, t.source
+ # end
+ #
+ # source://rake//lib/rake/dsl_definition.rb#151
+ def rule(*args, &block); end
+
+ # source://rake//lib/rake/file_utils.rb#112
+ def safe_ln(*args, **options); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def safe_unlink(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils.rb#43
+ def sh(*cmd, &block); end
+
+ # source://rake//lib/rake/file_utils.rb#128
+ def split_all(path); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def symlink(*args, **options, &block); end
+
+ # :call-seq:
+ # task(task_name)
+ # task(task_name: dependencies)
+ # task(task_name, arguments => dependencies)
+ #
+ # Declare a basic task. The +task_name+ is always the first argument. If
+ # the task name contains a ":" it is defined in that namespace.
+ #
+ # The +dependencies+ may be a single task name or an Array of task names.
+ # The +argument+ (a single name) or +arguments+ (an Array of names) define
+ # the arguments provided to the task.
+ #
+ # The task, argument and dependency names may be either symbols or
+ # strings.
+ #
+ # A task with a single dependency:
+ #
+ # task clobber: %w[clean] do
+ # rm_rf "html"
+ # end
+ #
+ # A task with an argument and a dependency:
+ #
+ # task :package, [:version] => :test do |t, args|
+ # # ...
+ # end
+ #
+ # To invoke this task from the command line:
+ #
+ # $ rake package[1.2.3]
+ #
+ # source://rake//lib/rake/dsl_definition.rb#59
+ def task(*args, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def touch(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#53
+ def verbose(value = T.unsafe(nil)); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#107
+ def when_writing(msg = T.unsafe(nil)); end
+end
+
+# Default Rakefile loader used by +import+.
+#
+# source://rake//lib/rake/default_loader.rb#5
+class Rake::DefaultLoader
+ # Loads a rakefile into the current application from +fn+
+ #
+ # source://rake//lib/rake/default_loader.rb#10
+ def load(fn); end
+end
+
+# source://rake//lib/rake/early_time.rb#21
+Rake::EARLY = T.let(T.unsafe(nil), Rake::EarlyTime)
+
+# source://rake//lib/rake/task_arguments.rb#108
+Rake::EMPTY_TASK_ARGS = T.let(T.unsafe(nil), Rake::TaskArguments)
+
+# EarlyTime is a fake timestamp that occurs _before_ any other time value.
+#
+# source://rake//lib/rake/early_time.rb#5
+class Rake::EarlyTime
+ include ::Comparable
+ include ::Singleton
+ extend ::Singleton::SingletonClassMethods
+
+ # The EarlyTime always comes before +other+!
+ #
+ # source://rake//lib/rake/early_time.rb#12
+ def <=>(other); end
+
+ # source://rake//lib/rake/early_time.rb#16
+ def to_s; end
+
+ class << self
+ private
+
+ def allocate; end
+ def new(*_arg0); end
+ end
+end
+
+# A FileCreationTask is a file task that when used as a dependency will be
+# needed if and only if the file has not been created. Once created, it is
+# not re-triggered if any of its dependencies are newer, nor does trigger
+# any rebuilds of tasks that depend on it whenever it is updated.
+#
+# source://rake//lib/rake/file_creation_task.rb#12
+class Rake::FileCreationTask < ::Rake::FileTask
+ # Is this file task needed? Yes if it doesn't exist.
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/file_creation_task.rb#14
+ def needed?; end
+
+ # Time stamp for file creation task. This time stamp is earlier
+ # than any other time stamp.
+ #
+ # source://rake//lib/rake/file_creation_task.rb#20
+ def timestamp; end
+end
+
+# A FileList is essentially an array with a few helper methods defined to
+# make file manipulation a bit easier.
+#
+# FileLists are lazy. When given a list of glob patterns for possible files
+# to be included in the file list, instead of searching the file structures
+# to find the files, a FileList holds the pattern for latter use.
+#
+# This allows us to define a number of FileList to match any number of
+# files, but only search out the actual files when then FileList itself is
+# actually used. The key is that the first time an element of the
+# FileList/Array is requested, the pending patterns are resolved into a real
+# list of file names.
+#
+# source://rake//lib/rake/file_list.rb#22
+class Rake::FileList
+ include ::Rake::Cloneable
+
+ # Create a file list from the globbable patterns given. If you wish to
+ # perform multiple includes or excludes at object build time, use the
+ # "yield self" pattern.
+ #
+ # Example:
+ # file_list = FileList.new('lib/**/*.rb', 'test/test*.rb')
+ #
+ # pkg_files = FileList.new('lib/**/*') do |fl|
+ # fl.exclude(/\bCVS\b/)
+ # end
+ #
+ # @return [FileList] a new instance of FileList
+ # @yield [_self]
+ # @yieldparam _self [Rake::FileList] the object that the method was called on
+ #
+ # source://rake//lib/rake/file_list.rb#99
+ def initialize(*patterns); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def &(*args, &block); end
+
+ # Redefine * to return either a string or a new file list.
+ #
+ # source://rake//lib/rake/file_list.rb#193
+ def *(other); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def +(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def -(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#203
+ def <<(obj); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def <=>(*args, &block); end
+
+ # A FileList is equal through array equality.
+ #
+ # source://rake//lib/rake/file_list.rb#171
+ def ==(array); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def [](*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def []=(*args, &block); end
+
+ # Add file names defined by glob patterns to the file list. If an array
+ # is given, add each element of the array.
+ #
+ # Example:
+ # file_list.include("*.java", "*.cfg")
+ # file_list.include %w( math.c lib.h *.o )
+ #
+ # source://rake//lib/rake/file_list.rb#116
+ def add(*filenames); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def all?(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def any?(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def append(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def assoc(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def at(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def bsearch(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def bsearch_index(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def chain(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def chunk(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def chunk_while(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def clear(*args, &block); end
+
+ # Clear all the exclude patterns so that we exclude nothing.
+ #
+ # source://rake//lib/rake/file_list.rb#164
+ def clear_exclude; end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def collect(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def collect!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def collect_concat(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def combination(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def compact(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def compact!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def concat(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def count(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def cycle(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def deconstruct(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def delete(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def delete_at(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def delete_if(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def detect(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def difference(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def dig(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def drop(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def drop_while(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def each(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def each_cons(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def each_entry(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def each_index(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def each_slice(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def each_with_index(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def each_with_object(*args, &block); end
+
+ # Grep each of the files in the filelist using the given pattern. If a
+ # block is given, call the block on each matching line, passing the file
+ # name, line number, and the matching line of text. If no block is given,
+ # a standard emacs style file:linenumber:line message will be printed to
+ # standard out. Returns the number of matched items.
+ #
+ # source://rake//lib/rake/file_list.rb#293
+ def egrep(pattern, *options); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def empty?(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def entries(*args, &block); end
+
+ # Register a list of file name patterns that should be excluded from the
+ # list. Patterns may be regular expressions, glob patterns or regular
+ # strings. In addition, a block given to exclude will remove entries that
+ # return true when given to the block.
+ #
+ # Note that glob patterns are expanded against the file system. If a file
+ # is explicitly added to a file list, but does not exist in the file
+ # system, then an glob pattern in the exclude list will not exclude the
+ # file.
+ #
+ # Examples:
+ # FileList['a.c', 'b.c'].exclude("a.c") => ['b.c']
+ # FileList['a.c', 'b.c'].exclude(/^a/) => ['b.c']
+ #
+ # If "a.c" is a file, then ...
+ # FileList['a.c', 'b.c'].exclude("a.*") => ['b.c']
+ #
+ # If "a.c" is not a file, then ...
+ # FileList['a.c', 'b.c'].exclude("a.*") => ['a.c', 'b.c']
+ #
+ # source://rake//lib/rake/file_list.rb#150
+ def exclude(*patterns, &block); end
+
+ # Should the given file name be excluded from the list?
+ #
+ # NOTE: This method was formerly named "exclude?", but Rails
+ # introduced an exclude? method as an array method and setup a
+ # conflict with file list. We renamed the method to avoid
+ # confusion. If you were using "FileList#exclude?" in your user
+ # code, you will need to update.
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/file_list.rb#364
+ def excluded_from_list?(fn); end
+
+ # Return a new file list that only contains file names from the current
+ # file list that exist on the file system.
+ #
+ # source://rake//lib/rake/file_list.rb#320
+ def existing; end
+
+ # Modify the current file list so that it contains only file name that
+ # exist on the file system.
+ #
+ # source://rake//lib/rake/file_list.rb#326
+ def existing!; end
+
+ # Return a new FileList with String#ext method applied to
+ # each member of the array.
+ #
+ # This method is a shortcut for:
+ #
+ # array.collect { |item| item.ext(newext) }
+ #
+ # +ext+ is a user added method for the Array class.
+ #
+ # source://rake//lib/rake/file_list.rb#284
+ def ext(newext = T.unsafe(nil)); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def fetch(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def fill(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def filter(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def filter!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def filter_map(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def find(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def find_all(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def find_index(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def first(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def flat_map(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def flatten(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def flatten!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def grep(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def grep_v(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def group_by(*args, &block); end
+
+ # Return a new FileList with the results of running +gsub+ against each
+ # element of the original list.
+ #
+ # Example:
+ # FileList['lib/test/file', 'x/y'].gsub(/\//, "\\")
+ # => ['lib\\test\\file', 'x\\y']
+ #
+ # source://rake//lib/rake/file_list.rb#253
+ def gsub(pat, rep); end
+
+ # Same as +gsub+ except that the original file list is modified.
+ #
+ # source://rake//lib/rake/file_list.rb#264
+ def gsub!(pat, rep); end
+
+ # source://rake//lib/rake/file_list.rb#391
+ def import(array); end
+
+ # Add file names defined by glob patterns to the file list. If an array
+ # is given, add each element of the array.
+ #
+ # Example:
+ # file_list.include("*.java", "*.cfg")
+ # file_list.include %w( math.c lib.h *.o )
+ #
+ # source://rake//lib/rake/file_list.rb#116
+ def include(*filenames); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def include?(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def index(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def inject(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def insert(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def inspect(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def intersect?(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def intersection(*args, &block); end
+
+ # Lie about our class.
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/file_list.rb#187
+ def is_a?(klass); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def join(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def keep_if(*args, &block); end
+
+ # Lie about our class.
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/file_list.rb#187
+ def kind_of?(klass); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def last(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def lazy(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def length(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def map(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def map!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def max(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def max_by(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def member?(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def min(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def min_by(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def minmax(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def minmax_by(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def none?(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def one?(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def pack(*args, &block); end
+
+ # FileList version of partition. Needed because the nested arrays should
+ # be FileLists in this version.
+ #
+ # source://rake//lib/rake/file_list.rb#334
+ def partition(&block); end
+
+ # Apply the pathmap spec to each of the included file names, returning a
+ # new file list with the modified paths. (See String#pathmap for
+ # details.)
+ #
+ # source://rake//lib/rake/file_list.rb#272
+ def pathmap(spec = T.unsafe(nil), &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def permutation(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def place(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def pop(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def prepend(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def product(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def push(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def rassoc(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def reduce(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def reject(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def reject!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def repeated_combination(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def repeated_permutation(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def replace(*args, &block); end
+
+ # Resolve all the pending adds now.
+ #
+ # source://rake//lib/rake/file_list.rb#210
+ def resolve; end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def reverse(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def reverse!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def reverse_each(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def rindex(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def rotate(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def rotate!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def sample(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def select(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def select!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def shelljoin(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def shift(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def shuffle(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def shuffle!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def size(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def slice(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def slice!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def slice_after(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def slice_before(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def slice_when(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def sort(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def sort!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def sort_by(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def sort_by!(*args, &block); end
+
+ # Return a new FileList with the results of running +sub+ against each
+ # element of the original list.
+ #
+ # Example:
+ # FileList['a.c', 'b.c'].sub(/\.c$/, '.o') => ['a.o', 'b.o']
+ #
+ # source://rake//lib/rake/file_list.rb#242
+ def sub(pat, rep); end
+
+ # Same as +sub+ except that the original file list is modified.
+ #
+ # source://rake//lib/rake/file_list.rb#258
+ def sub!(pat, rep); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def sum(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def take(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def take_while(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def tally(*args, &block); end
+
+ # Return the internal array object.
+ #
+ # source://rake//lib/rake/file_list.rb#176
+ def to_a; end
+
+ # Return the internal array object.
+ #
+ # source://rake//lib/rake/file_list.rb#182
+ def to_ary; end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def to_h(*args, &block); end
+
+ # Convert a FileList to a string by joining all elements with a space.
+ #
+ # source://rake//lib/rake/file_list.rb#344
+ def to_s; end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def to_set(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def transpose(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def union(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def uniq(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def uniq!(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def unshift(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def values_at(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#77
+ def zip(*args, &block); end
+
+ # source://rake//lib/rake/file_list.rb#68
+ def |(*args, &block); end
+
+ private
+
+ # Add matching glob patterns.
+ #
+ # source://rake//lib/rake/file_list.rb#350
+ def add_matching(pattern); end
+
+ # source://rake//lib/rake/file_list.rb#220
+ def resolve_add(fn); end
+
+ # source://rake//lib/rake/file_list.rb#230
+ def resolve_exclude; end
+
+ class << self
+ # Create a new file list including the files listed. Similar to:
+ #
+ # FileList.new(*args)
+ #
+ # source://rake//lib/rake/file_list.rb#400
+ def [](*args); end
+
+ # Get a sorted list of files matching the pattern. This method
+ # should be preferred to Dir[pattern] and Dir.glob(pattern) because
+ # the files returned are guaranteed to be sorted.
+ #
+ # source://rake//lib/rake/file_list.rb#407
+ def glob(pattern, *args); end
+ end
+end
+
+# List of array methods (that are not in +Object+) that need to be
+# delegated.
+#
+# source://rake//lib/rake/file_list.rb#44
+Rake::FileList::ARRAY_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rake//lib/rake/file_list.rb#381
+Rake::FileList::DEFAULT_IGNORE_PATTERNS = T.let(T.unsafe(nil), Array)
+
+# source://rake//lib/rake/file_list.rb#387
+Rake::FileList::DEFAULT_IGNORE_PROCS = T.let(T.unsafe(nil), Array)
+
+# source://rake//lib/rake/file_list.rb#61
+Rake::FileList::DELEGATING_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rake//lib/rake/file_list.rb#86
+Rake::FileList::GLOB_PATTERN = T.let(T.unsafe(nil), Regexp)
+
+# List of additional methods that must be delegated.
+#
+# source://rake//lib/rake/file_list.rb#47
+Rake::FileList::MUST_DEFINE = T.let(T.unsafe(nil), Array)
+
+# List of methods that should not be delegated here (we define special
+# versions of them explicitly below).
+#
+# source://rake//lib/rake/file_list.rb#51
+Rake::FileList::MUST_NOT_DEFINE = T.let(T.unsafe(nil), Array)
+
+# List of delegated methods that return new array values which need
+# wrapping.
+#
+# source://rake//lib/rake/file_list.rb#55
+Rake::FileList::SPECIAL_RETURN = T.let(T.unsafe(nil), Array)
+
+# A FileTask is a task that includes time based dependencies. If any of a
+# FileTask's prerequisites have a timestamp that is later than the file
+# represented by this task, then the file must be rebuilt (using the
+# supplied actions).
+#
+# source://rake//lib/rake/file_task.rb#12
+class Rake::FileTask < ::Rake::Task
+ # Is this file task needed? Yes if it doesn't exist, or if its time stamp
+ # is out of date.
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/file_task.rb#16
+ def needed?; end
+
+ # Time stamp for file task.
+ #
+ # source://rake//lib/rake/file_task.rb#21
+ def timestamp; end
+
+ private
+
+ # Are there any prerequisites with a later time than the given time stamp?
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/file_task.rb#32
+ def out_of_date?(stamp); end
+
+ class << self
+ # Apply the scope to the task name according to the rules for this kind
+ # of task. File based tasks ignore the scope when creating the name.
+ #
+ # source://rake//lib/rake/file_task.rb#49
+ def scope_name(scope, task_name); end
+ end
+end
+
+# FileUtilsExt provides a custom version of the FileUtils methods
+# that respond to the verbose and nowrite
+# commands.
+#
+# source://rake//lib/rake/file_utils_ext.rb#10
+module Rake::FileUtilsExt
+ include ::FileUtils::StreamUtils_
+ include ::FileUtils
+ extend ::FileUtils::StreamUtils_
+ extend ::FileUtils
+ extend ::Rake::FileUtilsExt
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def cd(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chdir(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chmod(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chmod_R(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chown(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def chown_R(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def copy(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def cp(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def cp_lr(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def cp_r(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def install(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def link(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def ln(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def ln_s(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def ln_sf(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def ln_sr(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def makedirs(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def mkdir(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def mkdir_p(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def mkpath(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def move(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def mv(*args, **options, &block); end
+
+ # Get/set the nowrite flag controlling output from the FileUtils
+ # utilities. If verbose is true, then the utility method is
+ # echoed to standard output.
+ #
+ # Examples:
+ # nowrite # return the current value of the
+ # # nowrite flag
+ # nowrite(v) # set the nowrite flag to _v_.
+ # nowrite(v) { code } # Execute code with the nowrite flag set
+ # # temporarily to _v_. Return to the
+ # # original value when code is done.
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#77
+ def nowrite(value = T.unsafe(nil)); end
+
+ # Check that the options do not contain options not listed in
+ # +optdecl+. An ArgumentError exception is thrown if non-declared
+ # options are found.
+ #
+ # @raise [ArgumentError]
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#123
+ def rake_check_options(options, *optdecl); end
+
+ # Send the message to the default rake output (which is $stderr).
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#116
+ def rake_output_message(message); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def remove(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rm(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rm_f(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rm_r(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rm_rf(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rmdir(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def rmtree(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def safe_unlink(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def symlink(*args, **options, &block); end
+
+ # source://rake//lib/rake/file_utils_ext.rb#34
+ def touch(*args, **options, &block); end
+
+ # Get/set the verbose flag controlling output from the FileUtils
+ # utilities. If verbose is true, then the utility method is
+ # echoed to standard output.
+ #
+ # Examples:
+ # verbose # return the current value of the
+ # # verbose flag
+ # verbose(v) # set the verbose flag to _v_.
+ # verbose(v) { code } # Execute code with the verbose flag set
+ # # temporarily to _v_. Return to the
+ # # original value when code is done.
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#53
+ def verbose(value = T.unsafe(nil)); end
+
+ # Use this function to prevent potentially destructive ruby code
+ # from running when the :nowrite flag is set.
+ #
+ # Example:
+ #
+ # when_writing("Building Project") do
+ # project.build
+ # end
+ #
+ # The following code will build the project under normal
+ # conditions. If the nowrite(true) flag is set, then the example
+ # will print:
+ #
+ # DRYRUN: Building Project
+ #
+ # instead of actually building the project.
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#107
+ def when_writing(msg = T.unsafe(nil)); end
+
+ class << self
+ # Returns the value of attribute nowrite_flag.
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#14
+ def nowrite_flag; end
+
+ # Sets the attribute nowrite_flag
+ #
+ # @param value the value to set the attribute nowrite_flag to.
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#14
+ def nowrite_flag=(_arg0); end
+
+ # Returns the value of attribute verbose_flag.
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#14
+ def verbose_flag; end
+
+ # Sets the attribute verbose_flag
+ #
+ # @param value the value to set the attribute verbose_flag to.
+ #
+ # source://rake//lib/rake/file_utils_ext.rb#14
+ def verbose_flag=(_arg0); end
+ end
+end
+
+# source://rake//lib/rake/file_utils_ext.rb#17
+Rake::FileUtilsExt::DEFAULT = T.let(T.unsafe(nil), Object)
+
+# InvocationChain tracks the chain of task invocations to detect
+# circular dependencies.
+#
+# source://rake//lib/rake/invocation_chain.rb#6
+class Rake::InvocationChain < ::Rake::LinkedList
+ # Append an invocation to the chain of invocations. It is an error
+ # if the invocation already listed.
+ #
+ # source://rake//lib/rake/invocation_chain.rb#15
+ def append(invocation); end
+
+ # Is the invocation already in the chain?
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/invocation_chain.rb#9
+ def member?(invocation); end
+
+ # Convert to string, ie: TOP => invocation => invocation
+ #
+ # source://rake//lib/rake/invocation_chain.rb#23
+ def to_s; end
+
+ private
+
+ # source://rake//lib/rake/invocation_chain.rb#34
+ def prefix; end
+
+ class << self
+ # Class level append.
+ #
+ # source://rake//lib/rake/invocation_chain.rb#28
+ def append(invocation, chain); end
+ end
+end
+
+# source://rake//lib/rake/invocation_chain.rb#55
+Rake::InvocationChain::EMPTY = T.let(T.unsafe(nil), Rake::InvocationChain::EmptyInvocationChain)
+
+# Null object for an empty chain.
+#
+# source://rake//lib/rake/invocation_chain.rb#39
+class Rake::InvocationChain::EmptyInvocationChain < ::Rake::LinkedList::EmptyLinkedList
+ # source://rake//lib/rake/invocation_chain.rb#46
+ def append(invocation); end
+
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/invocation_chain.rb#42
+ def member?(obj); end
+
+ # source://rake//lib/rake/invocation_chain.rb#50
+ def to_s; end
+end
+
+# source://rake//lib/rake/invocation_exception_mixin.rb#3
+module Rake::InvocationExceptionMixin
+ # Return the invocation chain (list of Rake tasks) that were in
+ # effect when this exception was detected by rake. May be null if
+ # no tasks were active.
+ #
+ # source://rake//lib/rake/invocation_exception_mixin.rb#7
+ def chain; end
+
+ # Set the invocation chain in effect when this exception was
+ # detected.
+ #
+ # source://rake//lib/rake/invocation_exception_mixin.rb#13
+ def chain=(value); end
+end
+
+# source://rake//lib/rake/late_time.rb#17
+Rake::LATE = T.let(T.unsafe(nil), Rake::LateTime)
+
+# LateTime is a fake timestamp that occurs _after_ any other time value.
+#
+# source://rake//lib/rake/late_time.rb#4
+class Rake::LateTime
+ include ::Comparable
+ include ::Singleton
+ extend ::Singleton::SingletonClassMethods
+
+ # source://rake//lib/rake/late_time.rb#8
+ def <=>(other); end
+
+ # source://rake//lib/rake/late_time.rb#12
+ def to_s; end
+
+ class << self
+ private
+
+ def allocate; end
+ def new(*_arg0); end
+ end
+end
+
+# Polylithic linked list structure used to implement several data
+# structures in Rake.
+#
+# source://rake//lib/rake/linked_list.rb#6
+class Rake::LinkedList
+ include ::Enumerable
+
+ # @return [LinkedList] a new instance of LinkedList
+ #
+ # source://rake//lib/rake/linked_list.rb#84
+ def initialize(head, tail = T.unsafe(nil)); end
+
+ # Lists are structurally equivalent.
+ #
+ # source://rake//lib/rake/linked_list.rb#25
+ def ==(other); end
+
+ # Polymorphically add a new element to the head of a list. The
+ # type of head node will be the same list type as the tail.
+ #
+ # source://rake//lib/rake/linked_list.rb#12
+ def conj(item); end
+
+ # For each item in the list.
+ #
+ # source://rake//lib/rake/linked_list.rb#48
+ def each; end
+
+ # Is the list empty?
+ # .make guards against a list being empty making any instantiated LinkedList
+ # object not empty by default
+ # You should consider overriding this method if you implement your own .make method
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/linked_list.rb#20
+ def empty?; end
+
+ # Returns the value of attribute head.
+ #
+ # source://rake//lib/rake/linked_list.rb#8
+ def head; end
+
+ # Same as +to_s+, but with inspected items.
+ #
+ # source://rake//lib/rake/linked_list.rb#42
+ def inspect; end
+
+ # Returns the value of attribute tail.
+ #
+ # source://rake//lib/rake/linked_list.rb#8
+ def tail; end
+
+ # Convert to string: LL(item, item...)
+ #
+ # source://rake//lib/rake/linked_list.rb#36
+ def to_s; end
+
+ class << self
+ # Cons a new head onto the tail list.
+ #
+ # source://rake//lib/rake/linked_list.rb#73
+ def cons(head, tail); end
+
+ # The standard empty list class for the given LinkedList class.
+ #
+ # source://rake//lib/rake/linked_list.rb#78
+ def empty; end
+
+ # Make a list out of the given arguments. This method is
+ # polymorphic
+ #
+ # source://rake//lib/rake/linked_list.rb#59
+ def make(*args); end
+ end
+end
+
+# source://rake//lib/rake/linked_list.rb#110
+Rake::LinkedList::EMPTY = T.let(T.unsafe(nil), Rake::LinkedList::EmptyLinkedList)
+
+# Represent an empty list, using the Null Object Pattern.
+#
+# When inheriting from the LinkedList class, you should implement
+# a type specific Empty class as well. Make sure you set the class
+# instance variable @parent to the associated list class (this
+# allows conj, cons and make to work polymorphically).
+#
+# source://rake//lib/rake/linked_list.rb#95
+class Rake::LinkedList::EmptyLinkedList < ::Rake::LinkedList
+ # @return [EmptyLinkedList] a new instance of EmptyLinkedList
+ #
+ # source://rake//lib/rake/linked_list.rb#98
+ def initialize; end
+
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/linked_list.rb#101
+ def empty?; end
+
+ class << self
+ # source://rake//lib/rake/linked_list.rb#105
+ def cons(head, tail); end
+ end
+end
+
+# Same as a regular task, but the immediate prerequisites are done in
+# parallel using Ruby threads.
+#
+# source://rake//lib/rake/multi_task.rb#7
+class Rake::MultiTask < ::Rake::Task
+ private
+
+ # source://rake//lib/rake/multi_task.rb#10
+ def invoke_prerequisites(task_args, invocation_chain); end
+end
+
+# The NameSpace class will lookup task names in the scope defined by a
+# +namespace+ command.
+#
+# source://rake//lib/rake/name_space.rb#6
+class Rake::NameSpace
+ # Create a namespace lookup object using the given task manager
+ # and the list of scopes.
+ #
+ # @return [NameSpace] a new instance of NameSpace
+ #
+ # source://rake//lib/rake/name_space.rb#12
+ def initialize(task_manager, scope_list); end
+
+ # Lookup a task named +name+ in the namespace.
+ #
+ # source://rake//lib/rake/name_space.rb#20
+ def [](name); end
+
+ # The scope of the namespace (a LinkedList)
+ #
+ # source://rake//lib/rake/name_space.rb#27
+ def scope; end
+
+ # Return the list of tasks defined in this and nested namespaces.
+ #
+ # source://rake//lib/rake/name_space.rb#34
+ def tasks; end
+end
+
+# Include PrivateReader to use +private_reader+.
+#
+# source://rake//lib/rake/private_reader.rb#5
+module Rake::PrivateReader
+ mixes_in_class_methods ::Rake::PrivateReader::ClassMethods
+
+ class << self
+ # source://rake//lib/rake/private_reader.rb#7
+ def included(base); end
+ end
+end
+
+# source://rake//lib/rake/private_reader.rb#11
+module Rake::PrivateReader::ClassMethods
+ # Declare a list of private accessors
+ #
+ # source://rake//lib/rake/private_reader.rb#14
+ def private_reader(*names); end
+end
+
+# A Promise object represents a promise to do work (a chore) in the
+# future. The promise is created with a block and a list of
+# arguments for the block. Calling value will return the value of
+# the promised chore.
+#
+# Used by ThreadPool.
+#
+# source://rake//lib/rake/promise.rb#11
+class Rake::Promise
+ # Create a promise to do the chore specified by the block.
+ #
+ # @return [Promise] a new instance of Promise
+ #
+ # source://rake//lib/rake/promise.rb#17
+ def initialize(args, &block); end
+
+ # source://rake//lib/rake/promise.rb#14
+ def recorder; end
+
+ # source://rake//lib/rake/promise.rb#14
+ def recorder=(_arg0); end
+
+ # Return the value of this promise.
+ #
+ # If the promised chore is not yet complete, then do the work
+ # synchronously. We will wait.
+ #
+ # source://rake//lib/rake/promise.rb#29
+ def value; end
+
+ # If no one else is working this promise, go ahead and do the chore.
+ #
+ # source://rake//lib/rake/promise.rb#42
+ def work; end
+
+ private
+
+ # Perform the chore promised
+ #
+ # source://rake//lib/rake/promise.rb#57
+ def chore; end
+
+ # Are we done with the promise
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/promise.rb#83
+ def complete?; end
+
+ # free up these items for the GC
+ #
+ # source://rake//lib/rake/promise.rb#88
+ def discard; end
+
+ # Did the promise throw an error
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/promise.rb#78
+ def error?; end
+
+ # Do we have a result for the promise
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/promise.rb#73
+ def result?; end
+
+ # Record execution statistics if there is a recorder
+ #
+ # source://rake//lib/rake/promise.rb#94
+ def stat(*args); end
+end
+
+# source://rake//lib/rake/promise.rb#12
+Rake::Promise::NOT_SET = T.let(T.unsafe(nil), Object)
+
+# Exit status class for times the system just gives us a nil.
+#
+# source://rake//lib/rake/pseudo_status.rb#6
+class Rake::PseudoStatus
+ # @return [PseudoStatus] a new instance of PseudoStatus
+ #
+ # source://rake//lib/rake/pseudo_status.rb#9
+ def initialize(code = T.unsafe(nil)); end
+
+ # source://rake//lib/rake/pseudo_status.rb#17
+ def >>(n); end
+
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/pseudo_status.rb#25
+ def exited?; end
+
+ # source://rake//lib/rake/pseudo_status.rb#7
+ def exitstatus; end
+
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/pseudo_status.rb#21
+ def stopped?; end
+
+ # source://rake//lib/rake/pseudo_status.rb#13
+ def to_i; end
+end
+
+# Error indicating a recursion overflow error in task selection.
+#
+# source://rake//lib/rake/rule_recursion_overflow_error.rb#5
+class Rake::RuleRecursionOverflowError < ::StandardError
+ # @return [RuleRecursionOverflowError] a new instance of RuleRecursionOverflowError
+ #
+ # source://rake//lib/rake/rule_recursion_overflow_error.rb#6
+ def initialize(*args); end
+
+ # source://rake//lib/rake/rule_recursion_overflow_error.rb#11
+ def add_target(target); end
+
+ # source://rake//lib/rake/rule_recursion_overflow_error.rb#15
+ def message; end
+end
+
+# source://rake//lib/rake/scope.rb#3
+class Rake::Scope < ::Rake::LinkedList
+ # Path for the scope.
+ #
+ # source://rake//lib/rake/scope.rb#6
+ def path; end
+
+ # Path for the scope + the named path.
+ #
+ # source://rake//lib/rake/scope.rb#11
+ def path_with_task_name(task_name); end
+
+ # Trim +n+ innermost scope levels from the scope. In no case will
+ # this trim beyond the toplevel scope.
+ #
+ # source://rake//lib/rake/scope.rb#17
+ def trim(n); end
+end
+
+# Singleton null object for an empty scope.
+#
+# source://rake//lib/rake/scope.rb#41
+Rake::Scope::EMPTY = T.let(T.unsafe(nil), Rake::Scope::EmptyScope)
+
+# Scope lists always end with an EmptyScope object. See Null
+# Object Pattern)
+#
+# source://rake//lib/rake/scope.rb#28
+class Rake::Scope::EmptyScope < ::Rake::LinkedList::EmptyLinkedList
+ # source://rake//lib/rake/scope.rb#31
+ def path; end
+
+ # source://rake//lib/rake/scope.rb#35
+ def path_with_task_name(task_name); end
+end
+
+# A Task is the basic unit of work in a Rakefile. Tasks have associated
+# actions (possibly more than one) and a list of prerequisites. When
+# invoked, a task will first ensure that all of its prerequisites have an
+# opportunity to run and then it will execute its own actions.
+#
+# Tasks are not usually created directly using the new method, but rather
+# use the +file+ and +task+ convenience methods.
+#
+# source://rake//lib/rake/task.rb#15
+class Rake::Task
+ # Create a task named +task_name+ with no actions or prerequisites. Use
+ # +enhance+ to add actions and prerequisites.
+ #
+ # @return [Task] a new instance of Task
+ #
+ # source://rake//lib/rake/task.rb#99
+ def initialize(task_name, app); end
+
+ # List of actions attached to a task.
+ #
+ # source://rake//lib/rake/task.rb#24
+ def actions; end
+
+ # Add a description to the task. The description can consist of an option
+ # argument list (enclosed brackets) and an optional comment.
+ #
+ # source://rake//lib/rake/task.rb#298
+ def add_description(description); end
+
+ # List of all unique prerequisite tasks including prerequisite tasks'
+ # prerequisites.
+ # Includes self when cyclic dependencies are found.
+ #
+ # source://rake//lib/rake/task.rb#77
+ def all_prerequisite_tasks; end
+
+ # Has this task already been invoked? Already invoked tasks
+ # will be skipped unless you reenable them.
+ #
+ # source://rake//lib/rake/task.rb#39
+ def already_invoked; end
+
+ # Application owning this task.
+ #
+ # source://rake//lib/rake/task.rb#27
+ def application; end
+
+ # Application owning this task.
+ #
+ # source://rake//lib/rake/task.rb#27
+ def application=(_arg0); end
+
+ # Argument description (nil if none).
+ #
+ # source://rake//lib/rake/task.rb#136
+ def arg_description; end
+
+ # Name of arguments for this task.
+ #
+ # source://rake//lib/rake/task.rb#141
+ def arg_names; end
+
+ # Clear the existing prerequisites, actions, comments, and arguments of a rake task.
+ #
+ # source://rake//lib/rake/task.rb#153
+ def clear; end
+
+ # Clear the existing actions on a rake task.
+ #
+ # source://rake//lib/rake/task.rb#168
+ def clear_actions; end
+
+ # Clear the existing arguments on a rake task.
+ #
+ # source://rake//lib/rake/task.rb#180
+ def clear_args; end
+
+ # Clear the existing comments on a rake task.
+ #
+ # source://rake//lib/rake/task.rb#174
+ def clear_comments; end
+
+ # Clear the existing prerequisites of a rake task.
+ #
+ # source://rake//lib/rake/task.rb#162
+ def clear_prerequisites; end
+
+ # First line (or sentence) of all comments. Multiple comments are
+ # separated by a "/".
+ #
+ # source://rake//lib/rake/task.rb#322
+ def comment; end
+
+ # source://rake//lib/rake/task.rb#304
+ def comment=(comment); end
+
+ # Enhance a task with prerequisites or actions. Returns self.
+ #
+ # source://rake//lib/rake/task.rb#115
+ def enhance(deps = T.unsafe(nil), &block); end
+
+ # Execute the actions associated with this task.
+ #
+ # source://rake//lib/rake/task.rb#270
+ def execute(args = T.unsafe(nil)); end
+
+ # Full collection of comments. Multiple comments are separated by
+ # newlines.
+ #
+ # source://rake//lib/rake/task.rb#316
+ def full_comment; end
+
+ # source://rake//lib/rake/task.rb#46
+ def inspect; end
+
+ # Return a string describing the internal state of a task. Useful for
+ # debugging.
+ #
+ # source://rake//lib/rake/task.rb#354
+ def investigation; end
+
+ # Invoke the task if it is needed. Prerequisites are invoked first.
+ #
+ # source://rake//lib/rake/task.rb#186
+ def invoke(*args); end
+
+ # Invoke all the prerequisites of a task.
+ #
+ # source://rake//lib/rake/task.rb#237
+ def invoke_prerequisites(task_args, invocation_chain); end
+
+ # Invoke all the prerequisites of a task in parallel.
+ #
+ # source://rake//lib/rake/task.rb#249
+ def invoke_prerequisites_concurrently(task_args, invocation_chain); end
+
+ # File/Line locations of each of the task definitions for this
+ # task (only valid if the task was defined with the detect
+ # location option set).
+ #
+ # source://rake//lib/rake/task.rb#35
+ def locations; end
+
+ # Name of the task, including any namespace qualifiers.
+ #
+ # source://rake//lib/rake/task.rb#122
+ def name; end
+
+ # Name of task with argument list description.
+ #
+ # source://rake//lib/rake/task.rb#127
+ def name_with_args; end
+
+ # Is this task needed?
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/task.rb#286
+ def needed?; end
+
+ # List of order only prerequisites for a task.
+ #
+ # source://rake//lib/rake/task.rb#21
+ def order_only_prerequisites; end
+
+ # List of prerequisites for a task.
+ #
+ # source://rake//lib/rake/task.rb#17
+ def prereqs; end
+
+ # List of prerequisite tasks
+ #
+ # source://rake//lib/rake/task.rb#61
+ def prerequisite_tasks; end
+
+ # List of prerequisites for a task.
+ #
+ # source://rake//lib/rake/task.rb#17
+ def prerequisites; end
+
+ # Reenable the task, allowing its tasks to be executed if the task
+ # is invoked again.
+ #
+ # source://rake//lib/rake/task.rb#147
+ def reenable; end
+
+ # Array of nested namespaces names used for task lookup by this task.
+ #
+ # source://rake//lib/rake/task.rb#30
+ def scope; end
+
+ # Set the names of the arguments for this task. +args+ should be
+ # an array of symbols, one for each argument name.
+ #
+ # source://rake//lib/rake/task.rb#348
+ def set_arg_names(args); end
+
+ # First source from a rule (nil if no sources)
+ #
+ # source://rake//lib/rake/task.rb#93
+ def source; end
+
+ # source://rake//lib/rake/task.rb#52
+ def sources; end
+
+ # List of sources for task.
+ #
+ # source://rake//lib/rake/task.rb#51
+ def sources=(_arg0); end
+
+ # Timestamp for this task. Basic tasks return the current time for their
+ # time stamp. Other tasks can be more sophisticated.
+ #
+ # source://rake//lib/rake/task.rb#292
+ def timestamp; end
+
+ # Return task name
+ #
+ # source://rake//lib/rake/task.rb#42
+ def to_s; end
+
+ # Add order only dependencies.
+ #
+ # source://rake//lib/rake/task.rb#379
+ def |(deps); end
+
+ protected
+
+ # source://rake//lib/rake/task.rb#83
+ def collect_prerequisites(seen); end
+
+ # Same as invoke, but explicitly pass a call chain to detect
+ # circular dependencies.
+ #
+ # If multiple tasks depend on this
+ # one in parallel, they will all fail if the first execution of
+ # this task fails.
+ #
+ # source://rake//lib/rake/task.rb#197
+ def invoke_with_call_chain(task_args, invocation_chain); end
+
+ private
+
+ # source://rake//lib/rake/task.rb#229
+ def add_chain_to(exception, new_chain); end
+
+ # source://rake//lib/rake/task.rb#308
+ def add_comment(comment); end
+
+ # Get the first sentence in a string. The sentence is terminated
+ # by the first period, exclamation mark, or the end of the line.
+ # Decimal points do not count as periods.
+ #
+ # source://rake//lib/rake/task.rb#341
+ def first_sentence(string); end
+
+ # Format the trace flags for display.
+ #
+ # source://rake//lib/rake/task.rb#261
+ def format_trace_flags; end
+
+ # source://rake//lib/rake/task.rb#65
+ def lookup_prerequisite(prerequisite_name); end
+
+ # Transform the list of comments as specified by the block and
+ # join with the separator.
+ #
+ # source://rake//lib/rake/task.rb#328
+ def transform_comments(separator, &block); end
+
+ class << self
+ # Return a task with the given name. If the task is not currently
+ # known, try to synthesize one from the defined rules. If no rules are
+ # found, but an existing file matches the task name, assume it is a file
+ # task with no dependencies or actions.
+ #
+ # source://rake//lib/rake/task.rb#404
+ def [](task_name); end
+
+ # Clear the task list. This cause rake to immediately forget all the
+ # tasks that have been assigned. (Normally used in the unit tests.)
+ #
+ # source://rake//lib/rake/task.rb#391
+ def clear; end
+
+ # Define a rule for synthesizing tasks.
+ #
+ # source://rake//lib/rake/task.rb#421
+ def create_rule(*args, &block); end
+
+ # Define a task given +args+ and an option block. If a rule with the
+ # given name already exists, the prerequisites and actions are added to
+ # the existing task. Returns the defined task.
+ #
+ # source://rake//lib/rake/task.rb#416
+ def define_task(*args, &block); end
+
+ # Format dependencies parameter to pass to task.
+ #
+ # source://rake//lib/rake/task.rb#373
+ def format_deps(deps); end
+
+ # Apply the scope to the task name according to the rules for
+ # this kind of task. Generic tasks will accept the scope as
+ # part of the name.
+ #
+ # source://rake//lib/rake/task.rb#428
+ def scope_name(scope, task_name); end
+
+ # TRUE if the task name is already defined.
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/task.rb#409
+ def task_defined?(task_name); end
+
+ # List of all defined tasks.
+ #
+ # source://rake//lib/rake/task.rb#396
+ def tasks; end
+ end
+end
+
+# Error indicating an ill-formed task declaration.
+#
+# source://rake//lib/rake/task_argument_error.rb#5
+class Rake::TaskArgumentError < ::ArgumentError; end
+
+# TaskArguments manage the arguments passed to a task.
+#
+# source://rake//lib/rake/task_arguments.rb#7
+class Rake::TaskArguments
+ include ::Enumerable
+
+ # Create a TaskArgument object with a list of argument +names+ and a set
+ # of associated +values+. +parent+ is the parent argument object.
+ #
+ # @return [TaskArguments] a new instance of TaskArguments
+ #
+ # source://rake//lib/rake/task_arguments.rb#15
+ def initialize(names, values, parent = T.unsafe(nil)); end
+
+ # Find an argument value by name or index.
+ #
+ # source://rake//lib/rake/task_arguments.rb#44
+ def [](index); end
+
+ # Enumerates the arguments and their values
+ #
+ # source://rake//lib/rake/task_arguments.rb#56
+ def each(&block); end
+
+ # Retrieve the list of values not associated with named arguments
+ #
+ # source://rake//lib/rake/task_arguments.rb#32
+ def extras; end
+
+ # source://rake//lib/rake/task_arguments.rb#93
+ def fetch(*args, &block); end
+
+ # Returns true if +key+ is one of the arguments
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/task_arguments.rb#88
+ def has_key?(key); end
+
+ # source://rake//lib/rake/task_arguments.rb#79
+ def inspect; end
+
+ # Returns true if +key+ is one of the arguments
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/task_arguments.rb#88
+ def key?(key); end
+
+ # Returns the value of the given argument via method_missing
+ #
+ # source://rake//lib/rake/task_arguments.rb#66
+ def method_missing(sym, *args); end
+
+ # Argument names
+ #
+ # source://rake//lib/rake/task_arguments.rb#11
+ def names; end
+
+ # Create a new argument scope using the prerequisite argument
+ # names.
+ #
+ # source://rake//lib/rake/task_arguments.rb#38
+ def new_scope(names); end
+
+ # Retrieve the complete array of sequential values
+ #
+ # source://rake//lib/rake/task_arguments.rb#27
+ def to_a; end
+
+ # Returns a Hash of arguments and their values
+ #
+ # source://rake//lib/rake/task_arguments.rb#71
+ def to_hash; end
+
+ # source://rake//lib/rake/task_arguments.rb#75
+ def to_s; end
+
+ # Extracts the argument values at +keys+
+ #
+ # source://rake//lib/rake/task_arguments.rb#61
+ def values_at(*keys); end
+
+ # Specify a hash of default values for task arguments. Use the
+ # defaults only if there is no specific value for the given
+ # argument.
+ #
+ # source://rake//lib/rake/task_arguments.rb#51
+ def with_defaults(defaults); end
+
+ protected
+
+ # source://rake//lib/rake/task_arguments.rb#99
+ def lookup(name); end
+end
+
+# Base class for Task Libraries.
+#
+# source://rake//lib/rake/tasklib.rb#7
+class Rake::TaskLib
+ include ::Rake::Cloneable
+ include ::FileUtils::StreamUtils_
+ include ::FileUtils
+ include ::Rake::FileUtilsExt
+ include ::Rake::DSL
+end
+
+# The TaskManager module is a mixin for managing tasks.
+#
+# source://rake//lib/rake/task_manager.rb#5
+module Rake::TaskManager
+ # source://rake//lib/rake/task_manager.rb#9
+ def initialize; end
+
+ # Find a matching task for +task_name+.
+ #
+ # source://rake//lib/rake/task_manager.rb#54
+ def [](task_name, scopes = T.unsafe(nil)); end
+
+ # Clear all tasks in this application.
+ #
+ # source://rake//lib/rake/task_manager.rb#182
+ def clear; end
+
+ # source://rake//lib/rake/task_manager.rb#17
+ def create_rule(*args, &block); end
+
+ # Return the list of scope names currently active in the task
+ # manager.
+ #
+ # source://rake//lib/rake/task_manager.rb#222
+ def current_scope; end
+
+ # source://rake//lib/rake/task_manager.rb#23
+ def define_task(task_class, *args, &block); end
+
+ # If a rule can be found that matches the task name, enhance the
+ # task with the prerequisites and actions from the rule. Set the
+ # source attribute of the task appropriately for the rule. Return
+ # the enhanced task or nil of no rule was found.
+ #
+ # source://rake//lib/rake/task_manager.rb#151
+ def enhance_with_matching_rule(task_name, level = T.unsafe(nil)); end
+
+ # source://rake//lib/rake/task_manager.rb#68
+ def generate_did_you_mean_suggestions(task_name); end
+
+ # source://rake//lib/rake/task_manager.rb#62
+ def generate_message_for_undefined_task(task_name); end
+
+ # Evaluate the block in a nested namespace named +name+. Create
+ # an anonymous namespace if +name+ is nil.
+ #
+ # source://rake//lib/rake/task_manager.rb#228
+ def in_namespace(name); end
+
+ # Lookup a task. Return an existing task if found, otherwise
+ # create a task of the current type.
+ #
+ # source://rake//lib/rake/task_manager.rb#49
+ def intern(task_class, task_name); end
+
+ # Track the last comment made in the Rakefile.
+ #
+ # source://rake//lib/rake/task_manager.rb#7
+ def last_description; end
+
+ # Track the last comment made in the Rakefile.
+ #
+ # source://rake//lib/rake/task_manager.rb#7
+ def last_description=(_arg0); end
+
+ # Lookup a task, using scope and the scope hints in the task name.
+ # This method performs straight lookups without trying to
+ # synthesize file tasks or rules. Special scope names (e.g. '^')
+ # are recognized. If no scope argument is supplied, use the
+ # current scope. Return nil if the task cannot be found.
+ #
+ # source://rake//lib/rake/task_manager.rb#192
+ def lookup(task_name, initial_scope = T.unsafe(nil)); end
+
+ # Resolve the arguments for a task/rule. Returns a tuple of
+ # [task_name, arg_name_list, prerequisites, order_only_prerequisites].
+ #
+ # source://rake//lib/rake/task_manager.rb#88
+ def resolve_args(args); end
+
+ # source://rake//lib/rake/task_manager.rb#81
+ def synthesize_file_task(task_name); end
+
+ # List of all defined tasks in this application.
+ #
+ # source://rake//lib/rake/task_manager.rb#168
+ def tasks; end
+
+ # List of all the tasks defined in the given scope (and its
+ # sub-scopes).
+ #
+ # source://rake//lib/rake/task_manager.rb#174
+ def tasks_in_scope(scope); end
+
+ private
+
+ # Add a location to the locations field of the given task.
+ #
+ # source://rake//lib/rake/task_manager.rb#241
+ def add_location(task); end
+
+ # Attempt to create a rule given the list of prerequisites.
+ #
+ # source://rake//lib/rake/task_manager.rb#271
+ def attempt_rule(task_name, task_pattern, args, extensions, block, level); end
+
+ # Find the location that called into the dsl layer.
+ #
+ # source://rake//lib/rake/task_manager.rb#248
+ def find_location; end
+
+ # Generate an anonymous namespace name.
+ #
+ # source://rake//lib/rake/task_manager.rb#259
+ def generate_name; end
+
+ # Return the current description, clearing it in the process.
+ #
+ # source://rake//lib/rake/task_manager.rb#319
+ def get_description(task); end
+
+ # Lookup the task name
+ #
+ # source://rake//lib/rake/task_manager.rb#208
+ def lookup_in_scope(name, scope); end
+
+ # Make a list of sources from the list of file name extensions /
+ # translation procs.
+ #
+ # source://rake//lib/rake/task_manager.rb#293
+ def make_sources(task_name, task_pattern, extensions); end
+
+ # Resolve task arguments for a task or rule when there are
+ # dependencies declared.
+ #
+ # The patterns recognized by this argument resolving function are:
+ #
+ # task :t, order_only: [:e]
+ # task :t => [:d]
+ # task :t => [:d], order_only: [:e]
+ # task :t, [a] => [:d]
+ # task :t, [a] => [:d], order_only: [:e]
+ #
+ # source://rake//lib/rake/task_manager.rb#127
+ def resolve_args_with_dependencies(args, hash); end
+
+ # Resolve task arguments for a task or rule when there are no
+ # dependencies declared.
+ #
+ # The patterns recognized by this argument resolving function are:
+ #
+ # task :t
+ # task :t, [:a]
+ #
+ # source://rake//lib/rake/task_manager.rb#105
+ def resolve_args_without_dependencies(args); end
+
+ # source://rake//lib/rake/task_manager.rb#265
+ def trace_rule(level, message); end
+
+ class << self
+ # source://rake//lib/rake/task_manager.rb#326
+ def record_task_metadata; end
+
+ # source://rake//lib/rake/task_manager.rb#326
+ def record_task_metadata=(_arg0); end
+ end
+end
+
+# source://rake//lib/rake/thread_history_display.rb#6
+class Rake::ThreadHistoryDisplay
+ include ::Rake::PrivateReader
+ extend ::Rake::PrivateReader::ClassMethods
+
+ # @return [ThreadHistoryDisplay] a new instance of ThreadHistoryDisplay
+ #
+ # source://rake//lib/rake/thread_history_display.rb#11
+ def initialize(stats); end
+
+ # source://rake//lib/rake/thread_history_display.rb#17
+ def show; end
+
+ private
+
+ # source://rake//lib/rake/private_reader.rb#15
+ def items; end
+
+ # source://rake//lib/rake/thread_history_display.rb#35
+ def rename(hash, key, renames); end
+
+ # source://rake//lib/rake/private_reader.rb#15
+ def stats; end
+
+ # source://rake//lib/rake/private_reader.rb#15
+ def threads; end
+end
+
+# source://rake//lib/rake/thread_pool.rb#7
+class Rake::ThreadPool
+ # Creates a ThreadPool object. The +thread_count+ parameter is the size
+ # of the pool.
+ #
+ # @return [ThreadPool] a new instance of ThreadPool
+ #
+ # source://rake//lib/rake/thread_pool.rb#11
+ def initialize(thread_count); end
+
+ # Creates a future executed by the +ThreadPool+.
+ #
+ # The args are passed to the block when executing (similarly to
+ # Thread#new) The return value is an object representing
+ # a future which has been created and added to the queue in the
+ # pool. Sending #value to the object will sleep the
+ # current thread until the future is finished and will return the
+ # result (or raise an exception thrown from the future)
+ #
+ # source://rake//lib/rake/thread_pool.rb#33
+ def future(*args, &block); end
+
+ # Enable the gathering of history events.
+ #
+ # source://rake//lib/rake/thread_pool.rb#68
+ def gather_history; end
+
+ # Return a array of history events for the thread pool.
+ #
+ # History gathering must be enabled to be able to see the events
+ # (see #gather_history). Best to call this when the job is
+ # complete (i.e. after ThreadPool#join is called).
+ #
+ # source://rake//lib/rake/thread_pool.rb#77
+ def history; end
+
+ # Waits until the queue of futures is empty and all threads have exited.
+ #
+ # source://rake//lib/rake/thread_pool.rb#44
+ def join; end
+
+ # Return a hash of always collected statistics for the thread pool.
+ #
+ # source://rake//lib/rake/thread_pool.rb#84
+ def statistics; end
+
+ private
+
+ # for testing only
+ #
+ # source://rake//lib/rake/thread_pool.rb#158
+ def __queue__; end
+
+ # processes one item on the queue. Returns true if there was an
+ # item to process, false if there was no item
+ #
+ # source://rake//lib/rake/thread_pool.rb#95
+ def process_queue_item; end
+
+ # source://rake//lib/rake/thread_pool.rb#111
+ def safe_thread_count; end
+
+ # source://rake//lib/rake/thread_pool.rb#117
+ def start_thread; end
+
+ # source://rake//lib/rake/thread_pool.rb#145
+ def stat(event, data = T.unsafe(nil)); end
+end
+
+# source://rake//lib/rake/trace_output.rb#3
+module Rake::TraceOutput
+ # Write trace output to output stream +out+.
+ #
+ # The write is done as a single IO call (to print) to lessen the
+ # chance that the trace output is interrupted by other tasks also
+ # producing output.
+ #
+ # source://rake//lib/rake/trace_output.rb#10
+ def trace_on(out, *strings); end
+end
+
+# source://rake//lib/rake/version.rb#3
+Rake::VERSION = T.let(T.unsafe(nil), String)
+
+# source://rake//lib/rake/version.rb#5
+module Rake::Version; end
+
+# source://rake//lib/rake/version.rb#6
+Rake::Version::BUILD = T.let(T.unsafe(nil), String)
+
+# source://rake//lib/rake/version.rb#6
+Rake::Version::MAJOR = T.let(T.unsafe(nil), String)
+
+# source://rake//lib/rake/version.rb#6
+Rake::Version::MINOR = T.let(T.unsafe(nil), String)
+
+# source://rake//lib/rake/version.rb#8
+Rake::Version::NUMBERS = T.let(T.unsafe(nil), Array)
+
+# source://rake//lib/rake/version.rb#6
+Rake::Version::OTHER = T.let(T.unsafe(nil), Array)
+
+# Win 32 interface methods for Rake. Windows specific functionality
+# will be placed here to collect that knowledge in one spot.
+#
+# source://rake//lib/rake/win32.rb#7
+module Rake::Win32
+ class << self
+ # Normalize a win32 path so that the slashes are all forward slashes.
+ #
+ # source://rake//lib/rake/win32.rb#45
+ def normalize(path); end
+
+ # The standard directory containing system wide rake files on
+ # Win 32 systems. Try the following environment variables (in
+ # order):
+ #
+ # * HOME
+ # * HOMEDRIVE + HOMEPATH
+ # * APPDATA
+ # * USERPROFILE
+ #
+ # If the above are not defined, the return nil.
+ #
+ # @raise [Win32HomeError]
+ #
+ # source://rake//lib/rake/win32.rb#30
+ def win32_system_dir; end
+
+ # True if running on a windows system.
+ #
+ # @return [Boolean]
+ #
+ # source://rake//lib/rake/win32.rb#16
+ def windows?; end
+ end
+end
+
+# Error indicating a problem in locating the home directory on a
+# Win32 system.
+#
+# source://rake//lib/rake/win32.rb#11
+class Rake::Win32::Win32HomeError < ::RuntimeError; end
+
+# source://rake//lib/rake.rb#71
+RakeFileUtils = Rake::FileUtilsExt
+
+# source://rake//lib/rake/ext/string.rb#4
+class String
+ include ::Comparable
+
+ # source://rake//lib/rake/ext/string.rb#14
+ def ext(newext = T.unsafe(nil)); end
+
+ # source://rake//lib/rake/ext/string.rb#138
+ def pathmap(spec = T.unsafe(nil), &block); end
+
+ protected
+
+ # source://rake//lib/rake/ext/string.rb#27
+ def pathmap_explode; end
+
+ # source://rake//lib/rake/ext/string.rb#41
+ def pathmap_partial(n); end
+
+ # source://rake//lib/rake/ext/string.rb#59
+ def pathmap_replace(patterns, &block); end
+end
diff --git a/sorbet/rbi/gems/rbi@0.1.1.rbi b/sorbet/rbi/gems/rbi@0.1.1.rbi
new file mode 100644
index 0000000..e3cb51e
--- /dev/null
+++ b/sorbet/rbi/gems/rbi@0.1.1.rbi
@@ -0,0 +1,2926 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `rbi` gem.
+# Please instead update this file by running `bin/tapioca gem rbi`.
+
+# source://rbi//lib/rbi/loc.rb#4
+module RBI; end
+
+# source://rbi//lib/rbi/model.rb#968
+class RBI::Arg < ::RBI::Node
+ # source://rbi//lib/rbi/model.rb#980
+ sig { params(value: ::String, loc: T.nilable(::RBI::Loc)).void }
+ def initialize(value, loc: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/model.rb#986
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#613
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#991
+ sig { returns(::String) }
+ def to_s; end
+
+ # source://rbi//lib/rbi/model.rb#972
+ sig { returns(::String) }
+ def value; end
+end
+
+# Attributes
+#
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/model.rb#349
+class RBI::Attr < ::RBI::NodeWithComments
+ include ::RBI::Indexable
+
+ abstract!
+
+ # source://rbi//lib/rbi/model.rb#374
+ sig do
+ params(
+ name: ::Symbol,
+ names: T::Array[::Symbol],
+ visibility: ::RBI::Visibility,
+ sigs: T::Array[::RBI::Sig],
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment]
+ ).void
+ end
+ def initialize(name, names, visibility: T.unsafe(nil), sigs: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#348
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#412
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # @abstract
+ #
+ # source://rbi//lib/rbi/model.rb#382
+ sig { abstract.returns(T::Array[::String]) }
+ def fully_qualified_names; end
+
+ # source://rbi//lib/rbi/index.rb#113
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#420
+ sig { override.params(other: ::RBI::Node).void }
+ def merge_with(other); end
+
+ # source://rbi//lib/rbi/model.rb#356
+ sig { returns(T::Array[::Symbol]) }
+ def names; end
+
+ # source://rbi//lib/rbi/printer.rb#375
+ sig { override.returns(T::Boolean) }
+ def oneline?; end
+
+ # source://rbi//lib/rbi/model.rb#362
+ sig { returns(T::Array[::RBI::Sig]) }
+ def sigs; end
+
+ # source://rbi//lib/rbi/model.rb#359
+ sig { returns(::RBI::Visibility) }
+ def visibility; end
+
+ # @return [Visibility]
+ #
+ # source://rbi//lib/rbi/model.rb#359
+ def visibility=(_arg0); end
+end
+
+# source://rbi//lib/rbi/model.rb#385
+class RBI::AttrAccessor < ::RBI::Attr
+ # source://rbi//lib/rbi/model.rb#399
+ sig do
+ params(
+ name: ::Symbol,
+ names: ::Symbol,
+ visibility: ::RBI::Visibility,
+ sigs: T::Array[::RBI::Sig],
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::AttrAccessor).void)
+ ).void
+ end
+ def initialize(name, *names, visibility: T.unsafe(nil), sigs: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#452
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#405
+ sig { override.returns(T::Array[::String]) }
+ def fully_qualified_names; end
+
+ # source://rbi//lib/rbi/model.rb#411
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#417
+class RBI::AttrReader < ::RBI::Attr
+ # source://rbi//lib/rbi/model.rb#431
+ sig do
+ params(
+ name: ::Symbol,
+ names: ::Symbol,
+ visibility: ::RBI::Visibility,
+ sigs: T::Array[::RBI::Sig],
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::AttrReader).void)
+ ).void
+ end
+ def initialize(name, *names, visibility: T.unsafe(nil), sigs: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#434
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#437
+ sig { override.returns(T::Array[::String]) }
+ def fully_qualified_names; end
+
+ # source://rbi//lib/rbi/model.rb#443
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#449
+class RBI::AttrWriter < ::RBI::Attr
+ # source://rbi//lib/rbi/model.rb#463
+ sig do
+ params(
+ name: ::Symbol,
+ names: ::Symbol,
+ visibility: ::RBI::Visibility,
+ sigs: T::Array[::RBI::Sig],
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::AttrWriter).void)
+ ).void
+ end
+ def initialize(name, *names, visibility: T.unsafe(nil), sigs: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#443
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#469
+ sig { override.returns(T::Array[::String]) }
+ def fully_qualified_names; end
+
+ # source://rbi//lib/rbi/model.rb#475
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# An arbitrary blank line that can be added both in trees and comments
+#
+# source://rbi//lib/rbi/model.rb#74
+class RBI::BlankLine < ::RBI::Comment
+ # source://rbi//lib/rbi/model.rb#78
+ sig { params(loc: T.nilable(::RBI::Loc)).void }
+ def initialize(loc: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#217
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+end
+
+# source://rbi//lib/rbi/model.rb#741
+class RBI::BlockParam < ::RBI::Param
+ # source://rbi//lib/rbi/model.rb#752
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::BlockParam).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#763
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#543
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#548
+ sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
+ def print_comment_leading_space(v, last:); end
+
+ # source://rbi//lib/rbi/model.rb#758
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#218
+class RBI::Class < ::RBI::Scope
+ # source://rbi//lib/rbi/model.rb#236
+ sig do
+ params(
+ name: ::String,
+ superclass_name: T.nilable(::String),
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Class).void)
+ ).void
+ end
+ def initialize(name, superclass_name: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#376
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#244
+ sig { override.returns(::String) }
+ def fully_qualified_name; end
+
+ # source://rbi//lib/rbi/model.rb#222
+ sig { returns(::String) }
+ def name; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#222
+ def name=(_arg0); end
+
+ # source://rbi//lib/rbi/printer.rb#284
+ sig { override.params(v: ::RBI::Printer).void }
+ def print_header(v); end
+
+ # source://rbi//lib/rbi/model.rb#225
+ sig { returns(T.nilable(::String)) }
+ def superclass_name; end
+
+ # @return [String, nil]
+ #
+ # source://rbi//lib/rbi/model.rb#225
+ def superclass_name=(_arg0); end
+end
+
+# source://rbi//lib/rbi/model.rb#53
+class RBI::Comment < ::RBI::Node
+ # source://rbi//lib/rbi/model.rb#60
+ sig { params(text: ::String, loc: T.nilable(::RBI::Loc)).void }
+ def initialize(text, loc: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/model.rb#66
+ sig { params(other: ::Object).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#197
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#57
+ sig { returns(::String) }
+ def text; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#57
+ def text=(_arg0); end
+end
+
+# A tree showing incompatibles nodes
+#
+# Is rendered as a merge conflict between `left` and` right`:
+# ~~~rb
+# class Foo
+# <<<<<<< left
+# def m1; end
+# def m2(a); end
+# =======
+# def m1(a); end
+# def m2; end
+# >>>>>>> right
+# end
+# ~~~
+#
+# source://rbi//lib/rbi/rewriters/merge_trees.rb#589
+class RBI::ConflictTree < ::RBI::Tree
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#596
+ sig { params(left_name: ::String, right_name: ::String).void }
+ def initialize(left_name: T.unsafe(nil), right_name: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#607
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#593
+ sig { returns(::RBI::Tree) }
+ def left; end
+
+ # @return [Tree]
+ #
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#593
+ def right; end
+end
+
+# Consts
+#
+# source://rbi//lib/rbi/model.rb#312
+class RBI::Const < ::RBI::NodeWithComments
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#327
+ sig do
+ params(
+ name: ::String,
+ value: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Const).void)
+ ).void
+ end
+ def initialize(name, value, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/printer.rb#335
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#403
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#335
+ sig { returns(::String) }
+ def fully_qualified_name; end
+
+ # source://rbi//lib/rbi/index.rb#103
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#316
+ sig { returns(::String) }
+ def name; end
+
+ # source://rbi//lib/rbi/model.rb#342
+ sig { override.returns(::String) }
+ def to_s; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#316
+ def value; end
+end
+
+# source://rbi//lib/rbi/model.rb#816
+class RBI::Extend < ::RBI::Mixin
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#828
+ sig do
+ params(
+ name: ::String,
+ names: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Extend).void)
+ ).void
+ end
+ def initialize(name, *names, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#502
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/index.rb#143
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#834
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#137
+class RBI::File
+ # source://rbi//lib/rbi/model.rb#156
+ sig do
+ params(
+ strictness: T.nilable(::String),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(file: ::RBI::File).void)
+ ).void
+ end
+ def initialize(strictness: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#164
+ sig { params(node: ::RBI::Node).void }
+ def <<(node); end
+
+ # source://rbi//lib/rbi/printer.rb#105
+ sig { params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#147
+ sig { returns(T::Array[::RBI::Comment]) }
+ def comments; end
+
+ # @return [Array]
+ #
+ # source://rbi//lib/rbi/model.rb#147
+ def comments=(_arg0); end
+
+ # source://rbi//lib/rbi/model.rb#169
+ sig { returns(T::Boolean) }
+ def empty?; end
+
+ # source://rbi//lib/rbi/printer.rb#129
+ sig do
+ params(
+ out: T.any(::IO, ::StringIO),
+ indent: ::Integer,
+ print_locs: T::Boolean,
+ max_line_length: T.nilable(::Integer)
+ ).void
+ end
+ def print(out: T.unsafe(nil), indent: T.unsafe(nil), print_locs: T.unsafe(nil), max_line_length: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/model.rb#141
+ sig { returns(::RBI::Tree) }
+ def root; end
+
+ # @return [Tree]
+ #
+ # source://rbi//lib/rbi/model.rb#141
+ def root=(_arg0); end
+
+ # source://rbi//lib/rbi/model.rb#144
+ sig { returns(T.nilable(::String)) }
+ def strictness; end
+
+ # @return [String, nil]
+ #
+ # source://rbi//lib/rbi/model.rb#144
+ def strictness=(_arg0); end
+
+ # source://rbi//lib/rbi/printer.rb#135
+ sig { params(indent: ::Integer, print_locs: T::Boolean, max_line_length: T.nilable(::Integer)).returns(::String) }
+ def string(indent: T.unsafe(nil), print_locs: T.unsafe(nil), max_line_length: T.unsafe(nil)); end
+end
+
+# source://rbi//lib/rbi/formatter.rb#5
+class RBI::Formatter
+ # source://rbi//lib/rbi/formatter.rb#36
+ sig do
+ params(
+ add_sig_templates: T::Boolean,
+ group_nodes: T::Boolean,
+ max_line_length: T.nilable(::Integer),
+ nest_singleton_methods: T::Boolean,
+ nest_non_public_methods: T::Boolean,
+ sort_nodes: T::Boolean
+ ).void
+ end
+ def initialize(add_sig_templates: T.unsafe(nil), group_nodes: T.unsafe(nil), max_line_length: T.unsafe(nil), nest_singleton_methods: T.unsafe(nil), nest_non_public_methods: T.unsafe(nil), sort_nodes: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/formatter.rb#15
+ sig { params(add_sig_templates: T::Boolean).returns(T::Boolean) }
+ def add_sig_templates=(add_sig_templates); end
+
+ # source://rbi//lib/rbi/formatter.rb#59
+ sig { params(file: ::RBI::File).void }
+ def format_file(file); end
+
+ # source://rbi//lib/rbi/formatter.rb#64
+ sig { params(tree: ::RBI::Tree).void }
+ def format_tree(tree); end
+
+ # source://rbi//lib/rbi/formatter.rb#18
+ sig { params(group_nodes: T::Boolean).returns(T::Boolean) }
+ def group_nodes=(group_nodes); end
+
+ # source://rbi//lib/rbi/formatter.rb#24
+ sig { returns(T.nilable(::Integer)) }
+ def max_line_length; end
+
+ # @return [Integer, nil]
+ #
+ # source://rbi//lib/rbi/formatter.rb#24
+ def max_line_length=(_arg0); end
+
+ # source://rbi//lib/rbi/formatter.rb#21
+ sig { params(nest_non_public_methods: T::Boolean).returns(T::Boolean) }
+ def nest_non_public_methods=(nest_non_public_methods); end
+
+ # source://rbi//lib/rbi/formatter.rb#12
+ sig { params(nest_singleton_methods: T::Boolean).returns(T::Boolean) }
+ def nest_singleton_methods=(nest_singleton_methods); end
+
+ # source://rbi//lib/rbi/formatter.rb#53
+ sig { params(file: ::RBI::File).returns(::String) }
+ def print_file(file); end
+
+ # source://rbi//lib/rbi/formatter.rb#9
+ sig { params(sort_nodes: T::Boolean).returns(T::Boolean) }
+ def sort_nodes=(sort_nodes); end
+end
+
+# source://rbi//lib/rbi/rewriters/group_nodes.rb#88
+class RBI::Group < ::RBI::Tree
+ # source://rbi//lib/rbi/rewriters/group_nodes.rb#95
+ sig { params(kind: ::RBI::Group::Kind).void }
+ def initialize(kind); end
+
+ # source://rbi//lib/rbi/printer.rb#838
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/group_nodes.rb#92
+ sig { returns(::RBI::Group::Kind) }
+ def kind; end
+end
+
+# source://rbi//lib/rbi/rewriters/group_nodes.rb#100
+class RBI::Group::Kind < ::T::Enum
+ enums do
+ Mixins = new
+ RequiredAncestors = new
+ Helpers = new
+ TypeMembers = new
+ MixesInClassMethods = new
+ Sends = new
+ Attrs = new
+ TStructFields = new
+ TEnums = new
+ Inits = new
+ Methods = new
+ SingletonClasses = new
+ Consts = new
+ end
+end
+
+# Sorbet's misc.
+#
+# source://rbi//lib/rbi/model.rb#1294
+class RBI::Helper < ::RBI::NodeWithComments
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#1308
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Helper).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/printer.rb#825
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#520
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/index.rb#173
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#1298
+ sig { returns(::String) }
+ def name; end
+
+ # source://rbi//lib/rbi/model.rb#1315
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#793
+class RBI::Include < ::RBI::Mixin
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#805
+ sig do
+ params(
+ name: ::String,
+ names: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Include).void)
+ ).void
+ end
+ def initialize(name, *names, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#493
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/index.rb#133
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#811
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/index.rb#5
+class RBI::Index < ::RBI::Visitor
+ # source://rbi//lib/rbi/index.rb#21
+ sig { void }
+ def initialize; end
+
+ # source://rbi//lib/rbi/index.rb#32
+ sig { params(id: ::String).returns(T::Array[::RBI::Node]) }
+ def [](id); end
+
+ # source://rbi//lib/rbi/index.rb#37
+ sig { params(nodes: ::RBI::Node).void }
+ def index(*nodes); end
+
+ # source://rbi//lib/rbi/index.rb#27
+ sig { returns(T::Array[::String]) }
+ def keys; end
+
+ # source://rbi//lib/rbi/index.rb#42
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ private
+
+ # source://rbi//lib/rbi/index.rb#59
+ sig { params(node: T.all(::RBI::Indexable, ::RBI::Node)).void }
+ def index_node(node); end
+
+ class << self
+ # source://rbi//lib/rbi/index.rb#13
+ sig { params(node: ::RBI::Node).returns(::RBI::Index) }
+ def index(*node); end
+ end
+end
+
+# A Node that can be refered to by a unique ID inside an index
+#
+# @abstract Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/index.rb#74
+module RBI::Indexable
+ interface!
+
+ # Unique IDs that refer to this node.
+ #
+ # Some nodes can have multiple ids, for example an attribute accessor matches the ID of the
+ # getter and the setter.
+ #
+ # @abstract
+ #
+ # source://rbi//lib/rbi/index.rb#85
+ sig { abstract.returns(T::Array[::String]) }
+ def index_ids; end
+end
+
+# source://rbi//lib/rbi/model.rb#996
+class RBI::KwArg < ::RBI::Arg
+ # source://rbi//lib/rbi/model.rb#1009
+ sig { params(keyword: ::String, value: ::String, loc: T.nilable(::RBI::Loc)).void }
+ def initialize(keyword, value, loc: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/model.rb#1015
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#622
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#1000
+ sig { returns(::String) }
+ def keyword; end
+
+ # source://rbi//lib/rbi/model.rb#1020
+ sig { returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#682
+class RBI::KwOptParam < ::RBI::Param
+ # source://rbi//lib/rbi/model.rb#697
+ sig do
+ params(
+ name: ::String,
+ value: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::KwOptParam).void)
+ ).void
+ end
+ def initialize(name, value, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#709
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#513
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#518
+ sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
+ def print_comment_leading_space(v, last:); end
+
+ # source://rbi//lib/rbi/model.rb#704
+ sig { override.returns(::String) }
+ def to_s; end
+
+ # source://rbi//lib/rbi/model.rb#686
+ sig { returns(::String) }
+ def value; end
+end
+
+# source://rbi//lib/rbi/model.rb#655
+class RBI::KwParam < ::RBI::Param
+ # source://rbi//lib/rbi/model.rb#666
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::KwParam).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#677
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#498
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#503
+ sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
+ def print_comment_leading_space(v, last:); end
+
+ # source://rbi//lib/rbi/model.rb#672
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#714
+class RBI::KwRestParam < ::RBI::Param
+ # source://rbi//lib/rbi/model.rb#725
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::KwRestParam).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#736
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#528
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#533
+ sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
+ def print_comment_leading_space(v, last:); end
+
+ # source://rbi//lib/rbi/model.rb#731
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/loc.rb#5
+class RBI::Loc
+ # source://rbi//lib/rbi/loc.rb#38
+ sig do
+ params(
+ file: T.nilable(::String),
+ begin_line: T.nilable(::Integer),
+ end_line: T.nilable(::Integer),
+ begin_column: T.nilable(::Integer),
+ end_column: T.nilable(::Integer)
+ ).void
+ end
+ def initialize(file: T.unsafe(nil), begin_line: T.unsafe(nil), end_line: T.unsafe(nil), begin_column: T.unsafe(nil), end_column: T.unsafe(nil)); end
+
+ # @return [Integer, nil]
+ #
+ # source://rbi//lib/rbi/loc.rb#27
+ def begin_column; end
+
+ # source://rbi//lib/rbi/loc.rb#27
+ sig { returns(T.nilable(::Integer)) }
+ def begin_line; end
+
+ # @return [Integer, nil]
+ #
+ # source://rbi//lib/rbi/loc.rb#27
+ def end_column; end
+
+ # @return [Integer, nil]
+ #
+ # source://rbi//lib/rbi/loc.rb#27
+ def end_line; end
+
+ # source://rbi//lib/rbi/loc.rb#24
+ sig { returns(T.nilable(::String)) }
+ def file; end
+
+ # source://rbi//lib/rbi/loc.rb#56
+ sig { returns(T.nilable(::String)) }
+ def source; end
+
+ # source://rbi//lib/rbi/loc.rb#47
+ sig { returns(::String) }
+ def to_s; end
+
+ class << self
+ # source://rbi//lib/rbi/loc.rb#12
+ sig { params(file: ::String, yarp_location: ::Prism::Location).returns(::RBI::Loc) }
+ def from_yarp(file, yarp_location); end
+ end
+end
+
+# A tree that _might_ contain conflicts
+#
+# source://rbi//lib/rbi/rewriters/merge_trees.rb#330
+class RBI::MergeTree < ::RBI::Tree
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#344
+ sig do
+ params(
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ conflicts: T::Array[::RBI::Rewriters::Merge::Conflict],
+ block: T.nilable(T.proc.params(node: ::RBI::Tree).void)
+ ).void
+ end
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), conflicts: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#334
+ sig { returns(T::Array[::RBI::Rewriters::Merge::Conflict]) }
+ def conflicts; end
+end
+
+# Methods and args
+#
+# source://rbi//lib/rbi/model.rb#483
+class RBI::Method < ::RBI::NodeWithComments
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#513
+ sig do
+ params(
+ name: ::String,
+ params: T::Array[::RBI::Param],
+ is_singleton: T::Boolean,
+ visibility: ::RBI::Visibility,
+ sigs: T::Array[::RBI::Sig],
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Method).void)
+ ).void
+ end
+ def initialize(name, params: T.unsafe(nil), is_singleton: T.unsafe(nil), visibility: T.unsafe(nil), sigs: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#533
+ sig { params(param: ::RBI::Param).void }
+ def <<(param); end
+
+ # source://rbi//lib/rbi/printer.rb#384
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#461
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#538
+ sig { returns(::String) }
+ def fully_qualified_name; end
+
+ # source://rbi//lib/rbi/index.rb#123
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/printer.rb#437
+ sig { returns(T::Boolean) }
+ def inline_params?; end
+
+ # source://rbi//lib/rbi/model.rb#493
+ sig { returns(T::Boolean) }
+ def is_singleton; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#493
+ def is_singleton=(_arg0); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#470
+ sig { override.params(other: ::RBI::Node).void }
+ def merge_with(other); end
+
+ # source://rbi//lib/rbi/model.rb#487
+ sig { returns(::String) }
+ def name; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#487
+ def name=(_arg0); end
+
+ # source://rbi//lib/rbi/printer.rb#432
+ sig { override.returns(T::Boolean) }
+ def oneline?; end
+
+ # source://rbi//lib/rbi/model.rb#490
+ sig { returns(T::Array[::RBI::Param]) }
+ def params; end
+
+ # source://rbi//lib/rbi/model.rb#499
+ sig { returns(T::Array[::RBI::Sig]) }
+ def sigs; end
+
+ # @return [Array]
+ #
+ # source://rbi//lib/rbi/model.rb#499
+ def sigs=(_arg0); end
+
+ # source://rbi//lib/rbi/model.rb#547
+ sig { override.returns(::String) }
+ def to_s; end
+
+ # source://rbi//lib/rbi/model.rb#496
+ sig { returns(::RBI::Visibility) }
+ def visibility; end
+
+ # @return [Visibility]
+ #
+ # source://rbi//lib/rbi/model.rb#496
+ def visibility=(_arg0); end
+end
+
+# source://rbi//lib/rbi/model.rb#1355
+class RBI::MixesInClassMethods < ::RBI::Mixin
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#1367
+ sig do
+ params(
+ name: ::String,
+ names: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::MixesInClassMethods).void)
+ ).void
+ end
+ def initialize(name, *names, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#511
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/index.rb#153
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#1373
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# Mixins
+#
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/model.rb#770
+class RBI::Mixin < ::RBI::NodeWithComments
+ abstract!
+
+ # source://rbi//lib/rbi/model.rb#787
+ sig do
+ params(
+ name: ::String,
+ names: T::Array[::String],
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment]
+ ).void
+ end
+ def initialize(name, names, loc: T.unsafe(nil), comments: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#558
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#484
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#777
+ sig { returns(T::Array[::String]) }
+ def names; end
+end
+
+# source://rbi//lib/rbi/model.rb#190
+class RBI::Module < ::RBI::Scope
+ # source://rbi//lib/rbi/model.rb#204
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Module).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#385
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#211
+ sig { override.returns(::String) }
+ def fully_qualified_name; end
+
+ # source://rbi//lib/rbi/model.rb#194
+ sig { returns(::String) }
+ def name; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#194
+ def name=(_arg0); end
+
+ # source://rbi//lib/rbi/printer.rb#270
+ sig { override.params(v: ::RBI::Printer).void }
+ def print_header(v); end
+end
+
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/model.rb#5
+class RBI::Node
+ abstract!
+
+ # source://rbi//lib/rbi/model.rb#18
+ sig { params(loc: T.nilable(::RBI::Loc)).void }
+ def initialize(loc: T.unsafe(nil)); end
+
+ # @abstract
+ #
+ # source://rbi//lib/rbi/printer.rb#146
+ sig { abstract.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # Can `self` and `_other` be merged into a single definition?
+ #
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#287
+ sig { params(_other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(_other); end
+
+ # source://rbi//lib/rbi/model.rb#24
+ sig { void }
+ def detach; end
+
+ # source://rbi//lib/rbi/rewriters/group_nodes.rb#48
+ sig { returns(::RBI::Group::Kind) }
+ def group_kind; end
+
+ # source://rbi//lib/rbi/model.rb#15
+ sig { returns(T.nilable(::RBI::Loc)) }
+ def loc; end
+
+ # @return [Loc, nil]
+ #
+ # source://rbi//lib/rbi/model.rb#15
+ def loc=(_arg0); end
+
+ # Merge `self` and `other` into a single definition
+ #
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#293
+ sig { params(other: ::RBI::Node).void }
+ def merge_with(other); end
+
+ # source://rbi//lib/rbi/printer.rb#179
+ sig { returns(T::Boolean) }
+ def oneline?; end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#296
+ sig { returns(T.nilable(::RBI::ConflictTree)) }
+ def parent_conflict_tree; end
+
+ # source://rbi//lib/rbi/model.rb#46
+ sig { returns(T.nilable(::RBI::Scope)) }
+ def parent_scope; end
+
+ # source://rbi//lib/rbi/model.rb#12
+ sig { returns(T.nilable(::RBI::Tree)) }
+ def parent_tree; end
+
+ # @return [Tree, nil]
+ #
+ # source://rbi//lib/rbi/model.rb#12
+ def parent_tree=(_arg0); end
+
+ # source://rbi//lib/rbi/printer.rb#156
+ sig do
+ params(
+ out: T.any(::IO, ::StringIO),
+ indent: ::Integer,
+ print_locs: T::Boolean,
+ max_line_length: T.nilable(::Integer)
+ ).void
+ end
+ def print(out: T.unsafe(nil), indent: T.unsafe(nil), print_locs: T.unsafe(nil), max_line_length: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#169
+ sig { params(v: ::RBI::Printer).void }
+ def print_blank_line_before(v); end
+
+ # source://rbi//lib/rbi/model.rb#33
+ sig { params(node: ::RBI::Node).void }
+ def replace(node); end
+
+ # source://rbi//lib/rbi/printer.rb#162
+ sig { params(indent: ::Integer, print_locs: T::Boolean, max_line_length: T.nilable(::Integer)).returns(::String) }
+ def string(indent: T.unsafe(nil), print_locs: T.unsafe(nil), max_line_length: T.unsafe(nil)); end
+end
+
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/model.rb#83
+class RBI::NodeWithComments < ::RBI::Node
+ abstract!
+
+ # source://rbi//lib/rbi/model.rb#93
+ sig { params(loc: T.nilable(::RBI::Loc), comments: T::Array[::RBI::Comment]).void }
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/model.rb#99
+ sig { returns(T::Array[::String]) }
+ def annotations; end
+
+ # source://rbi//lib/rbi/model.rb#90
+ sig { returns(T::Array[::RBI::Comment]) }
+ def comments; end
+
+ # @return [Array]
+ #
+ # source://rbi//lib/rbi/model.rb#90
+ def comments=(_arg0); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#311
+ sig { override.params(other: ::RBI::Node).void }
+ def merge_with(other); end
+
+ # source://rbi//lib/rbi/printer.rb#188
+ sig { override.returns(T::Boolean) }
+ def oneline?; end
+end
+
+# source://rbi//lib/rbi/model.rb#601
+class RBI::OptParam < ::RBI::Param
+ # source://rbi//lib/rbi/model.rb#616
+ sig do
+ params(
+ name: ::String,
+ value: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::OptParam).void)
+ ).void
+ end
+ def initialize(name, value, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#623
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#468
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#473
+ sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
+ def print_comment_leading_space(v, last:); end
+
+ # source://rbi//lib/rbi/model.rb#605
+ sig { returns(::String) }
+ def value; end
+end
+
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/model.rb#552
+class RBI::Param < ::RBI::NodeWithComments
+ abstract!
+
+ # source://rbi//lib/rbi/model.rb#568
+ sig { params(name: ::String, loc: T.nilable(::RBI::Loc), comments: T::Array[::RBI::Comment]).void }
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#446
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#459
+ sig { returns(T::Array[::String]) }
+ def comments_lines; end
+
+ # source://rbi//lib/rbi/model.rb#559
+ sig { returns(::String) }
+ def name; end
+
+ # source://rbi//lib/rbi/printer.rb#451
+ sig { params(v: ::RBI::Printer, last: T::Boolean).void }
+ def print_comment_leading_space(v, last:); end
+
+ # source://rbi//lib/rbi/model.rb#574
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/parser.rb#7
+class RBI::ParseError < ::StandardError
+ # source://rbi//lib/rbi/parser.rb#14
+ sig { params(message: ::String, location: ::RBI::Loc).void }
+ def initialize(message, location); end
+
+ # source://rbi//lib/rbi/parser.rb#11
+ sig { returns(::RBI::Loc) }
+ def location; end
+end
+
+# source://rbi//lib/rbi/parser.rb#53
+class RBI::Parser
+ # source://rbi//lib/rbi/parser.rb#88
+ sig { params(path: ::String).returns(::RBI::Tree) }
+ def parse_file(path); end
+
+ # source://rbi//lib/rbi/parser.rb#83
+ sig { params(string: ::String).returns(::RBI::Tree) }
+ def parse_string(string); end
+
+ private
+
+ # source://rbi//lib/rbi/parser.rb#95
+ sig { params(source: ::String, file: ::String).returns(::RBI::Tree) }
+ def parse(source, file:); end
+
+ class << self
+ # source://rbi//lib/rbi/parser.rb#65
+ sig { params(path: ::String).returns(::RBI::Tree) }
+ def parse_file(path); end
+
+ # source://rbi//lib/rbi/parser.rb#70
+ sig { params(paths: T::Array[::String]).returns(T::Array[::RBI::Tree]) }
+ def parse_files(paths); end
+
+ # source://rbi//lib/rbi/parser.rb#60
+ sig { params(string: ::String).returns(::RBI::Tree) }
+ def parse_string(string); end
+
+ # source://rbi//lib/rbi/parser.rb#76
+ sig { params(strings: T::Array[::String]).returns(T::Array[::RBI::Tree]) }
+ def parse_strings(strings); end
+ end
+end
+
+# source://rbi//lib/rbi/parser.rb#746
+class RBI::Parser::SigBuilder < ::RBI::Parser::Visitor
+ # source://rbi//lib/rbi/parser.rb#753
+ sig { params(content: ::String, file: ::String).void }
+ def initialize(content, file:); end
+
+ # source://rbi//lib/rbi/parser.rb#750
+ sig { returns(::RBI::Sig) }
+ def current; end
+
+ # source://rbi//lib/rbi/parser.rb#805
+ sig { override.params(node: ::Prism::AssocNode).void }
+ def visit_assoc_node(node); end
+
+ # source://rbi//lib/rbi/parser.rb#760
+ sig { override.params(node: ::Prism::CallNode).void }
+ def visit_call_node(node); end
+end
+
+# source://rbi//lib/rbi/parser.rb#155
+class RBI::Parser::TreeBuilder < ::RBI::Parser::Visitor
+ # source://rbi//lib/rbi/parser.rb#165
+ sig { params(source: ::String, comments: T::Array[::Prism::Comment], file: ::String).void }
+ def initialize(source, comments:, file:); end
+
+ # source://rbi//lib/rbi/parser.rb#162
+ sig { returns(T.nilable(::Prism::Node)) }
+ def last_node; end
+
+ # source://rbi//lib/rbi/parser.rb#159
+ sig { returns(::RBI::Tree) }
+ def tree; end
+
+ # source://rbi//lib/rbi/parser.rb#178
+ sig { override.params(node: T.nilable(::Prism::Node)).void }
+ def visit(node); end
+
+ # source://rbi//lib/rbi/parser.rb#295
+ sig { params(node: ::Prism::CallNode).void }
+ def visit_call_node(node); end
+
+ # source://rbi//lib/rbi/parser.rb#186
+ sig { override.params(node: ::Prism::ClassNode).void }
+ def visit_class_node(node); end
+
+ # source://rbi//lib/rbi/parser.rb#212
+ sig { params(node: T.any(::Prism::ConstantPathWriteNode, ::Prism::ConstantWriteNode)).void }
+ def visit_constant_assign(node); end
+
+ # source://rbi//lib/rbi/parser.rb#207
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
+ def visit_constant_path_write_node(node); end
+
+ # source://rbi//lib/rbi/parser.rb#202
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
+ def visit_constant_write_node(node); end
+
+ # source://rbi//lib/rbi/parser.rb#245
+ sig { override.params(node: ::Prism::DefNode).void }
+ def visit_def_node(node); end
+
+ # source://rbi//lib/rbi/parser.rb#257
+ sig { override.params(node: ::Prism::ModuleNode).void }
+ def visit_module_node(node); end
+
+ # source://rbi//lib/rbi/parser.rb#272
+ sig { override.params(node: ::Prism::ProgramNode).void }
+ def visit_program_node(node); end
+
+ # source://rbi//lib/rbi/parser.rb#281
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
+ def visit_singleton_class_node(node); end
+
+ private
+
+ # Collect all the remaining comments within a node
+ #
+ # source://rbi//lib/rbi/parser.rb#420
+ sig { params(node: ::Prism::Node).void }
+ def collect_dangling_comments(node); end
+
+ # Collect all the remaining comments after visiting the tree
+ #
+ # source://rbi//lib/rbi/parser.rb#438
+ sig { void }
+ def collect_orphan_comments; end
+
+ # source://rbi//lib/rbi/parser.rb#461
+ sig { returns(::RBI::Tree) }
+ def current_scope; end
+
+ # source://rbi//lib/rbi/parser.rb#466
+ sig { returns(T::Array[::RBI::Sig]) }
+ def current_sigs; end
+
+ # source://rbi//lib/rbi/parser.rb#473
+ sig { returns(T::Array[::RBI::Comment]) }
+ def current_sigs_comments; end
+
+ # source://rbi//lib/rbi/parser.rb#480
+ sig { params(node: ::Prism::Node).returns(T::Array[::RBI::Comment]) }
+ def node_comments(node); end
+
+ # source://rbi//lib/rbi/parser.rb#498
+ sig { params(node: ::Prism::Comment).returns(::RBI::Comment) }
+ def parse_comment(node); end
+
+ # source://rbi//lib/rbi/parser.rb#527
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Array[::RBI::Param]) }
+ def parse_params(node); end
+
+ # source://rbi//lib/rbi/parser.rb#503
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Array[::RBI::Arg]) }
+ def parse_send_args(node); end
+
+ # source://rbi//lib/rbi/parser.rb#603
+ sig { params(node: ::Prism::CallNode).returns(::RBI::Sig) }
+ def parse_sig(node); end
+
+ # source://rbi//lib/rbi/parser.rb#613
+ sig do
+ params(
+ node: T.any(::Prism::ConstantPathWriteNode, ::Prism::ConstantWriteNode)
+ ).returns(T.nilable(::RBI::Struct))
+ end
+ def parse_struct(node); end
+
+ # source://rbi//lib/rbi/parser.rb#663
+ sig { params(send: ::Prism::CallNode).void }
+ def parse_tstruct_field(send); end
+
+ # source://rbi//lib/rbi/parser.rb#700
+ sig { params(name: ::String, node: ::Prism::Node).returns(::RBI::Visibility) }
+ def parse_visibility(name, node); end
+
+ # source://rbi//lib/rbi/parser.rb#714
+ sig { void }
+ def separate_header_comments; end
+
+ # source://rbi//lib/rbi/parser.rb#724
+ sig { void }
+ def set_root_tree_loc; end
+
+ # source://rbi//lib/rbi/parser.rb#738
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
+ def type_variable_definition?(node); end
+end
+
+# source://rbi//lib/rbi/parser.rb#124
+class RBI::Parser::Visitor < ::Prism::Visitor
+ # source://rbi//lib/rbi/parser.rb#128
+ sig { params(source: ::String, file: ::String).void }
+ def initialize(source, file:); end
+
+ private
+
+ # source://rbi//lib/rbi/parser.rb#138
+ sig { params(node: ::Prism::Node).returns(::RBI::Loc) }
+ def node_loc(node); end
+
+ # source://rbi//lib/rbi/parser.rb#143
+ sig { params(node: T.nilable(::Prism::Node)).returns(T.nilable(::String)) }
+ def node_string(node); end
+
+ # source://rbi//lib/rbi/parser.rb#150
+ sig { params(node: ::Prism::Node).returns(::String) }
+ def node_string!(node); end
+end
+
+# source://rbi//lib/rbi/printer.rb#5
+class RBI::Printer < ::RBI::Visitor
+ # source://rbi//lib/rbi/printer.rb#28
+ sig do
+ params(
+ out: T.any(::IO, ::StringIO),
+ indent: ::Integer,
+ print_locs: T::Boolean,
+ max_line_length: T.nilable(::Integer)
+ ).void
+ end
+ def initialize(out: T.unsafe(nil), indent: T.unsafe(nil), print_locs: T.unsafe(nil), max_line_length: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#15
+ sig { returns(::Integer) }
+ def current_indent; end
+
+ # source://rbi//lib/rbi/printer.rb#46
+ sig { void }
+ def dedent; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/printer.rb#9
+ def in_visibility_group; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/printer.rb#9
+ def in_visibility_group=(_arg0); end
+
+ # Printing
+ #
+ # source://rbi//lib/rbi/printer.rb#41
+ sig { void }
+ def indent; end
+
+ # source://rbi//lib/rbi/printer.rb#18
+ sig { returns(T.nilable(::Integer)) }
+ def max_line_length; end
+
+ # source://rbi//lib/rbi/printer.rb#12
+ sig { returns(T.nilable(::RBI::Node)) }
+ def previous_node; end
+
+ # Print a string without indentation nor `\n` at the end.
+ #
+ # source://rbi//lib/rbi/printer.rb#52
+ sig { params(string: ::String).void }
+ def print(string); end
+
+ # source://rbi//lib/rbi/printer.rb#9
+ sig { returns(T::Boolean) }
+ def print_locs; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/printer.rb#9
+ def print_locs=(_arg0); end
+
+ # Print a string with indentation and `\n` at the end.
+ #
+ # source://rbi//lib/rbi/printer.rb#72
+ sig { params(string: ::String).void }
+ def printl(string); end
+
+ # Print a string without indentation but with a `\n` at the end.
+ #
+ # source://rbi//lib/rbi/printer.rb#58
+ sig { params(string: T.nilable(::String)).void }
+ def printn(string = T.unsafe(nil)); end
+
+ # Print a string with indentation but without a `\n` at the end.
+ #
+ # source://rbi//lib/rbi/printer.rb#65
+ sig { params(string: T.nilable(::String)).void }
+ def printt(string = T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#83
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ # source://rbi//lib/rbi/printer.rb#90
+ sig { override.params(nodes: T::Array[::RBI::Node]).void }
+ def visit_all(nodes); end
+
+ # source://rbi//lib/rbi/printer.rb#78
+ sig { params(file: ::RBI::File).void }
+ def visit_file(file); end
+end
+
+# source://rbi//lib/rbi/model.rb#909
+class RBI::Private < ::RBI::Visibility
+ # source://rbi//lib/rbi/model.rb#919
+ sig do
+ params(
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Private).void)
+ ).void
+ end
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+end
+
+# source://rbi//lib/rbi/model.rb#893
+class RBI::Protected < ::RBI::Visibility
+ # source://rbi//lib/rbi/model.rb#903
+ sig do
+ params(
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Protected).void)
+ ).void
+ end
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+end
+
+# source://rbi//lib/rbi/model.rb#877
+class RBI::Public < ::RBI::Visibility
+ # source://rbi//lib/rbi/model.rb#887
+ sig do
+ params(
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Public).void)
+ ).void
+ end
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+end
+
+# source://rbi//lib/rbi/model.rb#579
+class RBI::ReqParam < ::RBI::Param
+ # source://rbi//lib/rbi/model.rb#590
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::ReqParam).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#596
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+end
+
+# source://rbi//lib/rbi/model.rb#1378
+class RBI::RequiresAncestor < ::RBI::NodeWithComments
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#1391
+ sig { params(name: ::String, loc: T.nilable(::RBI::Loc), comments: T::Array[::RBI::Comment]).void }
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#870
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/index.rb#163
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#1382
+ sig { returns(::String) }
+ def name; end
+
+ # source://rbi//lib/rbi/model.rb#1397
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#628
+class RBI::RestParam < ::RBI::Param
+ # source://rbi//lib/rbi/model.rb#639
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::RestParam).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#650
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#483
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#488
+ sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
+ def print_comment_leading_space(v, last:); end
+
+ # source://rbi//lib/rbi/model.rb#645
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/rewriters/add_sig_templates.rb#5
+module RBI::Rewriters; end
+
+# source://rbi//lib/rbi/rewriters/add_sig_templates.rb#6
+class RBI::Rewriters::AddSigTemplates < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/add_sig_templates.rb#10
+ sig { params(with_todo_comment: T::Boolean).void }
+ def initialize(with_todo_comment: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/add_sig_templates.rb#16
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ private
+
+ # source://rbi//lib/rbi/rewriters/add_sig_templates.rb#30
+ sig { params(attr: ::RBI::Attr).void }
+ def add_attr_sig(attr); end
+
+ # source://rbi//lib/rbi/rewriters/add_sig_templates.rb#45
+ sig { params(method: ::RBI::Method).void }
+ def add_method_sig(method); end
+
+ # source://rbi//lib/rbi/rewriters/add_sig_templates.rb#56
+ sig { params(node: ::RBI::NodeWithComments).void }
+ def add_todo_comment(node); end
+end
+
+# source://rbi//lib/rbi/rewriters/annotate.rb#6
+class RBI::Rewriters::Annotate < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/annotate.rb#10
+ sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
+ def initialize(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/annotate.rb#18
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ private
+
+ # source://rbi//lib/rbi/rewriters/annotate.rb#31
+ sig { params(node: ::RBI::NodeWithComments).void }
+ def annotate_node(node); end
+
+ # source://rbi//lib/rbi/rewriters/annotate.rb#38
+ sig { params(node: ::RBI::Node).returns(T::Boolean) }
+ def root?(node); end
+end
+
+# source://rbi//lib/rbi/rewriters/deannotate.rb#6
+class RBI::Rewriters::Deannotate < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/deannotate.rb#10
+ sig { params(annotation: ::String).void }
+ def initialize(annotation); end
+
+ # source://rbi//lib/rbi/rewriters/deannotate.rb#16
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ private
+
+ # source://rbi//lib/rbi/rewriters/deannotate.rb#27
+ sig { params(node: ::RBI::NodeWithComments).void }
+ def deannotate_node(node); end
+end
+
+# source://rbi//lib/rbi/rewriters/group_nodes.rb#6
+class RBI::Rewriters::GroupNodes < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/group_nodes.rb#10
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+end
+
+# Merge two RBI trees together
+#
+# Be this `Tree`:
+# ~~~rb
+# class Foo
+# attr_accessor :a
+# def m; end
+# C = 10
+# end
+# ~~~
+#
+# Merged with this one:
+# ~~~rb
+# class Foo
+# attr_reader :a
+# def m(x); end
+# C = 10
+# end
+# ~~~
+#
+# Compatible definitions are merged together while incompatible definitions are moved into a `ConflictTree`:
+# ~~~rb
+# class Foo
+# <<<<<<< left
+# attr_accessor :a
+# def m; end
+# =======
+# attr_reader :a
+# def m(x); end
+# >>>>>>> right
+# C = 10
+# end
+# ~~~
+#
+# source://rbi//lib/rbi/rewriters/merge_trees.rb#39
+class RBI::Rewriters::Merge
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#70
+ sig { params(left_name: ::String, right_name: ::String, keep: ::RBI::Rewriters::Merge::Keep).void }
+ def initialize(left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#79
+ sig { params(tree: ::RBI::Tree).void }
+ def merge(tree); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#67
+ sig { returns(::RBI::MergeTree) }
+ def tree; end
+
+ class << self
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#54
+ sig do
+ params(
+ left: ::RBI::Tree,
+ right: ::RBI::Tree,
+ left_name: ::String,
+ right_name: ::String,
+ keep: ::RBI::Rewriters::Merge::Keep
+ ).returns(::RBI::MergeTree)
+ end
+ def merge_trees(left, right, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
+ end
+end
+
+# Used for logging / error displaying purpose
+#
+# source://rbi//lib/rbi/rewriters/merge_trees.rb#86
+class RBI::Rewriters::Merge::Conflict < ::T::Struct
+ const :left, ::RBI::Node
+ const :right, ::RBI::Node
+ const :left_name, ::String
+ const :right_name, ::String
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#95
+ sig { returns(::String) }
+ def to_s; end
+
+ class << self
+ # source://sorbet-runtime/0.5.11089/lib/types/struct.rb#13
+ def inherited(s); end
+ end
+end
+
+# Merge adjacent conflict trees
+#
+# Transform this:
+# ~~~rb
+# class Foo
+# <<<<<<< left
+# def m1; end
+# =======
+# def m1(a); end
+# >>>>>>> right
+# <<<<<<< left
+# def m2(a); end
+# =======
+# def m2; end
+# >>>>>>> right
+# end
+# ~~~
+#
+# Into this:
+# ~~~rb
+# class Foo
+# <<<<<<< left
+# def m1; end
+# def m2(a); end
+# =======
+# def m1(a); end
+# def m2; end
+# >>>>>>> right
+# end
+# ~~~
+#
+# source://rbi//lib/rbi/rewriters/merge_trees.rb#245
+class RBI::Rewriters::Merge::ConflictTreeMerger < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#247
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#252
+ sig { override.params(nodes: T::Array[::RBI::Node]).void }
+ def visit_all(nodes); end
+
+ private
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#273
+ sig { params(left: ::RBI::Tree, right: ::RBI::Tree).void }
+ def merge_conflict_trees(left, right); end
+end
+
+# source://rbi//lib/rbi/rewriters/merge_trees.rb#42
+class RBI::Rewriters::Merge::Keep < ::T::Enum
+ enums do
+ NONE = new
+ LEFT = new
+ RIGHT = new
+ end
+end
+
+# source://rbi//lib/rbi/rewriters/merge_trees.rb#100
+class RBI::Rewriters::Merge::TreeMerger < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#107
+ sig do
+ params(
+ output: ::RBI::Tree,
+ left_name: ::String,
+ right_name: ::String,
+ keep: ::RBI::Rewriters::Merge::Keep
+ ).void
+ end
+ def initialize(output, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#104
+ sig { returns(T::Array[::RBI::Rewriters::Merge::Conflict]) }
+ def conflicts; end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#119
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ private
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#168
+ sig { returns(::RBI::Tree) }
+ def current_scope; end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#185
+ sig { params(left: ::RBI::Scope, right: ::RBI::Scope).void }
+ def make_conflict_scope(left, right); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#192
+ sig { params(left: ::RBI::Node, right: ::RBI::Node).void }
+ def make_conflict_tree(left, right); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#173
+ sig { params(node: ::RBI::Node).returns(T.nilable(::RBI::Node)) }
+ def previous_definition(node); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#204
+ sig { params(left: ::RBI::Scope, right: ::RBI::Scope).returns(::RBI::Scope) }
+ def replace_scope_header(left, right); end
+end
+
+# source://rbi//lib/rbi/rewriters/nest_non_public_methods.rb#6
+class RBI::Rewriters::NestNonPublicMethods < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/nest_non_public_methods.rb#10
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+end
+
+# source://rbi//lib/rbi/rewriters/nest_singleton_methods.rb#6
+class RBI::Rewriters::NestSingletonMethods < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/nest_singleton_methods.rb#10
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+end
+
+# Remove all definitions existing in the index from the current tree
+#
+# Let's create an `Index` from two different `Tree`s:
+# ~~~rb
+# tree1 = Parse.parse_string(<<~RBI)
+# class Foo
+# def foo; end
+# end
+# RBI
+#
+# tree2 = Parse.parse_string(<<~RBI)
+# FOO = 10
+# RBI
+#
+# index = Index.index(tree1, tree2)
+# ~~~
+#
+# We can use `RemoveKnownDefinitions` to remove the definitions found in the `index` from the `Tree` to clean:
+# ~~~rb
+# tree_to_clean = Parser.parse_string(<<~RBI)
+# class Foo
+# def foo; end
+# def bar; end
+# end
+# FOO = 10
+# BAR = 42
+# RBI
+#
+# cleaned_tree, operations = RemoveKnownDefinitions.remove(tree_to_clean, index)
+#
+# assert_equal(<<~RBI, cleaned_tree)
+# class Foo
+# def bar; end
+# end
+# BAR = 42
+# RBI
+#
+# assert_equal(<<~OPERATIONS, operations.join("\n"))
+# Deleted ::Foo#foo at -:2:2-2-16 (duplicate from -:2:2-2:16)
+# Deleted ::FOO at -:5:0-5:8 (duplicate from -:1:0-1:8)
+# OPERATIONS
+# ~~~
+#
+# source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#48
+class RBI::Rewriters::RemoveKnownDefinitions < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#55
+ sig { params(index: ::RBI::Index).void }
+ def initialize(index); end
+
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#52
+ sig { returns(T::Array[::RBI::Rewriters::RemoveKnownDefinitions::Operation]) }
+ def operations; end
+
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#83
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#78
+ sig { params(nodes: T::Array[::RBI::Node]).void }
+ def visit_all(nodes); end
+
+ private
+
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#111
+ sig { params(node: ::RBI::Node, previous: ::RBI::Node).returns(T::Boolean) }
+ def can_delete_node?(node, previous); end
+
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#129
+ sig { params(node: ::RBI::Node, previous: ::RBI::Node).void }
+ def delete_node(node, previous); end
+
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#102
+ sig { params(node: ::RBI::Indexable).returns(T.nilable(::RBI::Node)) }
+ def previous_definition_for(node); end
+
+ class << self
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#70
+ sig do
+ params(
+ tree: ::RBI::Tree,
+ index: ::RBI::Index
+ ).returns([::RBI::Tree, T::Array[::RBI::Rewriters::RemoveKnownDefinitions::Operation]])
+ end
+ def remove(tree, index); end
+ end
+end
+
+# source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#134
+class RBI::Rewriters::RemoveKnownDefinitions::Operation < ::T::Struct
+ const :deleted_node, ::RBI::Node
+ const :duplicate_of, ::RBI::Node
+
+ # source://rbi//lib/rbi/rewriters/remove_known_definitions.rb#141
+ sig { returns(::String) }
+ def to_s; end
+
+ class << self
+ # source://sorbet-runtime/0.5.11089/lib/types/struct.rb#13
+ def inherited(s); end
+ end
+end
+
+# source://rbi//lib/rbi/rewriters/sort_nodes.rb#6
+class RBI::Rewriters::SortNodes < ::RBI::Visitor
+ # source://rbi//lib/rbi/rewriters/sort_nodes.rb#10
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ private
+
+ # source://rbi//lib/rbi/rewriters/sort_nodes.rb#73
+ sig { params(kind: ::RBI::Group::Kind).returns(::Integer) }
+ def group_rank(kind); end
+
+ # source://rbi//lib/rbi/rewriters/sort_nodes.rb#94
+ sig { params(node: ::RBI::Node).returns(T.nilable(::String)) }
+ def node_name(node); end
+
+ # source://rbi//lib/rbi/rewriters/sort_nodes.rb#45
+ sig { params(node: ::RBI::Node).returns(::Integer) }
+ def node_rank(node); end
+
+ # source://rbi//lib/rbi/rewriters/sort_nodes.rb#106
+ sig { params(node: ::RBI::Node).void }
+ def sort_node_names!(node); end
+end
+
+# Scopes
+#
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/model.rb#176
+class RBI::Scope < ::RBI::Tree
+ include ::RBI::Indexable
+
+ abstract!
+
+ # source://rbi//lib/rbi/printer.rb#242
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # Duplicate `self` scope without its body
+ #
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#356
+ sig { returns(T.self_type) }
+ def dup_empty; end
+
+ # @abstract
+ #
+ # source://rbi//lib/rbi/model.rb#182
+ sig { abstract.returns(::String) }
+ def fully_qualified_name; end
+
+ # source://rbi//lib/rbi/index.rb#93
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/printer.rb#256
+ sig { params(v: ::RBI::Printer).void }
+ def print_body(v); end
+
+ # @abstract
+ #
+ # source://rbi//lib/rbi/printer.rb#253
+ sig { abstract.params(v: ::RBI::Printer).void }
+ def print_header(v); end
+
+ # source://rbi//lib/rbi/model.rb#185
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# A conflict between two scope headers
+#
+# Is rendered as a merge conflict between `left` and` right` for scope definitions:
+# ~~~rb
+# <<<<<<< left
+# class Foo
+# =======
+# module Foo
+# >>>>>>> right
+# def m1; end
+# end
+# ~~~
+#
+# source://rbi//lib/rbi/rewriters/merge_trees.rb#628
+class RBI::ScopeConflict < ::RBI::Tree
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#642
+ sig { params(left: ::RBI::Scope, right: ::RBI::Scope, left_name: ::String, right_name: ::String).void }
+ def initialize(left:, right:, left_name: T.unsafe(nil), right_name: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#651
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#632
+ sig { returns(::RBI::Scope) }
+ def left; end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#667
+ sig { override.returns(T::Boolean) }
+ def oneline?; end
+
+ # @return [Scope]
+ #
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#632
+ def right; end
+end
+
+# Sends
+#
+# source://rbi//lib/rbi/model.rb#927
+class RBI::Send < ::RBI::NodeWithComments
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#945
+ sig do
+ params(
+ method: ::String,
+ args: T::Array[::RBI::Arg],
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Send).void)
+ ).void
+ end
+ def initialize(method, args = T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#953
+ sig { params(arg: ::RBI::Arg).void }
+ def <<(arg); end
+
+ # source://rbi//lib/rbi/model.rb#958
+ sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#592
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#934
+ sig { returns(T::Array[::RBI::Arg]) }
+ def args; end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#529
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/index.rb#193
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#931
+ sig { returns(::String) }
+ def method; end
+
+ # source://rbi//lib/rbi/model.rb#963
+ sig { returns(::String) }
+ def to_s; end
+end
+
+# Sorbet's sigs
+#
+# source://rbi//lib/rbi/model.rb#1027
+class RBI::Sig < ::RBI::Node
+ # source://rbi//lib/rbi/model.rb#1059
+ sig do
+ params(
+ params: T::Array[::RBI::SigParam],
+ return_type: T.nilable(::String),
+ is_abstract: T::Boolean,
+ is_override: T::Boolean,
+ is_overridable: T::Boolean,
+ is_final: T::Boolean,
+ type_params: T::Array[::String],
+ checked: T.nilable(::Symbol),
+ loc: T.nilable(::RBI::Loc),
+ block: T.nilable(T.proc.params(node: ::RBI::Sig).void)
+ ).void
+ end
+ def initialize(params: T.unsafe(nil), return_type: T.unsafe(nil), is_abstract: T.unsafe(nil), is_override: T.unsafe(nil), is_overridable: T.unsafe(nil), is_final: T.unsafe(nil), type_params: T.unsafe(nil), checked: T.unsafe(nil), loc: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#1084
+ sig { params(param: ::RBI::SigParam).void }
+ def <<(param); end
+
+ # source://rbi//lib/rbi/model.rb#1089
+ sig { params(other: ::Object).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#633
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#1043
+ sig { returns(T.nilable(::Symbol)) }
+ def checked; end
+
+ # @return [Symbol, nil]
+ #
+ # source://rbi//lib/rbi/model.rb#1043
+ def checked=(_arg0); end
+
+ # source://rbi//lib/rbi/printer.rb#656
+ sig { returns(T::Boolean) }
+ def inline_params?; end
+
+ # source://rbi//lib/rbi/model.rb#1037
+ sig { returns(T::Boolean) }
+ def is_abstract; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#1037
+ def is_abstract=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#1037
+ def is_final; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#1037
+ def is_final=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#1037
+ def is_overridable; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#1037
+ def is_overridable=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#1037
+ def is_override; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#1037
+ def is_override=(_arg0); end
+
+ # source://rbi//lib/rbi/printer.rb#651
+ sig { override.returns(T::Boolean) }
+ def oneline?; end
+
+ # source://rbi//lib/rbi/model.rb#1031
+ sig { returns(T::Array[::RBI::SigParam]) }
+ def params; end
+
+ # source://rbi//lib/rbi/model.rb#1034
+ sig { returns(T.nilable(::String)) }
+ def return_type; end
+
+ # @return [String, nil]
+ #
+ # source://rbi//lib/rbi/model.rb#1034
+ def return_type=(_arg0); end
+
+ # source://rbi//lib/rbi/model.rb#1040
+ sig { returns(T::Array[::String]) }
+ def type_params; end
+
+ private
+
+ # source://rbi//lib/rbi/printer.rb#698
+ sig { params(v: ::RBI::Printer).void }
+ def print_as_block(v); end
+
+ # source://rbi//lib/rbi/printer.rb#674
+ sig { params(v: ::RBI::Printer).void }
+ def print_as_line(v); end
+
+ # source://rbi//lib/rbi/printer.rb#663
+ sig { returns(T::Array[::String]) }
+ def sig_modifiers; end
+end
+
+# source://rbi//lib/rbi/model.rb#1098
+class RBI::SigParam < ::RBI::NodeWithComments
+ # source://rbi//lib/rbi/model.rb#1113
+ sig do
+ params(
+ name: ::String,
+ type: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::SigParam).void)
+ ).void
+ end
+ def initialize(name, type, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#1121
+ sig { params(other: ::Object).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#751
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#764
+ sig { returns(T::Array[::String]) }
+ def comments_lines; end
+
+ # source://rbi//lib/rbi/model.rb#1102
+ sig { returns(::String) }
+ def name; end
+
+ # source://rbi//lib/rbi/printer.rb#756
+ sig { params(v: ::RBI::Printer, last: T::Boolean).void }
+ def print_comment_leading_space(v, last:); end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#1102
+ def type; end
+end
+
+# source://rbi//lib/rbi/model.rb#251
+class RBI::SingletonClass < ::RBI::Scope
+ # source://rbi//lib/rbi/model.rb#261
+ sig do
+ params(
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::SingletonClass).void)
+ ).void
+ end
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#267
+ sig { override.returns(::String) }
+ def fully_qualified_name; end
+
+ # source://rbi//lib/rbi/printer.rb#321
+ sig { override.params(v: ::RBI::Printer).void }
+ def print_header(v); end
+end
+
+# source://rbi//lib/rbi/model.rb#272
+class RBI::Struct < ::RBI::Scope
+ # source://rbi//lib/rbi/model.rb#294
+ sig do
+ params(
+ name: ::String,
+ members: T::Array[::Symbol],
+ keyword_init: T::Boolean,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(struct: ::RBI::Struct).void)
+ ).void
+ end
+ def initialize(name, members: T.unsafe(nil), keyword_init: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#394
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#303
+ sig { override.returns(::String) }
+ def fully_qualified_name; end
+
+ # source://rbi//lib/rbi/model.rb#282
+ sig { returns(T::Boolean) }
+ def keyword_init; end
+
+ # @return [Boolean]
+ #
+ # source://rbi//lib/rbi/model.rb#282
+ def keyword_init=(_arg0); end
+
+ # source://rbi//lib/rbi/model.rb#279
+ sig { returns(T::Array[::Symbol]) }
+ def members; end
+
+ # @return [Array]
+ #
+ # source://rbi//lib/rbi/model.rb#279
+ def members=(_arg0); end
+
+ # source://rbi//lib/rbi/model.rb#276
+ sig { returns(::String) }
+ def name; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#276
+ def name=(_arg0); end
+
+ # source://rbi//lib/rbi/printer.rb#300
+ sig { override.params(v: ::RBI::Printer).void }
+ def print_header(v); end
+end
+
+# Sorbet's T::Enum
+#
+# source://rbi//lib/rbi/model.rb#1239
+class RBI::TEnum < ::RBI::Class
+ # source://rbi//lib/rbi/model.rb#1250
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(klass: ::RBI::TEnum).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+end
+
+# source://rbi//lib/rbi/model.rb#1256
+class RBI::TEnumBlock < ::RBI::NodeWithComments
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#1270
+ sig do
+ params(
+ names: T::Array[::String],
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::TEnumBlock).void)
+ ).void
+ end
+ def initialize(names = T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#1282
+ sig { params(name: ::String).void }
+ def <<(name); end
+
+ # source://rbi//lib/rbi/printer.rb#795
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#1277
+ sig { returns(T::Boolean) }
+ def empty?; end
+
+ # source://rbi//lib/rbi/index.rb#223
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#556
+ sig { override.params(other: ::RBI::Node).void }
+ def merge_with(other); end
+
+ # source://rbi//lib/rbi/model.rb#1260
+ sig { returns(T::Array[::String]) }
+ def names; end
+
+ # source://rbi//lib/rbi/model.rb#1287
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# Sorbet's T::Struct
+#
+# source://rbi//lib/rbi/model.rb#1128
+class RBI::TStruct < ::RBI::Class
+ # source://rbi//lib/rbi/model.rb#1139
+ sig do
+ params(
+ name: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(klass: ::RBI::TStruct).void)
+ ).void
+ end
+ def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+end
+
+# source://rbi//lib/rbi/model.rb#1177
+class RBI::TStructConst < ::RBI::TStructField
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#1190
+ sig do
+ params(
+ name: ::String,
+ type: ::String,
+ default: T.nilable(::String),
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::TStructConst).void)
+ ).void
+ end
+ def initialize(name, type, default: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#547
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#1196
+ sig { override.returns(T::Array[::String]) }
+ def fully_qualified_names; end
+
+ # source://rbi//lib/rbi/index.rb#203
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#1202
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/model.rb#1145
+class RBI::TStructField < ::RBI::NodeWithComments
+ abstract!
+
+ # source://rbi//lib/rbi/model.rb#1166
+ sig do
+ params(
+ name: ::String,
+ type: ::String,
+ default: T.nilable(::String),
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment]
+ ).void
+ end
+ def initialize(name, type, default: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/printer.rb#773
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#538
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#1155
+ sig { returns(T.nilable(::String)) }
+ def default; end
+
+ # @return [String, nil]
+ #
+ # source://rbi//lib/rbi/model.rb#1155
+ def default=(_arg0); end
+
+ # @abstract
+ #
+ # source://rbi//lib/rbi/model.rb#1174
+ sig { abstract.returns(T::Array[::String]) }
+ def fully_qualified_names; end
+
+ # source://rbi//lib/rbi/model.rb#1152
+ sig { returns(::String) }
+ def name; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#1152
+ def name=(_arg0); end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#1152
+ def type; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#1152
+ def type=(_arg0); end
+end
+
+# source://rbi//lib/rbi/model.rb#1207
+class RBI::TStructProp < ::RBI::TStructField
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#1220
+ sig do
+ params(
+ name: ::String,
+ type: ::String,
+ default: T.nilable(::String),
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::TStructProp).void)
+ ).void
+ end
+ def initialize(name, type, default: T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#570
+ sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
+ def compatible_with?(other); end
+
+ # source://rbi//lib/rbi/model.rb#1226
+ sig { override.returns(T::Array[::String]) }
+ def fully_qualified_names; end
+
+ # source://rbi//lib/rbi/index.rb#213
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#1232
+ sig { override.returns(::String) }
+ def to_s; end
+end
+
+# source://rbi//lib/rbi/model.rb#106
+class RBI::Tree < ::RBI::NodeWithComments
+ # source://rbi//lib/rbi/model.rb#119
+ sig do
+ params(
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::Tree).void)
+ ).void
+ end
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/model.rb#126
+ sig { params(node: ::RBI::Node).void }
+ def <<(node); end
+
+ # source://rbi//lib/rbi/printer.rb#226
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/rewriters/add_sig_templates.rb#66
+ sig { params(with_todo_comment: T::Boolean).void }
+ def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/annotate.rb#49
+ sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
+ def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#38
+ sig do
+ params(
+ name: ::String,
+ superclass_name: T.nilable(::String),
+ block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)
+ ).returns(::RBI::Scope)
+ end
+ def create_class(name, superclass_name: T.unsafe(nil), &block); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#45
+ sig { params(name: ::String, value: ::String).void }
+ def create_constant(name, value:); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#55
+ sig { params(name: ::String).void }
+ def create_extend(name); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#50
+ sig { params(name: ::String).void }
+ def create_include(name); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#89
+ sig do
+ params(
+ name: ::String,
+ parameters: T::Array[::RBI::TypedParam],
+ return_type: ::String,
+ class_method: T::Boolean,
+ visibility: ::RBI::Visibility,
+ comments: T::Array[::RBI::Comment]
+ ).void
+ end
+ def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#60
+ sig { params(name: ::String).void }
+ def create_mixes_in_class_methods(name); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#25
+ sig { params(name: ::String, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
+ def create_module(name, &block); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#9
+ sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
+ def create_path(constant, &block); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#74
+ sig do
+ params(
+ name: ::String,
+ type: ::String,
+ variance: ::Symbol,
+ fixed: T.nilable(::String),
+ upper: T.nilable(::String),
+ lower: T.nilable(::String)
+ ).void
+ end
+ def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/deannotate.rb#41
+ sig { params(annotation: ::String).void }
+ def deannotate!(annotation); end
+
+ # source://rbi//lib/rbi/model.rb#132
+ sig { returns(T::Boolean) }
+ def empty?; end
+
+ # source://rbi//lib/rbi/rewriters/group_nodes.rb#38
+ sig { void }
+ def group_nodes!; end
+
+ # source://rbi//lib/rbi/index.rb#68
+ sig { returns(::RBI::Index) }
+ def index; end
+
+ # source://rbi//lib/rbi/rewriters/merge_trees.rb#324
+ sig do
+ params(
+ other: ::RBI::Tree,
+ left_name: ::String,
+ right_name: ::String,
+ keep: ::RBI::Rewriters::Merge::Keep
+ ).returns(::RBI::MergeTree)
+ end
+ def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/rewriters/nest_non_public_methods.rb#46
+ sig { void }
+ def nest_non_public_methods!; end
+
+ # source://rbi//lib/rbi/rewriters/nest_singleton_methods.rb#36
+ sig { void }
+ def nest_singleton_methods!; end
+
+ # source://rbi//lib/rbi/model.rb#110
+ sig { returns(T::Array[::RBI::Node]) }
+ def nodes; end
+
+ # source://rbi//lib/rbi/printer.rb#233
+ sig { override.returns(T::Boolean) }
+ def oneline?; end
+
+ # source://rbi//lib/rbi/rewriters/sort_nodes.rb#119
+ sig { void }
+ def sort_nodes!; end
+
+ private
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#116
+ sig { params(node: ::RBI::Node).returns(::RBI::Node) }
+ def create_node(node); end
+
+ # source://tapioca/0.11.9/lib/tapioca/rbi_ext/model.rb#111
+ sig { returns(T::Hash[::String, ::RBI::Node]) }
+ def nodes_cache; end
+end
+
+# source://rbi//lib/rbi/model.rb#1320
+class RBI::TypeMember < ::RBI::NodeWithComments
+ include ::RBI::Indexable
+
+ # source://rbi//lib/rbi/model.rb#1335
+ sig do
+ params(
+ name: ::String,
+ value: ::String,
+ loc: T.nilable(::RBI::Loc),
+ comments: T::Array[::RBI::Comment],
+ block: T.nilable(T.proc.params(node: ::RBI::TypeMember).void)
+ ).void
+ end
+ def initialize(name, value, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
+
+ # source://rbi//lib/rbi/printer.rb#812
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#1343
+ sig { returns(::String) }
+ def fully_qualified_name; end
+
+ # source://rbi//lib/rbi/index.rb#183
+ sig { override.returns(T::Array[::String]) }
+ def index_ids; end
+
+ # source://rbi//lib/rbi/model.rb#1324
+ sig { returns(::String) }
+ def name; end
+
+ # source://rbi//lib/rbi/model.rb#1350
+ sig { override.returns(::String) }
+ def to_s; end
+
+ # @return [String]
+ #
+ # source://rbi//lib/rbi/model.rb#1324
+ def value; end
+end
+
+# source://rbi//lib/rbi/parser.rb#20
+class RBI::UnexpectedParserError < ::StandardError
+ # source://rbi//lib/rbi/parser.rb#27
+ sig { params(parent_exception: ::Exception, last_location: ::RBI::Loc).void }
+ def initialize(parent_exception, last_location); end
+
+ # source://rbi//lib/rbi/parser.rb#24
+ sig { returns(::RBI::Loc) }
+ def last_location; end
+
+ # source://rbi//lib/rbi/parser.rb#34
+ sig { params(io: T.any(::IO, ::StringIO)).void }
+ def print_debug(io: T.unsafe(nil)); end
+end
+
+# source://rbi//lib/rbi/version.rb#5
+RBI::VERSION = T.let(T.unsafe(nil), String)
+
+# Visibility
+#
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/model.rb#841
+class RBI::Visibility < ::RBI::NodeWithComments
+ abstract!
+
+ # source://rbi//lib/rbi/model.rb#851
+ sig { params(visibility: ::Symbol, loc: T.nilable(::RBI::Loc), comments: T::Array[::RBI::Comment]).void }
+ def initialize(visibility, loc: T.unsafe(nil), comments: T.unsafe(nil)); end
+
+ # source://rbi//lib/rbi/model.rb#857
+ sig { params(other: ::RBI::Visibility).returns(T::Boolean) }
+ def ==(other); end
+
+ # source://rbi//lib/rbi/printer.rb#579
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/model.rb#872
+ sig { returns(T::Boolean) }
+ def private?; end
+
+ # source://rbi//lib/rbi/model.rb#867
+ sig { returns(T::Boolean) }
+ def protected?; end
+
+ # source://rbi//lib/rbi/model.rb#862
+ sig { returns(T::Boolean) }
+ def public?; end
+
+ # source://rbi//lib/rbi/model.rb#848
+ sig { returns(::Symbol) }
+ def visibility; end
+end
+
+# source://rbi//lib/rbi/rewriters/nest_non_public_methods.rb#52
+class RBI::VisibilityGroup < ::RBI::Tree
+ # source://rbi//lib/rbi/rewriters/nest_non_public_methods.rb#59
+ sig { params(visibility: ::RBI::Visibility).void }
+ def initialize(visibility); end
+
+ # source://rbi//lib/rbi/printer.rb#848
+ sig { override.params(v: ::RBI::Printer).void }
+ def accept_printer(v); end
+
+ # source://rbi//lib/rbi/printer.rb#861
+ sig { override.returns(T::Boolean) }
+ def oneline?; end
+
+ # source://rbi//lib/rbi/rewriters/nest_non_public_methods.rb#56
+ sig { returns(::RBI::Visibility) }
+ def visibility; end
+end
+
+# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
+#
+# source://rbi//lib/rbi/visitor.rb#5
+class RBI::Visitor
+ abstract!
+
+ # @abstract
+ #
+ # source://rbi//lib/rbi/visitor.rb#12
+ sig { abstract.params(node: T.nilable(::RBI::Node)).void }
+ def visit(node); end
+
+ # source://rbi//lib/rbi/visitor.rb#15
+ sig { params(nodes: T::Array[::RBI::Node]).void }
+ def visit_all(nodes); end
+end
diff --git a/sorbet/rbi/gems/regexp_parser@2.8.2.rbi b/sorbet/rbi/gems/regexp_parser@2.8.2.rbi
new file mode 100644
index 0000000..80a6a1f
--- /dev/null
+++ b/sorbet/rbi/gems/regexp_parser@2.8.2.rbi
@@ -0,0 +1,3749 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `regexp_parser` gem.
+# Please instead update this file by running `bin/tapioca gem regexp_parser`.
+
+# source://regexp_parser//lib/regexp_parser/expression/shared.rb#1
+module Regexp::Expression; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/alternation.rb#5
+class Regexp::Expression::Alternation < ::Regexp::Expression::SequenceOperation
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#5
+ def alternatives; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#9
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#131
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/alternation.rb#6
+Regexp::Expression::Alternation::OPERAND = Regexp::Expression::Alternative
+
+# A sequence of expressions, used by Alternation as one of its alternatives.
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/alternation.rb#3
+class Regexp::Expression::Alternative < ::Regexp::Expression::Sequence
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#10
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#2
+module Regexp::Expression::Anchor; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#18
+Regexp::Expression::Anchor::BOL = Regexp::Expression::Anchor::BeginningOfLine
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#20
+Regexp::Expression::Anchor::BOS = Regexp::Expression::Anchor::BeginningOfString
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#3
+class Regexp::Expression::Anchor::Base < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#148
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#5
+class Regexp::Expression::Anchor::BeginningOfLine < ::Regexp::Expression::Anchor::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#11
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#8
+class Regexp::Expression::Anchor::BeginningOfString < ::Regexp::Expression::Anchor::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#12
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#19
+Regexp::Expression::Anchor::EOL = Regexp::Expression::Anchor::EndOfLine
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#21
+Regexp::Expression::Anchor::EOS = Regexp::Expression::Anchor::EndOfString
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#22
+Regexp::Expression::Anchor::EOSobEOL = Regexp::Expression::Anchor::EndOfStringOrBeforeEndOfLine
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#6
+class Regexp::Expression::Anchor::EndOfLine < ::Regexp::Expression::Anchor::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#13
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#9
+class Regexp::Expression::Anchor::EndOfString < ::Regexp::Expression::Anchor::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#14
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#11
+class Regexp::Expression::Anchor::EndOfStringOrBeforeEndOfLine < ::Regexp::Expression::Anchor::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#15
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#16
+class Regexp::Expression::Anchor::MatchStart < ::Regexp::Expression::Anchor::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#16
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#14
+class Regexp::Expression::Anchor::NonWordBoundary < ::Regexp::Expression::Anchor::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#17
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/anchor.rb#13
+class Regexp::Expression::Anchor::WordBoundary < ::Regexp::Expression::Anchor::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#18
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#64
+module Regexp::Expression::Assertion; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#65
+class Regexp::Expression::Assertion::Base < ::Regexp::Expression::Group::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#148
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#67
+class Regexp::Expression::Assertion::Lookahead < ::Regexp::Expression::Assertion::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#19
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#70
+class Regexp::Expression::Assertion::Lookbehind < ::Regexp::Expression::Assertion::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#20
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#68
+class Regexp::Expression::Assertion::NegativeLookahead < ::Regexp::Expression::Assertion::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#21
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#71
+class Regexp::Expression::Assertion::NegativeLookbehind < ::Regexp::Expression::Assertion::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#22
+ def human_name; end
+end
+
+# alias for symmetry between token symbol and Expression class name
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#74
+Regexp::Expression::Backref = Regexp::Expression::Backreference
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#2
+module Regexp::Expression::Backreference; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#3
+class Regexp::Expression::Backreference::Base < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#155
+ def match_length; end
+
+ # Returns the value of attribute referenced_expression.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#4
+ def referenced_expression; end
+
+ # Sets the attribute referenced_expression
+ #
+ # @param value the value to set the attribute referenced_expression to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#4
+ def referenced_expression=(_arg0); end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#6
+ def initialize_copy(orig); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#140
+ def referential?; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#34
+class Regexp::Expression::Backreference::Name < ::Regexp::Expression::Backreference::Base
+ # @return [Name] a new instance of Name
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#38
+ def initialize(token, options = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#23
+ def human_name; end
+
+ # Returns the value of attribute name.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#35
+ def name; end
+
+ # Returns the value of attribute name.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#35
+ def reference; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#50
+class Regexp::Expression::Backreference::NameCall < ::Regexp::Expression::Backreference::Name
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#24
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#62
+class Regexp::Expression::Backreference::NameRecursionLevel < ::Regexp::Expression::Backreference::Name
+ # @return [NameRecursionLevel] a new instance of NameRecursionLevel
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#65
+ def initialize(token, options = T.unsafe(nil)); end
+
+ # Returns the value of attribute recursion_level.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#63
+ def recursion_level; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#24
+class Regexp::Expression::Backreference::Number < ::Regexp::Expression::Backreference::Base
+ # @return [Number] a new instance of Number
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#28
+ def initialize(token, options = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#25
+ def human_name; end
+
+ # Returns the value of attribute number.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#25
+ def number; end
+
+ # Returns the value of attribute number.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#25
+ def reference; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#49
+class Regexp::Expression::Backreference::NumberCall < ::Regexp::Expression::Backreference::Number
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#27
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#51
+class Regexp::Expression::Backreference::NumberCallRelative < ::Regexp::Expression::Backreference::NumberRelative
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#28
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#53
+class Regexp::Expression::Backreference::NumberRecursionLevel < ::Regexp::Expression::Backreference::NumberRelative
+ # @return [NumberRecursionLevel] a new instance of NumberRecursionLevel
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#56
+ def initialize(token, options = T.unsafe(nil)); end
+
+ # Returns the value of attribute recursion_level.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#54
+ def recursion_level; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#44
+class Regexp::Expression::Backreference::NumberRelative < ::Regexp::Expression::Backreference::Number
+ # Returns the value of attribute effective_number.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#45
+ def effective_number; end
+
+ # Sets the attribute effective_number
+ #
+ # @param value the value to set the attribute effective_number to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#45
+ def effective_number=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#26
+ def human_name; end
+
+ # Returns the value of attribute effective_number.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/backreference.rb#45
+ def reference; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/base.rb#2
+class Regexp::Expression::Base
+ include ::Regexp::Expression::Shared
+ extend ::Regexp::Expression::Shared::ClassMethods
+
+ # @return [Base] a new instance of Base
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#5
+ def initialize(token, options = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match.rb#8
+ def =~(string, offset = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#25
+ def a?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#25
+ def ascii_classes?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#60
+ def attributes; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#8
+ def case_insensitive?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def conditional_level; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def conditional_level=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def custom_to_s_handling; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def custom_to_s_handling=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#20
+ def d?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#20
+ def default_classes?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#14
+ def extended?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#14
+ def free_spacing?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#47
+ def greedy?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#8
+ def i?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#8
+ def ignore_case?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#51
+ def lazy?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def level; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def level=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#3
+ def m?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match.rb#8
+ def match(string, offset = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match.rb#3
+ def match?(string); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match.rb#3
+ def matches?(string); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#3
+ def multiline?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#14
+ def nesting_level; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def options; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def options=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def parent; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def parent=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#56
+ def possessive?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def pre_quantifier_decorations; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def pre_quantifier_decorations=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#14
+ def quantifier; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#17
+ def quantify(*args); end
+
+ # Deprecated. Prefer `#repetitions` which has a more uniform interface.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#26
+ def quantity; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#51
+ def reluctant?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#31
+ def repetitions; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def set_level; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def set_level=(_arg0); end
+
+ # %l Level (depth) of the expression. Returns 'root' for the root
+ # expression, returns zero or higher for all others.
+ #
+ # %> Indentation at expression's level.
+ #
+ # %x Index of the expression at its depth. Available when using
+ # the sprintf_tree method only.
+ #
+ # %s Start offset within the whole expression.
+ # %e End offset within the whole expression.
+ # %S Length of expression.
+ #
+ # %o Coded offset and length, same as '@%s+%S'
+ #
+ # %y Type of expression.
+ # %k Token of expression.
+ # %i ID, same as '%y:%k'
+ # %c Class name
+ #
+ # %q Quantifier info, as {m[,M]}
+ # %Q Quantifier text
+ #
+ # %z Quantifier min
+ # %Z Quantifier max
+ #
+ # %t Base text of the expression (excludes quantifier, if any)
+ # %~t Full text if the expression is terminal, otherwise %i
+ # %T Full text of the expression (includes quantifier, if any)
+ #
+ # %b Basic info, same as '%o %i'
+ # %m Most info, same as '%b %q'
+ # %a All info, same as '%m %t'
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/strfregexp.rb#37
+ def strfre(format = T.unsafe(nil), indent_offset = T.unsafe(nil), index = T.unsafe(nil)); end
+
+ # %l Level (depth) of the expression. Returns 'root' for the root
+ # expression, returns zero or higher for all others.
+ #
+ # %> Indentation at expression's level.
+ #
+ # %x Index of the expression at its depth. Available when using
+ # the sprintf_tree method only.
+ #
+ # %s Start offset within the whole expression.
+ # %e End offset within the whole expression.
+ # %S Length of expression.
+ #
+ # %o Coded offset and length, same as '@%s+%S'
+ #
+ # %y Type of expression.
+ # %k Token of expression.
+ # %i ID, same as '%y:%k'
+ # %c Class name
+ #
+ # %q Quantifier info, as {m[,M]}
+ # %Q Quantifier text
+ #
+ # %z Quantifier min
+ # %Z Quantifier max
+ #
+ # %t Base text of the expression (excludes quantifier, if any)
+ # %~t Full text if the expression is terminal, otherwise %i
+ # %T Full text of the expression (includes quantifier, if any)
+ #
+ # %b Basic info, same as '%o %i'
+ # %m Most info, same as '%b %q'
+ # %a All info, same as '%m %t'
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/strfregexp.rb#37
+ def strfregexp(format = T.unsafe(nil), indent_offset = T.unsafe(nil), index = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def te; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def te=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def text; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def text=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#60
+ def to_h; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#9
+ def to_re(format = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def token; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def token=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def ts; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def ts=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def type; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def type=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#30
+ def u?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#30
+ def unicode_classes?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/base.rb#21
+ def unquantified_clone; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/options.rb#14
+ def x?; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#2
+class Regexp::Expression::CharacterSet < ::Regexp::Expression::Subexpression
+ # @return [CharacterSet] a new instance of CharacterSet
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#9
+ def initialize(token, options = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#19
+ def close; end
+
+ # Returns the value of attribute closed.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#3
+ def closed; end
+
+ # Sets the attribute closed
+ #
+ # @param value the value to set the attribute closed to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#3
+ def closed=(_arg0); end
+
+ # Returns the value of attribute closed.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#3
+ def closed?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#98
+ def match_length; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#15
+ def negate; end
+
+ # Returns the value of attribute negative.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#3
+ def negated?; end
+
+ # Returns the value of attribute negative.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#3
+ def negative; end
+
+ # Sets the attribute negative
+ #
+ # @param value the value to set the attribute negative to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#3
+ def negative=(_arg0); end
+
+ # Returns the value of attribute negative.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#3
+ def negative?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#15
+ def parts; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_set/intersection.rb#3
+class Regexp::Expression::CharacterSet::IntersectedSequence < ::Regexp::Expression::Sequence
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#29
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#98
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_set/intersection.rb#5
+class Regexp::Expression::CharacterSet::Intersection < ::Regexp::Expression::SequenceOperation
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#30
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#98
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_set/intersection.rb#6
+Regexp::Expression::CharacterSet::Intersection::OPERAND = Regexp::Expression::CharacterSet::IntersectedSequence
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_set/range.rb#3
+class Regexp::Expression::CharacterSet::Range < ::Regexp::Expression::Subexpression
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set/range.rb#8
+ def <<(exp); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set/range.rb#14
+ def complete?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#31
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#98
+ def match_length; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#16
+ def parts; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/character_set/range.rb#4
+ def ts; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#2
+module Regexp::Expression::CharacterType; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#5
+class Regexp::Expression::CharacterType::Any < ::Regexp::Expression::CharacterType::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#32
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#3
+class Regexp::Expression::CharacterType::Base < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#98
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#6
+class Regexp::Expression::CharacterType::Digit < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#15
+class Regexp::Expression::CharacterType::ExtendedGrapheme < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#8
+class Regexp::Expression::CharacterType::Hex < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#14
+class Regexp::Expression::CharacterType::Linebreak < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#7
+class Regexp::Expression::CharacterType::NonDigit < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#9
+class Regexp::Expression::CharacterType::NonHex < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#13
+class Regexp::Expression::CharacterType::NonSpace < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#11
+class Regexp::Expression::CharacterType::NonWord < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#12
+class Regexp::Expression::CharacterType::Space < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_type.rb#10
+class Regexp::Expression::CharacterType::Word < ::Regexp::Expression::CharacterType::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/free_space.rb#8
+class Regexp::Expression::Comment < ::Regexp::Expression::FreeSpace
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#33
+ def human_name; end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#130
+ def comment?; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#2
+module Regexp::Expression::Conditional; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#25
+class Regexp::Expression::Conditional::Branch < ::Regexp::Expression::Sequence
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#34
+ def human_name; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#9
+class Regexp::Expression::Conditional::Condition < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#35
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#148
+ def match_length; end
+
+ # Name or number of the referenced capturing group that determines state.
+ # Returns a String if reference is by name, Integer if by number.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#14
+ def reference; end
+
+ # Returns the value of attribute referenced_expression.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#10
+ def referenced_expression; end
+
+ # Sets the attribute referenced_expression
+ #
+ # @param value the value to set the attribute referenced_expression to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#10
+ def referenced_expression=(_arg0); end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#19
+ def initialize_copy(orig); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#141
+ def referential?; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#27
+class Regexp::Expression::Conditional::Expression < ::Regexp::Expression::Subexpression
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#30
+ def <<(exp); end
+
+ # @raise [TooManyBranches]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#34
+ def add_sequence(active_opts = T.unsafe(nil), params = T.unsafe(nil)); end
+
+ # @raise [TooManyBranches]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#34
+ def branch(active_opts = T.unsafe(nil), params = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#50
+ def branches; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#46
+ def condition; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#41
+ def condition=(exp); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#36
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#131
+ def match_length; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#17
+ def parts; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#54
+ def reference; end
+
+ # Returns the value of attribute referenced_expression.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#28
+ def referenced_expression; end
+
+ # Sets the attribute referenced_expression
+ #
+ # @param value the value to set the attribute referenced_expression to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#28
+ def referenced_expression=(_arg0); end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#58
+ def initialize_copy(orig); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#142
+ def referential?; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#3
+class Regexp::Expression::Conditional::TooManyBranches < ::Regexp::Parser::Error
+ # @return [TooManyBranches] a new instance of TooManyBranches
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/conditional.rb#4
+ def initialize; end
+end
+
+# alias for symmetry between Token::* and Expression::*
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#101
+Regexp::Expression::Escape = Regexp::Expression::EscapeSequence
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#2
+module Regexp::Expression::EscapeSequence; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#63
+class Regexp::Expression::EscapeSequence::AbstractMetaControlSequence < ::Regexp::Expression::EscapeSequence::Base
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#64
+ def char; end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#70
+ def control_sequence_to_s(control_sequence); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#75
+ def meta_char_to_codepoint(meta_char); end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#27
+class Regexp::Expression::EscapeSequence::AsciiEscape < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#28
+class Regexp::Expression::EscapeSequence::Backspace < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#3
+class Regexp::Expression::EscapeSequence::Base < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#9
+ def char; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#4
+ def codepoint; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#98
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#29
+class Regexp::Expression::EscapeSequence::Bell < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#37
+class Regexp::Expression::EscapeSequence::Codepoint < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#39
+class Regexp::Expression::EscapeSequence::CodepointList < ::Regexp::Expression::EscapeSequence::Base
+ # @raise [NoMethodError]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#40
+ def char; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#48
+ def chars; end
+
+ # @raise [NoMethodError]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#44
+ def codepoint; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#52
+ def codepoints; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#164
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#81
+class Regexp::Expression::EscapeSequence::Control < ::Regexp::Expression::EscapeSequence::AbstractMetaControlSequence
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#82
+ def codepoint; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#30
+class Regexp::Expression::EscapeSequence::FormFeed < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#36
+class Regexp::Expression::EscapeSequence::Hex < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#21
+class Regexp::Expression::EscapeSequence::Literal < ::Regexp::Expression::EscapeSequence::Base
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#22
+ def char; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#87
+class Regexp::Expression::EscapeSequence::Meta < ::Regexp::Expression::EscapeSequence::AbstractMetaControlSequence
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#88
+ def codepoint; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#93
+class Regexp::Expression::EscapeSequence::MetaControl < ::Regexp::Expression::EscapeSequence::AbstractMetaControlSequence
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#94
+ def codepoint; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#31
+class Regexp::Expression::EscapeSequence::Newline < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#57
+class Regexp::Expression::EscapeSequence::Octal < ::Regexp::Expression::EscapeSequence::Base
+ # source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#58
+ def char; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#32
+class Regexp::Expression::EscapeSequence::Return < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#33
+class Regexp::Expression::EscapeSequence::Tab < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/escape_sequence.rb#34
+class Regexp::Expression::EscapeSequence::VerticalTab < ::Regexp::Expression::EscapeSequence::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/free_space.rb#2
+class Regexp::Expression::FreeSpace < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#148
+ def match_length; end
+
+ # @raise [Regexp::Parser::Error]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/free_space.rb#3
+ def quantify(*_args); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#135
+ def decorative?; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#2
+module Regexp::Expression::Group; end
+
+# Special case. Absence group can match 0.. chars, irrespective of content.
+# TODO: in theory, they *can* exclude match lengths with `.`: `(?~.{3})`
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#19
+class Regexp::Expression::Group::Absence < ::Regexp::Expression::Group::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#172
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#20
+class Regexp::Expression::Group::Atomic < ::Regexp::Expression::Group::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#3
+class Regexp::Expression::Group::Base < ::Regexp::Expression::Subexpression
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#18
+ def parts; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#40
+class Regexp::Expression::Group::Capture < ::Regexp::Expression::Group::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#37
+ def human_name; end
+
+ # Returns the value of attribute number.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#41
+ def identifier; end
+
+ # Returns the value of attribute number.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#41
+ def number; end
+
+ # Sets the attribute number
+ #
+ # @param value the value to set the attribute number to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#41
+ def number=(_arg0); end
+
+ # Returns the value of attribute number_at_level.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#41
+ def number_at_level; end
+
+ # Sets the attribute number_at_level
+ #
+ # @param value the value to set the attribute number_at_level to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#41
+ def number_at_level=(_arg0); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#126
+ def capturing?; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#60
+class Regexp::Expression::Group::Comment < ::Regexp::Expression::Group::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#20
+ def parts; end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#131
+ def comment?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#136
+ def decorative?; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#45
+class Regexp::Expression::Group::Named < ::Regexp::Expression::Group::Capture
+ # @return [Named] a new instance of Named
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#49
+ def initialize(token, options = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#38
+ def human_name; end
+
+ # Returns the value of attribute name.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#46
+ def identifier; end
+
+ # Returns the value of attribute name.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#46
+ def name; end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#54
+ def initialize_copy(orig); end
+end
+
+# TODO: should split off OptionsSwitch in v3.0.0. Maybe even make it no
+# longer inherit from Group because it is effectively a terminal expression.
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#23
+class Regexp::Expression::Group::Options < ::Regexp::Expression::Group::Base
+ # Returns the value of attribute option_changes.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#24
+ def option_changes; end
+
+ # Sets the attribute option_changes
+ #
+ # @param value the value to set the attribute option_changes to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#24
+ def option_changes=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#31
+ def quantify(*args); end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#26
+ def initialize_copy(orig); end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#6
+class Regexp::Expression::Group::Passive < ::Regexp::Expression::Group::Base
+ # @return [Passive] a new instance of Passive
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#9
+ def initialize(*_arg0); end
+
+ # Sets the attribute implicit
+ #
+ # @param value the value to set the attribute implicit to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#7
+ def implicit=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/group.rb#14
+ def implicit?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#19
+ def parts; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/keep.rb#2
+module Regexp::Expression::Keep; end
+
+# TOOD: in regexp_parser v3.0.0 this should possibly be a Subexpression
+# that contains all expressions to its left.
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/keep.rb#5
+class Regexp::Expression::Keep::Mark < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#39
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#148
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/literal.rb#2
+class Regexp::Expression::Literal < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#40
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#105
+ def match_length; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#85
+Regexp::Expression::MatchLength = Regexp::MatchLength
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/posix_class.rb#14
+Regexp::Expression::Nonposixclass = Regexp::Expression::PosixClass
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#121
+Regexp::Expression::Nonproperty = Regexp::Expression::UnicodeProperty
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/posix_class.rb#2
+class Regexp::Expression::PosixClass < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#98
+ def match_length; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/posix_class.rb#7
+ def name; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/posix_class.rb#3
+ def negative?; end
+end
+
+# alias for symmetry between token symbol and Expression class name
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/posix_class.rb#13
+Regexp::Expression::Posixclass = Regexp::Expression::PosixClass
+
+# alias for symmetry between token symbol and Expression class name
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#120
+Regexp::Expression::Property = Regexp::Expression::UnicodeProperty
+
+# TODO: in v3.0.0, maybe put Shared back into Base, and inherit from Base and
+# call super in #initialize, but raise in #quantifier= and #quantify,
+# or introduce an Expression::Quantifiable intermediate class.
+# Or actually allow chaining as a more concise but tricky solution than PR#69.
+#
+# source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#6
+class Regexp::Expression::Quantifier
+ include ::Regexp::Expression::Shared
+ extend ::Regexp::Expression::Shared::ClassMethods
+
+ # @return [Quantifier] a new instance of Quantifier
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#11
+ def initialize(*args); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def conditional_level; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def conditional_level=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def custom_to_s_handling; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def custom_to_s_handling=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#31
+ def greedy?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#31
+ def lazy?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def level; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def level=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#42
+ def max; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#38
+ def min; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#46
+ def mode; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#14
+ def nesting_level; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def options; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def options=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def parent; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def parent=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#31
+ def possessive?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def pre_quantifier_decorations; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def pre_quantifier_decorations=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#14
+ def quantifier; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#31
+ def reluctant?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def set_level; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def set_level=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def te; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def te=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def text; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def text=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#19
+ def to_h; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def token; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def token=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def ts; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def ts=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def type; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def type=(_arg0); end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#52
+ def deprecated_old_init(token, text, _min, _max, _mode = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#64
+ def derived_data; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/quantifier.rb#9
+Regexp::Expression::Quantifier::MODES = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/root.rb#2
+class Regexp::Expression::Root < ::Regexp::Expression::Subexpression
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#41
+ def human_name; end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/classes/root.rb#3
+ def build(options = T.unsafe(nil)); end
+ end
+end
+
+# A sequence of expressions. Differs from a Subexpressions by how it handles
+# quantifiers, as it applies them to its last element instead of itself as
+# a whole subexpression.
+#
+# Used as the base class for the Alternation alternatives, Conditional
+# branches, and CharacterSet::Intersection intersected sequences.
+#
+# source://regexp_parser//lib/regexp_parser/expression/sequence.rb#8
+class Regexp::Expression::Sequence < ::Regexp::Expression::Subexpression
+ # source://regexp_parser//lib/regexp_parser/expression/sequence.rb#27
+ def quantify(token, *args); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/sequence.rb#23
+ def ts; end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/sequence.rb#10
+ def add_to(exp, params = T.unsafe(nil), active_opts = T.unsafe(nil)); end
+ end
+end
+
+# abstract class
+#
+# source://regexp_parser//lib/regexp_parser/expression/sequence_operation.rb#3
+class Regexp::Expression::SequenceOperation < ::Regexp::Expression::Subexpression
+ # source://regexp_parser//lib/regexp_parser/expression/sequence_operation.rb#12
+ def <<(exp); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/sequence_operation.rb#16
+ def add_sequence(active_opts = T.unsafe(nil), params = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#5
+ def operands; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#9
+ def operator; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#22
+ def parts; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#5
+ def sequences; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/sequence_operation.rb#8
+ def ts; end
+end
+
+# alias for symmetry between token symbol and Expression class name
+#
+# source://regexp_parser//lib/regexp_parser/expression/classes/character_set.rb#25
+Regexp::Expression::Set = Regexp::Expression::CharacterSet
+
+# source://regexp_parser//lib/regexp_parser/expression/shared.rb#2
+module Regexp::Expression::Shared
+ mixes_in_class_methods ::Regexp::Expression::Shared::ClassMethods
+
+ # Deep-compare two expressions for equality.
+ #
+ # When changing the conditions, please make sure to update
+ # #pretty_print_instance_variables so that it includes all relevant values.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#101
+ def ==(other); end
+
+ # Deep-compare two expressions for equality.
+ #
+ # When changing the conditions, please make sure to update
+ # #pretty_print_instance_variables so that it includes all relevant values.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#101
+ def ===(other); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#51
+ def base_length; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#124
+ def capturing?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#96
+ def coded_offset; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#128
+ def comment?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#133
+ def decorative?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#47
+ def ends_at(include_quantifier = T.unsafe(nil)); end
+
+ # Deep-compare two expressions for equality.
+ #
+ # When changing the conditions, please make sure to update
+ # #pretty_print_instance_variables so that it includes all relevant values.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#101
+ def eql?(other); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#55
+ def full_length; end
+
+ # default implementation, e.g. "atomic group", "hex escape", "word type", ..
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#4
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/printing.rb#3
+ def inspect; end
+
+ # Test if this expression has the given test_token, and optionally a given
+ # test_type.
+ #
+ # # Any expressions
+ # exp.is? :* # always returns true
+ #
+ # # is it a :capture
+ # exp.is? :capture
+ #
+ # # is it a :character and a :set
+ # exp.is? :character, :set
+ #
+ # # is it a :meta :dot
+ # exp.is? :dot, :meta
+ #
+ # # is it a :meta or :escape :dot
+ # exp.is? :dot, [:meta, :escape]
+ #
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#36
+ def is?(test_token, test_type = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#100
+ def nesting_level=(lvl); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#92
+ def offset; end
+
+ # Test if this expression matches an entry in the given scope spec.
+ #
+ # A scope spec can be one of:
+ #
+ # . An array: Interpreted as a set of tokens, tested for inclusion
+ # of the expression's token.
+ #
+ # . A hash: Where the key is interpreted as the expression type
+ # and the value is either a symbol or an array. In this
+ # case, when the scope is a hash, one_of? calls itself to
+ # evaluate the key's value.
+ #
+ # . A symbol: matches the expression's token or type, depending on
+ # the level of the call. If one_of? is called directly with
+ # a symbol then it will always be checked against the
+ # type of the expression. If it's being called for a value
+ # from a hash, it will be checked against the token of the
+ # expression.
+ #
+ # # any expression
+ # exp.one_of?(:*) # always true
+ #
+ # # like exp.type?(:group)
+ # exp.one_of?(:group)
+ #
+ # # any expression of type meta
+ # exp.one_of?(:meta => :*)
+ #
+ # # meta dots and alternations
+ # exp.one_of?(:meta => [:dot, :alternation])
+ #
+ # # meta dots and any set tokens
+ # exp.one_of?({meta: [:dot], set: :*})
+ #
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#75
+ def one_of?(scope, top = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#111
+ def optional?; end
+
+ # default implementation
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#4
+ def parts; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#84
+ def pre_quantifier_decoration(expression_format = T.unsafe(nil)); end
+
+ # Make pretty-print work despite #inspect implementation.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/printing.rb#12
+ def pretty_print(q); end
+
+ # Called by pretty_print (ruby/pp) and #inspect.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/printing.rb#17
+ def pretty_print_instance_variables; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#115
+ def quantified?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#106
+ def quantifier=(qtf); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#88
+ def quantifier_affix(expression_format = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#138
+ def referential?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#43
+ def starts_at; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#120
+ def terminal?; end
+
+ # #to_s reproduces the original source, as an unparser would.
+ #
+ # It takes an optional format argument.
+ #
+ # Example:
+ #
+ # lit = Regexp::Parser.parse(/a +/x)[0]
+ #
+ # lit.to_s # => 'a+' # default; with quantifier
+ # lit.to_s(:full) # => 'a+' # default; with quantifier
+ # lit.to_s(:base) # => 'a' # without quantifier
+ # lit.to_s(:original) # => 'a +' # with quantifier AND intermittent decorations
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#72
+ def to_s(format = T.unsafe(nil)); end
+
+ # #to_s reproduces the original source, as an unparser would.
+ #
+ # It takes an optional format argument.
+ #
+ # Example:
+ #
+ # lit = Regexp::Parser.parse(/a +/x)[0]
+ #
+ # lit.to_s # => 'a+' # default; with quantifier
+ # lit.to_s(:full) # => 'a+' # default; with quantifier
+ # lit.to_s(:base) # => 'a' # without quantifier
+ # lit.to_s(:original) # => 'a +' # with quantifier AND intermittent decorations
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#72
+ def to_str(format = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/construct.rb#37
+ def token_class; end
+
+ # Test if this expression has the given test_type, which can be either
+ # a symbol or an array of symbols to check against the expression's type.
+ #
+ # # is it a :group expression
+ # exp.type? :group
+ #
+ # # is it a :set, or :meta
+ # exp.type? [:set, :meta]
+ #
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#13
+ def type?(test_type); end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#18
+ def init_from_token_and_options(token, options = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#32
+ def initialize_copy(orig); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#10
+ def intersperse(expressions, separator); end
+
+ class << self
+ # @private
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/shared.rb#5
+ def included(mod); end
+ end
+end
+
+# filled in ./methods/*.rb
+#
+# source://regexp_parser//lib/regexp_parser/expression/shared.rb#3
+module Regexp::Expression::Shared::ClassMethods
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#125
+ def capturing?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#129
+ def comment?; end
+
+ # Convenience method to init a valid Expression without a Regexp::Token
+ #
+ # @raise [ArgumentError]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/construct.rb#5
+ def construct(params = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/construct.rb#15
+ def construct_defaults; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#134
+ def decorative?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#139
+ def referential?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#121
+ def terminal?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/construct.rb#25
+ def token_class; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#2
+class Regexp::Expression::Subexpression < ::Regexp::Expression::Base
+ include ::Enumerable
+
+ # @return [Subexpression] a new instance of Subexpression
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#7
+ def initialize(token, options = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#20
+ def <<(exp); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def [](*args, &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def at(*args, &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#33
+ def dig(*indices); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def each(*args, &block); end
+
+ # Traverses the expression, passing each recursive child to the
+ # given block.
+ # If the block takes two arguments, the indices of the children within
+ # their parents are also passed to it.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/traverse.rb#8
+ def each_expression(include_self = T.unsafe(nil), &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def empty?(*args, &block); end
+
+ # Returns the value of attribute expressions.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#5
+ def expressions; end
+
+ # Sets the attribute expressions
+ #
+ # @param value the value to set the attribute expressions to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#5
+ def expressions=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#50
+ def extract_quantifier_target(quantifier_description); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def fetch(*args, &block); end
+
+ # Returns a new array with the results of calling the given block once
+ # for every expression. If a block is not given, returns an array with
+ # each expression and its level index as an array.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/traverse.rb#56
+ def flat_map(include_self = T.unsafe(nil), &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def index(*args, &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#118
+ def inner_match_length; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def join(*args, &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def last(*args, &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def length(*args, &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#111
+ def match_length; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/parts.rb#21
+ def parts; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/strfregexp.rb#102
+ def strfre_tree(format = T.unsafe(nil), include_self = T.unsafe(nil), separator = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/strfregexp.rb#102
+ def strfregexp_tree(format = T.unsafe(nil), include_self = T.unsafe(nil), separator = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#39
+ def te; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#43
+ def to_h; end
+
+ # Traverses the subexpression (depth-first, pre-order) and calls the given
+ # block for each expression with three arguments; the traversal event,
+ # the expression, and the index of the expression within its parent.
+ #
+ # The event argument is passed as follows:
+ #
+ # - For subexpressions, :enter upon entering the subexpression, and
+ # :exit upon exiting it.
+ #
+ # - For terminal expressions, :visit is called once.
+ #
+ # Returns self.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/traverse.rb#32
+ def traverse(include_self = T.unsafe(nil), &block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#27
+ def values_at(*args, &block); end
+
+ # Traverses the subexpression (depth-first, pre-order) and calls the given
+ # block for each expression with three arguments; the traversal event,
+ # the expression, and the index of the expression within its parent.
+ #
+ # The event argument is passed as follows:
+ #
+ # - For subexpressions, :enter upon entering the subexpression, and
+ # :exit upon exiting it.
+ #
+ # - For terminal expressions, :visit is called once.
+ #
+ # Returns self.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/traverse.rb#32
+ def walk(include_self = T.unsafe(nil), &block); end
+
+ protected
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/traverse.rb#66
+ def each_expression_with_index(&block); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/traverse.rb#73
+ def each_expression_without_index(&block); end
+
+ private
+
+ # Override base method to clone the expressions as well.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/subexpression.rb#13
+ def initialize_copy(orig); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/tests.rb#122
+ def terminal?; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#2
+module Regexp::Expression::UnicodeProperty; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#112
+class Regexp::Expression::UnicodeProperty::Age < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#17
+class Regexp::Expression::UnicodeProperty::Alnum < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#18
+class Regexp::Expression::UnicodeProperty::Alpha < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#35
+class Regexp::Expression::UnicodeProperty::Any < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#19
+class Regexp::Expression::UnicodeProperty::Ascii < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#36
+class Regexp::Expression::UnicodeProperty::Assigned < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#3
+class Regexp::Expression::UnicodeProperty::Base < ::Regexp::Expression::Base
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#98
+ def match_length; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#8
+ def name; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#4
+ def negative?; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#12
+ def shortcut; end
+end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#20
+class Regexp::Expression::UnicodeProperty::Blank < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#116
+class Regexp::Expression::UnicodeProperty::Block < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#21
+class Regexp::Expression::UnicodeProperty::Cntrl < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#101
+module Regexp::Expression::UnicodeProperty::Codepoint; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#104
+class Regexp::Expression::UnicodeProperty::Codepoint::Any < ::Regexp::Expression::UnicodeProperty::Codepoint::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#102
+class Regexp::Expression::UnicodeProperty::Codepoint::Base < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#105
+class Regexp::Expression::UnicodeProperty::Codepoint::Control < ::Regexp::Expression::UnicodeProperty::Codepoint::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#106
+class Regexp::Expression::UnicodeProperty::Codepoint::Format < ::Regexp::Expression::UnicodeProperty::Codepoint::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#108
+class Regexp::Expression::UnicodeProperty::Codepoint::PrivateUse < ::Regexp::Expression::UnicodeProperty::Codepoint::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#107
+class Regexp::Expression::UnicodeProperty::Codepoint::Surrogate < ::Regexp::Expression::UnicodeProperty::Codepoint::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#109
+class Regexp::Expression::UnicodeProperty::Codepoint::Unassigned < ::Regexp::Expression::UnicodeProperty::Codepoint::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#113
+class Regexp::Expression::UnicodeProperty::Derived < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#22
+class Regexp::Expression::UnicodeProperty::Digit < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#114
+class Regexp::Expression::UnicodeProperty::Emoji < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#23
+class Regexp::Expression::UnicodeProperty::Graph < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#38
+module Regexp::Expression::UnicodeProperty::Letter; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#41
+class Regexp::Expression::UnicodeProperty::Letter::Any < ::Regexp::Expression::UnicodeProperty::Letter::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#39
+class Regexp::Expression::UnicodeProperty::Letter::Base < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#42
+class Regexp::Expression::UnicodeProperty::Letter::Cased < ::Regexp::Expression::UnicodeProperty::Letter::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#44
+class Regexp::Expression::UnicodeProperty::Letter::Lowercase < ::Regexp::Expression::UnicodeProperty::Letter::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#46
+class Regexp::Expression::UnicodeProperty::Letter::Modifier < ::Regexp::Expression::UnicodeProperty::Letter::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#47
+class Regexp::Expression::UnicodeProperty::Letter::Other < ::Regexp::Expression::UnicodeProperty::Letter::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#45
+class Regexp::Expression::UnicodeProperty::Letter::Titlecase < ::Regexp::Expression::UnicodeProperty::Letter::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#43
+class Regexp::Expression::UnicodeProperty::Letter::Uppercase < ::Regexp::Expression::UnicodeProperty::Letter::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#24
+class Regexp::Expression::UnicodeProperty::Lower < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#50
+module Regexp::Expression::UnicodeProperty::Mark; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#53
+class Regexp::Expression::UnicodeProperty::Mark::Any < ::Regexp::Expression::UnicodeProperty::Mark::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#51
+class Regexp::Expression::UnicodeProperty::Mark::Base < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#54
+class Regexp::Expression::UnicodeProperty::Mark::Combining < ::Regexp::Expression::UnicodeProperty::Mark::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#57
+class Regexp::Expression::UnicodeProperty::Mark::Enclosing < ::Regexp::Expression::UnicodeProperty::Mark::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#55
+class Regexp::Expression::UnicodeProperty::Mark::Nonspacing < ::Regexp::Expression::UnicodeProperty::Mark::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#56
+class Regexp::Expression::UnicodeProperty::Mark::Spacing < ::Regexp::Expression::UnicodeProperty::Mark::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#33
+class Regexp::Expression::UnicodeProperty::Newline < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#60
+module Regexp::Expression::UnicodeProperty::Number; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#63
+class Regexp::Expression::UnicodeProperty::Number::Any < ::Regexp::Expression::UnicodeProperty::Number::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#61
+class Regexp::Expression::UnicodeProperty::Number::Base < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#64
+class Regexp::Expression::UnicodeProperty::Number::Decimal < ::Regexp::Expression::UnicodeProperty::Number::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#65
+class Regexp::Expression::UnicodeProperty::Number::Letter < ::Regexp::Expression::UnicodeProperty::Number::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#66
+class Regexp::Expression::UnicodeProperty::Number::Other < ::Regexp::Expression::UnicodeProperty::Number::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#25
+class Regexp::Expression::UnicodeProperty::Print < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#26
+class Regexp::Expression::UnicodeProperty::Punct < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#69
+module Regexp::Expression::UnicodeProperty::Punctuation; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#72
+class Regexp::Expression::UnicodeProperty::Punctuation::Any < ::Regexp::Expression::UnicodeProperty::Punctuation::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#70
+class Regexp::Expression::UnicodeProperty::Punctuation::Base < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#76
+class Regexp::Expression::UnicodeProperty::Punctuation::Close < ::Regexp::Expression::UnicodeProperty::Punctuation::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#73
+class Regexp::Expression::UnicodeProperty::Punctuation::Connector < ::Regexp::Expression::UnicodeProperty::Punctuation::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#74
+class Regexp::Expression::UnicodeProperty::Punctuation::Dash < ::Regexp::Expression::UnicodeProperty::Punctuation::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#78
+class Regexp::Expression::UnicodeProperty::Punctuation::Final < ::Regexp::Expression::UnicodeProperty::Punctuation::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#77
+class Regexp::Expression::UnicodeProperty::Punctuation::Initial < ::Regexp::Expression::UnicodeProperty::Punctuation::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#75
+class Regexp::Expression::UnicodeProperty::Punctuation::Open < ::Regexp::Expression::UnicodeProperty::Punctuation::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#79
+class Regexp::Expression::UnicodeProperty::Punctuation::Other < ::Regexp::Expression::UnicodeProperty::Punctuation::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#115
+class Regexp::Expression::UnicodeProperty::Script < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#82
+module Regexp::Expression::UnicodeProperty::Separator; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#85
+class Regexp::Expression::UnicodeProperty::Separator::Any < ::Regexp::Expression::UnicodeProperty::Separator::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#83
+class Regexp::Expression::UnicodeProperty::Separator::Base < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#87
+class Regexp::Expression::UnicodeProperty::Separator::Line < ::Regexp::Expression::UnicodeProperty::Separator::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#88
+class Regexp::Expression::UnicodeProperty::Separator::Paragraph < ::Regexp::Expression::UnicodeProperty::Separator::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#86
+class Regexp::Expression::UnicodeProperty::Separator::Space < ::Regexp::Expression::UnicodeProperty::Separator::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#27
+class Regexp::Expression::UnicodeProperty::Space < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#91
+module Regexp::Expression::UnicodeProperty::Symbol; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#94
+class Regexp::Expression::UnicodeProperty::Symbol::Any < ::Regexp::Expression::UnicodeProperty::Symbol::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#92
+class Regexp::Expression::UnicodeProperty::Symbol::Base < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#96
+class Regexp::Expression::UnicodeProperty::Symbol::Currency < ::Regexp::Expression::UnicodeProperty::Symbol::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#95
+class Regexp::Expression::UnicodeProperty::Symbol::Math < ::Regexp::Expression::UnicodeProperty::Symbol::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#97
+class Regexp::Expression::UnicodeProperty::Symbol::Modifier < ::Regexp::Expression::UnicodeProperty::Symbol::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#98
+class Regexp::Expression::UnicodeProperty::Symbol::Other < ::Regexp::Expression::UnicodeProperty::Symbol::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#28
+class Regexp::Expression::UnicodeProperty::Upper < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#29
+class Regexp::Expression::UnicodeProperty::Word < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#31
+class Regexp::Expression::UnicodeProperty::XPosixPunct < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/unicode_property.rb#30
+class Regexp::Expression::UnicodeProperty::Xdigit < ::Regexp::Expression::UnicodeProperty::Base; end
+
+# source://regexp_parser//lib/regexp_parser/expression/classes/free_space.rb#11
+class Regexp::Expression::WhiteSpace < ::Regexp::Expression::FreeSpace
+ # source://regexp_parser//lib/regexp_parser/expression/methods/human_name.rb#42
+ def human_name; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/classes/free_space.rb#12
+ def merge(exp); end
+end
+
+# A very thin wrapper around the scanner that breaks quantified literal runs,
+# collects emitted tokens into an array, calculates their nesting depth, and
+# normalizes tokens for the parser, and checks if they are implemented by the
+# given syntax flavor.
+#
+# source://regexp_parser//lib/regexp_parser/lexer.rb#5
+class Regexp::Lexer
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#71
+ def emit(token); end
+
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#20
+ def lex(input, syntax = T.unsafe(nil), options: T.unsafe(nil), collect_tokens: T.unsafe(nil), &block); end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#91
+ def ascend(type, token); end
+
+ # Returns the value of attribute block.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def block; end
+
+ # Sets the attribute block
+ #
+ # @param value the value to set the attribute block to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def block=(_arg0); end
+
+ # if a codepoint list is followed by a quantifier, that quantifier applies
+ # to the last codepoint, e.g. /\u{61 62 63}{3}/ =~ 'abccc'
+ # c.f. #break_literal.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#143
+ def break_codepoint_list(token); end
+
+ # called by scan to break a literal run that is longer than one character
+ # into two separate tokens when it is followed by a quantifier
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#123
+ def break_literal(token); end
+
+ # Returns the value of attribute collect_tokens.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def collect_tokens; end
+
+ # Sets the attribute collect_tokens
+ #
+ # @param value the value to set the attribute collect_tokens to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def collect_tokens=(_arg0); end
+
+ # Returns the value of attribute conditional_nesting.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def conditional_nesting; end
+
+ # Sets the attribute conditional_nesting
+ #
+ # @param value the value to set the attribute conditional_nesting to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def conditional_nesting=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#106
+ def descend(type, token); end
+
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#162
+ def merge_condition(current, last); end
+
+ # Returns the value of attribute nesting.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def nesting; end
+
+ # Sets the attribute nesting
+ #
+ # @param value the value to set the attribute nesting to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def nesting=(_arg0); end
+
+ # Returns the value of attribute preprev_token.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def preprev_token; end
+
+ # Sets the attribute preprev_token
+ #
+ # @param value the value to set the attribute preprev_token to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def preprev_token=(_arg0); end
+
+ # Returns the value of attribute prev_token.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def prev_token; end
+
+ # Sets the attribute prev_token
+ #
+ # @param value the value to set the attribute prev_token to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def prev_token=(_arg0); end
+
+ # Returns the value of attribute set_nesting.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def set_nesting; end
+
+ # Sets the attribute set_nesting
+ #
+ # @param value the value to set the attribute set_nesting to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def set_nesting=(_arg0); end
+
+ # Returns the value of attribute shift.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def shift; end
+
+ # Sets the attribute shift
+ #
+ # @param value the value to set the attribute shift to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def shift=(_arg0); end
+
+ # Returns the value of attribute tokens.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def tokens; end
+
+ # Sets the attribute tokens
+ #
+ # @param value the value to set the attribute tokens to.
+ #
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#87
+ def tokens=(_arg0); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#16
+ def lex(input, syntax = T.unsafe(nil), options: T.unsafe(nil), collect_tokens: T.unsafe(nil), &block); end
+
+ # source://regexp_parser//lib/regexp_parser/lexer.rb#16
+ def scan(input, syntax = T.unsafe(nil), options: T.unsafe(nil), collect_tokens: T.unsafe(nil), &block); end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/lexer.rb#12
+Regexp::Lexer::CLOSING_TOKENS = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/lexer.rb#14
+Regexp::Lexer::CONDITION_TOKENS = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/lexer.rb#7
+Regexp::Lexer::OPENING_TOKENS = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#1
+class Regexp::MatchLength
+ include ::Enumerable
+
+ # @return [MatchLength] a new instance of MatchLength
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#9
+ def initialize(exp, opts = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#24
+ def each(opts = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#35
+ def endless_each; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#44
+ def fixed?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#40
+ def include?(length); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#60
+ def inspect; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#52
+ def max; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#48
+ def min; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#56
+ def minmax; end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#65
+ def to_re; end
+
+ private
+
+ # Returns the value of attribute base_max.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def base_max; end
+
+ # Sets the attribute base_max
+ #
+ # @param value the value to set the attribute base_max to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def base_max=(_arg0); end
+
+ # Returns the value of attribute base_min.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def base_min; end
+
+ # Sets the attribute base_min
+ #
+ # @param value the value to set the attribute base_min to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def base_min=(_arg0); end
+
+ # Returns the value of attribute exp_class.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def exp_class; end
+
+ # Sets the attribute exp_class
+ #
+ # @param value the value to set the attribute exp_class to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def exp_class=(_arg0); end
+
+ # Returns the value of attribute max_rep.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def max_rep; end
+
+ # Sets the attribute max_rep
+ #
+ # @param value the value to set the attribute max_rep to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def max_rep=(_arg0); end
+
+ # Returns the value of attribute min_rep.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def min_rep; end
+
+ # Sets the attribute min_rep
+ #
+ # @param value the value to set the attribute min_rep to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def min_rep=(_arg0); end
+
+ # Returns the value of attribute reify.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def reify; end
+
+ # Sets the attribute reify
+ #
+ # @param value the value to set the attribute reify to.
+ #
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#71
+ def reify=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#74
+ def test_regexp; end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/expression/methods/match_length.rb#4
+ def of(obj); end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/version.rb#2
+class Regexp::Parser
+ include ::Regexp::Expression
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#25
+ def parse(input, syntax = T.unsafe(nil), options: T.unsafe(nil), &block); end
+
+ private
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#573
+ def active_opts; end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#99
+ def anchor(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#262
+ def assign_effective_number(exp); end
+
+ # Assigns referenced expressions to refering expressions, e.g. if there is
+ # an instance of Backreference::Number, its #referenced_expression is set to
+ # the instance of Group::Capture that it refers to via its number.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#580
+ def assign_referenced_expressions; end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#227
+ def backref(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#202
+ def captured_group_count_at_level; end
+
+ # Returns the value of attribute captured_group_counts.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def captured_group_counts; end
+
+ # Sets the attribute captured_group_counts
+ #
+ # @param value the value to set the attribute captured_group_counts to.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def captured_group_counts=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#569
+ def close_completed_character_set_range; end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#210
+ def close_group; end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#537
+ def close_set; end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#269
+ def conditional(token); end
+
+ # Returns the value of attribute conditional_nesting.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def conditional_nesting; end
+
+ # Sets the attribute conditional_nesting
+ #
+ # @param value the value to set the attribute conditional_nesting to.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def conditional_nesting=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#206
+ def count_captured_group; end
+
+ # @yield [node]
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#216
+ def decrease_nesting; end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#305
+ def escape(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#60
+ def extract_options(input, options); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#349
+ def free_space(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#114
+ def group(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#508
+ def increase_group_level(exp); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#548
+ def intersection(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#360
+ def keep(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#364
+ def literal(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#368
+ def meta(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#533
+ def negate_set; end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#299
+ def nest(exp); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#294
+ def nest_conditional(exp); end
+
+ # Returns the value of attribute nesting.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def nesting; end
+
+ # Sets the attribute nesting
+ #
+ # @param value the value to set the attribute nesting to.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def nesting=(_arg0); end
+
+ # Returns the value of attribute node.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def node; end
+
+ # Sets the attribute node
+ #
+ # @param value the value to set the attribute node to.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def node=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#165
+ def open_group(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#526
+ def open_set(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#130
+ def options_group(token); end
+
+ # Returns the value of attribute options_stack.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def options_stack; end
+
+ # Sets the attribute options_stack
+ #
+ # @param value the value to set the attribute options_stack to.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def options_stack=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#76
+ def parse_token(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#390
+ def posixclass(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#397
+ def property(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#478
+ def quantifier(token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#541
+ def range(token); end
+
+ # Returns the value of attribute root.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def root; end
+
+ # Sets the attribute root
+ #
+ # @param value the value to set the attribute root to.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def root=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#379
+ def sequence_operation(klass, token); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#514
+ def set(token); end
+
+ # Returns the value of attribute switching_options.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def switching_options; end
+
+ # Sets the attribute switching_options
+ #
+ # @param value the value to set the attribute switching_options to.
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#56
+ def switching_options=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#198
+ def total_captured_group_count; end
+
+ # source://regexp_parser//lib/regexp_parser/parser.rb#552
+ def type(token); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/parser.rb#21
+ def parse(input, syntax = T.unsafe(nil), options: T.unsafe(nil), &block); end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/parser.rb#128
+Regexp::Parser::ENC_FLAGS = T.let(T.unsafe(nil), Array)
+
+# base class for all gem-specific errors
+#
+# source://regexp_parser//lib/regexp_parser/error.rb#3
+class Regexp::Parser::Error < ::StandardError; end
+
+# source://regexp_parser//lib/regexp_parser/parser.rb#127
+Regexp::Parser::MOD_FLAGS = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/parser.rb#7
+class Regexp::Parser::ParserError < ::Regexp::Parser::Error; end
+
+# source://regexp_parser//lib/regexp_parser/parser.rb#394
+Regexp::Parser::UP = Regexp::Expression::UnicodeProperty
+
+# source://regexp_parser//lib/regexp_parser/parser.rb#395
+Regexp::Parser::UPTokens = Regexp::Syntax::Token::UnicodeProperty
+
+# source://regexp_parser//lib/regexp_parser/parser.rb#15
+class Regexp::Parser::UnknownTokenError < ::Regexp::Parser::ParserError
+ # @return [UnknownTokenError] a new instance of UnknownTokenError
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#16
+ def initialize(type, token); end
+end
+
+# source://regexp_parser//lib/regexp_parser/parser.rb#9
+class Regexp::Parser::UnknownTokenTypeError < ::Regexp::Parser::ParserError
+ # @return [UnknownTokenTypeError] a new instance of UnknownTokenTypeError
+ #
+ # source://regexp_parser//lib/regexp_parser/parser.rb#10
+ def initialize(type, token); end
+end
+
+# source://regexp_parser//lib/regexp_parser/version.rb#3
+Regexp::Parser::VERSION = T.let(T.unsafe(nil), String)
+
+# source://regexp_parser//lib/regexp_parser/scanner/errors/scanner_error.rb#3
+class Regexp::Scanner
+ # Emits an array with the details of the scanned pattern
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2405
+ def emit(type, token, text); end
+
+ # only public for #||= to work on ruby <= 2.5
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2430
+ def literal_run; end
+
+ # only public for #||= to work on ruby <= 2.5
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2430
+ def literal_run=(_arg0); end
+
+ # @raise [PrematureEndError]
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#24
+ def scan(input_object, options: T.unsafe(nil), collect_tokens: T.unsafe(nil), &block); end
+
+ private
+
+ # Appends one or more characters to the literal buffer, to be emitted later
+ # by a call to emit_literal.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2467
+ def append_literal(data, ts, te); end
+
+ # Returns the value of attribute block.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def block; end
+
+ # Sets the attribute block
+ #
+ # @param value the value to set the attribute block to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def block=(_arg0); end
+
+ # Returns the value of attribute char_pos.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def char_pos; end
+
+ # Sets the attribute char_pos
+ #
+ # @param value the value to set the attribute char_pos to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def char_pos=(_arg0); end
+
+ # Returns the value of attribute collect_tokens.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def collect_tokens; end
+
+ # Sets the attribute collect_tokens
+ #
+ # @param value the value to set the attribute collect_tokens to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def collect_tokens=(_arg0); end
+
+ # Returns the value of attribute conditional_stack.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def conditional_stack; end
+
+ # Sets the attribute conditional_stack
+ #
+ # @param value the value to set the attribute conditional_stack to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def conditional_stack=(_arg0); end
+
+ # Copy from ts to te from data as text
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2461
+ def copy(data, ts, te); end
+
+ # Emits the literal run collected by calls to the append_literal method.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2472
+ def emit_literal; end
+
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2507
+ def emit_meta_control_sequence(data, ts, te, token); end
+
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2478
+ def emit_options(text); end
+
+ # Returns the value of attribute free_spacing.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def free_spacing; end
+
+ # Sets the attribute free_spacing
+ #
+ # @param value the value to set the attribute free_spacing to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def free_spacing=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2440
+ def free_spacing?(input_object, options); end
+
+ # Returns the value of attribute group_depth.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def group_depth; end
+
+ # Sets the attribute group_depth
+ #
+ # @param value the value to set the attribute group_depth to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def group_depth=(_arg0); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2452
+ def in_group?; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2456
+ def in_set?; end
+
+ # Returns the value of attribute prev_token.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def prev_token; end
+
+ # Sets the attribute prev_token
+ #
+ # @param value the value to set the attribute prev_token to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def prev_token=(_arg0); end
+
+ # Returns the value of attribute set_depth.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def set_depth; end
+
+ # Sets the attribute set_depth
+ #
+ # @param value the value to set the attribute set_depth to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def set_depth=(_arg0); end
+
+ # Returns the value of attribute spacing_stack.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def spacing_stack; end
+
+ # Sets the attribute spacing_stack
+ #
+ # @param value the value to set the attribute spacing_stack to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def spacing_stack=(_arg0); end
+
+ # Returns the value of attribute tokens.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def tokens; end
+
+ # Sets the attribute tokens
+ #
+ # @param value the value to set the attribute tokens to.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2434
+ def tokens=(_arg0); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2391
+ def long_prop_map; end
+
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2395
+ def parse_prop_map(name); end
+
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2399
+ def posix_classes; end
+
+ # Scans the given regular expression text, or Regexp object and collects the
+ # emitted token into an array that gets returned at the end. If a block is
+ # given, it gets called for each emitted token.
+ #
+ # This method may raise errors if a syntax error is encountered.
+ # --------------------------------------------------------------------------
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#20
+ def scan(input_object, options: T.unsafe(nil), collect_tokens: T.unsafe(nil), &block); end
+
+ # lazy-load property maps when first needed
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner.rb#2387
+ def short_prop_map; end
+ end
+end
+
+# Invalid back reference. Used for name a number refs/calls.
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#44
+class Regexp::Scanner::InvalidBackrefError < ::Regexp::Scanner::ValidationError
+ # @return [InvalidBackrefError] a new instance of InvalidBackrefError
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#45
+ def initialize(what, reason); end
+end
+
+# Invalid group. Used for named groups.
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#29
+class Regexp::Scanner::InvalidGroupError < ::Regexp::Scanner::ValidationError
+ # @return [InvalidGroupError] a new instance of InvalidGroupError
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#30
+ def initialize(what, reason); end
+end
+
+# Invalid groupOption. Used for inline options.
+# TODO: should become InvalidGroupOptionError in v3.0.0 for consistency
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#37
+class Regexp::Scanner::InvalidGroupOption < ::Regexp::Scanner::ValidationError
+ # @return [InvalidGroupOption] a new instance of InvalidGroupOption
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#38
+ def initialize(option, text); end
+end
+
+# Invalid sequence format. Used for escape sequences, mainly.
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#22
+class Regexp::Scanner::InvalidSequenceError < ::Regexp::Scanner::ValidationError
+ # @return [InvalidSequenceError] a new instance of InvalidSequenceError
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#23
+ def initialize(what = T.unsafe(nil), where = T.unsafe(nil)); end
+end
+
+# Unexpected end of pattern
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/premature_end_error.rb#3
+class Regexp::Scanner::PrematureEndError < ::Regexp::Scanner::ScannerError
+ # @return [PrematureEndError] a new instance of PrematureEndError
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/premature_end_error.rb#4
+ def initialize(where = T.unsafe(nil)); end
+end
+
+# General scanner error (catch all)
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/scanner_error.rb#5
+class Regexp::Scanner::ScannerError < ::Regexp::Parser::Error; end
+
+# The POSIX class name was not recognized by the scanner.
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#58
+class Regexp::Scanner::UnknownPosixClassError < ::Regexp::Scanner::ValidationError
+ # @return [UnknownPosixClassError] a new instance of UnknownPosixClassError
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#59
+ def initialize(text, _); end
+end
+
+# The property name was not recognized by the scanner.
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#51
+class Regexp::Scanner::UnknownUnicodePropertyError < ::Regexp::Scanner::ValidationError
+ # @return [UnknownUnicodePropertyError] a new instance of UnknownUnicodePropertyError
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#52
+ def initialize(name, _); end
+end
+
+# Base for all scanner validation errors
+#
+# source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#3
+class Regexp::Scanner::ValidationError < ::Regexp::Scanner::ScannerError
+ class << self
+ # Centralizes and unifies the handling of validation related errors.
+ #
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#5
+ def for(type, problem, reason = T.unsafe(nil)); end
+
+ # source://regexp_parser//lib/regexp_parser/scanner/errors/validation_error.rb#9
+ def types; end
+ end
+end
+
+# After loading all the tokens the map is full. Extract all tokens and types
+# into the All and Types constants.
+#
+# source://regexp_parser//lib/regexp_parser/syntax.rb#3
+module Regexp::Syntax
+ private
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#61
+ def comparable(name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#44
+ def const_missing(const_name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#51
+ def fallback_version_class(version); end
+
+ # Returns the syntax specification class for the given syntax
+ # version name. The special names 'any' and '*' return Syntax::Any.
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#22
+ def for(name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#26
+ def new(name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#57
+ def specified_versions; end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#32
+ def supported?(name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#36
+ def version_class(version); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#61
+ def comparable(name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#44
+ def const_missing(const_name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#51
+ def fallback_version_class(version); end
+
+ # Returns the syntax specification class for the given syntax
+ # version name. The special names 'any' and '*' return Syntax::Any.
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#22
+ def for(name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#26
+ def new(name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#57
+ def specified_versions; end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#32
+ def supported?(name); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#36
+ def version_class(version); end
+ end
+end
+
+# A syntax that always returns true, passing all tokens as implemented. This
+# is useful during development, testing, and should be useful for some types
+# of transformations as well.
+#
+# source://regexp_parser//lib/regexp_parser/syntax/any.rb#5
+class Regexp::Syntax::Any < ::Regexp::Syntax::Base
+ class << self
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/any.rb#8
+ def implements?(_type, _token); end
+ end
+end
+
+# A lookup map of supported types and tokens in a given syntax
+#
+# source://regexp_parser//lib/regexp_parser/syntax/base.rb#9
+class Regexp::Syntax::Base
+ include ::Regexp::Syntax::Token
+
+ # TODO: drop this backwards compatibility code in v3.0.0, do `private :new`
+ #
+ # @return [Base] a new instance of Base
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#99
+ def initialize; end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#104
+ def method_missing(name, *args); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#115
+ def respond_to_missing?(name, include_private = T.unsafe(nil)); end
+
+ class << self
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#46
+ def added_features; end
+
+ # @raise [NotImplementedError]
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#40
+ def check!(type, token); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#31
+ def check?(type, token); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#26
+ def excludes(type, tokens); end
+
+ # Returns the value of attribute features.
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#13
+ def features; end
+
+ # Sets the attribute features
+ #
+ # @param value the value to set the attribute features to.
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#13
+ def features=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#36
+ def implementations(type); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#21
+ def implements(type, tokens); end
+
+ # @raise [NotImplementedError]
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#40
+ def implements!(type, token); end
+
+ # @return [Boolean]
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#31
+ def implements?(type, token); end
+
+ # automatically inherit features through the syntax class hierarchy
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#16
+ def inherited(subclass); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#54
+ def normalize(type, token); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#74
+ def normalize_backref(type, token); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#65
+ def normalize_group(type, token); end
+
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#50
+ def removed_features; end
+ end
+end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions.rb#8
+Regexp::Syntax::CURRENT = Regexp::Syntax::V3_2_0
+
+# source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#6
+class Regexp::Syntax::InvalidVersionNameError < ::Regexp::Syntax::SyntaxError
+ # @return [InvalidVersionNameError] a new instance of InvalidVersionNameError
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#7
+ def initialize(name); end
+end
+
+# source://regexp_parser//lib/regexp_parser/syntax/base.rb#2
+class Regexp::Syntax::NotImplementedError < ::Regexp::Syntax::SyntaxError
+ # @return [NotImplementedError] a new instance of NotImplementedError
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/base.rb#3
+ def initialize(syntax, type, token); end
+end
+
+# source://regexp_parser//lib/regexp_parser/syntax.rb#4
+class Regexp::Syntax::SyntaxError < ::Regexp::Parser::Error; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#3
+module Regexp::Syntax::Token; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#42
+Regexp::Syntax::Token::All = T.let(T.unsafe(nil), Array)
+
+# alias for symmetry between Token::* and Expression::*
+#
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#15
+module Regexp::Syntax::Token::Alternation; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#16
+Regexp::Syntax::Token::Alternation::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#17
+Regexp::Syntax::Token::Alternation::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/anchor.rb#3
+module Regexp::Syntax::Token::Anchor; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/anchor.rb#9
+Regexp::Syntax::Token::Anchor::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/anchor.rb#4
+Regexp::Syntax::Token::Anchor::Basic = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/anchor.rb#5
+Regexp::Syntax::Token::Anchor::Extended = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/anchor.rb#7
+Regexp::Syntax::Token::Anchor::MatchStart = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/anchor.rb#6
+Regexp::Syntax::Token::Anchor::String = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/anchor.rb#10
+Regexp::Syntax::Token::Anchor::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/assertion.rb#3
+module Regexp::Syntax::Token::Assertion; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/assertion.rb#7
+Regexp::Syntax::Token::Assertion::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/assertion.rb#4
+Regexp::Syntax::Token::Assertion::Lookahead = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/assertion.rb#5
+Regexp::Syntax::Token::Assertion::Lookbehind = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/assertion.rb#8
+Regexp::Syntax::Token::Assertion::Type = T.let(T.unsafe(nil), Symbol)
+
+# alias for symmetry between token symbol and Expression class name
+#
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#31
+Regexp::Syntax::Token::Backref = Regexp::Syntax::Token::Backreference
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#3
+module Regexp::Syntax::Token::Backreference; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#15
+Regexp::Syntax::Token::Backreference::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#7
+Regexp::Syntax::Token::Backreference::Name = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#6
+Regexp::Syntax::Token::Backreference::Number = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#5
+Regexp::Syntax::Token::Backreference::NumberRef = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#4
+Regexp::Syntax::Token::Backreference::Plain = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#9
+Regexp::Syntax::Token::Backreference::RecursionLevel = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#16
+Regexp::Syntax::Token::Backreference::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#11
+Regexp::Syntax::Token::Backreference::V1_8_6 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#13
+Regexp::Syntax::Token::Backreference::V1_9_1 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_set.rb#3
+module Regexp::Syntax::Token::CharacterSet; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_set.rb#7
+Regexp::Syntax::Token::CharacterSet::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_set.rb#4
+Regexp::Syntax::Token::CharacterSet::Basic = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_set.rb#5
+Regexp::Syntax::Token::CharacterSet::Extended = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_set.rb#8
+Regexp::Syntax::Token::CharacterSet::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_type.rb#3
+module Regexp::Syntax::Token::CharacterType; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_type.rb#10
+Regexp::Syntax::Token::CharacterType::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_type.rb#4
+Regexp::Syntax::Token::CharacterType::Basic = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_type.rb#8
+Regexp::Syntax::Token::CharacterType::Clustered = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_type.rb#5
+Regexp::Syntax::Token::CharacterType::Extended = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_type.rb#6
+Regexp::Syntax::Token::CharacterType::Hex = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_type.rb#11
+Regexp::Syntax::Token::CharacterType::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/conditional.rb#3
+module Regexp::Syntax::Token::Conditional; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/conditional.rb#9
+Regexp::Syntax::Token::Conditional::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/conditional.rb#6
+Regexp::Syntax::Token::Conditional::Condition = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/conditional.rb#4
+Regexp::Syntax::Token::Conditional::Delimiters = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/conditional.rb#7
+Regexp::Syntax::Token::Conditional::Separator = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/conditional.rb#11
+Regexp::Syntax::Token::Conditional::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#3
+module Regexp::Syntax::Token::Escape; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#8
+Regexp::Syntax::Token::Escape::ASCII = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#24
+Regexp::Syntax::Token::Escape::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#4
+Regexp::Syntax::Token::Escape::Basic = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#6
+Regexp::Syntax::Token::Escape::Control = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#20
+Regexp::Syntax::Token::Escape::Hex = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#13
+Regexp::Syntax::Token::Escape::Meta = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#22
+Regexp::Syntax::Token::Escape::Octal = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#25
+Regexp::Syntax::Token::Escape::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#11
+Regexp::Syntax::Token::Escape::Unicode = T.let(T.unsafe(nil), Array)
+
+# alias for symmetry between Token::* and Expression::*
+#
+# source://regexp_parser//lib/regexp_parser/syntax/token/escape.rb#31
+Regexp::Syntax::Token::EscapeSequence = Regexp::Syntax::Token::Escape
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#11
+module Regexp::Syntax::Token::FreeSpace; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#12
+Regexp::Syntax::Token::FreeSpace::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#13
+Regexp::Syntax::Token::FreeSpace::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#3
+module Regexp::Syntax::Token::Group; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#17
+Regexp::Syntax::Token::Group::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#8
+Regexp::Syntax::Token::Group::Atomic = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#4
+Regexp::Syntax::Token::Group::Basic = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#10
+Regexp::Syntax::Token::Group::Comment = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#5
+Regexp::Syntax::Token::Group::Extended = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#7
+Regexp::Syntax::Token::Group::Named = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#9
+Regexp::Syntax::Token::Group::Passive = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#18
+Regexp::Syntax::Token::Group::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#12
+Regexp::Syntax::Token::Group::V1_8_6 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/group.rb#15
+Regexp::Syntax::Token::Group::V2_4_1 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/keep.rb#3
+module Regexp::Syntax::Token::Keep; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/keep.rb#6
+Regexp::Syntax::Token::Keep::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/keep.rb#4
+Regexp::Syntax::Token::Keep::Mark = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/keep.rb#7
+Regexp::Syntax::Token::Keep::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#6
+module Regexp::Syntax::Token::Literal; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#7
+Regexp::Syntax::Token::Literal::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#8
+Regexp::Syntax::Token::Literal::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#4
+Regexp::Syntax::Token::Map = T.let(T.unsafe(nil), Hash)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#3
+module Regexp::Syntax::Token::Meta; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#8
+Regexp::Syntax::Token::Meta::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#5
+Regexp::Syntax::Token::Meta::Alternation = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#4
+Regexp::Syntax::Token::Meta::Basic = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#6
+Regexp::Syntax::Token::Meta::Extended = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/meta.rb#9
+Regexp::Syntax::Token::Meta::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/posix_class.rb#3
+module Regexp::Syntax::Token::PosixClass; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/posix_class.rb#9
+Regexp::Syntax::Token::PosixClass::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/posix_class.rb#7
+Regexp::Syntax::Token::PosixClass::Extensions = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/posix_class.rb#11
+Regexp::Syntax::Token::PosixClass::NonType = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/posix_class.rb#4
+Regexp::Syntax::Token::PosixClass::Standard = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/posix_class.rb#10
+Regexp::Syntax::Token::PosixClass::Type = T.let(T.unsafe(nil), Symbol)
+
+# alias for symmetry between token symbol and Token module name
+#
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#731
+Regexp::Syntax::Token::Property = Regexp::Syntax::Token::UnicodeProperty
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#3
+module Regexp::Syntax::Token::Quantifier; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#29
+Regexp::Syntax::Token::Quantifier::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#4
+Regexp::Syntax::Token::Quantifier::Greedy = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#22
+Regexp::Syntax::Token::Quantifier::Interval = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#26
+Regexp::Syntax::Token::Quantifier::IntervalAll = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#24
+Regexp::Syntax::Token::Quantifier::IntervalPossessive = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#23
+Regexp::Syntax::Token::Quantifier::IntervalReluctant = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#16
+Regexp::Syntax::Token::Quantifier::Possessive = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#10
+Regexp::Syntax::Token::Quantifier::Reluctant = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#30
+Regexp::Syntax::Token::Quantifier::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/quantifier.rb#28
+Regexp::Syntax::Token::Quantifier::V1_8_6 = T.let(T.unsafe(nil), Array)
+
+# alias for symmetry between token symbol and Token module name
+#
+# source://regexp_parser//lib/regexp_parser/syntax/token/character_set.rb#14
+Regexp::Syntax::Token::Set = Regexp::Syntax::Token::CharacterSet
+
+# Type is the same as Backreference so keeping it here, for now.
+#
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#20
+module Regexp::Syntax::Token::SubexpressionCall; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#24
+Regexp::Syntax::Token::SubexpressionCall::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#21
+Regexp::Syntax::Token::SubexpressionCall::Name = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/backreference.rb#22
+Regexp::Syntax::Token::SubexpressionCall::Number = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token.rb#43
+Regexp::Syntax::Token::Types = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#3
+module Regexp::Syntax::Token::UnicodeProperty; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#64
+Regexp::Syntax::Token::UnicodeProperty::Age = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#40
+Regexp::Syntax::Token::UnicodeProperty::Age_V1_9_3 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#44
+Regexp::Syntax::Token::UnicodeProperty::Age_V2_0_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#46
+Regexp::Syntax::Token::UnicodeProperty::Age_V2_2_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#48
+Regexp::Syntax::Token::UnicodeProperty::Age_V2_3_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#50
+Regexp::Syntax::Token::UnicodeProperty::Age_V2_4_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#52
+Regexp::Syntax::Token::UnicodeProperty::Age_V2_5_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#54
+Regexp::Syntax::Token::UnicodeProperty::Age_V2_6_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#56
+Regexp::Syntax::Token::UnicodeProperty::Age_V2_6_2 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#58
+Regexp::Syntax::Token::UnicodeProperty::Age_V2_6_3 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#60
+Regexp::Syntax::Token::UnicodeProperty::Age_V3_1_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#62
+Regexp::Syntax::Token::UnicodeProperty::Age_V3_2_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#721
+Regexp::Syntax::Token::UnicodeProperty::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#13
+module Regexp::Syntax::Token::UnicodeProperty::Category; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#36
+Regexp::Syntax::Token::UnicodeProperty::Category::All = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#33
+Regexp::Syntax::Token::UnicodeProperty::Category::Codepoint = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#14
+Regexp::Syntax::Token::UnicodeProperty::Category::Letter = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#17
+Regexp::Syntax::Token::UnicodeProperty::Category::Mark = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#20
+Regexp::Syntax::Token::UnicodeProperty::Category::Number = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#23
+Regexp::Syntax::Token::UnicodeProperty::Category::Punctuation = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#30
+Regexp::Syntax::Token::UnicodeProperty::Category::Separator = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#27
+Regexp::Syntax::Token::UnicodeProperty::Category::Symbol = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#6
+Regexp::Syntax::Token::UnicodeProperty::CharType_V1_9_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#9
+Regexp::Syntax::Token::UnicodeProperty::CharType_V2_5_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#133
+Regexp::Syntax::Token::UnicodeProperty::Derived = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#66
+Regexp::Syntax::Token::UnicodeProperty::Derived_V1_9_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#120
+Regexp::Syntax::Token::UnicodeProperty::Derived_V2_0_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#125
+Regexp::Syntax::Token::UnicodeProperty::Derived_V2_4_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#129
+Regexp::Syntax::Token::UnicodeProperty::Derived_V2_5_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#706
+Regexp::Syntax::Token::UnicodeProperty::Emoji = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#694
+Regexp::Syntax::Token::UnicodeProperty::Emoji_V2_5_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#702
+Regexp::Syntax::Token::UnicodeProperty::Emoji_V2_6_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#724
+Regexp::Syntax::Token::UnicodeProperty::NonType = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#11
+Regexp::Syntax::Token::UnicodeProperty::POSIX = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#332
+Regexp::Syntax::Token::UnicodeProperty::Script = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#135
+Regexp::Syntax::Token::UnicodeProperty::Script_V1_9_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#231
+Regexp::Syntax::Token::UnicodeProperty::Script_V1_9_3 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#237
+Regexp::Syntax::Token::UnicodeProperty::Script_V2_0_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#247
+Regexp::Syntax::Token::UnicodeProperty::Script_V2_2_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#273
+Regexp::Syntax::Token::UnicodeProperty::Script_V2_3_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#282
+Regexp::Syntax::Token::UnicodeProperty::Script_V2_4_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#291
+Regexp::Syntax::Token::UnicodeProperty::Script_V2_5_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#298
+Regexp::Syntax::Token::UnicodeProperty::Script_V2_6_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#308
+Regexp::Syntax::Token::UnicodeProperty::Script_V2_6_2 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#315
+Regexp::Syntax::Token::UnicodeProperty::Script_V3_1_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#322
+Regexp::Syntax::Token::UnicodeProperty::Script_V3_2_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#723
+Regexp::Syntax::Token::UnicodeProperty::Type = T.let(T.unsafe(nil), Symbol)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#692
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#334
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V1_9_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#433
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V2_0_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#561
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V2_2_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#596
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V2_3_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#609
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V2_4_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#623
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V2_5_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#633
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V2_6_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#647
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V2_6_2 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#659
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V3_1_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#670
+Regexp::Syntax::Token::UnicodeProperty::UnicodeBlock_V3_2_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#708
+Regexp::Syntax::Token::UnicodeProperty::V1_9_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#709
+Regexp::Syntax::Token::UnicodeProperty::V1_9_3 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#710
+Regexp::Syntax::Token::UnicodeProperty::V2_0_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#711
+Regexp::Syntax::Token::UnicodeProperty::V2_2_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#712
+Regexp::Syntax::Token::UnicodeProperty::V2_3_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#713
+Regexp::Syntax::Token::UnicodeProperty::V2_4_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#714
+Regexp::Syntax::Token::UnicodeProperty::V2_5_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#715
+Regexp::Syntax::Token::UnicodeProperty::V2_6_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#716
+Regexp::Syntax::Token::UnicodeProperty::V2_6_2 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#717
+Regexp::Syntax::Token::UnicodeProperty::V2_6_3 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#718
+Regexp::Syntax::Token::UnicodeProperty::V3_1_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/token/unicode_property.rb#719
+Regexp::Syntax::Token::UnicodeProperty::V3_2_0 = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#12
+class Regexp::Syntax::UnknownSyntaxNameError < ::Regexp::Syntax::SyntaxError
+ # @return [UnknownSyntaxNameError] a new instance of UnknownSyntaxNameError
+ #
+ # source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#13
+ def initialize(name); end
+end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/1.8.6.rb#1
+class Regexp::Syntax::V1_8_6 < ::Regexp::Syntax::Base; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/1.9.1.rb#1
+class Regexp::Syntax::V1_9_1 < ::Regexp::Syntax::V1_8_6; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/1.9.3.rb#1
+class Regexp::Syntax::V1_9_3 < ::Regexp::Syntax::V1_9_1; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.0.0.rb#1
+class Regexp::Syntax::V2_0_0 < ::Regexp::Syntax::V1_9_3; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.2.0.rb#1
+class Regexp::Syntax::V2_2_0 < ::Regexp::Syntax::V2_0_0; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.3.0.rb#1
+class Regexp::Syntax::V2_3_0 < ::Regexp::Syntax::V2_2_0; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.4.0.rb#1
+class Regexp::Syntax::V2_4_0 < ::Regexp::Syntax::V2_3_0; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.4.1.rb#1
+class Regexp::Syntax::V2_4_1 < ::Regexp::Syntax::V2_4_0; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.5.0.rb#1
+class Regexp::Syntax::V2_5_0 < ::Regexp::Syntax::V2_4_1; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.6.0.rb#1
+class Regexp::Syntax::V2_6_0 < ::Regexp::Syntax::V2_5_0; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.6.2.rb#1
+class Regexp::Syntax::V2_6_2 < ::Regexp::Syntax::V2_6_0; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/2.6.3.rb#1
+class Regexp::Syntax::V2_6_3 < ::Regexp::Syntax::V2_6_2; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/3.1.0.rb#1
+class Regexp::Syntax::V3_1_0 < ::Regexp::Syntax::V2_6_3; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/versions/3.2.0.rb#1
+class Regexp::Syntax::V3_2_0 < ::Regexp::Syntax::V3_1_0; end
+
+# source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#4
+Regexp::Syntax::VERSION_CONST_REGEXP = T.let(T.unsafe(nil), Regexp)
+
+# source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#2
+Regexp::Syntax::VERSION_FORMAT = T.let(T.unsafe(nil), String)
+
+# source://regexp_parser//lib/regexp_parser/syntax/version_lookup.rb#3
+Regexp::Syntax::VERSION_REGEXP = T.let(T.unsafe(nil), Regexp)
+
+# source://regexp_parser//lib/regexp_parser/token.rb#2
+Regexp::TOKEN_KEYS = T.let(T.unsafe(nil), Array)
+
+# source://regexp_parser//lib/regexp_parser/token.rb#13
+class Regexp::Token < ::Struct
+ def conditional_level; end
+ def conditional_level=(_); end
+
+ # source://regexp_parser//lib/regexp_parser/token.rb#20
+ def length; end
+
+ def level; end
+ def level=(_); end
+
+ # Returns the value of attribute next.
+ #
+ # source://regexp_parser//lib/regexp_parser/token.rb#14
+ def next; end
+
+ # Sets the attribute next
+ #
+ # @param value the value to set the attribute next to.
+ #
+ # source://regexp_parser//lib/regexp_parser/token.rb#14
+ def next=(_arg0); end
+
+ # source://regexp_parser//lib/regexp_parser/token.rb#16
+ def offset; end
+
+ # Returns the value of attribute previous.
+ #
+ # source://regexp_parser//lib/regexp_parser/token.rb#14
+ def previous; end
+
+ # Sets the attribute previous
+ #
+ # @param value the value to set the attribute previous to.
+ #
+ # source://regexp_parser//lib/regexp_parser/token.rb#14
+ def previous=(_arg0); end
+
+ def set_level; end
+ def set_level=(_); end
+ def te; end
+ def te=(_); end
+ def text; end
+ def text=(_); end
+ def token; end
+ def token=(_); end
+ def ts; end
+ def ts=(_); end
+ def type; end
+ def type=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
diff --git a/sorbet/rbi/gems/rexml@3.2.6.rbi b/sorbet/rbi/gems/rexml@3.2.6.rbi
new file mode 100644
index 0000000..c8d67b5
--- /dev/null
+++ b/sorbet/rbi/gems/rexml@3.2.6.rbi
@@ -0,0 +1,4781 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `rexml` gem.
+# Please instead update this file by running `bin/tapioca gem rexml`.
+
+# This class needs:
+# * Documentation
+# * Work! Not all types of attlists are intelligently parsed, so we just
+# spew back out what we get in. This works, but it would be better if
+# we formatted the output ourselves.
+#
+# AttlistDecls provide *just* enough support to allow namespace
+# declarations. If you need some sort of generalized support, or have an
+# interesting idea about how to map the hideous, terrible design of DTD
+# AttlistDecls onto an intuitive Ruby interface, let me know. I'm desperate
+# for anything to make DTDs more palateable.
+#
+# source://rexml//lib/rexml/attlistdecl.rb#18
+class REXML::AttlistDecl < ::REXML::Child
+ include ::Enumerable
+
+ # Create an AttlistDecl, pulling the information from a Source. Notice
+ # that this isn't very convenient; to create an AttlistDecl, you basically
+ # have to format it yourself, and then have the initializer parse it.
+ # Sorry, but for the foreseeable future, DTD support in REXML is pretty
+ # weak on convenience. Have I mentioned how much I hate DTDs?
+ #
+ # @return [AttlistDecl] a new instance of AttlistDecl
+ #
+ # source://rexml//lib/rexml/attlistdecl.rb#29
+ def initialize(source); end
+
+ # Access the attlist attribute/value pairs.
+ # value = attlist_decl[ attribute_name ]
+ #
+ # source://rexml//lib/rexml/attlistdecl.rb#38
+ def [](key); end
+
+ # Iterate over the key/value pairs:
+ # attlist_decl.each { |attribute_name, attribute_value| ... }
+ #
+ # source://rexml//lib/rexml/attlistdecl.rb#50
+ def each(&block); end
+
+ # What is this? Got me.
+ #
+ # source://rexml//lib/rexml/attlistdecl.rb#22
+ def element_name; end
+
+ # Whether an attlist declaration includes the given attribute definition
+ # if attlist_decl.include? "xmlns:foobar"
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/attlistdecl.rb#44
+ def include?(key); end
+
+ # source://rexml//lib/rexml/attlistdecl.rb#59
+ def node_type; end
+
+ # Write out exactly what we got in.
+ #
+ # source://rexml//lib/rexml/attlistdecl.rb#55
+ def write(out, indent = T.unsafe(nil)); end
+end
+
+# Defines an Element Attribute; IE, a attribute=value pair, as in:
+# . Attributes can be in their own
+# namespaces. General users of REXML will not interact with the
+# Attribute class much.
+#
+# source://rexml//lib/rexml/attribute.rb#10
+class REXML::Attribute
+ include ::REXML::Node
+ include ::REXML::XMLTokens
+ include ::REXML::Namespace
+
+ # Constructor.
+ # FIXME: The parser doesn't catch illegal characters in attributes
+ #
+ # first::
+ # Either: an Attribute, which this new attribute will become a
+ # clone of; or a String, which is the name of this attribute
+ # second::
+ # If +first+ is an Attribute, then this may be an Element, or nil.
+ # If nil, then the Element parent of this attribute is the parent
+ # of the +first+ Attribute. If the first argument is a String,
+ # then this must also be a String, and is the content of the attribute.
+ # If this is the content, it must be fully normalized (contain no
+ # illegal characters).
+ # parent::
+ # Ignored unless +first+ is a String; otherwise, may be the Element
+ # parent of this attribute, or nil.
+ #
+ #
+ # Attribute.new( attribute_to_clone )
+ # Attribute.new( attribute_to_clone, parent_element )
+ # Attribute.new( "attr", "attr_value" )
+ # Attribute.new( "attr", "attr_value", parent_element )
+ #
+ # @return [Attribute] a new instance of Attribute
+ #
+ # source://rexml//lib/rexml/attribute.rb#42
+ def initialize(first, second = T.unsafe(nil), parent = T.unsafe(nil)); end
+
+ # Returns true if other is an Attribute and has the same name and value,
+ # false otherwise.
+ #
+ # source://rexml//lib/rexml/attribute.rb#106
+ def ==(other); end
+
+ # Returns a copy of this attribute
+ #
+ # source://rexml//lib/rexml/attribute.rb#163
+ def clone; end
+
+ # source://rexml//lib/rexml/attribute.rb#132
+ def doctype; end
+
+ # The element to which this attribute belongs
+ #
+ # source://rexml//lib/rexml/attribute.rb#15
+ def element; end
+
+ # Sets the element of which this object is an attribute. Normally, this
+ # is not directly called.
+ #
+ # Returns this attribute
+ #
+ # source://rexml//lib/rexml/attribute.rb#171
+ def element=(element); end
+
+ # Creates (and returns) a hash from both the name and value
+ #
+ # source://rexml//lib/rexml/attribute.rb#111
+ def hash; end
+
+ # source://rexml//lib/rexml/attribute.rb#197
+ def inspect; end
+
+ # Returns the namespace URL, if defined, or nil otherwise
+ #
+ # e = Element.new("el")
+ # e.add_namespace("ns", "http://url")
+ # e.add_attribute("ns:a", "b")
+ # e.add_attribute("nsx:a", "c")
+ # e.attribute("ns:a").namespace # => "http://url"
+ # e.attribute("nsx:a").namespace # => nil
+ #
+ # This method always returns "" for no namespace attribute. Because
+ # the default namespace doesn't apply to attribute names.
+ #
+ # From https://www.w3.org/TR/xml-names/#uniqAttrs
+ #
+ # > the default namespace does not apply to attribute names
+ #
+ # e = REXML::Element.new("el")
+ # e.add_namespace("", "http://example.com/")
+ # e.namespace # => "http://example.com/"
+ # e.add_attribute("a", "b")
+ # e.attribute("a").namespace # => ""
+ #
+ # source://rexml//lib/rexml/attribute.rb#95
+ def namespace(arg = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/attribute.rb#193
+ def node_type; end
+
+ # The normalized value of this attribute. That is, the attribute with
+ # entities intact.
+ #
+ # source://rexml//lib/rexml/attribute.rb#157
+ def normalized=(new_normalized); end
+
+ # Returns the namespace of the attribute.
+ #
+ # e = Element.new( "elns:myelement" )
+ # e.add_attribute( "nsa:a", "aval" )
+ # e.add_attribute( "b", "bval" )
+ # e.attributes.get_attribute( "a" ).prefix # -> "nsa"
+ # e.attributes.get_attribute( "b" ).prefix # -> ""
+ # a = Attribute.new( "x", "y" )
+ # a.prefix # -> ""
+ #
+ # source://rexml//lib/rexml/attribute.rb#70
+ def prefix; end
+
+ # Removes this Attribute from the tree, and returns true if successful
+ #
+ # This method is usually not called directly.
+ #
+ # source://rexml//lib/rexml/attribute.rb#184
+ def remove; end
+
+ # Returns the attribute value, with entities replaced
+ #
+ # source://rexml//lib/rexml/attribute.rb#140
+ def to_s; end
+
+ # Returns this attribute out as XML source, expanding the name
+ #
+ # a = Attribute.new( "x", "y" )
+ # a.to_string # -> "x='y'"
+ # b = Attribute.new( "ns:x", "y" )
+ # b.to_string # -> "ns:x='y'"
+ #
+ # source://rexml//lib/rexml/attribute.rb#121
+ def to_string; end
+
+ # Returns the UNNORMALIZED value of this attribute. That is, entities
+ # have been expanded to their values
+ #
+ # source://rexml//lib/rexml/attribute.rb#149
+ def value; end
+
+ # Writes this attribute (EG, puts 'key="value"' to the output)
+ #
+ # source://rexml//lib/rexml/attribute.rb#189
+ def write(output, indent = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/attribute.rb#203
+ def xpath; end
+end
+
+# A class that defines the set of Attributes of an Element and provides
+# operations for accessing elements in that set.
+#
+# source://rexml//lib/rexml/element.rb#2141
+class REXML::Attributes < ::Hash
+ # :call-seq:
+ # new(element)
+ #
+ # Creates and returns a new \REXML::Attributes object.
+ # The element given by argument +element+ is stored,
+ # but its own attributes are not modified:
+ #
+ # ele = REXML::Element.new('foo')
+ # attrs = REXML::Attributes.new(ele)
+ # attrs.object_id == ele.attributes.object_id # => false
+ #
+ # Other instance methods in class \REXML::Attributes may refer to:
+ #
+ # - +element.document+.
+ # - +element.prefix+.
+ # - +element.expanded_name+.
+ #
+ # @return [Attributes] a new instance of Attributes
+ #
+ # source://rexml//lib/rexml/element.rb#2160
+ def initialize(element); end
+
+ # :call-seq:
+ # add(attribute) -> attribute
+ #
+ # Adds attribute +attribute+, replacing the previous
+ # attribute of the same name if it exists;
+ # returns +attribute+:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # attrs = ele.attributes
+ # attrs # => {"att"=>{"foo"=>foo:att='1', "bar"=>bar:att='2', ""=>att='<'}}
+ # attrs.add(REXML::Attribute.new('foo:att', '2')) # => foo:att='2'
+ # attrs.add(REXML::Attribute.new('baz', '3')) # => baz='3'
+ # attrs.include?('baz') # => true
+ #
+ # source://rexml//lib/rexml/element.rb#2537
+ def <<(attribute); end
+
+ # :call-seq:
+ # [name] -> attribute_value or nil
+ #
+ # Returns the value for the attribute given by +name+,
+ # if it exists; otherwise +nil+.
+ # The value returned is the unnormalized attribute value,
+ # with entities expanded:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.elements['//ele'] # =>
+ # ele.attributes['att'] # => "<"
+ # ele.attributes['bar:att'] # => "2"
+ # ele.attributes['nosuch'] # => nil
+ #
+ # Related: get_attribute (returns an \Attribute object).
+ #
+ # source://rexml//lib/rexml/element.rb#2185
+ def [](name); end
+
+ # :call-seq:
+ # [name] = value -> value
+ #
+ # When +value+ is non-+nil+,
+ # assigns that to the attribute for the given +name+,
+ # overwriting the previous value if it exists:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # attrs = ele.attributes
+ # attrs['foo:att'] = '2' # => "2"
+ # attrs['baz:att'] = '3' # => "3"
+ #
+ # When +value+ is +nil+, deletes the attribute if it exists:
+ #
+ # attrs['baz:att'] = nil
+ # attrs.include?('baz:att') # => false
+ #
+ # source://rexml//lib/rexml/element.rb#2369
+ def []=(name, value); end
+
+ # :call-seq:
+ # add(attribute) -> attribute
+ #
+ # Adds attribute +attribute+, replacing the previous
+ # attribute of the same name if it exists;
+ # returns +attribute+:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # attrs = ele.attributes
+ # attrs # => {"att"=>{"foo"=>foo:att='1', "bar"=>bar:att='2', ""=>att='<'}}
+ # attrs.add(REXML::Attribute.new('foo:att', '2')) # => foo:att='2'
+ # attrs.add(REXML::Attribute.new('baz', '3')) # => baz='3'
+ # attrs.include?('baz') # => true
+ #
+ # source://rexml//lib/rexml/element.rb#2537
+ def add(attribute); end
+
+ # :call-seq:
+ # delete(name) -> element
+ # delete(attribute) -> element
+ #
+ # Removes a specified attribute if it exists;
+ # returns the attributes' element.
+ #
+ # When string argument +name+ is given,
+ # removes the attribute of that name if it exists:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # attrs = ele.attributes
+ # attrs.delete('foo:att') # =>
+ # attrs.delete('foo:att') # =>
+ #
+ # When attribute argument +attribute+ is given,
+ # removes that attribute if it exists:
+ #
+ # attr = REXML::Attribute.new('bar:att', '2')
+ # attrs.delete(attr) # => # =>
+ # attrs.delete(attr) # => # =>
+ #
+ # source://rexml//lib/rexml/element.rb#2490
+ def delete(attribute); end
+
+ # :call-seq:
+ # delete_all(name) -> array_of_removed_attributes
+ #
+ # Removes all attributes matching the given +name+;
+ # returns an array of the removed attributes:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # attrs = ele.attributes
+ # attrs.delete_all('att') # => [att='<']
+ #
+ # source://rexml//lib/rexml/element.rb#2559
+ def delete_all(name); end
+
+ # :call-seq:
+ # each {|expanded_name, value| ... }
+ #
+ # Calls the given block with each expanded-name/value pair:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # ele.attributes.each do |expanded_name, value|
+ # p [expanded_name, value]
+ # end
+ #
+ # Output:
+ #
+ # ["foo:att", "1"]
+ # ["bar:att", "2"]
+ # ["att", "<"]
+ #
+ # source://rexml//lib/rexml/element.rb#2287
+ def each; end
+
+ # :call-seq:
+ # each_attribute {|attr| ... }
+ #
+ # Calls the given block with each \REXML::Attribute object:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # ele.attributes.each_attribute do |attr|
+ # p [attr.class, attr]
+ # end
+ #
+ # Output:
+ #
+ # [REXML::Attribute, foo:att='1']
+ # [REXML::Attribute, bar:att='2']
+ # [REXML::Attribute, att='<']
+ #
+ # source://rexml//lib/rexml/element.rb#2254
+ def each_attribute; end
+
+ # :call-seq:
+ # get_attribute(name) -> attribute_object or nil
+ #
+ # Returns the \REXML::Attribute object for the given +name+:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # attrs = ele.attributes
+ # attrs.get_attribute('foo:att') # => foo:att='1'
+ # attrs.get_attribute('foo:att').class # => REXML::Attribute
+ # attrs.get_attribute('bar:att') # => bar:att='2'
+ # attrs.get_attribute('att') # => att='<'
+ # attrs.get_attribute('nosuch') # => nil
+ #
+ # source://rexml//lib/rexml/element.rb#2313
+ def get_attribute(name); end
+
+ # :call-seq:
+ # get_attribute_ns(namespace, name)
+ #
+ # Returns the \REXML::Attribute object among the attributes
+ # that matches the given +namespace+ and +name+:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # attrs = ele.attributes
+ # attrs.get_attribute_ns('http://foo', 'att') # => foo:att='1'
+ # attrs.get_attribute_ns('http://foo', 'nosuch') # => nil
+ #
+ # source://rexml//lib/rexml/element.rb#2585
+ def get_attribute_ns(namespace, name); end
+
+ # :call-seq:
+ # length
+ #
+ # Returns the count of attributes:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # ele.attributes.length # => 3
+ #
+ # source://rexml//lib/rexml/element.rb#2225
+ def length; end
+
+ # :call-seq:
+ # namespaces
+ #
+ # Returns a hash of name/value pairs for the namespaces:
+ #
+ # xml_string = ''
+ # d = REXML::Document.new(xml_string)
+ # d.root.attributes.namespaces # => {"xmlns"=>"foo", "x"=>"bar", "y"=>"twee"}
+ #
+ # source://rexml//lib/rexml/element.rb#2446
+ def namespaces; end
+
+ # :call-seq:
+ # prefixes -> array_of_prefix_strings
+ #
+ # Returns an array of prefix strings in the attributes.
+ # The array does not include the default
+ # namespace declaration, if one exists.
+ #
+ # xml_string = ''
+ # d = REXML::Document.new(xml_string)
+ # d.root.attributes.prefixes # => ["x", "y"]
+ #
+ # source://rexml//lib/rexml/element.rb#2421
+ def prefixes; end
+
+ # :call-seq:
+ # length
+ #
+ # Returns the count of attributes:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # ele.attributes.length # => 3
+ #
+ # source://rexml//lib/rexml/element.rb#2225
+ def size; end
+
+ # :call-seq:
+ # to_a -> array_of_attribute_objects
+ #
+ # Returns an array of \REXML::Attribute objects representing
+ # the attributes:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # ele = d.root.elements['//ele'] # =>
+ # attrs = ele.attributes.to_a # => [foo:att='1', bar:att='2', att='<']
+ # attrs.first.class # => REXML::Attribute
+ #
+ # source://rexml//lib/rexml/element.rb#2207
+ def to_a; end
+end
+
+# source://rexml//lib/rexml/cdata.rb#5
+class REXML::CData < ::REXML::Text
+ # Constructor. CData is data between
+ #
+ # _Examples_
+ # CData.new( source )
+ # CData.new( "Here is some CDATA" )
+ # CData.new( "Some unprocessed data", respect_whitespace_TF, parent_element )
+ #
+ # @return [CData] a new instance of CData
+ #
+ # source://rexml//lib/rexml/cdata.rb#16
+ def initialize(first, whitespace = T.unsafe(nil), parent = T.unsafe(nil)); end
+
+ # Make a copy of this object
+ #
+ # _Examples_
+ # c = CData.new( "Some text" )
+ # d = c.clone
+ # d.to_s # -> "Some text"
+ #
+ # source://rexml//lib/rexml/cdata.rb#26
+ def clone; end
+
+ # Returns the content of this CData object
+ #
+ # _Examples_
+ # c = CData.new( "Some text" )
+ # c.to_s # -> "Some text"
+ #
+ # source://rexml//lib/rexml/cdata.rb#35
+ def to_s; end
+
+ # source://rexml//lib/rexml/cdata.rb#39
+ def value; end
+
+ # == DEPRECATED
+ # See the rexml/formatters package
+ #
+ # Generates XML output of this object
+ #
+ # output::
+ # Where to write the string. Defaults to $stdout
+ # indent::
+ # The amount to indent this node by
+ # transitive::
+ # Ignored
+ # ie_hack::
+ # Ignored
+ #
+ # _Examples_
+ # c = CData.new( " Some text " )
+ # c.write( $stdout ) #->
+ #
+ # source://rexml//lib/rexml/cdata.rb#60
+ def write(output = T.unsafe(nil), indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
+end
+
+# A Child object is something contained by a parent, and this class
+# contains methods to support that. Most user code will not use this
+# class directly.
+#
+# source://rexml//lib/rexml/child.rb#9
+class REXML::Child
+ include ::REXML::Node
+
+ # Constructor. Any inheritors of this class should call super to make
+ # sure this method is called.
+ # parent::
+ # if supplied, the parent of this child will be set to the
+ # supplied value, and self will be added to the parent
+ #
+ # @return [Child] a new instance of Child
+ #
+ # source://rexml//lib/rexml/child.rb#18
+ def initialize(parent = T.unsafe(nil)); end
+
+ # This doesn't yet handle encodings
+ #
+ # source://rexml//lib/rexml/child.rb#91
+ def bytes; end
+
+ # Returns:: the document this child belongs to, or nil if this child
+ # belongs to no document
+ #
+ # source://rexml//lib/rexml/child.rb#85
+ def document; end
+
+ # source://rexml//lib/rexml/node.rb#11
+ def next_sibling; end
+
+ # Sets the next sibling of this child. This can be used to insert a child
+ # after some other child.
+ # a = Element.new("a")
+ # b = a.add_element("b")
+ # c = Element.new("c")
+ # b.next_sibling = c
+ # # =>
+ #
+ # source://rexml//lib/rexml/child.rb#68
+ def next_sibling=(other); end
+
+ # The Parent of this object
+ #
+ # source://rexml//lib/rexml/child.rb#11
+ def parent; end
+
+ # Sets the parent of this child to the supplied argument.
+ #
+ # other::
+ # Must be a Parent object. If this object is the same object as the
+ # existing parent of this child, no action is taken. Otherwise, this
+ # child is removed from the current parent (if one exists), and is added
+ # to the new parent.
+ # Returns:: The parent added
+ #
+ # source://rexml//lib/rexml/child.rb#52
+ def parent=(other); end
+
+ # source://rexml//lib/rexml/node.rb#17
+ def previous_sibling; end
+
+ # Sets the previous sibling of this child. This can be used to insert a
+ # child before some other child.
+ # a = Element.new("a")
+ # b = a.add_element("b")
+ # c = Element.new("c")
+ # b.previous_sibling = c
+ # # =>
+ #
+ # source://rexml//lib/rexml/child.rb#79
+ def previous_sibling=(other); end
+
+ # Removes this child from the parent.
+ #
+ # Returns:: self
+ #
+ # source://rexml//lib/rexml/child.rb#37
+ def remove; end
+
+ # Replaces this object with another object. Basically, calls
+ # Parent.replace_child
+ #
+ # Returns:: self
+ #
+ # source://rexml//lib/rexml/child.rb#29
+ def replace_with(child); end
+end
+
+# Represents an XML comment; that is, text between \
+#
+# source://rexml//lib/rexml/comment.rb#7
+class REXML::Comment < ::REXML::Child
+ include ::Comparable
+
+ # Constructor. The first argument can be one of three types:
+ # argument. If Comment, the argument is duplicated. If
+ # Source, the argument is scanned for a comment.
+ # should be nil, not supplied, or a Parent to be set as the parent
+ # of this object
+ #
+ # @param first If String, the contents of this comment are set to the
+ # @param second If the first argument is a Source, this argument
+ # @return [Comment] a new instance of Comment
+ #
+ # source://rexml//lib/rexml/comment.rb#24
+ def initialize(first, second = T.unsafe(nil)); end
+
+ # Compares this Comment to another; the contents of the comment are used
+ # in the comparison.
+ #
+ # source://rexml//lib/rexml/comment.rb#63
+ def <=>(other); end
+
+ # Compares this Comment to another; the contents of the comment are used
+ # in the comparison.
+ #
+ # source://rexml//lib/rexml/comment.rb#70
+ def ==(other); end
+
+ # source://rexml//lib/rexml/comment.rb#33
+ def clone; end
+
+ # source://rexml//lib/rexml/comment.rb#75
+ def node_type; end
+
+ # The content text
+ #
+ # source://rexml//lib/rexml/comment.rb#14
+ def string; end
+
+ # The content text
+ #
+ # source://rexml//lib/rexml/comment.rb#14
+ def string=(_arg0); end
+
+ # The content text
+ #
+ # source://rexml//lib/rexml/comment.rb#14
+ def to_s; end
+
+ # == DEPRECATED
+ # See REXML::Formatters
+ #
+ # output::
+ # Where to write the string
+ # indent::
+ # An integer. If -1, no indenting will be used; otherwise, the
+ # indentation will be this number of spaces, and children will be
+ # indented an additional amount.
+ # transitive::
+ # Ignored by this class. The contents of comments are never modified.
+ # ie_hack::
+ # Needed for conformity to the child API, but not used by this class.
+ #
+ # source://rexml//lib/rexml/comment.rb#50
+ def write(output, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
+end
+
+# source://rexml//lib/rexml/xpath_parser.rb#11
+module REXML::DClonable; end
+
+# This is an abstract class. You never use this directly; it serves as a
+# parent class for the specific declarations.
+#
+# source://rexml//lib/rexml/doctype.rb#242
+class REXML::Declaration < ::REXML::Child
+ # @return [Declaration] a new instance of Declaration
+ #
+ # source://rexml//lib/rexml/doctype.rb#243
+ def initialize(src); end
+
+ # source://rexml//lib/rexml/doctype.rb#248
+ def to_s; end
+
+ # == DEPRECATED
+ # See REXML::Formatters
+ #
+ # source://rexml//lib/rexml/doctype.rb#255
+ def write(output, indent); end
+end
+
+# Represents an XML DOCTYPE declaration; that is, the contents of . DOCTYPES can be used to declare the DTD of a document, as well as
+# being used to declare entities used in the document.
+#
+# source://rexml//lib/rexml/doctype.rb#51
+class REXML::DocType < ::REXML::Parent
+ include ::REXML::XMLTokens
+
+ # Constructor
+ #
+ # dt = DocType.new( 'foo', '-//I/Hate/External/IDs' )
+ # #
+ # dt = DocType.new( doctype_to_clone )
+ # # Incomplete. Shallow clone of doctype
+ #
+ # +Note+ that the constructor:
+ #
+ # Doctype.new( Source.new( "" ) )
+ #
+ # is _deprecated_. Do not use it. It will probably disappear.
+ #
+ # @return [DocType] a new instance of DocType
+ #
+ # source://rexml//lib/rexml/doctype.rb#80
+ def initialize(first, parent = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/doctype.rb#185
+ def add(child); end
+
+ # source://rexml//lib/rexml/doctype.rb#125
+ def attribute_of(element, attribute); end
+
+ # source://rexml//lib/rexml/doctype.rb#115
+ def attributes_of(element); end
+
+ # source://rexml//lib/rexml/doctype.rb#135
+ def clone; end
+
+ # source://rexml//lib/rexml/doctype.rb#173
+ def context; end
+
+ # name is the name of the doctype
+ # external_id is the referenced DTD, if given
+ #
+ # source://rexml//lib/rexml/doctype.rb#66
+ def entities; end
+
+ # source://rexml//lib/rexml/doctype.rb#181
+ def entity(name); end
+
+ # name is the name of the doctype
+ # external_id is the referenced DTD, if given
+ #
+ # source://rexml//lib/rexml/doctype.rb#66
+ def external_id; end
+
+ # name is the name of the doctype
+ # external_id is the referenced DTD, if given
+ #
+ # source://rexml//lib/rexml/doctype.rb#66
+ def name; end
+
+ # name is the name of the doctype
+ # external_id is the referenced DTD, if given
+ #
+ # source://rexml//lib/rexml/doctype.rb#66
+ def namespaces; end
+
+ # source://rexml//lib/rexml/doctype.rb#111
+ def node_type; end
+
+ # Retrieves a named notation. Only notations declared in the internal
+ # DTD subset can be retrieved.
+ #
+ # Method contributed by Henrik Martensson
+ #
+ # source://rexml//lib/rexml/doctype.rb#229
+ def notation(name); end
+
+ # This method returns a list of notations that have been declared in the
+ # _internal_ DTD subset. Notations in the external DTD subset are not
+ # listed.
+ #
+ # Method contributed by Henrik Martensson
+ #
+ # source://rexml//lib/rexml/doctype.rb#221
+ def notations; end
+
+ # This method retrieves the public identifier identifying the document's
+ # DTD.
+ #
+ # Method contributed by Henrik Martensson
+ #
+ # source://rexml//lib/rexml/doctype.rb#195
+ def public; end
+
+ # This method retrieves the system identifier identifying the document's DTD
+ #
+ # Method contributed by Henrik Martensson
+ #
+ # source://rexml//lib/rexml/doctype.rb#207
+ def system; end
+
+ # output::
+ # Where to write the string
+ # indent::
+ # An integer. If -1, no indentation will be used; otherwise, the
+ # indentation will be this number of spaces, and children will be
+ # indented an additional amount.
+ # transitive::
+ # Ignored
+ # ie_hack::
+ # Ignored
+ #
+ # source://rexml//lib/rexml/doctype.rb#149
+ def write(output, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
+end
+
+# Represents an XML document.
+#
+# A document may have:
+#
+# - A single child that may be accessed via method #root.
+# - An XML declaration.
+# - A document type.
+# - Processing instructions.
+#
+# == In a Hurry?
+#
+# If you're somewhat familiar with XML
+# and have a particular task in mind,
+# you may want to see the
+# {tasks pages}[../doc/rexml/tasks/tocs/master_toc_rdoc.html],
+# and in particular, the
+# {tasks page for documents}[../doc/rexml/tasks/tocs/document_toc_rdoc.html].
+#
+# source://rexml//lib/rexml/document.rb#35
+class REXML::Document < ::REXML::Element
+ # :call-seq:
+ # new(string = nil, context = {}) -> new_document
+ # new(io_stream = nil, context = {}) -> new_document
+ # new(document = nil, context = {}) -> new_document
+ #
+ # Returns a new \REXML::Document object.
+ #
+ # When no arguments are given,
+ # returns an empty document:
+ #
+ # d = REXML::Document.new
+ # d.to_s # => ""
+ #
+ # When argument +string+ is given, it must be a string
+ # containing a valid XML document:
+ #
+ # xml_string = 'FooBar'
+ # d = REXML::Document.new(xml_string)
+ # d.to_s # => "FooBar"
+ #
+ # When argument +io_stream+ is given, it must be an \IO object
+ # that is opened for reading, and when read must return a valid XML document:
+ #
+ # File.write('t.xml', xml_string)
+ # d = File.open('t.xml', 'r') do |io|
+ # REXML::Document.new(io)
+ # end
+ # d.to_s # => "FooBar"
+ #
+ # When argument +document+ is given, it must be an existing
+ # document object, whose context and attributes (but not children)
+ # are cloned into the new document:
+ #
+ # d = REXML::Document.new(xml_string)
+ # d.children # => [ ... >]
+ # d.context = {raw: :all, compress_whitespace: :all}
+ # d.add_attributes({'bar' => 0, 'baz' => 1})
+ # d1 = REXML::Document.new(d)
+ # d1.children # => []
+ # d1.context # => {:raw=>:all, :compress_whitespace=>:all}
+ # d1.attributes # => {"bar"=>bar='0', "baz"=>baz='1'}
+ #
+ # When argument +context+ is given, it must be a hash
+ # containing context entries for the document;
+ # see {Element Context}[../doc/rexml/context_rdoc.html]:
+ #
+ # context = {raw: :all, compress_whitespace: :all}
+ # d = REXML::Document.new(xml_string, context)
+ # d.context # => {:raw=>:all, :compress_whitespace=>:all}
+ #
+ # @return [Document] a new instance of Document
+ #
+ # source://rexml//lib/rexml/document.rb#92
+ def initialize(source = T.unsafe(nil), context = T.unsafe(nil)); end
+
+ # :call-seq:
+ # add(xml_decl) -> self
+ # add(doc_type) -> self
+ # add(object) -> self
+ #
+ # Adds an object to the document; returns +self+.
+ #
+ # When argument +xml_decl+ is given,
+ # it must be an REXML::XMLDecl object,
+ # which becomes the XML declaration for the document,
+ # replacing the previous XML declaration if any:
+ #
+ # d = REXML::Document.new
+ # d.xml_decl.to_s # => ""
+ # d.add(REXML::XMLDecl.new('2.0'))
+ # d.xml_decl.to_s # => ""
+ #
+ # When argument +doc_type+ is given,
+ # it must be an REXML::DocType object,
+ # which becomes the document type for the document,
+ # replacing the previous document type, if any:
+ #
+ # d = REXML::Document.new
+ # d.doctype.to_s # => ""
+ # d.add(REXML::DocType.new('foo'))
+ # d.doctype.to_s # => ""
+ #
+ # When argument +object+ (not an REXML::XMLDecl or REXML::DocType object)
+ # is given it is added as the last child:
+ #
+ # d = REXML::Document.new
+ # d.add(REXML::Element.new('foo'))
+ # d.to_s # => ""
+ #
+ # source://rexml//lib/rexml/document.rb#170
+ def <<(child); end
+
+ # :call-seq:
+ # add(xml_decl) -> self
+ # add(doc_type) -> self
+ # add(object) -> self
+ #
+ # Adds an object to the document; returns +self+.
+ #
+ # When argument +xml_decl+ is given,
+ # it must be an REXML::XMLDecl object,
+ # which becomes the XML declaration for the document,
+ # replacing the previous XML declaration if any:
+ #
+ # d = REXML::Document.new
+ # d.xml_decl.to_s # => ""
+ # d.add(REXML::XMLDecl.new('2.0'))
+ # d.xml_decl.to_s # => ""
+ #
+ # When argument +doc_type+ is given,
+ # it must be an REXML::DocType object,
+ # which becomes the document type for the document,
+ # replacing the previous document type, if any:
+ #
+ # d = REXML::Document.new
+ # d.doctype.to_s # => ""
+ # d.add(REXML::DocType.new('foo'))
+ # d.doctype.to_s # => ""
+ #
+ # When argument +object+ (not an REXML::XMLDecl or REXML::DocType object)
+ # is given it is added as the last child:
+ #
+ # d = REXML::Document.new
+ # d.add(REXML::Element.new('foo'))
+ # d.to_s # => ""
+ #
+ # source://rexml//lib/rexml/document.rb#170
+ def add(child); end
+
+ # :call-seq:
+ # add_element(name_or_element = nil, attributes = nil) -> new_element
+ #
+ # Adds an element to the document by calling REXML::Element.add_element:
+ #
+ # REXML::Element.add_element(name_or_element, attributes)
+ #
+ # source://rexml//lib/rexml/document.rb#209
+ def add_element(arg = T.unsafe(nil), arg2 = T.unsafe(nil)); end
+
+ # :call-seq:
+ # clone -> new_document
+ #
+ # Returns the new document resulting from executing
+ # Document.new(self). See Document.new.
+ #
+ # source://rexml//lib/rexml/document.rb#120
+ def clone; end
+
+ # :call-seq:
+ # doctype -> doc_type or nil
+ #
+ # Returns the DocType object for the document, if it exists, otherwise +nil+:
+ #
+ # d = REXML::Document.new('')
+ # d.doctype.class # => REXML::DocType
+ # d = REXML::Document.new('')
+ # d.doctype.class # => nil
+ #
+ # source://rexml//lib/rexml/document.rb#241
+ def doctype; end
+
+ # source://rexml//lib/rexml/document.rb#442
+ def document; end
+
+ # :call-seq:
+ # encoding -> encoding_string
+ #
+ # Returns the XMLDecl encoding of the document,
+ #
+ # d = REXML::Document.new('')
+ # d.encoding # => "UTF-16"
+ # d = REXML::Document.new('')
+ # d.encoding # => "UTF-8"
+ #
+ # source://rexml//lib/rexml/document.rb#290
+ def encoding; end
+
+ # Returns the value of attribute entity_expansion_count.
+ #
+ # source://rexml//lib/rexml/document.rb#433
+ def entity_expansion_count; end
+
+ # :call-seq:
+ # expanded_name -> empty_string
+ #
+ # Returns an empty string.
+ #
+ # source://rexml//lib/rexml/document.rb#129
+ def expanded_name; end
+
+ # :call-seq:
+ # expanded_name -> empty_string
+ #
+ # Returns an empty string.
+ # d = doc_type
+ # d ? d.name : "UNDEFINED"
+ #
+ # source://rexml//lib/rexml/document.rb#129
+ def name; end
+
+ # :call-seq:
+ # node_type -> :document
+ #
+ # Returns the symbol +:document+.
+ #
+ # source://rexml//lib/rexml/document.rb#110
+ def node_type; end
+
+ # source://rexml//lib/rexml/document.rb#435
+ def record_entity_expansion; end
+
+ # :call-seq:
+ # root -> root_element or nil
+ #
+ # Returns the root element of the document, if it exists, otherwise +nil+:
+ #
+ # d = REXML::Document.new('')
+ # d.root # =>
+ # d = REXML::Document.new('')
+ # d.root # => nil
+ #
+ # source://rexml//lib/rexml/document.rb#225
+ def root; end
+
+ # :call-seq:
+ # stand_alone?
+ #
+ # Returns the XMLDecl standalone value of the document as a string,
+ # if it has been set, otherwise the default standalone value:
+ #
+ # d = REXML::Document.new('')
+ # d.stand_alone? # => "yes"
+ # d = REXML::Document.new('')
+ # d.stand_alone? # => nil
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/document.rb#305
+ def stand_alone?; end
+
+ # :call-seq:
+ # version -> version_string
+ #
+ # Returns the XMLDecl version of this document as a string,
+ # if it has been set, otherwise the default version:
+ #
+ # d = REXML::Document.new('')
+ # d.version # => "2.0"
+ # d = REXML::Document.new('')
+ # d.version # => "1.0"
+ #
+ # source://rexml//lib/rexml/document.rb#275
+ def version; end
+
+ # :call-seq:
+ # doc.write(output=$stdout, indent=-1, transtive=false, ie_hack=false, encoding=nil)
+ # doc.write(options={:output => $stdout, :indent => -1, :transtive => false, :ie_hack => false, :encoding => nil})
+ #
+ # Write the XML tree out, optionally with indent. This writes out the
+ # entire XML document, including XML declarations, doctype declarations,
+ # and processing instructions (if any are given).
+ #
+ # A controversial point is whether Document should always write the XML
+ # declaration () whether or not one is given by the
+ # user (or source document). REXML does not write one if one was not
+ # specified, because it adds unnecessary bandwidth to applications such
+ # as XML-RPC.
+ #
+ # Accept Nth argument style and options Hash style as argument.
+ # The recommended style is options Hash style for one or more
+ # arguments case.
+ #
+ # _Examples_
+ # Document.new("").write
+ #
+ # output = ""
+ # Document.new("").write(output)
+ #
+ # output = ""
+ # Document.new("").write(:output => output, :indent => 2)
+ #
+ # See also the classes in the rexml/formatters package for the proper way
+ # to change the default formatting of XML output.
+ #
+ # _Examples_
+ #
+ # output = ""
+ # tr = Transitive.new
+ # tr.write(Document.new(""), output)
+ #
+ # output::
+ # output an object which supports '<< string'; this is where the
+ # document will be written.
+ # indent::
+ # An integer. If -1, no indenting will be used; otherwise, the
+ # indentation will be twice this number of spaces, and children will be
+ # indented an additional amount. For a value of 3, every item will be
+ # indented 3 more levels, or 6 more spaces (2 * 3). Defaults to -1
+ # transitive::
+ # If transitive is true and indent is >= 0, then the output will be
+ # pretty-printed in such a way that the added whitespace does not affect
+ # the absolute *value* of the document -- that is, it leaves the value
+ # and number of Text nodes in the document unchanged.
+ # ie_hack::
+ # This hack inserts a space before the /> on empty tags to address
+ # a limitation of Internet Explorer. Defaults to false
+ # Encoding name as String. Change output encoding to specified encoding
+ # instead of encoding in XML declaration.
+ # Defaults to nil. It means encoding in XML declaration is used.
+ #
+ # source://rexml//lib/rexml/document.rb#365
+ def write(*arguments); end
+
+ # :call-seq:
+ # xml_decl -> xml_decl
+ #
+ # Returns the XMLDecl object for the document, if it exists,
+ # otherwise the default XMLDecl object:
+ #
+ # d = REXML::Document.new('')
+ # d.xml_decl.class # => REXML::XMLDecl
+ # d.xml_decl.to_s # => ""
+ # d = REXML::Document.new('')
+ # d.xml_decl.class # => REXML::XMLDecl
+ # d.xml_decl.to_s # => ""
+ #
+ # source://rexml//lib/rexml/document.rb#258
+ def xml_decl; end
+
+ private
+
+ # source://rexml//lib/rexml/document.rb#447
+ def build(source); end
+
+ class << self
+ # Get the entity expansion limit. By default the limit is set to 10000.
+ #
+ # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
+ #
+ # source://rexml//lib/rexml/document.rb#415
+ def entity_expansion_limit; end
+
+ # Set the entity expansion limit. By default the limit is set to 10000.
+ #
+ # Deprecated. Use REXML::Security.entity_expansion_limit= instead.
+ #
+ # source://rexml//lib/rexml/document.rb#408
+ def entity_expansion_limit=(val); end
+
+ # Get the entity expansion limit. By default the limit is set to 10240.
+ #
+ # Deprecated. Use REXML::Security.entity_expansion_text_limit instead.
+ #
+ # source://rexml//lib/rexml/document.rb#429
+ def entity_expansion_text_limit; end
+
+ # Set the entity expansion limit. By default the limit is set to 10240.
+ #
+ # Deprecated. Use REXML::Security.entity_expansion_text_limit= instead.
+ #
+ # source://rexml//lib/rexml/document.rb#422
+ def entity_expansion_text_limit=(val); end
+
+ # source://rexml//lib/rexml/document.rb#401
+ def parse_stream(source, listener); end
+ end
+end
+
+# An \REXML::Element object represents an XML element.
+#
+# An element:
+#
+# - Has a name (string).
+# - May have a parent (another element).
+# - Has zero or more children
+# (other elements, text, CDATA, processing instructions, and comments).
+# - Has zero or more siblings
+# (other elements, text, CDATA, processing instructions, and comments).
+# - Has zero or more named attributes.
+#
+# == In a Hurry?
+#
+# If you're somewhat familiar with XML
+# and have a particular task in mind,
+# you may want to see the
+# {tasks pages}[../doc/rexml/tasks/tocs/master_toc_rdoc.html],
+# and in particular, the
+# {tasks page for elements}[../doc/rexml/tasks/tocs/element_toc_rdoc.html].
+#
+# === Name
+#
+# An element has a name, which is initially set when the element is created:
+#
+# e = REXML::Element.new('foo')
+# e.name # => "foo"
+#
+# The name may be changed:
+#
+# e.name = 'bar'
+# e.name # => "bar"
+#
+#
+# === \Parent
+#
+# An element may have a parent.
+#
+# Its parent may be assigned explicitly when the element is created:
+#
+# e0 = REXML::Element.new('foo')
+# e1 = REXML::Element.new('bar', e0)
+# e1.parent # => ... >
+#
+# Note: the representation of an element always shows the element's name.
+# If the element has children, the representation indicates that
+# by including an ellipsis (...).
+#
+# The parent may be assigned explicitly at any time:
+#
+# e2 = REXML::Element.new('baz')
+# e1.parent = e2
+# e1.parent # =>
+#
+# When an element is added as a child, its parent is set automatically:
+#
+# e1.add_element(e0)
+# e0.parent # => ... >
+#
+# For an element that has no parent, method +parent+ returns +nil+.
+#
+# === Children
+#
+# An element has zero or more children.
+# The children are an ordered collection
+# of all objects whose parent is the element itself.
+#
+# The children may include any combination of elements, text, comments,
+# processing instructions, and CDATA.
+# (This example keeps things clean by controlling whitespace
+# via a +context+ setting.)
+#
+# xml_string = <<-EOT
+#
+#
+# text 0
+#
+#
+#
+#
+# text 1
+#
+#
+#
+#
+# EOT
+# context = {ignore_whitespace_nodes: :all, compress_whitespace: :all}
+# d = REXML::Document.new(xml_string, context)
+# root = d.root
+# root.children.size # => 10
+# root.each {|child| p "#{child.class}: #{child}" }
+#
+# Output:
+#
+# "REXML::Element: "
+# "REXML::Text: \n text 0\n "
+# "REXML::Comment: comment 0"
+# "REXML::Instruction: "
+# "REXML::CData: cdata 0"
+# "REXML::Element: "
+# "REXML::Text: \n text 1\n "
+# "REXML::Comment: comment 1"
+# "REXML::Instruction: "
+# "REXML::CData: cdata 1"
+#
+# A child may be added using inherited methods
+# Parent#insert_before or Parent#insert_after:
+#
+# xml_string = ''
+# d = REXML::Document.new(xml_string)
+# root = d.root
+# c = d.root[1] # =>
+# root.insert_before(c, REXML::Element.new('b'))
+# root.to_a # => [, , , ]
+#
+# A child may be replaced using Parent#replace_child:
+#
+# root.replace_child(c, REXML::Element.new('x'))
+# root.to_a # => [, , , ]
+#
+# A child may be removed using Parent#delete:
+#
+# x = root[2] # =>
+# root.delete(x)
+# root.to_a # => [, , ]
+#
+# === Siblings
+#
+# An element has zero or more siblings,
+# which are the other children of the element's parent.
+#
+# In the example above, element +ele_1+ is between a CDATA sibling
+# and a text sibling:
+#
+# ele_1 = root[5] # =>
+# ele_1.previous_sibling # => "cdata 0"
+# ele_1.next_sibling # => "\n text 1\n "
+#
+# === \Attributes
+#
+# An element has zero or more named attributes.
+#
+# A new element has no attributes:
+#
+# e = REXML::Element.new('foo')
+# e.attributes # => {}
+#
+# Attributes may be added:
+#
+# e.add_attribute('bar', 'baz')
+# e.add_attribute('bat', 'bam')
+# e.attributes.size # => 2
+# e['bar'] # => "baz"
+# e['bat'] # => "bam"
+#
+# An existing attribute may be modified:
+#
+# e.add_attribute('bar', 'bad')
+# e.attributes.size # => 2
+# e['bar'] # => "bad"
+#
+# An existing attribute may be deleted:
+#
+# e.delete_attribute('bar')
+# e.attributes.size # => 1
+# e['bar'] # => nil
+#
+# == What's Here
+#
+# To begin with, what's elsewhere?
+#
+# \Class \REXML::Element inherits from its ancestor classes:
+#
+# - REXML::Child
+# - REXML::Parent
+#
+# \REXML::Element itself and its ancestors also include modules:
+#
+# - {Enumerable}[https://docs.ruby-lang.org/en/master/Enumerable.html]
+# - REXML::Namespace
+# - REXML::Node
+# - REXML::XMLTokens
+#
+# === Methods for Creating an \Element
+#
+# ::new:: Returns a new empty element.
+# #clone:: Returns a clone of another element.
+#
+# === Methods for Attributes
+#
+# {[attribute_name]}[#method-i-5B-5D]:: Returns an attribute value.
+# #add_attribute:: Adds a new attribute.
+# #add_attributes:: Adds multiple new attributes.
+# #attribute:: Returns the attribute value for a given name and optional namespace.
+# #delete_attribute:: Removes an attribute.
+#
+# === Methods for Children
+#
+# {[index]}[#method-i-5B-5D]:: Returns the child at the given offset.
+# #add_element:: Adds an element as the last child.
+# #delete_element:: Deletes a child element.
+# #each_element:: Calls the given block with each child element.
+# #each_element_with_attribute:: Calls the given block with each child element
+# that meets given criteria,
+# which can include the attribute name.
+# #each_element_with_text:: Calls the given block with each child element
+# that meets given criteria,
+# which can include text.
+# #get_elements:: Returns an array of element children that match a given xpath.
+#
+# === Methods for \Text Children
+#
+# #add_text:: Adds a text node to the element.
+# #get_text:: Returns a text node that meets specified criteria.
+# #text:: Returns the text string from the first node that meets specified criteria.
+# #texts:: Returns an array of the text children of the element.
+# #text=:: Adds, removes, or replaces the first text child of the element
+#
+# === Methods for Other Children
+#
+# #cdatas:: Returns an array of the cdata children of the element.
+# #comments:: Returns an array of the comment children of the element.
+# #instructions:: Returns an array of the instruction children of the element.
+#
+# === Methods for Namespaces
+#
+# #add_namespace:: Adds a namespace to the element.
+# #delete_namespace:: Removes a namespace from the element.
+# #namespace:: Returns the string namespace URI for the element.
+# #namespaces:: Returns a hash of all defined namespaces in the element.
+# #prefixes:: Returns an array of the string prefixes (names)
+# of all defined namespaces in the element
+#
+# === Methods for Querying
+#
+# #document:: Returns the document, if any, that the element belongs to.
+# #root:: Returns the most distant element (not document) ancestor of the element.
+# #root_node:: Returns the most distant ancestor of the element.
+# #xpath:: Returns the string xpath to the element
+# relative to the most distant parent
+# #has_attributes?:: Returns whether the element has attributes.
+# #has_elements?:: Returns whether the element has elements.
+# #has_text?:: Returns whether the element has text.
+# #next_element:: Returns the next sibling that is an element.
+# #previous_element:: Returns the previous sibling that is an element.
+# #raw:: Returns whether raw mode is set for the element.
+# #whitespace:: Returns whether whitespace is respected for the element.
+# #ignore_whitespace_nodes:: Returns whether whitespace nodes
+# are to be ignored for the element.
+# #node_type:: Returns symbol :element.
+#
+# === One More Method
+#
+# #inspect:: Returns a string representation of the element.
+#
+# === Accessors
+#
+# #elements:: Returns the REXML::Elements object for the element.
+# #attributes:: Returns the REXML::Attributes object for the element.
+# #context:: Returns or sets the context hash for the element.
+#
+# source://rexml//lib/rexml/element.rb#279
+class REXML::Element < ::REXML::Parent
+ include ::REXML::XMLTokens
+ include ::REXML::Namespace
+
+ # :call-seq:
+ # Element.new(name = 'UNDEFINED', parent = nil, context = nil) -> new_element
+ # Element.new(element, parent = nil, context = nil) -> new_element
+ #
+ # Returns a new \REXML::Element object.
+ #
+ # When no arguments are given,
+ # returns an element with name 'UNDEFINED':
+ #
+ # e = REXML::Element.new # =>
+ # e.class # => REXML::Element
+ # e.name # => "UNDEFINED"
+ #
+ # When only argument +name+ is given,
+ # returns an element of the given name:
+ #
+ # REXML::Element.new('foo') # =>
+ #
+ # When only argument +element+ is given, it must be an \REXML::Element object;
+ # returns a shallow copy of the given element:
+ #
+ # e0 = REXML::Element.new('foo')
+ # e1 = REXML::Element.new(e0) # =>
+ #
+ # When argument +parent+ is also given, it must be an REXML::Parent object:
+ #
+ # e = REXML::Element.new('foo', REXML::Parent.new)
+ # e.parent # => #]>
+ #
+ # When argument +context+ is also given, it must be a hash
+ # representing the context for the element;
+ # see {Element Context}[../doc/rexml/context_rdoc.html]:
+ #
+ # e = REXML::Element.new('foo', nil, {raw: :all})
+ # e.context # => {:raw=>:all}
+ #
+ # @return [Element] a new instance of Element
+ #
+ # source://rexml//lib/rexml/element.rb#327
+ def initialize(arg = T.unsafe(nil), parent = T.unsafe(nil), context = T.unsafe(nil)); end
+
+ # :call-seq:
+ # [index] -> object
+ # [attr_name] -> attr_value
+ # [attr_sym] -> attr_value
+ #
+ # With integer argument +index+ given,
+ # returns the child at offset +index+, or +nil+ if none:
+ #
+ # d = REXML::Document.new '>textmore'
+ # root = d.root
+ # (0..root.size).each do |index|
+ # node = root[index]
+ # p "#{index}: #{node} (#{node.class})"
+ # end
+ #
+ # Output:
+ #
+ # "0: (REXML::Element)"
+ # "1: text (REXML::Text)"
+ # "2: (REXML::Element)"
+ # "3: more (REXML::Text)"
+ # "4: (REXML::Element)"
+ # "5: (NilClass)"
+ #
+ # With string argument +attr_name+ given,
+ # returns the string value for the given attribute name if it exists,
+ # otherwise +nil+:
+ #
+ # d = REXML::Document.new('')
+ # root = d.root
+ # root['attr'] # => "value"
+ # root['nosuch'] # => nil
+ #
+ # With symbol argument +attr_sym+ given,
+ # returns [attr_sym.to_s]:
+ #
+ # root[:attr] # => "value"
+ # root[:nosuch] # => nil
+ #
+ # source://rexml//lib/rexml/element.rb#1245
+ def [](name_or_index); end
+
+ # :call-seq:
+ # add_attribute(name, value) -> value
+ # add_attribute(attribute) -> attribute
+ #
+ # Adds an attribute to this element, overwriting any existing attribute
+ # by the same name.
+ #
+ # With string argument +name+ and object +value+ are given,
+ # adds the attribute created with that name and value:
+ #
+ # e = REXML::Element.new
+ # e.add_attribute('attr', 'value') # => "value"
+ # e['attr'] # => "value"
+ # e.add_attribute('attr', 'VALUE') # => "VALUE"
+ # e['attr'] # => "VALUE"
+ #
+ # With only attribute object +attribute+ given,
+ # adds the given attribute:
+ #
+ # a = REXML::Attribute.new('attr', 'value')
+ # e.add_attribute(a) # => attr='value'
+ # e['attr'] # => "value"
+ # a = REXML::Attribute.new('attr', 'VALUE')
+ # e.add_attribute(a) # => attr='VALUE'
+ # e['attr'] # => "VALUE"
+ #
+ # source://rexml//lib/rexml/element.rb#1349
+ def add_attribute(key, value = T.unsafe(nil)); end
+
+ # :call-seq:
+ # add_attributes(hash) -> hash
+ # add_attributes(array)
+ #
+ # Adds zero or more attributes to the element;
+ # returns the argument.
+ #
+ # If hash argument +hash+ is given,
+ # each key must be a string;
+ # adds each attribute created with the key/value pair:
+ #
+ # e = REXML::Element.new
+ # h = {'foo' => 'bar', 'baz' => 'bat'}
+ # e.add_attributes(h)
+ #
+ # If argument +array+ is given,
+ # each array member must be a 2-element array [name, value];
+ # each name must be a string:
+ #
+ # e = REXML::Element.new
+ # a = [['foo' => 'bar'], ['baz' => 'bat']]
+ # e.add_attributes(a)
+ #
+ # source://rexml//lib/rexml/element.rb#1380
+ def add_attributes(hash); end
+
+ # :call-seq:
+ # add_element(name, attributes = nil) -> new_element
+ # add_element(element, attributes = nil) -> element
+ #
+ # Adds a child element, optionally setting attributes
+ # on the added element; returns the added element.
+ #
+ # With string argument +name+, creates a new element with that name
+ # and adds the new element as a child:
+ #
+ # e0 = REXML::Element.new('foo')
+ # e0.add_element('bar')
+ # e0[0] # =>
+ #
+ #
+ # With argument +name+ and hash argument +attributes+,
+ # sets attributes on the new element:
+ #
+ # e0.add_element('baz', {'bat' => '0', 'bam' => '1'})
+ # e0[1] # =>
+ #
+ # With element argument +element+, adds that element as a child:
+ #
+ # e0 = REXML::Element.new('foo')
+ # e1 = REXML::Element.new('bar')
+ # e0.add_element(e1)
+ # e0[0] # =>
+ #
+ # With argument +element+ and hash argument +attributes+,
+ # sets attributes on the added element:
+ #
+ # e0.add_element(e1, {'bat' => '0', 'bam' => '1'})
+ # e0[1] # =>
+ #
+ # source://rexml//lib/rexml/element.rb#731
+ def add_element(element, attrs = T.unsafe(nil)); end
+
+ # :call-seq:
+ # add_namespace(prefix, uri = nil) -> self
+ #
+ # Adds a namespace to the element; returns +self+.
+ #
+ # With the single argument +prefix+,
+ # adds a namespace using the given +prefix+ and the namespace URI:
+ #
+ # e = REXML::Element.new('foo')
+ # e.add_namespace('bar')
+ # e.namespaces # => {"xmlns"=>"bar"}
+ #
+ # With both arguments +prefix+ and +uri+ given,
+ # adds a namespace using both arguments:
+ #
+ # e.add_namespace('baz', 'bat')
+ # e.namespaces # => {"xmlns"=>"bar", "baz"=>"bat"}
+ #
+ # source://rexml//lib/rexml/element.rb#654
+ def add_namespace(prefix, uri = T.unsafe(nil)); end
+
+ # :call-seq:
+ # add_text(string) -> nil
+ # add_text(text_node) -> self
+ #
+ # Adds text to the element.
+ #
+ # When string argument +string+ is given, returns +nil+.
+ #
+ # If the element has no child text node,
+ # creates a \REXML::Text object using the string,
+ # honoring the current settings for whitespace and raw,
+ # then adds that node to the element:
+ #
+ # d = REXML::Document.new('')
+ # a = d.root
+ # a.add_text('foo')
+ # a.to_a # => [, "foo"]
+ #
+ # If the element has child text nodes,
+ # appends the string to the _last_ text node:
+ #
+ # d = REXML::Document.new('foobar')
+ # a = d.root
+ # a.add_text('baz')
+ # a.to_a # => ["foo", , "barbaz"]
+ # a.add_text('baz')
+ # a.to_a # => ["foo", , "barbazbaz"]
+ #
+ # When text node argument +text_node+ is given,
+ # appends the node as the last text node in the element;
+ # returns +self+:
+ #
+ # d = REXML::Document.new('foobar')
+ # a = d.root
+ # a.add_text(REXML::Text.new('baz'))
+ # a.to_a # => ["foo", , "bar", "baz"]
+ # a.add_text(REXML::Text.new('baz'))
+ # a.to_a # => ["foo", , "bar", "baz", "baz"]
+ #
+ # source://rexml//lib/rexml/element.rb#1146
+ def add_text(text); end
+
+ # :call-seq:
+ # attribute(name, namespace = nil)
+ #
+ # Returns the string value for the given attribute name.
+ #
+ # With only argument +name+ given,
+ # returns the value of the named attribute if it exists, otherwise +nil+:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # root = d.root
+ # a = root[1] # =>
+ # a.attribute('attr') # => attr='value'
+ # a.attribute('nope') # => nil
+ #
+ # With arguments +name+ and +namespace+ given,
+ # returns the value of the named attribute if it exists, otherwise +nil+:
+ #
+ # xml_string = ""
+ # document = REXML::Document.new(xml_string)
+ # document.root.attribute("x") # => x='x'
+ # document.root.attribute("x", "a") # => a:x='a:x'
+ #
+ # source://rexml//lib/rexml/element.rb#1286
+ def attribute(name, namespace = T.unsafe(nil)); end
+
+ # Mechanisms for accessing attributes and child elements of this
+ # element.
+ #
+ # source://rexml//lib/rexml/element.rb#286
+ def attributes; end
+
+ # :call-seq:
+ # cdatas -> array_of_cdata_children
+ #
+ # Returns a frozen array of the REXML::CData children of the element:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # cds = d.root.cdatas # => ["foo", "bar"]
+ # cds.frozen? # => true
+ # cds.map {|cd| cd.class } # => [REXML::CData, REXML::CData]
+ #
+ # source://rexml//lib/rexml/element.rb#1424
+ def cdatas; end
+
+ # :call-seq:
+ # clone -> new_element
+ #
+ # Returns a shallow copy of the element, containing the name and attributes,
+ # but not the parent or children:
+ #
+ # e = REXML::Element.new('foo')
+ # e.add_attributes({'bar' => 0, 'baz' => 1})
+ # e.clone # =>
+ #
+ # source://rexml//lib/rexml/element.rb#391
+ def clone; end
+
+ # :call-seq:
+ # comments -> array_of_comment_children
+ #
+ # Returns a frozen array of the REXML::Comment children of the element:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # cs = d.root.comments
+ # cs.frozen? # => true
+ # cs.map {|c| c.class } # => [REXML::Comment, REXML::Comment]
+ # cs.map {|c| c.to_s } # => ["foo", "bar"]
+ #
+ # source://rexml//lib/rexml/element.rb#1445
+ def comments; end
+
+ # The context holds information about the processing environment, such as
+ # whitespace handling.
+ #
+ # source://rexml//lib/rexml/element.rb#289
+ def context; end
+
+ # The context holds information about the processing environment, such as
+ # whitespace handling.
+ #
+ # source://rexml//lib/rexml/element.rb#289
+ def context=(_arg0); end
+
+ # :call-seq:
+ # delete_attribute(name) -> removed_attribute or nil
+ #
+ # Removes a named attribute if it exists;
+ # returns the removed attribute if found, otherwise +nil+:
+ #
+ # e = REXML::Element.new('foo')
+ # e.add_attribute('bar', 'baz')
+ # e.delete_attribute('bar') # =>
+ # e.delete_attribute('bar') # => nil
+ #
+ # source://rexml//lib/rexml/element.rb#1399
+ def delete_attribute(key); end
+
+ # :call-seq:
+ # delete_element(index) -> removed_element or nil
+ # delete_element(element) -> removed_element or nil
+ # delete_element(xpath) -> removed_element or nil
+ #
+ # Deletes a child element.
+ #
+ # When 1-based integer argument +index+ is given,
+ # removes and returns the child element at that offset if it exists;
+ # indexing does not include text nodes;
+ # returns +nil+ if the element does not exist:
+ #
+ # d = REXML::Document.new 'text'
+ # a = d.root # => ... >
+ # a.delete_element(1) # =>
+ # a.delete_element(1) # =>
+ # a.delete_element(1) # => nil
+ #
+ # When element argument +element+ is given,
+ # removes and returns that child element if it exists,
+ # otherwise returns +nil+:
+ #
+ # d = REXML::Document.new 'text'
+ # a = d.root # => ... >
+ # c = a[2] # =>
+ # a.delete_element(c) # =>
+ # a.delete_element(c) # => nil
+ #
+ # When xpath argument +xpath+ is given,
+ # removes and returns the element at xpath if it exists,
+ # otherwise returns +nil+:
+ #
+ # d = REXML::Document.new 'text'
+ # a = d.root # => ... >
+ # a.delete_element('//c') # =>
+ # a.delete_element('//c') # => nil
+ #
+ # source://rexml//lib/rexml/element.rb#777
+ def delete_element(element); end
+
+ # :call-seq:
+ # delete_namespace(namespace = 'xmlns') -> self
+ #
+ # Removes a namespace from the element.
+ #
+ # With no argument, removes the default namespace:
+ #
+ # d = REXML::Document.new ""
+ # d.to_s # => ""
+ # d.root.delete_namespace # =>
+ # d.to_s # => ""
+ #
+ # With argument +namespace+, removes the specified namespace:
+ #
+ # d.root.delete_namespace('foo')
+ # d.to_s # => ""
+ #
+ # Does nothing if no such namespace is found:
+ #
+ # d.root.delete_namespace('nosuch')
+ # d.to_s # => ""
+ #
+ # source://rexml//lib/rexml/element.rb#686
+ def delete_namespace(namespace = T.unsafe(nil)); end
+
+ # :call-seq:
+ # document -> document or nil
+ #
+ # If the element is part of a document, returns that document:
+ #
+ # d = REXML::Document.new('')
+ # top_element = d.first
+ # child = top_element.first
+ # top_element.document == d # => true
+ # child.document == d # => true
+ #
+ # If the element is not part of a document, returns +nil+:
+ #
+ # REXML::Element.new.document # => nil
+ #
+ # For a document, returns +self+:
+ #
+ # d.document == d # => true
+ #
+ # Related: #root, #root_node.
+ #
+ # source://rexml//lib/rexml/element.rb#478
+ def document; end
+
+ # :call-seq:
+ # each_element {|e| ... }
+ #
+ # Calls the given block with each child element:
+ #
+ # d = REXML::Document.new 'bbd'
+ # a = d.root
+ # a.each_element {|e| p e }
+ #
+ # Output:
+ #
+ # ... >
+ # ... >
+ # ... >
+ #
+ #
+ # source://rexml//lib/rexml/element.rb#929
+ def each_element(xpath = T.unsafe(nil), &block); end
+
+ # :call-seq:
+ # each_element_with_attribute(attr_name, value = nil, max = 0, xpath = nil) {|e| ... }
+ #
+ # Calls the given block with each child element that meets given criteria.
+ #
+ # When only string argument +attr_name+ is given,
+ # calls the block with each child element that has that attribute:
+ #
+ # d = REXML::Document.new ''
+ # a = d.root
+ # a.each_element_with_attribute('id') {|e| p e }
+ #
+ # Output:
+ #
+ #
+ #
+ #
+ #
+ # With argument +attr_name+ and string argument +value+ given,
+ # calls the block with each child element that has that attribute
+ # with that value:
+ #
+ # a.each_element_with_attribute('id', '1') {|e| p e }
+ #
+ # Output:
+ #
+ #
+ #
+ #
+ # With arguments +attr_name+, +value+, and integer argument +max+ given,
+ # calls the block with at most +max+ child elements:
+ #
+ # a.each_element_with_attribute('id', '1', 1) {|e| p e }
+ #
+ # Output:
+ #
+ #
+ #
+ # With all arguments given, including +xpath+,
+ # calls the block with only those child elements
+ # that meet the first three criteria,
+ # and also match the given +xpath+:
+ #
+ # a.each_element_with_attribute('id', '1', 2, '//d') {|e| p e }
+ #
+ # Output:
+ #
+ #
+ #
+ # source://rexml//lib/rexml/element.rb#846
+ def each_element_with_attribute(key, value = T.unsafe(nil), max = T.unsafe(nil), name = T.unsafe(nil), &block); end
+
+ # :call-seq:
+ # each_element_with_text(text = nil, max = 0, xpath = nil) {|e| ... }
+ #
+ # Calls the given block with each child element that meets given criteria.
+ #
+ # With no arguments, calls the block with each child element that has text:
+ #
+ # d = REXML::Document.new 'bbd'
+ # a = d.root
+ # a.each_element_with_text {|e| p e }
+ #
+ # Output:
+ #
+ # ... >
+ # ... >
+ # ... >
+ #
+ # With the single string argument +text+,
+ # calls the block with each element that has exactly that text:
+ #
+ # a.each_element_with_text('b') {|e| p e }
+ #
+ # Output:
+ #
+ # ... >
+ # ... >
+ #
+ # With argument +text+ and integer argument +max+,
+ # calls the block with at most +max+ elements:
+ #
+ # a.each_element_with_text('b', 1) {|e| p e }
+ #
+ # Output:
+ #
+ # ... >
+ #
+ # With all arguments given, including +xpath+,
+ # calls the block with only those child elements
+ # that meet the first two criteria,
+ # and also match the given +xpath+:
+ #
+ # a.each_element_with_text('b', 2, '//c') {|e| p e }
+ #
+ # Output:
+ #
+ # ... >
+ #
+ # source://rexml//lib/rexml/element.rb#903
+ def each_element_with_text(text = T.unsafe(nil), max = T.unsafe(nil), name = T.unsafe(nil), &block); end
+
+ # Mechanisms for accessing attributes and child elements of this
+ # element.
+ #
+ # source://rexml//lib/rexml/element.rb#286
+ def elements; end
+
+ # :call-seq:
+ # get_elements(xpath)
+ #
+ # Returns an array of the elements that match the given +xpath+:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # d.root.get_elements('//a') # => [ ... >, ]
+ #
+ # source://rexml//lib/rexml/element.rb#948
+ def get_elements(xpath); end
+
+ # :call-seq:
+ # get_text(xpath = nil) -> text_node or nil
+ #
+ # Returns the first text node child in a specified element, if it exists,
+ # +nil+ otherwise.
+ #
+ # With no argument, returns the first text node from +self+:
+ #
+ # d = REXML::Document.new "some text this is bold! more text
"
+ # d.root.get_text.class # => REXML::Text
+ # d.root.get_text # => "some text "
+ #
+ # With argument +xpath+, returns the first text node from the element
+ # that matches +xpath+:
+ #
+ # d.root.get_text(1) # => "this is bold!"
+ #
+ # source://rexml//lib/rexml/element.rb#1052
+ def get_text(path = T.unsafe(nil)); end
+
+ # :call-seq:
+ # has_attributes? -> true or false
+ #
+ # Returns +true+ if the element has attributes, +false+ otherwise:
+ #
+ # d = REXML::Document.new('')
+ # a, b = *d.root
+ # a.has_attributes? # => true
+ # b.has_attributes? # => false
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/element.rb#1319
+ def has_attributes?; end
+
+ # :call-seq:
+ # has_elements?
+ #
+ # Returns +true+ if the element has one or more element children,
+ # +false+ otherwise:
+ #
+ # d = REXML::Document.new 'text'
+ # a = d.root # => ... >
+ # a.has_elements? # => true
+ # b = a[0] # =>
+ # b.has_elements? # => false
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/element.rb#793
+ def has_elements?; end
+
+ # :call-seq:
+ # has_text? -> true or false
+ #
+ # Returns +true+ if the element has one or more text noded,
+ # +false+ otherwise:
+ #
+ # d = REXML::Document.new 'text'
+ # a = d.root
+ # a.has_text? # => true
+ # b = a[0]
+ # b.has_text? # => false
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/element.rb#1001
+ def has_text?; end
+
+ # :call-seq:
+ # ignore_whitespace_nodes
+ #
+ # Returns +true+ if whitespace nodes are ignored for the element.
+ #
+ # See {Element Context}[../doc/rexml/context_rdoc.html].
+ #
+ # source://rexml//lib/rexml/element.rb#516
+ def ignore_whitespace_nodes; end
+
+ # :call-seq:
+ # inspect -> string
+ #
+ # Returns a string representation of the element.
+ #
+ # For an element with no attributes and no children, shows the element name:
+ #
+ # REXML::Element.new.inspect # => ""
+ #
+ # Shows attributes, if any:
+ #
+ # e = REXML::Element.new('foo')
+ # e.add_attributes({'bar' => 0, 'baz' => 1})
+ # e.inspect # => ""
+ #
+ # Shows an ellipsis (...), if there are child elements:
+ #
+ # e.add_element(REXML::Element.new('bar'))
+ # e.add_element(REXML::Element.new('baz'))
+ # e.inspect # => " ... >"
+ #
+ # source://rexml//lib/rexml/element.rb#366
+ def inspect; end
+
+ # :call-seq:
+ # instructions -> array_of_instruction_children
+ #
+ # Returns a frozen array of the REXML::Instruction children of the element:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # is = d.root.instructions
+ # is.frozen? # => true
+ # is.map {|i| i.class } # => [REXML::Instruction, REXML::Instruction]
+ # is.map {|i| i.to_s } # => ["", ""]
+ #
+ # source://rexml//lib/rexml/element.rb#1466
+ def instructions; end
+
+ # :call-seq:
+ # namespace(prefix = nil) -> string_uri or nil
+ #
+ # Returns the string namespace URI for the element,
+ # possibly deriving from one of its ancestors.
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # b = d.elements['//b']
+ # b.namespace # => "1"
+ # b.namespace('y') # => "2"
+ # b.namespace('nosuch') # => nil
+ #
+ # source://rexml//lib/rexml/element.rb#621
+ def namespace(prefix = T.unsafe(nil)); end
+
+ # :call-seq:
+ # namespaces -> array_of_namespace_names
+ #
+ # Returns a hash of all defined namespaces
+ # in the element and its ancestors:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string)
+ # d.elements['//a'].namespaces # => {"x"=>"1", "y"=>"2"}
+ # d.elements['//b'].namespaces # => {"x"=>"1", "y"=>"2"}
+ # d.elements['//c'].namespaces # => {"x"=>"1", "y"=>"2", "z"=>"3"}
+ #
+ # source://rexml//lib/rexml/element.rb#594
+ def namespaces; end
+
+ # :call-seq:
+ # next_element
+ #
+ # Returns the next sibling that is an element if it exists,
+ # +niL+ otherwise:
+ #
+ # d = REXML::Document.new 'text'
+ # d.root.elements['b'].next_element #->
+ # d.root.elements['c'].next_element #-> nil
+ #
+ # source://rexml//lib/rexml/element.rb#962
+ def next_element; end
+
+ # :call-seq:
+ # node_type -> :element
+ #
+ # Returns symbol :element:
+ #
+ # d = REXML::Document.new('')
+ # a = d.root # =>
+ # a.node_type # => :element
+ #
+ # source://rexml//lib/rexml/element.rb#1167
+ def node_type; end
+
+ # :call-seq:
+ # prefixes -> array_of_namespace_prefixes
+ #
+ # Returns an array of the string prefixes (names) of all defined namespaces
+ # in the element and its ancestors:
+ #
+ # xml_string = <<-EOT
+ #
+ #
+ #
+ #
+ #
+ #
+ # EOT
+ # d = REXML::Document.new(xml_string, {compress_whitespace: :all})
+ # d.elements['//a'].prefixes # => ["x", "y"]
+ # d.elements['//b'].prefixes # => ["x", "y"]
+ # d.elements['//c'].prefixes # => ["x", "y", "z"]
+ #
+ # source://rexml//lib/rexml/element.rb#568
+ def prefixes; end
+
+ # :call-seq:
+ # previous_element
+ #
+ # Returns the previous sibling that is an element if it exists,
+ # +niL+ otherwise:
+ #
+ # d = REXML::Document.new 'text'
+ # d.root.elements['c'].previous_element #->
+ # d.root.elements['b'].previous_element #-> nil
+ #
+ # source://rexml//lib/rexml/element.rb#978
+ def previous_element; end
+
+ # :call-seq:
+ # raw
+ #
+ # Returns +true+ if raw mode is set for the element.
+ #
+ # See {Element Context}[../doc/rexml/context_rdoc.html].
+ #
+ # The evaluation is tested against +expanded_name+, and so is namespace
+ # sensitive.
+ #
+ # source://rexml//lib/rexml/element.rb#536
+ def raw; end
+
+ # :call-seq:
+ # root -> element
+ #
+ # Returns the most distant _element_ (not document) ancestor of the element:
+ #
+ # d = REXML::Document.new('')
+ # top_element = d.first
+ # child = top_element.first
+ # top_element.root == top_element # => true
+ # child.root == top_element # => true
+ #
+ # For a document, returns the topmost element:
+ #
+ # d.root == top_element # => true
+ #
+ # Related: #root_node, #document.
+ #
+ # source://rexml//lib/rexml/element.rb#451
+ def root; end
+
+ # :call-seq:
+ # root_node -> document or element
+ #
+ # Returns the most distant ancestor of +self+.
+ #
+ # When the element is part of a document,
+ # returns the root node of the document.
+ # Note that the root node is different from the document element;
+ # in this example +a+ is document element and the root node is its parent:
+ #
+ # d = REXML::Document.new('')
+ # top_element = d.first # => ... >
+ # child = top_element.first # => ... >
+ # d.root_node == d # => true
+ # top_element.root_node == d # => true
+ # child.root_node == d # => true
+ #
+ # When the element is not part of a document, but does have ancestor elements,
+ # returns the most distant ancestor element:
+ #
+ # e0 = REXML::Element.new('foo')
+ # e1 = REXML::Element.new('bar')
+ # e1.parent = e0
+ # e2 = REXML::Element.new('baz')
+ # e2.parent = e1
+ # e2.root_node == e0 # => true
+ #
+ # When the element has no ancestor elements,
+ # returns +self+:
+ #
+ # e = REXML::Element.new('foo')
+ # e.root_node == e # => true
+ #
+ # Related: #root, #document.
+ #
+ # source://rexml//lib/rexml/element.rb#430
+ def root_node; end
+
+ # :call-seq:
+ # text(xpath = nil) -> text_string or nil
+ #
+ # Returns the text string from the first text node child
+ # in a specified element, if it exists, +nil+ otherwise.
+ #
+ # With no argument, returns the text from the first text node in +self+:
+ #
+ # d = REXML::Document.new "some text this is bold! more text
"
+ # d.root.text.class # => String
+ # d.root.text # => "some text "
+ #
+ # With argument +xpath+, returns text from the first text node
+ # in the element that matches +xpath+:
+ #
+ # d.root.text(1) # => "this is bold!"
+ #
+ # Note that an element may have multiple text nodes,
+ # possibly separated by other non-text children, as above.
+ # Even so, the returned value is the string text from the first such node.
+ #
+ # Note also that the text note is retrieved by method get_text,
+ # and so is always normalized text.
+ #
+ # source://rexml//lib/rexml/element.rb#1029
+ def text(path = T.unsafe(nil)); end
+
+ # :call-seq:
+ # text = string -> string
+ # text = nil -> nil
+ #
+ # Adds, replaces, or removes the first text node child in the element.
+ #
+ # With string argument +string+,
+ # creates a new \REXML::Text node containing that string,
+ # honoring the current settings for whitespace and row,
+ # then places the node as the first text child in the element;
+ # returns +string+.
+ #
+ # If the element has no text child, the text node is added:
+ #
+ # d = REXML::Document.new ''
+ # d.root.text = 'foo' #-> 'foo'
+ #
+ # If the element has a text child, it is replaced:
+ #
+ # d.root.text = 'bar' #-> 'bar'
+ #
+ # With argument +nil+, removes the first text child:
+ #
+ # d.root.text = nil #-> ''
+ #
+ # source://rexml//lib/rexml/element.rb#1088
+ def text=(text); end
+
+ # :call-seq:
+ # texts -> array_of_text_children
+ #
+ # Returns a frozen array of the REXML::Text children of the element:
+ #
+ # xml_string = 'textmore'
+ # d = REXML::Document.new(xml_string)
+ # ts = d.root.texts
+ # ts.frozen? # => true
+ # ts.map {|t| t.class } # => [REXML::Text, REXML::Text]
+ # ts.map {|t| t.to_s } # => ["text", "more"]
+ #
+ # source://rexml//lib/rexml/element.rb#1482
+ def texts; end
+
+ # :call-seq:
+ # whitespace
+ #
+ # Returns +true+ if whitespace is respected for this element,
+ # +false+ otherwise.
+ #
+ # See {Element Context}[../doc/rexml/context_rdoc.html].
+ #
+ # The evaluation is tested against the element's +expanded_name+,
+ # and so is namespace-sensitive.
+ #
+ # source://rexml//lib/rexml/element.rb#493
+ def whitespace; end
+
+ # == DEPRECATED
+ # See REXML::Formatters
+ #
+ # Writes out this element, and recursively, all children.
+ # output::
+ # output an object which supports '<< string'; this is where the
+ # document will be written.
+ # indent::
+ # An integer. If -1, no indenting will be used; otherwise, the
+ # indentation will be this number of spaces, and children will be
+ # indented an additional amount. Defaults to -1
+ # transitive::
+ # If transitive is true and indent is >= 0, then the output will be
+ # pretty-printed in such a way that the added whitespace does not affect
+ # the parse tree of the document
+ # ie_hack::
+ # This hack inserts a space before the /> on empty tags to address
+ # a limitation of Internet Explorer. Defaults to false
+ #
+ # out = ''
+ # doc.write( out ) #-> doc is written to the string 'out'
+ # doc.write( $stdout ) #-> doc written to the console
+ #
+ # source://rexml//lib/rexml/element.rb#1508
+ def write(output = T.unsafe(nil), indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
+
+ # :call-seq:
+ # xpath -> string_xpath
+ #
+ # Returns the string xpath to the element
+ # relative to the most distant parent:
+ #
+ # d = REXML::Document.new('')
+ # a = d.root # => ... >
+ # b = a[0] # => ... >
+ # c = b[0] # =>
+ # d.xpath # => ""
+ # a.xpath # => "/a"
+ # b.xpath # => "/a/b"
+ # c.xpath # => "/a/b/c"
+ #
+ # If there is no parent, returns the expanded name of the element:
+ #
+ # e = REXML::Element.new('foo')
+ # e.xpath # => "foo"
+ #
+ # source://rexml//lib/rexml/element.rb#1191
+ def xpath; end
+
+ private
+
+ # source://rexml//lib/rexml/element.rb#1525
+ def __to_xpath_helper(node); end
+
+ # A private helper method
+ #
+ # source://rexml//lib/rexml/element.rb#1540
+ def each_with_something(test, max = T.unsafe(nil), name = T.unsafe(nil)); end
+end
+
+# source://rexml//lib/rexml/doctype.rb#261
+class REXML::ElementDecl < ::REXML::Declaration
+ # @return [ElementDecl] a new instance of ElementDecl
+ #
+ # source://rexml//lib/rexml/doctype.rb#262
+ def initialize(src); end
+end
+
+# A class which provides filtering of children for Elements, and
+# XPath search support. You are expected to only encounter this class as
+# the element.elements object. Therefore, you are
+# _not_ expected to instantiate this yourself.
+#
+# xml_string = <<-EOT
+#
+#
+#
+# Everyday Italian
+# Giada De Laurentiis
+# 2005
+# 30.00
+#
+#
+# Harry Potter
+# J K. Rowling
+# 2005
+# 29.99
+#
+#
+# XQuery Kick Start
+# James McGovern
+# Per Bothner
+# Kurt Cagle
+# James Linn
+# Vaidyanathan Nagarajan
+# 2003
+# 49.99
+#
+#
+# Learning XML
+# Erik T. Ray
+# 2003
+# 39.95
+#
+#
+# EOT
+# d = REXML::Document.new(xml_string)
+# elements = d.root.elements
+# elements # => # ... >>
+#
+# source://rexml//lib/rexml/element.rb#1595
+class REXML::Elements
+ include ::Enumerable
+
+ # :call-seq:
+ # new(parent) -> new_elements_object
+ #
+ # Returns a new \Elements object with the given +parent+.
+ # Does _not_ assign parent.elements = self:
+ #
+ # d = REXML::Document.new(xml_string)
+ # eles = REXML::Elements.new(d.root)
+ # eles # => # ... >>
+ # eles == d.root.elements # => false
+ #
+ # @return [Elements] a new instance of Elements
+ #
+ # source://rexml//lib/rexml/element.rb#1608
+ def initialize(parent); end
+
+ # :call-seq:
+ # add -> new_element
+ # add(name) -> new_element
+ # add(element) -> element
+ #
+ # Adds an element; returns the element added.
+ #
+ # With no argument, creates and adds a new element.
+ # The new element has:
+ #
+ # - No name.
+ # - \Parent from the \Elements object.
+ # - Context from the that parent.
+ #
+ # Example:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # parent = elements.parent # => ... >
+ # parent.context = {raw: :all}
+ # elements.size # => 4
+ # new_element = elements.add # => >
+ # elements.size # => 5
+ # new_element.name # => nil
+ # new_element.parent # => ... >
+ # new_element.context # => {:raw=>:all}
+ #
+ # With string argument +name+, creates and adds a new element.
+ # The new element has:
+ #
+ # - Name +name+.
+ # - \Parent from the \Elements object.
+ # - Context from the that parent.
+ #
+ # Example:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # parent = elements.parent # => ... >
+ # parent.context = {raw: :all}
+ # elements.size # => 4
+ # new_element = elements.add('foo') # =>
+ # elements.size # => 5
+ # new_element.name # => "foo"
+ # new_element.parent # => ... >
+ # new_element.context # => {:raw=>:all}
+ #
+ # With argument +element+,
+ # creates and adds a clone of the given +element+.
+ # The new element has name, parent, and context from the given +element+.
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # elements.size # => 4
+ # e0 = REXML::Element.new('foo')
+ # e1 = REXML::Element.new('bar', e0, {raw: :all})
+ # element = elements.add(e1) # =>
+ # elements.size # => 5
+ # element.name # => "bar"
+ # element.parent # => ... >
+ # element.context # => {:raw=>:all}
+ #
+ # source://rexml//lib/rexml/element.rb#1925
+ def <<(element = T.unsafe(nil)); end
+
+ # :call-seq:
+ # elements[index] -> element or nil
+ # elements[xpath] -> element or nil
+ # elements[n, name] -> element or nil
+ #
+ # Returns the first \Element object selected by the arguments,
+ # if any found, or +nil+ if none found.
+ #
+ # Notes:
+ # - The +index+ is 1-based, not 0-based, so that:
+ # - The first element has index 1
+ # - The _nth_ element has index +n+.
+ # - The selection ignores non-\Element nodes.
+ #
+ # When the single argument +index+ is given,
+ # returns the element given by the index, if any; otherwise, +nil+:
+ #
+ # d = REXML::Document.new(xml_string)
+ # eles = d.root.elements
+ # eles # => # ... >>
+ # eles[1] # => ... >
+ # eles.size # => 4
+ # eles[4] # => ... >
+ # eles[5] # => nil
+ #
+ # The node at this index is not an \Element, and so is not returned:
+ #
+ # eles = d.root.first.first # => ... >
+ # eles.to_a # => ["Everyday Italian"]
+ # eles[1] # => nil
+ #
+ # When the single argument +xpath+ is given,
+ # returns the first element found via that +xpath+, if any; otherwise, +nil+:
+ #
+ # eles = d.root.elements # => # ... >>
+ # eles['/bookstore'] # => ... >
+ # eles['//book'] # => ... >
+ # eles['//book [@category="children"]'] # => ... >
+ # eles['/nosuch'] # => nil
+ # eles['//nosuch'] # => nil
+ # eles['//book [@category="nosuch"]'] # => nil
+ # eles['.'] # => ... >
+ # eles['..'].class # => REXML::Document
+ #
+ # With arguments +n+ and +name+ given,
+ # returns the _nth_ found element that has the given +name+,
+ # or +nil+ if there is no such _nth_ element:
+ #
+ # eles = d.root.elements # => # ... >>
+ # eles[1, 'book'] # => ... >
+ # eles[4, 'book'] # => ... >
+ # eles[5, 'book'] # => nil
+ #
+ # source://rexml//lib/rexml/element.rb#1680
+ def [](index, name = T.unsafe(nil)); end
+
+ # :call-seq:
+ # elements[] = index, replacement_element -> replacement_element or nil
+ #
+ # Replaces or adds an element.
+ #
+ # When eles[index] exists, replaces it with +replacement_element+
+ # and returns +replacement_element+:
+ #
+ # d = REXML::Document.new(xml_string)
+ # eles = d.root.elements # => # ... >>
+ # eles[1] # => ... >
+ # eles[1] = REXML::Element.new('foo')
+ # eles[1] # =>
+ #
+ # Does nothing (or raises an exception)
+ # if +replacement_element+ is not an \Element:
+ # eles[2] # => ... >
+ # eles[2] = REXML::Text.new('bar')
+ # eles[2] # => ... >
+ #
+ # When eles[index] does not exist,
+ # adds +replacement_element+ to the element and returns
+ #
+ # d = REXML::Document.new(xml_string)
+ # eles = d.root.elements # => # ... >>
+ # eles.size # => 4
+ # eles[50] = REXML::Element.new('foo') # =>
+ # eles.size # => 5
+ # eles[5] # =>
+ #
+ # Does nothing (or raises an exception)
+ # if +replacement_element+ is not an \Element:
+ #
+ # eles[50] = REXML::Text.new('bar') # => "bar"
+ # eles.size # => 5
+ #
+ # source://rexml//lib/rexml/element.rb#1735
+ def []=(index, element); end
+
+ # :call-seq:
+ # add -> new_element
+ # add(name) -> new_element
+ # add(element) -> element
+ #
+ # Adds an element; returns the element added.
+ #
+ # With no argument, creates and adds a new element.
+ # The new element has:
+ #
+ # - No name.
+ # - \Parent from the \Elements object.
+ # - Context from the that parent.
+ #
+ # Example:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # parent = elements.parent # => ... >
+ # parent.context = {raw: :all}
+ # elements.size # => 4
+ # new_element = elements.add # => >
+ # elements.size # => 5
+ # new_element.name # => nil
+ # new_element.parent # => ... >
+ # new_element.context # => {:raw=>:all}
+ #
+ # With string argument +name+, creates and adds a new element.
+ # The new element has:
+ #
+ # - Name +name+.
+ # - \Parent from the \Elements object.
+ # - Context from the that parent.
+ #
+ # Example:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # parent = elements.parent # => ... >
+ # parent.context = {raw: :all}
+ # elements.size # => 4
+ # new_element = elements.add('foo') # =>
+ # elements.size # => 5
+ # new_element.name # => "foo"
+ # new_element.parent # => ... >
+ # new_element.context # => {:raw=>:all}
+ #
+ # With argument +element+,
+ # creates and adds a clone of the given +element+.
+ # The new element has name, parent, and context from the given +element+.
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # elements.size # => 4
+ # e0 = REXML::Element.new('foo')
+ # e1 = REXML::Element.new('bar', e0, {raw: :all})
+ # element = elements.add(e1) # =>
+ # elements.size # => 5
+ # element.name # => "bar"
+ # element.parent # => ... >
+ # element.context # => {:raw=>:all}
+ #
+ # source://rexml//lib/rexml/element.rb#1925
+ def add(element = T.unsafe(nil)); end
+
+ # :call-seq:
+ # collect(xpath = nil) {|element| ... } -> array
+ #
+ # Iterates over the elements; returns the array of block return values.
+ #
+ # With no argument, iterates over all elements:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # elements.collect {|element| element.size } # => [9, 9, 17, 9]
+ #
+ # With argument +xpath+, iterates over elements that match
+ # the given +xpath+:
+ #
+ # xpath = '//book [@category="web"]'
+ # elements.collect(xpath) {|element| element.size } # => [17, 9]
+ #
+ # source://rexml//lib/rexml/element.rb#1988
+ def collect(xpath = T.unsafe(nil)); end
+
+ # :call-seq:
+ # delete(index) -> removed_element or nil
+ # delete(element) -> removed_element or nil
+ # delete(xpath) -> removed_element or nil
+ #
+ # Removes an element; returns the removed element, or +nil+ if none removed.
+ #
+ # With integer argument +index+ given,
+ # removes the child element at that offset:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # elements.size # => 4
+ # elements[2] # => ... >
+ # elements.delete(2) # => ... >
+ # elements.size # => 3
+ # elements[2] # => ... >
+ # elements.delete(50) # => nil
+ #
+ # With element argument +element+ given,
+ # removes that child element:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # ele_1, ele_2, ele_3, ele_4 = *elements
+ # elements.size # => 4
+ # elements[2] # => ... >
+ # elements.delete(ele_2) # => ... >
+ # elements.size # => 3
+ # elements[2] # => ... >
+ # elements.delete(ele_2) # => nil
+ #
+ # With string argument +xpath+ given,
+ # removes the first element found via that xpath:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # elements.delete('//book') # => ... >
+ # elements.delete('//book [@category="children"]') # => ... >
+ # elements.delete('//nosuch') # => nil
+ #
+ # source://rexml//lib/rexml/element.rb#1825
+ def delete(element); end
+
+ # :call-seq:
+ # delete_all(xpath)
+ #
+ # Removes all elements found via the given +xpath+;
+ # returns the array of removed elements, if any, else +nil+.
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # elements.size # => 4
+ # deleted_elements = elements.delete_all('//book [@category="web"]')
+ # deleted_elements.size # => 2
+ # elements.size # => 2
+ # deleted_elements = elements.delete_all('//book')
+ # deleted_elements.size # => 2
+ # elements.size # => 0
+ # elements.delete_all('//book') # => []
+ #
+ # source://rexml//lib/rexml/element.rb#1851
+ def delete_all(xpath); end
+
+ # :call-seq:
+ # each(xpath = nil) {|element| ... } -> self
+ #
+ # Iterates over the elements.
+ #
+ # With no argument, calls the block with each element:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # elements.each {|element| p element }
+ #
+ # Output:
+ #
+ # ... >
+ # ... >
+ # ... >
+ # ... >
+ #
+ # With argument +xpath+, calls the block with each element
+ # that matches the given +xpath+:
+ #
+ # elements.each('//book [@category="web"]') {|element| p element }
+ #
+ # Output:
+ #
+ # ... >
+ # ... >
+ #
+ # source://rexml//lib/rexml/element.rb#1967
+ def each(xpath = T.unsafe(nil)); end
+
+ # :call-seq:
+ # empty? -> true or false
+ #
+ # Returns +true+ if there are no children, +false+ otherwise.
+ #
+ # d = REXML::Document.new('')
+ # d.elements.empty? # => true
+ # d = REXML::Document.new(xml_string)
+ # d.elements.empty? # => false
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/element.rb#1755
+ def empty?; end
+
+ # :call-seq:
+ # index(element)
+ #
+ # Returns the 1-based index of the given +element+, if found;
+ # otherwise, returns -1:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # ele_1, ele_2, ele_3, ele_4 = *elements
+ # elements.index(ele_4) # => 4
+ # elements.delete(ele_3)
+ # elements.index(ele_4) # => 3
+ # elements.index(ele_3) # => -1
+ #
+ # source://rexml//lib/rexml/element.rb#1773
+ def index(element); end
+
+ # :call-seq:
+ # inject(xpath = nil, initial = nil) -> object
+ #
+ # Calls the block with elements; returns the last block return value.
+ #
+ # With no argument, iterates over the elements, calling the block
+ # elements.size - 1 times.
+ #
+ # - The first call passes the first and second elements.
+ # - The second call passes the first block return value and the third element.
+ # - The third call passes the second block return value and the fourth element.
+ # - And so on.
+ #
+ # In this example, the block returns the passed element,
+ # which is then the object argument to the next call:
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = d.root.elements
+ # elements.inject do |object, element|
+ # p [elements.index(object), elements.index(element)]
+ # element
+ # end
+ #
+ # Output:
+ #
+ # [1, 2]
+ # [2, 3]
+ # [3, 4]
+ #
+ # With the single argument +xpath+, calls the block only with
+ # elements matching that xpath:
+ #
+ # elements.inject('//book [@category="web"]') do |object, element|
+ # p [elements.index(object), elements.index(element)]
+ # element
+ # end
+ #
+ # Output:
+ #
+ # [3, 4]
+ #
+ # With argument +xpath+ given as +nil+
+ # and argument +initial+ also given,
+ # calls the block once for each element.
+ #
+ # - The first call passes the +initial+ and the first element.
+ # - The second call passes the first block return value and the second element.
+ # - The third call passes the second block return value and the third element.
+ # - And so on.
+ #
+ # In this example, the first object index is -1
+ #
+ # elements.inject(nil, 'Initial') do |object, element|
+ # p [elements.index(object), elements.index(element)]
+ # element
+ # end
+ #
+ # Output:
+ #
+ # [-1, 1]
+ # [1, 2]
+ # [2, 3]
+ # [3, 4]
+ #
+ # In this form the passed object can be used as an accumulator:
+ #
+ # elements.inject(nil, 0) do |total, element|
+ # total += element.size
+ # end # => 44
+ #
+ # With both arguments +xpath+ and +initial+ are given,
+ # calls the block only with elements matching that xpath:
+ #
+ # elements.inject('//book [@category="web"]', 0) do |total, element|
+ # total += element.size
+ # end # => 26
+ #
+ # source://rexml//lib/rexml/element.rb#2073
+ def inject(xpath = T.unsafe(nil), initial = T.unsafe(nil)); end
+
+ # :call-seq:
+ # parent
+ #
+ # Returns the parent element cited in creating the \Elements object.
+ # This element is also the default starting point for searching
+ # in the \Elements object.
+ #
+ # d = REXML::Document.new(xml_string)
+ # elements = REXML::Elements.new(d.root)
+ # elements.parent == d.root # => true
+ #
+ # source://rexml//lib/rexml/element.rb#1623
+ def parent; end
+
+ # :call-seq:
+ # size -> integer
+ #
+ # Returns the count of \Element children:
+ #
+ # d = REXML::Document.new 'seanelliottrussell'
+ # d.root.elements.size # => 3 # Three elements.
+ # d.root.size # => 6 # Three elements plus three text nodes..
+ #
+ # source://rexml//lib/rexml/element.rb#2097
+ def size; end
+
+ # :call-seq:
+ # to_a(xpath = nil) -> array_of_elements
+ #
+ # Returns an array of element children (not including non-element children).
+ #
+ # With no argument, returns an array of all element children:
+ #
+ # d = REXML::Document.new 'seanelliott'
+ # elements = d.root.elements
+ # elements.to_a # => [, ] # Omits non-element children.
+ # children = d.root.children
+ # children # => ["sean", , "elliott", ] # Includes non-element children.
+ #
+ # With argument +xpath+, returns an array of element children
+ # that match the xpath:
+ #
+ # elements.to_a('//c') # => []
+ #
+ # source://rexml//lib/rexml/element.rb#2121
+ def to_a(xpath = T.unsafe(nil)); end
+
+ private
+
+ # Private helper class. Removes quotes from quoted strings
+ #
+ # source://rexml//lib/rexml/element.rb#2129
+ def literalize(name); end
+end
+
+# source://rexml//lib/rexml/encoding.rb#4
+module REXML::Encoding
+ # source://rexml//lib/rexml/encoding.rb#29
+ def decode(string); end
+
+ # source://rexml//lib/rexml/encoding.rb#25
+ def encode(string); end
+
+ # ID ---> Encoding name
+ #
+ # source://rexml//lib/rexml/encoding.rb#6
+ def encoding; end
+
+ # source://rexml//lib/rexml/encoding.rb#7
+ def encoding=(encoding); end
+
+ private
+
+ # source://rexml//lib/rexml/encoding.rb#34
+ def find_encoding(name); end
+end
+
+# source://rexml//lib/rexml/entity.rb#7
+class REXML::Entity < ::REXML::Child
+ include ::REXML::XMLTokens
+
+ # Create a new entity. Simple entities can be constructed by passing a
+ # name, value to the constructor; this creates a generic, plain entity
+ # reference. For anything more complicated, you have to pass a Source to
+ # the constructor with the entity definition, or use the accessor methods.
+ # +WARNING+: There is no validation of entity state except when the entity
+ # is read from a stream. If you start poking around with the accessors,
+ # you can easily create a non-conformant Entity.
+ #
+ # e = Entity.new( 'amp', '&' )
+ #
+ # @return [Entity] a new instance of Entity
+ #
+ # source://rexml//lib/rexml/entity.rb#33
+ def initialize(stream, value = T.unsafe(nil), parent = T.unsafe(nil), reference = T.unsafe(nil)); end
+
+ # Returns the value of attribute external.
+ #
+ # source://rexml//lib/rexml/entity.rb#22
+ def external; end
+
+ # Returns the value of attribute name.
+ #
+ # source://rexml//lib/rexml/entity.rb#22
+ def name; end
+
+ # Returns the value of attribute ndata.
+ #
+ # source://rexml//lib/rexml/entity.rb#22
+ def ndata; end
+
+ # Returns the value of this entity unprocessed -- raw. This is the
+ # normalized value; that is, with all %ent; and &ent; entities intact
+ #
+ # source://rexml//lib/rexml/entity.rb#85
+ def normalized; end
+
+ # source://rexml//lib/rexml/entity.rb#138
+ def parent=(other); end
+
+ # Returns the value of attribute pubid.
+ #
+ # source://rexml//lib/rexml/entity.rb#22
+ def pubid; end
+
+ # Returns the value of attribute ref.
+ #
+ # source://rexml//lib/rexml/entity.rb#22
+ def ref; end
+
+ # Returns this entity as a string. See write().
+ #
+ # source://rexml//lib/rexml/entity.rb#119
+ def to_s; end
+
+ # Evaluates to the unnormalized value of this entity; that is, replacing
+ # all entities -- both %ent; and &ent; entities. This differs from
+ # +value()+ in that +value+ only replaces %ent; entities.
+ #
+ # source://rexml//lib/rexml/entity.rb#73
+ def unnormalized; end
+
+ # Returns the value of this entity. At the moment, only internal entities
+ # are processed. If the value contains internal references (IE,
+ # %blah;), those are replaced with their values. IE, if the doctype
+ # contains:
+ #
+ #
+ # then:
+ # doctype.entity('yada').value #-> "nanoo bar nanoo"
+ #
+ # source://rexml//lib/rexml/entity.rb#134
+ def value; end
+
+ # Write out a fully formed, correct entity definition (assuming the Entity
+ # object itself is valid.)
+ #
+ # out::
+ # An object implementing << to which the entity will be
+ # output
+ # indent::
+ # *DEPRECATED* and ignored
+ #
+ # source://rexml//lib/rexml/entity.rb#97
+ def write(out, indent = T.unsafe(nil)); end
+
+ private
+
+ # source://rexml//lib/rexml/entity.rb#144
+ def resolve_value; end
+
+ class << self
+ # Evaluates whether the given string matches an entity definition,
+ # returning true if so, and false otherwise.
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/entity.rb#66
+ def matches?(string); end
+ end
+end
+
+# source://rexml//lib/rexml/doctype.rb#267
+class REXML::ExternalEntity < ::REXML::Child
+ # @return [ExternalEntity] a new instance of ExternalEntity
+ #
+ # source://rexml//lib/rexml/doctype.rb#268
+ def initialize(src); end
+
+ # source://rexml//lib/rexml/doctype.rb#272
+ def to_s; end
+
+ # source://rexml//lib/rexml/doctype.rb#275
+ def write(output, indent); end
+end
+
+# source://rexml//lib/rexml/formatters/default.rb#5
+class REXML::Formatters::Default
+ # Prints out the XML document with no formatting -- except if ie_hack is
+ # set.
+ #
+ # ie_hack::
+ # If set to true, then inserts whitespace before the close of an empty
+ # tag, so that IE's bad XML parser doesn't choke.
+ #
+ # @return [Default] a new instance of Default
+ #
+ # source://rexml//lib/rexml/formatters/default.rb#12
+ def initialize(ie_hack = T.unsafe(nil)); end
+
+ # Writes the node to some output.
+ #
+ # node::
+ # The node to write
+ # output::
+ # A class implementing <<. Pass in an Output object to
+ # change the output encoding.
+ #
+ # source://rexml//lib/rexml/formatters/default.rb#23
+ def write(node, output); end
+
+ protected
+
+ # source://rexml//lib/rexml/formatters/default.rb#98
+ def write_cdata(node, output); end
+
+ # source://rexml//lib/rexml/formatters/default.rb#92
+ def write_comment(node, output); end
+
+ # source://rexml//lib/rexml/formatters/default.rb#61
+ def write_document(node, output); end
+
+ # source://rexml//lib/rexml/formatters/default.rb#65
+ def write_element(node, output); end
+
+ # source://rexml//lib/rexml/formatters/default.rb#104
+ def write_instruction(node, output); end
+
+ # source://rexml//lib/rexml/formatters/default.rb#88
+ def write_text(node, output); end
+end
+
+# Pretty-prints an XML document. This destroys whitespace in text nodes
+# and will insert carriage returns and indentations.
+#
+# TODO: Add an option to print attributes on new lines
+#
+# source://rexml//lib/rexml/formatters/pretty.rb#10
+class REXML::Formatters::Pretty < ::REXML::Formatters::Default
+ # Create a new pretty printer.
+ #
+ # output::
+ # An object implementing '<<(String)', to which the output will be written.
+ # indentation::
+ # An integer greater than 0. The indentation of each level will be
+ # this number of spaces. If this is < 1, the behavior of this object
+ # is undefined. Defaults to 2.
+ # ie_hack::
+ # If true, the printer will insert whitespace before closing empty
+ # tags, thereby allowing Internet Explorer's XML parser to
+ # function. Defaults to false.
+ #
+ # @return [Pretty] a new instance of Pretty
+ #
+ # source://rexml//lib/rexml/formatters/pretty.rb#30
+ def initialize(indentation = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
+
+ # If compact is set to true, then the formatter will attempt to use as
+ # little space as possible
+ #
+ # source://rexml//lib/rexml/formatters/pretty.rb#14
+ def compact; end
+
+ # If compact is set to true, then the formatter will attempt to use as
+ # little space as possible
+ #
+ # source://rexml//lib/rexml/formatters/pretty.rb#14
+ def compact=(_arg0); end
+
+ # The width of a page. Used for formatting text
+ #
+ # source://rexml//lib/rexml/formatters/pretty.rb#16
+ def width; end
+
+ # The width of a page. Used for formatting text
+ #
+ # source://rexml//lib/rexml/formatters/pretty.rb#16
+ def width=(_arg0); end
+
+ protected
+
+ # source://rexml//lib/rexml/formatters/pretty.rb#102
+ def write_cdata(node, output); end
+
+ # source://rexml//lib/rexml/formatters/pretty.rb#97
+ def write_comment(node, output); end
+
+ # source://rexml//lib/rexml/formatters/pretty.rb#107
+ def write_document(node, output); end
+
+ # source://rexml//lib/rexml/formatters/pretty.rb#39
+ def write_element(node, output); end
+
+ # source://rexml//lib/rexml/formatters/pretty.rb#88
+ def write_text(node, output); end
+
+ private
+
+ # source://rexml//lib/rexml/formatters/pretty.rb#124
+ def indent_text(string, level = T.unsafe(nil), style = T.unsafe(nil), indentfirstline = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/formatters/pretty.rb#129
+ def wrap(string, width); end
+end
+
+# A Source that wraps an IO. See the Source class for method
+# documentation
+#
+# source://rexml//lib/rexml/source.rb#159
+class REXML::IOSource < ::REXML::Source
+ # block_size has been deprecated
+ #
+ # @return [IOSource] a new instance of IOSource
+ #
+ # source://rexml//lib/rexml/source.rb#163
+ def initialize(arg, block_size = T.unsafe(nil), encoding = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/source.rb#215
+ def consume(pattern); end
+
+ # @return the current line in the source
+ #
+ # source://rexml//lib/rexml/source.rb#244
+ def current_line; end
+
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/source.rb#235
+ def empty?; end
+
+ # source://rexml//lib/rexml/source.rb#219
+ def match(pattern, cons = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/source.rb#239
+ def position; end
+
+ # source://rexml//lib/rexml/source.rb#207
+ def read; end
+
+ # source://rexml//lib/rexml/source.rb#184
+ def scan(pattern, cons = T.unsafe(nil)); end
+
+ private
+
+ # source://rexml//lib/rexml/source.rb#286
+ def encoding_updated; end
+
+ # source://rexml//lib/rexml/source.rb#266
+ def readline; end
+end
+
+# Represents an XML Instruction; IE, ... ?>
+# TODO: Add parent arg (3rd arg) to constructor
+#
+# source://rexml//lib/rexml/instruction.rb#9
+class REXML::Instruction < ::REXML::Child
+ # Constructs a new Instruction
+ # the target of this instruction is set to this. If an Instruction,
+ # then the Instruction is shallowly cloned (target and content are
+ # copied).
+ # be a Parent if the target argument is a Source. Otherwise, this
+ # String is set as the content of this instruction.
+ #
+ # @param target can be one of a number of things. If String, then
+ # @param content Must be either a String, or a Parent. Can only
+ # @return [Instruction] a new instance of Instruction
+ #
+ # source://rexml//lib/rexml/instruction.rb#25
+ def initialize(target, content = T.unsafe(nil)); end
+
+ # of the other matches the target and content of this object.
+ #
+ # @return true if other is an Instruction, and the content and target
+ #
+ # source://rexml//lib/rexml/instruction.rb#65
+ def ==(other); end
+
+ # source://rexml//lib/rexml/instruction.rb#44
+ def clone; end
+
+ # target is the "name" of the Instruction; IE, the "tag" in
+ # content is everything else.
+ #
+ # source://rexml//lib/rexml/instruction.rb#15
+ def content; end
+
+ # target is the "name" of the Instruction; IE, the "tag" in
+ # content is everything else.
+ #
+ # source://rexml//lib/rexml/instruction.rb#15
+ def content=(_arg0); end
+
+ # source://rexml//lib/rexml/instruction.rb#75
+ def inspect; end
+
+ # source://rexml//lib/rexml/instruction.rb#71
+ def node_type; end
+
+ # target is the "name" of the Instruction; IE, the "tag" in
+ # content is everything else.
+ #
+ # source://rexml//lib/rexml/instruction.rb#15
+ def target; end
+
+ # target is the "name" of the Instruction; IE, the "tag" in
+ # content is everything else.
+ #
+ # source://rexml//lib/rexml/instruction.rb#15
+ def target=(_arg0); end
+
+ # == DEPRECATED
+ # See the rexml/formatters package
+ #
+ # source://rexml//lib/rexml/instruction.rb#51
+ def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
+end
+
+# Adds named attributes to an object.
+#
+# source://rexml//lib/rexml/namespace.rb#7
+module REXML::Namespace
+ include ::REXML::XMLTokens
+
+ # The name of the object, valid if set
+ #
+ # source://rexml//lib/rexml/namespace.rb#9
+ def expanded_name; end
+
+ # Fully expand the name, even if the prefix wasn't specified in the
+ # source file.
+ #
+ # source://rexml//lib/rexml/namespace.rb#57
+ def fully_expanded_name; end
+
+ # Compares names optionally WITH namespaces
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/namespace.rb#43
+ def has_name?(other, ns = T.unsafe(nil)); end
+
+ # The name of the object, valid if set
+ #
+ # source://rexml//lib/rexml/namespace.rb#9
+ def name; end
+
+ # Sets the name and the expanded name
+ #
+ # source://rexml//lib/rexml/namespace.rb#17
+ def name=(name); end
+
+ # The expanded name of the object, valid if name is set
+ #
+ # source://rexml//lib/rexml/namespace.rb#11
+ def prefix; end
+
+ # The expanded name of the object, valid if name is set
+ #
+ # source://rexml//lib/rexml/namespace.rb#11
+ def prefix=(_arg0); end
+end
+
+# source://rexml//lib/rexml/namespace.rb#13
+REXML::Namespace::NAME_WITHOUT_NAMESPACE = T.let(T.unsafe(nil), Regexp)
+
+# source://rexml//lib/rexml/doctype.rb#280
+class REXML::NotationDecl < ::REXML::Child
+ # @return [NotationDecl] a new instance of NotationDecl
+ #
+ # source://rexml//lib/rexml/doctype.rb#282
+ def initialize(name, middle, pub, sys); end
+
+ # This method retrieves the name of the notation.
+ #
+ # Method contributed by Henrik Martensson
+ #
+ # source://rexml//lib/rexml/doctype.rb#307
+ def name; end
+
+ # Returns the value of attribute public.
+ #
+ # source://rexml//lib/rexml/doctype.rb#281
+ def public; end
+
+ # Sets the attribute public
+ #
+ # @param value the value to set the attribute public to.
+ #
+ # source://rexml//lib/rexml/doctype.rb#281
+ def public=(_arg0); end
+
+ # Returns the value of attribute system.
+ #
+ # source://rexml//lib/rexml/doctype.rb#281
+ def system; end
+
+ # Sets the attribute system
+ #
+ # @param value the value to set the attribute system to.
+ #
+ # source://rexml//lib/rexml/doctype.rb#281
+ def system=(_arg0); end
+
+ # source://rexml//lib/rexml/doctype.rb#290
+ def to_s; end
+
+ # source://rexml//lib/rexml/doctype.rb#300
+ def write(output, indent = T.unsafe(nil)); end
+end
+
+# source://rexml//lib/rexml/output.rb#5
+class REXML::Output
+ include ::REXML::Encoding
+
+ # @return [Output] a new instance of Output
+ #
+ # source://rexml//lib/rexml/output.rb#10
+ def initialize(real_IO, encd = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/output.rb#22
+ def <<(content); end
+
+ # Returns the value of attribute encoding.
+ #
+ # source://rexml//lib/rexml/output.rb#8
+ def encoding; end
+
+ # source://rexml//lib/rexml/output.rb#26
+ def to_s; end
+end
+
+# A parent has children, and has methods for accessing them. The Parent
+# class is never encountered except as the superclass for some other
+# object.
+#
+# source://rexml//lib/rexml/parent.rb#8
+class REXML::Parent < ::REXML::Child
+ include ::Enumerable
+
+ # Constructor
+ #
+ # @param parent if supplied, will be set as the parent of this object
+ # @return [Parent] a new instance of Parent
+ #
+ # source://rexml//lib/rexml/parent.rb#13
+ def initialize(parent = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/parent.rb#18
+ def <<(object); end
+
+ # Fetches a child at a given index
+ #
+ # @param index the Integer index of the child to fetch
+ #
+ # source://rexml//lib/rexml/parent.rb#57
+ def [](index); end
+
+ # Set an index entry. See Array.[]=
+ #
+ # @param index the index of the element to set
+ # @param opt either the object to set, or an Integer length
+ # @param child if opt is an Integer, this is the child to set
+ # @return the parent (self)
+ #
+ # source://rexml//lib/rexml/parent.rb#70
+ def []=(*args); end
+
+ # source://rexml//lib/rexml/parent.rb#18
+ def add(object); end
+
+ # source://rexml//lib/rexml/parent.rb#115
+ def children; end
+
+ # Deeply clones this object. This creates a complete duplicate of this
+ # Parent, including all descendants.
+ #
+ # source://rexml//lib/rexml/parent.rb#148
+ def deep_clone; end
+
+ # source://rexml//lib/rexml/parent.rb#32
+ def delete(object); end
+
+ # source://rexml//lib/rexml/parent.rb#47
+ def delete_at(index); end
+
+ # source://rexml//lib/rexml/parent.rb#43
+ def delete_if(&block); end
+
+ # source://rexml//lib/rexml/parent.rb#39
+ def each(&block); end
+
+ # source://rexml//lib/rexml/parent.rb#39
+ def each_child(&block); end
+
+ # source://rexml//lib/rexml/parent.rb#51
+ def each_index(&block); end
+
+ # Fetches the index of a given child
+ # of this parent.
+ #
+ # @param child the child to get the index of
+ # @return the index of the child, or nil if the object is not a child
+ #
+ # source://rexml//lib/rexml/parent.rb#123
+ def index(child); end
+
+ # Inserts an child after another child
+ # child2 will be inserted after child1 in the child list of the parent.
+ # If an xpath, child2 will be inserted after the first child to match
+ # the xpath.
+ #
+ # @param child1 this is either an xpath or an Element. If an Element,
+ # @param child2 the child to insert
+ # @return the parent (self)
+ #
+ # source://rexml//lib/rexml/parent.rb#102
+ def insert_after(child1, child2); end
+
+ # Inserts an child before another child
+ # child2 will be inserted before child1 in the child list of the parent.
+ # If an xpath, child2 will be inserted before the first child to match
+ # the xpath.
+ #
+ # @param child1 this is either an xpath or an Element. If an Element,
+ # @param child2 the child to insert
+ # @return the parent (self)
+ #
+ # source://rexml//lib/rexml/parent.rb#82
+ def insert_before(child1, child2); end
+
+ # @return the number of children of this parent
+ #
+ # source://rexml//lib/rexml/parent.rb#130
+ def length; end
+
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/parent.rb#162
+ def parent?; end
+
+ # source://rexml//lib/rexml/parent.rb#18
+ def push(object); end
+
+ # Replaces one child with another, making sure the nodelist is correct
+ # Child)
+ #
+ # @param to_replace the child to replace (must be a Child)
+ # @param replacement the child to insert into the nodelist (must be a
+ #
+ # source://rexml//lib/rexml/parent.rb#140
+ def replace_child(to_replace, replacement); end
+
+ # @return the number of children of this parent
+ #
+ # source://rexml//lib/rexml/parent.rb#130
+ def size; end
+
+ # source://rexml//lib/rexml/parent.rb#115
+ def to_a; end
+
+ # source://rexml//lib/rexml/parent.rb#27
+ def unshift(object); end
+end
+
+# source://rexml//lib/rexml/parseexception.rb#3
+class REXML::ParseException < ::RuntimeError
+ # @return [ParseException] a new instance of ParseException
+ #
+ # source://rexml//lib/rexml/parseexception.rb#6
+ def initialize(message, source = T.unsafe(nil), parser = T.unsafe(nil), exception = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/parseexception.rb#48
+ def context; end
+
+ # Returns the value of attribute continued_exception.
+ #
+ # source://rexml//lib/rexml/parseexception.rb#4
+ def continued_exception; end
+
+ # Sets the attribute continued_exception
+ #
+ # @param value the value to set the attribute continued_exception to.
+ #
+ # source://rexml//lib/rexml/parseexception.rb#4
+ def continued_exception=(_arg0); end
+
+ # source://rexml//lib/rexml/parseexception.rb#43
+ def line; end
+
+ # Returns the value of attribute parser.
+ #
+ # source://rexml//lib/rexml/parseexception.rb#4
+ def parser; end
+
+ # Sets the attribute parser
+ #
+ # @param value the value to set the attribute parser to.
+ #
+ # source://rexml//lib/rexml/parseexception.rb#4
+ def parser=(_arg0); end
+
+ # source://rexml//lib/rexml/parseexception.rb#38
+ def position; end
+
+ # Returns the value of attribute source.
+ #
+ # source://rexml//lib/rexml/parseexception.rb#4
+ def source; end
+
+ # Sets the attribute source
+ #
+ # @param value the value to set the attribute source to.
+ #
+ # source://rexml//lib/rexml/parseexception.rb#4
+ def source=(_arg0); end
+
+ # source://rexml//lib/rexml/parseexception.rb#13
+ def to_s; end
+end
+
+# = Using the Pull Parser
+# This API is experimental, and subject to change.
+# parser = PullParser.new( "texttxet" )
+# while parser.has_next?
+# res = parser.next
+# puts res[1]['att'] if res.start_tag? and res[0] == 'b'
+# end
+# See the PullEvent class for information on the content of the results.
+# The data is identical to the arguments passed for the various events to
+# the StreamListener API.
+#
+# Notice that:
+# parser = PullParser.new( "BAD DOCUMENT" )
+# while parser.has_next?
+# res = parser.next
+# raise res[1] if res.error?
+# end
+#
+# Nat Price gave me some good ideas for the API.
+#
+# source://rexml//lib/rexml/parsers/baseparser.rb#29
+class REXML::Parsers::BaseParser
+ # @return [BaseParser] a new instance of BaseParser
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#115
+ def initialize(source); end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#120
+ def add_listener(listener); end
+
+ # Returns true if there are no more events
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#146
+ def empty?; end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#438
+ def entity(reference, entities); end
+
+ # Returns true if there are more events. Synonymous with !empty?
+ #
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#151
+ def has_next?; end
+
+ # Escapes all possible entities
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#449
+ def normalize(input, entities = T.unsafe(nil), entity_filter = T.unsafe(nil)); end
+
+ # Peek at the +depth+ event in the stack. The first element on the stack
+ # is at depth 0. If +depth+ is -1, will parse to the end of the input
+ # stream and return the last event, which is always :end_document.
+ # Be aware that this causes the stream to be parsed up to the +depth+
+ # event, so you can effectively pre-parse the entire document (pull the
+ # entire thing into memory) using this method.
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#167
+ def peek(depth = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#136
+ def position; end
+
+ # Returns the next event. This is a +PullEvent+ object.
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#182
+ def pull; end
+
+ # Returns the value of attribute source.
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#124
+ def source; end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#126
+ def stream=(source); end
+
+ # Unescapes all possible entities
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#465
+ def unnormalize(string, entities = T.unsafe(nil), filter = T.unsafe(nil)); end
+
+ # Push an event back on the head of the stream. This method
+ # has (theoretically) infinite depth.
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#157
+ def unshift(token); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/parsers/baseparser.rb#495
+ def need_source_encoding_update?(xml_declaration_encoding); end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#589
+ def parse_attributes(prefixes, curr_ns); end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#514
+ def parse_id(base_error_message, accept_external_id:, accept_public_id:); end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#542
+ def parse_id_invalid_details(accept_external_id:, accept_public_id:); end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#501
+ def parse_name(base_error_message); end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#580
+ def process_instruction; end
+
+ # source://rexml//lib/rexml/parsers/baseparser.rb#190
+ def pull_event; end
+end
+
+# source://rexml//lib/rexml/parsers/baseparser.rb#102
+REXML::Parsers::BaseParser::EXTERNAL_ID_PUBLIC = T.let(T.unsafe(nil), Regexp)
+
+# source://rexml//lib/rexml/parsers/baseparser.rb#103
+REXML::Parsers::BaseParser::EXTERNAL_ID_SYSTEM = T.let(T.unsafe(nil), Regexp)
+
+# source://rexml//lib/rexml/parsers/baseparser.rb#104
+REXML::Parsers::BaseParser::PUBLIC_ID = T.let(T.unsafe(nil), Regexp)
+
+# source://rexml//lib/rexml/parsers/baseparser.rb#38
+REXML::Parsers::BaseParser::QNAME = T.let(T.unsafe(nil), Regexp)
+
+# source://rexml//lib/rexml/parsers/baseparser.rb#37
+REXML::Parsers::BaseParser::QNAME_STR = T.let(T.unsafe(nil), String)
+
+# source://rexml//lib/rexml/parsers/streamparser.rb#6
+class REXML::Parsers::StreamParser
+ # @return [StreamParser] a new instance of StreamParser
+ #
+ # source://rexml//lib/rexml/parsers/streamparser.rb#7
+ def initialize(source, listener); end
+
+ # source://rexml//lib/rexml/parsers/streamparser.rb#13
+ def add_listener(listener); end
+
+ # source://rexml//lib/rexml/parsers/streamparser.rb#17
+ def parse; end
+end
+
+# source://rexml//lib/rexml/parsers/treeparser.rb#7
+class REXML::Parsers::TreeParser
+ # @return [TreeParser] a new instance of TreeParser
+ #
+ # source://rexml//lib/rexml/parsers/treeparser.rb#8
+ def initialize(source, build_context = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/parsers/treeparser.rb#13
+ def add_listener(listener); end
+
+ # source://rexml//lib/rexml/parsers/treeparser.rb#17
+ def parse; end
+end
+
+# You don't want to use this class. Really. Use XPath, which is a wrapper
+# for this class. Believe me. You don't want to poke around in here.
+# There is strange, dark magic at work in this code. Beware. Go back! Go
+# back while you still can!
+#
+# source://rexml//lib/rexml/parsers/xpathparser.rb#12
+class REXML::Parsers::XPathParser
+ include ::REXML::XMLTokens
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#42
+ def abbreviate(path_or_parsed); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#132
+ def expand(path_or_parsed); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#16
+ def namespaces=(namespaces); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#21
+ def parse(path); end
+
+ # For backward compatibility
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#174
+ def preciate_to_string(parsed, &block); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#36
+ def predicate(path); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#174
+ def predicate_to_path(parsed, &block); end
+
+ private
+
+ # | AdditiveExpr ('+' | '-') MultiplicativeExpr
+ # | MultiplicativeExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#505
+ def AdditiveExpr(path, parsed); end
+
+ # | AndExpr S 'and' S EqualityExpr
+ # | EqualityExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#438
+ def AndExpr(path, parsed); end
+
+ # | EqualityExpr ('=' | '!=') RelationalExpr
+ # | RelationalExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#457
+ def EqualityExpr(path, parsed); end
+
+ # | FilterExpr Predicate
+ # | PrimaryExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#608
+ def FilterExpr(path, parsed); end
+
+ # | FUNCTION_NAME '(' ( expr ( ',' expr )* )? ')'
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#663
+ def FunctionCall(rest, parsed); end
+
+ # LocationPath
+ # | RelativeLocationPath
+ # | '/' RelativeLocationPath?
+ # | '//' RelativeLocationPath
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#243
+ def LocationPath(path, parsed); end
+
+ # | MultiplicativeExpr ('*' | S ('div' | 'mod') S) UnaryExpr
+ # | UnaryExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#528
+ def MultiplicativeExpr(path, parsed); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#343
+ def NodeTest(path, parsed); end
+
+ # | OrExpr S 'or' S AndExpr
+ # | AndExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#419
+ def OrExpr(path, parsed); end
+
+ # | LocationPath
+ # | FilterExpr ('/' | '//') RelativeLocationPath
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#590
+ def PathExpr(path, parsed); end
+
+ # Filters the supplied nodeset on the predicate(s)
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#395
+ def Predicate(path, parsed); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#626
+ def PrimaryExpr(path, parsed); end
+
+ # | RelationalExpr ('<' | '>' | '<=' | '>=') AdditiveExpr
+ # | AdditiveExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#480
+ def RelationalExpr(path, parsed); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#267
+ def RelativeLocationPath(path, parsed); end
+
+ # | '-' UnaryExpr
+ # | UnionExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#553
+ def UnaryExpr(path, parsed); end
+
+ # | UnionExpr '|' PathExpr
+ # | PathExpr
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#571
+ def UnionExpr(path, parsed); end
+
+ # get_group( '[foo]bar' ) -> ['bar', '[foo]']
+ #
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#676
+ def get_group(string); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#694
+ def parse_args(string); end
+
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#224
+ def quote_literal(literal); end
+end
+
+# source://rexml//lib/rexml/parsers/xpathparser.rb#339
+REXML::Parsers::XPathParser::LOCAL_NAME_WILDCARD = T.let(T.unsafe(nil), Regexp)
+
+# Returns a 1-1 map of the nodeset
+# The contents of the resulting array are either:
+# true/false, if a positive match
+# String, if a name match
+# NodeTest
+# | ('*' | NCNAME ':' '*' | QNAME) NameTest
+# | '*' ':' NCNAME NameTest since XPath 2.0
+# | NODE_TYPE '(' ')' NodeType
+# | PI '(' LITERAL ')' PI
+# | '[' expr ']' Predicate
+#
+# source://rexml//lib/rexml/parsers/xpathparser.rb#338
+REXML::Parsers::XPathParser::PREFIX_WILDCARD = T.let(T.unsafe(nil), Regexp)
+
+# source://rexml//lib/rexml/doctype.rb#10
+class REXML::ReferenceWriter
+ # @return [ReferenceWriter] a new instance of ReferenceWriter
+ #
+ # source://rexml//lib/rexml/doctype.rb#11
+ def initialize(id_type, public_id_literal, system_literal, context = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/doctype.rb#25
+ def write(output); end
+end
+
+# A Source can be searched for patterns, and wraps buffers and other
+# objects and provides consumption of text
+#
+# source://rexml//lib/rexml/source.rb#31
+class REXML::Source
+ include ::REXML::Encoding
+
+ # Constructor
+ # value, overriding all encoding detection
+ #
+ # @param arg must be a String, and should be a valid XML document
+ # @param encoding if non-null, sets the encoding of the source to this
+ # @return [Source] a new instance of Source
+ #
+ # source://rexml//lib/rexml/source.rb#43
+ def initialize(arg, encoding = T.unsafe(nil)); end
+
+ # The current buffer (what we're going to read next)
+ #
+ # source://rexml//lib/rexml/source.rb#34
+ def buffer; end
+
+ # source://rexml//lib/rexml/source.rb#87
+ def consume(pattern); end
+
+ # @return the current line in the source
+ #
+ # source://rexml//lib/rexml/source.rb#117
+ def current_line; end
+
+ # @return [Boolean] true if the Source is exhausted
+ #
+ # source://rexml//lib/rexml/source.rb#108
+ def empty?; end
+
+ # Returns the value of attribute encoding.
+ #
+ # source://rexml//lib/rexml/source.rb#37
+ def encoding; end
+
+ # Inherited from Encoding
+ # Overridden to support optimized en/decoding
+ #
+ # source://rexml//lib/rexml/source.rb#56
+ def encoding=(enc); end
+
+ # The line number of the last consumed text
+ #
+ # source://rexml//lib/rexml/source.rb#36
+ def line; end
+
+ # source://rexml//lib/rexml/source.rb#101
+ def match(pattern, cons = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/source.rb#91
+ def match_to(char, pattern); end
+
+ # source://rexml//lib/rexml/source.rb#95
+ def match_to_consume(char, pattern); end
+
+ # source://rexml//lib/rexml/source.rb#112
+ def position; end
+
+ # source://rexml//lib/rexml/source.rb#84
+ def read; end
+
+ # Scans the source for a given pattern. Note, that this is not your
+ # usual scan() method. For one thing, the pattern argument has some
+ # requirements; for another, the source can be consumed. You can easily
+ # confuse this method. Originally, the patterns were easier
+ # to construct and this method more robust, because this method
+ # generated search regexps on the fly; however, this was
+ # computationally expensive and slowed down the entire REXML package
+ # considerably, since this is by far the most commonly called method.
+ # /^\s*(#{your pattern, with no groups})(.*)/. The first group
+ # will be returned; the second group is used if the consume flag is
+ # set.
+ # everything after it in the Source.
+ # pattern is not found.
+ #
+ # @param pattern must be a Regexp, and must be in the form of
+ # @param consume if true, the pattern returned will be consumed, leaving
+ # @return the pattern, if found, or nil if the Source is empty or the
+ #
+ # source://rexml//lib/rexml/source.rb#77
+ def scan(pattern, cons = T.unsafe(nil)); end
+
+ private
+
+ # source://rexml//lib/rexml/source.rb#125
+ def detect_encoding; end
+
+ # source://rexml//lib/rexml/source.rb#146
+ def encoding_updated; end
+end
+
+# Represents text nodes in an XML document
+#
+# source://rexml//lib/rexml/text.rb#11
+class REXML::Text < ::REXML::Child
+ include ::Comparable
+
+ # Constructor
+ # +arg+ if a String, the content is set to the String. If a Text,
+ # the object is shallowly cloned.
+ #
+ # +respect_whitespace+ (boolean, false) if true, whitespace is
+ # respected
+ #
+ # +parent+ (nil) if this is a Parent object, the parent
+ # will be set to this.
+ #
+ # +raw+ (nil) This argument can be given three values.
+ # If true, then the value of used to construct this object is expected to
+ # contain no unescaped XML markup, and REXML will not change the text. If
+ # this value is false, the string may contain any characters, and REXML will
+ # escape any and all defined entities whose values are contained in the
+ # text. If this value is nil (the default), then the raw value of the
+ # parent will be used as the raw value for this node. If there is no raw
+ # value for the parent, and no value is supplied, the default is false.
+ # Use this field if you have entities defined for some text, and you don't
+ # want REXML to escape that text in output.
+ # Text.new( "<&", false, nil, false ) #-> "<&"
+ # Text.new( "<&", false, nil, false ) #-> "<&"
+ # Text.new( "<&", false, nil, true ) #-> Parse exception
+ # Text.new( "<&", false, nil, true ) #-> "<&"
+ # # Assume that the entity "s" is defined to be "sean"
+ # # and that the entity "r" is defined to be "russell"
+ # Text.new( "sean russell" ) #-> "&s; &r;"
+ # Text.new( "sean russell", false, nil, true ) #-> "sean russell"
+ #
+ # +entity_filter+ (nil) This can be an array of entities to match in the
+ # supplied text. This argument is only useful if +raw+ is set to false.
+ # Text.new( "sean russell", false, nil, false, ["s"] ) #-> "&s; russell"
+ # Text.new( "sean russell", false, nil, true, ["s"] ) #-> "sean russell"
+ # In the last example, the +entity_filter+ argument is ignored.
+ #
+ # +illegal+ INTERNAL USE ONLY
+ #
+ # @return [Text] a new instance of Text
+ #
+ # source://rexml//lib/rexml/text.rb#94
+ def initialize(arg, respect_whitespace = T.unsafe(nil), parent = T.unsafe(nil), raw = T.unsafe(nil), entity_filter = T.unsafe(nil), illegal = T.unsafe(nil)); end
+
+ # Appends text to this text node. The text is appended in the +raw+ mode
+ # of this text node.
+ #
+ # +returns+ the text itself to enable method chain like
+ # 'text << "XXX" << "YYY"'.
+ #
+ # source://rexml//lib/rexml/text.rb#194
+ def <<(to_append); end
+
+ # +other+ a String or a Text
+ # +returns+ the result of (to_s <=> arg.to_s)
+ #
+ # source://rexml//lib/rexml/text.rb#203
+ def <=>(other); end
+
+ # source://rexml//lib/rexml/text.rb#184
+ def clone; end
+
+ # source://rexml//lib/rexml/text.rb#207
+ def doctype; end
+
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/text.rb#179
+ def empty?; end
+
+ # source://rexml//lib/rexml/text.rb#278
+ def indent_text(string, level = T.unsafe(nil), style = T.unsafe(nil), indentfirstline = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/text.rb#233
+ def inspect; end
+
+ # source://rexml//lib/rexml/text.rb#175
+ def node_type; end
+
+ # source://rexml//lib/rexml/text.rb#125
+ def parent=(parent); end
+
+ # If +raw+ is true, then REXML leaves the value alone
+ #
+ # source://rexml//lib/rexml/text.rb#21
+ def raw; end
+
+ # If +raw+ is true, then REXML leaves the value alone
+ #
+ # source://rexml//lib/rexml/text.rb#21
+ def raw=(_arg0); end
+
+ # Returns the string value of this text node. This string is always
+ # escaped, meaning that it is a valid XML text node string, and all
+ # entities that can be escaped, have been inserted. This method respects
+ # the entity filter set in the constructor.
+ #
+ # # Assume that the entity "s" is defined to be "sean", and that the
+ # # entity "r" is defined to be "russell"
+ # t = Text.new( "< & sean russell", false, nil, false, ['s'] )
+ # t.to_s #-> "< & &s; russell"
+ # t = Text.new( "< & &s; russell", false, nil, false )
+ # t.to_s #-> "< & &s; russell"
+ # u = Text.new( "sean russell", false, nil, true )
+ # u.to_s #-> "sean russell"
+ #
+ # source://rexml//lib/rexml/text.rb#228
+ def to_s; end
+
+ # Returns the string value of this text. This is the text without
+ # entities, as it might be used programmatically, or printed to the
+ # console. This ignores the 'raw' attribute setting, and any
+ # entity_filter.
+ #
+ # # Assume that the entity "s" is defined to be "sean", and that the
+ # # entity "r" is defined to be "russell"
+ # t = Text.new( "< & sean russell", false, nil, false, ['s'] )
+ # t.value #-> "< & sean russell"
+ # t = Text.new( "< & &s; russell", false, nil, false )
+ # t.value #-> "< & sean russell"
+ # u = Text.new( "sean russell", false, nil, true )
+ # u.value #-> "sean russell"
+ #
+ # source://rexml//lib/rexml/text.rb#250
+ def value; end
+
+ # Sets the contents of this text node. This expects the text to be
+ # unnormalized. It returns self.
+ #
+ # e = Element.new( "a" )
+ # e.add_text( "foo" ) # foo
+ # e[0].value = "bar" # bar
+ # e[0].value = "" # <a>
+ #
+ # source://rexml//lib/rexml/text.rb#261
+ def value=(val); end
+
+ # source://rexml//lib/rexml/text.rb#267
+ def wrap(string, width, addnewline = T.unsafe(nil)); end
+
+ # == DEPRECATED
+ # See REXML::Formatters
+ #
+ # source://rexml//lib/rexml/text.rb#293
+ def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
+
+ # Writes out text, substituting special characters beforehand.
+ # +out+ A String, IO, or any other object supporting <<( String )
+ # +input+ the text to substitute and the write out
+ #
+ # z=utf8.unpack("U*")
+ # ascOut=""
+ # z.each{|r|
+ # if r < 0x100
+ # ascOut.concat(r.chr)
+ # else
+ # ascOut.concat(sprintf("%x;", r))
+ # end
+ # }
+ # puts ascOut
+ #
+ # source://rexml//lib/rexml/text.rb#325
+ def write_with_substitution(out, input); end
+
+ # FIXME
+ # This probably won't work properly
+ #
+ # source://rexml//lib/rexml/text.rb#305
+ def xpath; end
+
+ private
+
+ # source://rexml//lib/rexml/text.rb#338
+ def clear_cache; end
+
+ class << self
+ # check for illegal characters
+ #
+ # source://rexml//lib/rexml/text.rb#131
+ def check(string, pattern, doctype); end
+
+ # source://rexml//lib/rexml/text.rb#407
+ def expand(ref, doctype, filter); end
+
+ # Escapes all possible entities
+ #
+ # source://rexml//lib/rexml/text.rb#370
+ def normalize(input, doctype = T.unsafe(nil), entity_filter = T.unsafe(nil)); end
+
+ # Reads text, substituting entities
+ #
+ # source://rexml//lib/rexml/text.rb#344
+ def read_with_substitution(input, illegal = T.unsafe(nil)); end
+
+ # Unescapes all possible entities
+ #
+ # source://rexml//lib/rexml/text.rb#394
+ def unnormalize(string, doctype = T.unsafe(nil), filter = T.unsafe(nil), illegal = T.unsafe(nil)); end
+ end
+end
+
+# source://rexml//lib/rexml/undefinednamespaceexception.rb#4
+class REXML::UndefinedNamespaceException < ::REXML::ParseException
+ # @return [UndefinedNamespaceException] a new instance of UndefinedNamespaceException
+ #
+ # source://rexml//lib/rexml/undefinednamespaceexception.rb#5
+ def initialize(prefix, source, parser); end
+end
+
+# source://rexml//lib/rexml/validation/validationexception.rb#4
+class REXML::Validation::ValidationException < ::RuntimeError
+ # @return [ValidationException] a new instance of ValidationException
+ #
+ # source://rexml//lib/rexml/validation/validationexception.rb#5
+ def initialize(msg); end
+end
+
+# NEEDS DOCUMENTATION
+#
+# source://rexml//lib/rexml/xmldecl.rb#8
+class REXML::XMLDecl < ::REXML::Child
+ include ::REXML::Encoding
+
+ # @return [XMLDecl] a new instance of XMLDecl
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#20
+ def initialize(version = T.unsafe(nil), encoding = T.unsafe(nil), standalone = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/xmldecl.rb#56
+ def ==(other); end
+
+ # source://rexml//lib/rexml/xmldecl.rb#39
+ def clone; end
+
+ # source://rexml//lib/rexml/xmldecl.rb#102
+ def dowrite; end
+
+ # source://rexml//lib/rexml/xmldecl.rb#76
+ def encoding=(enc); end
+
+ # source://rexml//lib/rexml/xmldecl.rb#106
+ def inspect; end
+
+ # source://rexml//lib/rexml/xmldecl.rb#69
+ def node_type; end
+
+ # source://rexml//lib/rexml/xmldecl.rb#98
+ def nowrite; end
+
+ # source://rexml//lib/rexml/encoding.rb#7
+ def old_enc=(encoding); end
+
+ # Returns the value of attribute standalone.
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#17
+ def stand_alone?; end
+
+ # Returns the value of attribute standalone.
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#17
+ def standalone; end
+
+ # Sets the attribute standalone
+ #
+ # @param value the value to set the attribute standalone to.
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#17
+ def standalone=(_arg0); end
+
+ # Returns the value of attribute version.
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#17
+ def version; end
+
+ # Sets the attribute version
+ #
+ # @param value the value to set the attribute version to.
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#17
+ def version=(_arg0); end
+
+ # indent::
+ # Ignored. There must be no whitespace before an XML declaration
+ # transitive::
+ # Ignored
+ # ie_hack::
+ # Ignored
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#49
+ def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end
+
+ # Returns the value of attribute writeencoding.
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#18
+ def writeencoding; end
+
+ # Returns the value of attribute writethis.
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#18
+ def writethis; end
+
+ # source://rexml//lib/rexml/xmldecl.rb#63
+ def xmldecl(version, encoding, standalone); end
+
+ private
+
+ # source://rexml//lib/rexml/xmldecl.rb#111
+ def content(enc); end
+
+ class << self
+ # Only use this if you do not want the XML declaration to be written;
+ # this object is ignored by the XML writer. Otherwise, instantiate your
+ # own XMLDecl and add it to the document.
+ #
+ # Note that XML 1.1 documents *must* include an XML declaration
+ #
+ # source://rexml//lib/rexml/xmldecl.rb#92
+ def default; end
+ end
+end
+
+# @private
+#
+# source://rexml//lib/rexml/xpath_parser.rb#959
+class REXML::XPathNode
+ # @return [XPathNode] a new instance of XPathNode
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#961
+ def initialize(node, context = T.unsafe(nil)); end
+
+ # Returns the value of attribute context.
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#960
+ def context; end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#970
+ def position; end
+
+ # Returns the value of attribute raw_node.
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#960
+ def raw_node; end
+end
+
+# You don't want to use this class. Really. Use XPath, which is a wrapper
+# for this class. Believe me. You don't want to poke around in here.
+# There is strange, dark magic at work in this code. Beware. Go back! Go
+# back while you still can!
+#
+# source://rexml//lib/rexml/xpath_parser.rb#54
+class REXML::XPathParser
+ include ::REXML::XMLTokens
+
+ # @return [XPathParser] a new instance of XPathParser
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#60
+ def initialize(strict: T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#94
+ def []=(variable_name, value); end
+
+ # Performs a depth-first (document order) XPath search, and returns the
+ # first match. This is the fastest, lightest way to return a single result.
+ #
+ # FIXME: This method is incomplete!
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#103
+ def first(path_stack, node); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#84
+ def get_first(path, nodeset); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#139
+ def match(path_stack, nodeset); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#69
+ def namespaces=(namespaces = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#79
+ def parse(path, nodeset); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#89
+ def predicate(path, nodeset); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#74
+ def variables=(vars = T.unsafe(nil)); end
+
+ private
+
+ # source://rexml//lib/rexml/xpath_parser.rb#775
+ def child(nodeset); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#916
+ def compare(a, operator, b); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#678
+ def descendant(nodeset, include_self); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#689
+ def descendant_recursive(raw_node, new_nodeset, new_nodes, include_self); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#938
+ def each_unnode(nodeset); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#637
+ def enter(tag, *args); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#815
+ def equality_relational_compare(set1, op, set2); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#591
+ def evaluate_predicate(expression, nodesets); end
+
+ # Expr takes a stack of path elements and a set of nodes (either a Parent
+ # or an Array and returns an Array of matching nodes
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#175
+ def expr(path_stack, nodeset, context = T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#582
+ def filter_nodeset(nodeset); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#745
+ def following(node); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#756
+ def following_node_of(node); end
+
+ # Returns a String namespace for a node, given a prefix
+ # The rules are:
+ #
+ # 1. Use the supplied namespace mapping first.
+ # 2. If no mapping was supplied, use the context node to look up the namespace
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#163
+ def get_namespace(node, prefix); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#642
+ def leave(tag, *args); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#763
+ def next_sibling_node(node); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#477
+ def node_test(path_stack, nodesets, any_type: T.unsafe(nil)); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#802
+ def norm(b); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#890
+ def normalize_compare_values(a, operator, b); end
+
+ # Builds a nodeset of all of the preceding nodes of the supplied node,
+ # in reverse document order
+ # preceding:: includes every element in the document that precedes this node,
+ # except for ancestors
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#708
+ def preceding(node); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#730
+ def preceding_node_of(node); end
+
+ # Reorders an array of nodes so that they are in document order
+ # It tries to do this efficiently.
+ #
+ # FIXME: I need to get rid of this, but the issue is that most of the XPath
+ # interpreter functions as a filter, which means that we lose context going
+ # in and out of function calls. If I knew what the index of the nodes was,
+ # I wouldn't have to do this. Maybe add a document IDX for each node?
+ # Problems with mutable documents. Or, rewrite everything.
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#655
+ def sort(array_of_nodes, order); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#441
+ def step(path_stack, any_type: T.unsafe(nil), order: T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rexml//lib/rexml/xpath_parser.rb#154
+ def strict?; end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#630
+ def trace(*args); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#950
+ def unnode(nodeset); end
+
+ # source://rexml//lib/rexml/xpath_parser.rb#877
+ def value_type(value); end
+end
+
+# source://rexml//lib/rexml/xpath_parser.rb#58
+REXML::XPathParser::DEBUG = T.let(T.unsafe(nil), FalseClass)
diff --git a/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi b/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi
new file mode 100644
index 0000000..5f2de83
--- /dev/null
+++ b/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi
@@ -0,0 +1,6985 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `rubocop-ast` gem.
+# Please instead update this file by running `bin/tapioca gem rubocop-ast`.
+
+class Parser::Source::Range
+ include ::RuboCop::AST::Ext::Range
+end
+
+# source://rubocop-ast//lib/rubocop/ast/ext/range.rb#3
+module RuboCop; end
+
+# ...
+#
+# source://rubocop-ast//lib/rubocop/ast/ext/range.rb#4
+module RuboCop::AST
+ extend ::RuboCop::AST::RuboCopCompatibility
+end
+
+# A node extension for `alias` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `alias` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/alias_node.rb#8
+class RuboCop::AST::AliasNode < ::RuboCop::AST::Node
+ # Returns the new identifier as specified by the `alias`.
+ #
+ # @return [SymbolNode] the new identifier
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/alias_node.rb#19
+ def new_identifier; end
+
+ # Returns the old identifier as specified by the `alias`.
+ #
+ # @return [SymbolNode] the old identifier
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/alias_node.rb#12
+ def old_identifier; end
+end
+
+# A node extension for `op_asgn` nodes.
+# This will be used in place of a plain node when the builder constructs
+# the AST, making its methods available to all assignment nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/and_asgn_node.rb#8
+class RuboCop::AST::AndAsgnNode < ::RuboCop::AST::OpAsgnNode
+ # The operator being used for assignment as a symbol.
+ #
+ # @return [Symbol] the assignment operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/and_asgn_node.rb#12
+ def operator; end
+end
+
+# A node extension for `until` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `until` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/and_node.rb#8
+class RuboCop::AST::AndNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::BinaryOperatorNode
+ include ::RuboCop::AST::PredicateOperatorNode
+
+ # Returns the alternate operator of the `and` as a string.
+ # Returns `and` for `&&` and vice versa.
+ #
+ # @return [String] the alternate of the `and` operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/and_node.rb#16
+ def alternate_operator; end
+
+ # Returns the inverse keyword of the `and` node as a string.
+ # Returns `||` for `&&` and `or` for `and`.
+ #
+ # @return [String] the inverse of the `and` operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/and_node.rb#24
+ def inverse_operator; end
+end
+
+# A node extension for `arg`, `optarg`, `restarg`, `kwarg`, `kwoptarg`,
+# `kwrestarg`, `blockarg`, `shadowarg` and `forward_arg` nodes.
+# This will be used in place of a plain node when the builder constructs
+# the AST, making its methods available to all `arg` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/arg_node.rb#9
+class RuboCop::AST::ArgNode < ::RuboCop::AST::Node
+ # Checks whether the argument has a default value
+ #
+ # @return [Boolean] whether the argument has a default value
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/arg_node.rb#29
+ def default?; end
+
+ # Returns the default value of the argument, if any.
+ #
+ # @return [Node, nil] the default value of the argument
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/arg_node.rb#20
+ def default_value; end
+
+ # Returns the name of an argument.
+ #
+ # @return [Symbol, nil] the name of the argument
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/arg_node.rb#13
+ def name; end
+end
+
+# A node extension for `args` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `args` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/args_node.rb#8
+class RuboCop::AST::ArgsNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::CollectionNode
+
+ # Yield each argument from the collection.
+ # Arguments can be inside `mlhs` nodes in the case of destructuring, so this
+ # flattens the collection to just `arg`, `optarg`, `restarg`, `kwarg`,
+ # `kwoptarg`, `kwrestarg`, `blockarg`, `forward_arg` and `shadowarg`.
+ #
+ # @return [Array] array of argument nodes.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/args_node.rb#34
+ def argument_list; end
+
+ # It returns true if arguments are empty and delimiters do not exist.
+ # @example:
+ # # true
+ # def x; end
+ # x { }
+ # -> {}
+ #
+ # # false
+ # def x(); end
+ # def x a; end
+ # x { || }
+ # -> () {}
+ # -> a {}
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/args_node.rb#24
+ def empty_and_without_delimiters?; end
+end
+
+# A node extension for `array` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `array` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/array_node.rb#8
+class RuboCop::AST::ArrayNode < ::RuboCop::AST::Node
+ # Checks whether the `array` literal is delimited by either percent or
+ # square brackets
+ #
+ # brackets
+ #
+ # @return [Boolean] whether the array is enclosed in percent or square
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/array_node.rb#60
+ def bracketed?; end
+
+ # @deprecated Use `values.each` (a.k.a. `children.each`)
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/array_node.rb#21
+ def each_value(&block); end
+
+ # Checks whether the `array` literal is delimited by percent brackets.
+ #
+ # @overload percent_literal?
+ # @overload percent_literal?
+ # @return [Boolean] whether the array is enclosed in percent brackets
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/array_node.rb#47
+ def percent_literal?(type = T.unsafe(nil)); end
+
+ # Checks whether the `array` literal is delimited by square brackets.
+ #
+ # @return [Boolean] whether the array is enclosed in square brackets
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/array_node.rb#32
+ def square_brackets?; end
+
+ # Returns an array of all value nodes in the `array` literal.
+ #
+ # @return [Array] an array of value nodes
+ #
+ # source://ast/2.4.2/lib/ast/node.rb#56
+ def values; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/array_node.rb#9
+RuboCop::AST::ArrayNode::PERCENT_LITERAL_TYPES = T.let(T.unsafe(nil), Hash)
+
+# A node extension for `lvasgn`, `ivasgn`, `cvasgn`, and `gvasgn` nodes.
+# This will be used in place of a plain node when the builder constructs
+# the AST, making its methods available to all assignment nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/asgn_node.rb#8
+class RuboCop::AST::AsgnNode < ::RuboCop::AST::Node
+ # The expression being assigned to the variable.
+ #
+ # @return [Node] the expression being assigned.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/asgn_node.rb#19
+ def expression; end
+
+ # The name of the variable being assigned as a symbol.
+ #
+ # @return [Symbol] the name of the variable being assigned
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/asgn_node.rb#12
+ def name; end
+end
+
+# Common functionality for primitive literal nodes: `sym`, `str`,
+# `int`, `float`, ...
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/basic_literal_node.rb#7
+module RuboCop::AST::BasicLiteralNode
+ # Returns the value of the literal.
+ #
+ # @return [mixed] the value of the literal
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/basic_literal_node.rb#11
+ def value; end
+end
+
+# Common functionality for nodes that are binary operations:
+# `or`, `and` ...
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/binary_operator_node.rb#7
+module RuboCop::AST::BinaryOperatorNode
+ # Returns all of the conditions, including nested conditions,
+ # of the binary operation.
+ #
+ # operation and the let and right hand side of any nested binary
+ # operators
+ #
+ # @return [Array] the left and right hand side of the binary
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/binary_operator_node.rb#28
+ def conditions; end
+
+ # Returns the left hand side node of the binary operation.
+ #
+ # @return [Node] the left hand side of the binary operation
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/binary_operator_node.rb#11
+ def lhs; end
+
+ # Returns the right hand side node of the binary operation.
+ #
+ # @return [Node] the right hand side of the binary operation
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/binary_operator_node.rb#18
+ def rhs; end
+end
+
+# A node extension for `block` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `send` nodes within RuboCop.
+#
+# A `block` node is essentially a method send with a block. Parser nests
+# the `send` node inside the `block` node.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#11
+class RuboCop::AST::BlockNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::MethodIdentifierPredicates
+
+ # Returns a collection of all descendants of this node that are
+ # argument type nodes. See `ArgsNode#argument_list` for details.
+ #
+ # @return [Array]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#42
+ def argument_list; end
+
+ # The arguments of this block.
+ # Note that if the block has destructured arguments, `arguments` will
+ # return a `mlhs` node, whereas `argument_list` will return only
+ # actual argument nodes.
+ #
+ # @return [Array]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#30
+ def arguments; end
+
+ # Checks whether this block takes any arguments.
+ #
+ # @return [Boolean] whether this `block` node takes any arguments
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#67
+ def arguments?; end
+
+ # The body of this block.
+ #
+ # @return [Node, nil] the body of the `block` node or `nil`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#53
+ def body; end
+
+ # Checks whether the `block` literal is delimited by curly braces.
+ #
+ # @return [Boolean] whether the `block` literal is enclosed in braces
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#74
+ def braces?; end
+
+ # The closing delimiter for this `block` literal.
+ #
+ # @return [String] the closing delimiter for the `block` literal
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#102
+ def closing_delimiter; end
+
+ # The delimiters for this `block` literal.
+ #
+ # @return [Array] the delimiters for the `block` literal
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#88
+ def delimiters; end
+
+ # Checks whether the `block` literal is delimited by `do`-`end` keywords.
+ #
+ # @return [Boolean] whether the `block` literal is enclosed in `do`-`end`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#81
+ def keywords?; end
+
+ # Checks whether this `block` literal belongs to a lambda.
+ #
+ # @return [Boolean] whether the `block` literal belongs to a lambda
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#125
+ def lambda?; end
+
+ # The name of the dispatched method as a symbol.
+ #
+ # @return [Symbol] the name of the dispatched method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#60
+ def method_name; end
+
+ # Checks whether this is a multiline block. This is overridden here
+ # because the general version in `Node` does not work for `block` nodes.
+ #
+ # @return [Boolean] whether the `block` literal is on a several lines
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#118
+ def multiline?; end
+
+ # The opening delimiter for this `block` literal.
+ #
+ # @return [String] the opening delimiter for the `block` literal
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#95
+ def opening_delimiter; end
+
+ # The `send` node associated with this block.
+ #
+ # @return [SendNode] the `send` node associated with the `block` node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#20
+ def send_node; end
+
+ # Checks whether this is a single line block. This is overridden here
+ # because the general version in `Node` does not work for `block` nodes.
+ #
+ # @return [Boolean] whether the `block` literal is on a single line
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#110
+ def single_line?; end
+
+ # Checks whether this node body is a void context.
+ #
+ # @return [Boolean] whether the `block` node body is a void context
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#132
+ def void_context?; end
+
+ private
+
+ # Numbered arguments of this `numblock`.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#139
+ def numbered_arguments; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#14
+RuboCop::AST::BlockNode::VOID_CONTEXT_METHODS = T.let(T.unsafe(nil), Array)
+
+# A node extension for `break` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `break` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/break_node.rb#8
+class RuboCop::AST::BreakNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::ParameterizedNode::WrappedArguments
+end
+
+# `RuboCop::AST::Builder` is an AST builder that is utilized to let `Parser`
+# generate ASTs with {RuboCop::AST::Node}.
+#
+# @example
+# buffer = Parser::Source::Buffer.new('(string)')
+# buffer.source = 'puts :foo'
+#
+# builder = RuboCop::AST::Builder.new
+# require 'parser/ruby25'
+# parser = Parser::Ruby25.new(builder)
+# root_node = parser.parse(buffer)
+#
+# source://rubocop-ast//lib/rubocop/ast/builder.rb#16
+class RuboCop::AST::Builder < ::Parser::Builders::Default
+ # Generates {Node} from the given information.
+ #
+ # @return [Node] the generated node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/builder.rb#98
+ def n(type, children, source_map); end
+
+ # TODO: Figure out what to do about literal encoding handling...
+ # More details here https://github.com/whitequark/parser/issues/283
+ #
+ # source://rubocop-ast//lib/rubocop/ast/builder.rb#104
+ def string_value(token); end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/builder.rb#110
+ def node_klass(type); end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/builder.rb#21
+RuboCop::AST::Builder::NODE_MAP = T.let(T.unsafe(nil), Hash)
+
+# A node extension for `case_match` nodes. This will be used in place of
+# a plain node when the builder constructs the AST, making its methods
+# available to all `case_match` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/case_match_node.rb#8
+class RuboCop::AST::CaseMatchNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ConditionalNode
+
+ # Returns an array of all the when branches in the `case` statement.
+ #
+ # and the `else` (if any). Note that these bodies could be nil.
+ #
+ # @return [Array] an array of the bodies of the `in` branches
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_match_node.rb#38
+ def branches; end
+
+ # @deprecated Use `in_pattern_branches.each`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_match_node.rb#19
+ def each_in_pattern(&block); end
+
+ # Checks whether this case statement has an `else` branch.
+ #
+ # @return [Boolean] whether the `case` statement has an `else` branch
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_match_node.rb#59
+ def else?; end
+
+ # Returns the else branch of the `case` statement, if any.
+ #
+ # @return [Node] the else branch node of the `case` statement
+ # @return [EmptyElse] the empty else branch node of the `case` statement
+ # @return [nil] if the case statement does not have an else branch.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_match_node.rb#52
+ def else_branch; end
+
+ # Returns an array of all the `in` pattern branches in the `case` statement.
+ #
+ # @return [Array] an array of `in_pattern` nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_match_node.rb#30
+ def in_pattern_branches; end
+
+ # Returns the keyword of the `case` statement as a string.
+ #
+ # @return [String] the keyword of the `case` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_match_node.rb#14
+ def keyword; end
+end
+
+# A node extension for `case` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `case` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/case_node.rb#8
+class RuboCop::AST::CaseNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ConditionalNode
+
+ # Returns an array of all the when branches in the `case` statement.
+ #
+ # and the else (if any). Note that these bodies could be nil.
+ #
+ # @return [Array] an array of the bodies of the when branches
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_node.rb#38
+ def branches; end
+
+ # @deprecated Use `when_branches.each`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_node.rb#19
+ def each_when(&block); end
+
+ # Checks whether this case statement has an `else` branch.
+ #
+ # @return [Boolean] whether the `case` statement has an `else` branch
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_node.rb#55
+ def else?; end
+
+ # Returns the else branch of the `case` statement, if any.
+ #
+ # @return [Node] the else branch node of the `case` statement
+ # @return [nil] if the case statement does not have an else branch.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_node.rb#48
+ def else_branch; end
+
+ # Returns the keyword of the `case` statement as a string.
+ #
+ # @return [String] the keyword of the `case` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_node.rb#14
+ def keyword; end
+
+ # Returns an array of all the when branches in the `case` statement.
+ #
+ # @return [Array] an array of `when` nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/case_node.rb#30
+ def when_branches; end
+end
+
+# A node extension for `casgn` nodes.
+# This will be used in place of a plain node when the builder constructs
+# the AST, making its methods available to all assignment nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/casgn_node.rb#8
+class RuboCop::AST::CasgnNode < ::RuboCop::AST::Node
+ # The expression being assigned to the variable.
+ #
+ # @return [Node] the expression being assigned.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/casgn_node.rb#26
+ def expression; end
+
+ # The name of the variable being assigned as a symbol.
+ #
+ # @return [Symbol] the name of the variable being assigned
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/casgn_node.rb#19
+ def name; end
+
+ # The namespace of the constant being assigned.
+ #
+ # @return [Node, nil] the node associated with the scope (e.g. cbase, const, ...)
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/casgn_node.rb#12
+ def namespace; end
+end
+
+# A node extension for `class` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `class` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/class_node.rb#8
+class RuboCop::AST::ClassNode < ::RuboCop::AST::Node
+ # The body of this `class` node.
+ #
+ # @return [Node, nil] the body of the class
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/class_node.rb#26
+ def body; end
+
+ # The identifier for this `class` node.
+ #
+ # @return [Node] the identifier of the class
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/class_node.rb#12
+ def identifier; end
+
+ # The parent class for this `class` node.
+ #
+ # @return [Node, nil] the parent class of the class
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/class_node.rb#19
+ def parent_class; end
+end
+
+# A mixin that helps give collection nodes array polymorphism.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/collection_node.rb#6
+module RuboCop::AST::CollectionNode
+ extend ::Forwardable
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def &(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def *(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def +(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def -(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def <<(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def [](*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def []=(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def all?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def any?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def append(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def assoc(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def at(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def bsearch(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def bsearch_index(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def chain(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def chunk(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def chunk_while(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def clear(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def collect(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def collect!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def collect_concat(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def combination(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def compact(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def compact!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def concat(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def count(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def cycle(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def deconstruct(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def delete(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def delete_at(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def delete_if(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def detect(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def difference(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def dig(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def drop(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def drop_while(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each_cons(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each_entry(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each_index(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each_slice(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each_with_index(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each_with_object(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def empty?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def entries(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def fetch(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def fill(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def filter(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def filter!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def filter_map(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def find(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def find_all(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def find_index(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def first(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def flat_map(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def flatten(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def flatten!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def grep(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def grep_v(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def group_by(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def include?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def index(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def inject(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def insert(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def intersect?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def intersection(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def join(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def keep_if(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def last(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def lazy(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def length(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def map(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def map!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def max(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def max_by(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def member?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def min(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def min_by(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def minmax(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def minmax_by(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def none?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def one?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def pack(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def partition(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def permutation(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def place(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def pop(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def prepend(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def product(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def push(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def rassoc(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def reduce(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def reject(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def reject!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def repeated_combination(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def repeated_permutation(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def replace(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def reverse(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def reverse!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def reverse_each(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def rindex(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def rotate(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def rotate!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def sample(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def select(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def select!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def shelljoin(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def shift(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def shuffle(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def shuffle!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def size(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def slice(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def slice!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def slice_after(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def slice_before(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def slice_when(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def sort(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def sort!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def sort_by(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def sort_by!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def sum(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def take(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def take_while(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def tally(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def to_ary(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def to_h(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def to_set(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def transpose(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def union(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def uniq(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def uniq!(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def unshift(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def values_at(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def zip(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def |(*args, **_arg1, &block); end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/collection_node.rb#9
+RuboCop::AST::CollectionNode::ARRAY_METHODS = T.let(T.unsafe(nil), Array)
+
+# Common functionality for nodes that have conditions:
+# `if`, `while`, `until`, `case`.
+# This currently doesn't include `when` nodes, because they have multiple
+# conditions, and need to be checked for that.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/conditional_node.rb#9
+module RuboCop::AST::ConditionalNode
+ # Returns the body associated with the condition. This works together with
+ # each node's custom destructuring method to select the correct part of
+ # the node.
+ #
+ # @note For `if` nodes, this is the truthy branch.
+ # @return [Node, nil] the body of the node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/conditional_node.rb#40
+ def body; end
+
+ # Returns the condition of the node. This works together with each node's
+ # custom destructuring method to select the correct part of the node.
+ #
+ # @return [Node, nil] the condition of the node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/conditional_node.rb#29
+ def condition; end
+
+ # Checks whether the condition of the node is written on more than
+ # one line.
+ #
+ # @return [Boolean] whether the condition is on more than one line
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/conditional_node.rb#21
+ def multiline_condition?; end
+
+ # Checks whether the condition of the node is written on a single line.
+ #
+ # @return [Boolean] whether the condition is on a single line
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/conditional_node.rb#13
+ def single_line_condition?; end
+end
+
+# A node extension for `const` nodes.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/const_node.rb#6
+class RuboCop::AST::ConstNode < ::RuboCop::AST::Node
+ # @return [Boolean] if the constant starts with `::` (aka s(:cbase))
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/const_node.rb#26
+ def absolute?; end
+
+ # @return [Boolean] if the constant is a Module / Class, according to the standard convention.
+ # Note: some classes might have uppercase in which case this method
+ # returns false
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/const_node.rb#20
+ def class_name?; end
+
+ # Yield nodes for the namespace
+ #
+ # For `::Foo::Bar::BAZ` => yields:
+ # s(:cbase), then
+ # s(:const, :Foo), then
+ # s(:const, s(:const, :Foo), :Bar)
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/const_node.rb#43
+ def each_path(&block); end
+
+ # @return [Boolean] if the constant is a Module / Class, according to the standard convention.
+ # Note: some classes might have uppercase in which case this method
+ # returns false
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/const_node.rb#20
+ def module_name?; end
+
+ # @return [Node, nil] the node associated with the scope (e.g. cbase, const, ...)
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/const_node.rb#8
+ def namespace; end
+
+ # @return [Boolean] if the constant does not start with `::` (aka s(:cbase))
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/const_node.rb#33
+ def relative?; end
+
+ # @return [Symbol] the demodulized name of the constant: "::Foo::Bar" => :Bar
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/const_node.rb#13
+ def short_name; end
+end
+
+# A node extension for `csend` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `csend` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/csend_node.rb#8
+class RuboCop::AST::CsendNode < ::RuboCop::AST::SendNode
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/csend_node.rb#9
+ def send_type?; end
+end
+
+# A node extension for `def` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `def` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/def_node.rb#8
+class RuboCop::AST::DefNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::MethodIdentifierPredicates
+
+ # Checks whether this method definition node forwards its arguments
+ # as per the feature added in Ruby 2.7.
+ #
+ # @note This is written in a way that may support lead arguments
+ # which are rumored to be added in a later version of Ruby.
+ # @return [Boolean] whether the `def` node uses argument forwarding
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/def_node.rb#26
+ def argument_forwarding?; end
+
+ # An array containing the arguments of the method definition.
+ #
+ # @return [Array] the arguments of the method definition
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/def_node.rb#40
+ def arguments; end
+
+ # The body of the method definition.
+ #
+ # @note this can be either a `begin` node, if the method body contains
+ # multiple expressions, or any other node, if it contains a single
+ # expression.
+ # @return [Node] the body of the method definition
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/def_node.rb#51
+ def body; end
+
+ # @return [Boolean] if the definition is without an `end` or not.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/def_node.rb#63
+ def endless?; end
+
+ # The name of the defined method as a symbol.
+ #
+ # @return [Symbol] the name of the defined method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/def_node.rb#33
+ def method_name; end
+
+ # The receiver of the method definition, if any.
+ #
+ # @return [Node, nil] the receiver of the method definition, or `nil`.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/def_node.rb#58
+ def receiver; end
+
+ # Checks whether this node body is a void context.
+ #
+ # @return [Boolean] whether the `def` node body is a void context
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/def_node.rb#15
+ def void_context?; end
+end
+
+# A node extension for `defined?` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `send` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/defined_node.rb#8
+class RuboCop::AST::DefinedNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::MethodIdentifierPredicates
+ include ::RuboCop::AST::MethodDispatchNode
+
+ # source://ast/2.4.2/lib/ast/node.rb#56
+ def arguments; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/defined_node.rb#12
+ def node_parts; end
+end
+
+# Common functionality for primitive literal nodes: `sym`, `str`,
+# `int`, `float`, ...
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/descendence.rb#7
+module RuboCop::AST::Descendence
+ # Returns an array of child nodes.
+ # This is a shorthand for `node.each_child_node.to_a`.
+ #
+ # @return [Array] an array of child nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/descendence.rb#38
+ def child_nodes; end
+
+ # Returns an array of descendant nodes.
+ # This is a shorthand for `node.each_descendant.to_a`.
+ #
+ # @return [Array] an array of descendant nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/descendence.rb#72
+ def descendants; end
+
+ # Calls the given block for each child node.
+ # If no block is given, an `Enumerator` is returned.
+ #
+ # Note that this is different from `node.children.each { |child| ... }`
+ # which yields all children including non-node elements.
+ #
+ # @overload each_child_node
+ # @overload each_child_node
+ # @return [self] if a block is given
+ # @return [Enumerator] if no block is given
+ # @yieldparam node [Node] each child node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/descendence.rb#22
+ def each_child_node(*types); end
+
+ # Calls the given block for each descendant node with depth first order.
+ # If no block is given, an `Enumerator` is returned.
+ #
+ # @overload each_descendant
+ # @overload each_descendant
+ # @overload each_descendant
+ # @return [self] if a block is given
+ # @return [Enumerator] if no block is given
+ # @yieldparam node [Node] each descendant node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/descendence.rb#60
+ def each_descendant(*types, &block); end
+
+ # Calls the given block for the receiver and each descendant node in
+ # depth-first order.
+ # If no block is given, an `Enumerator` is returned.
+ #
+ # This method would be useful when you treat the receiver node as the root
+ # of a tree and want to iterate over all nodes in the tree.
+ #
+ # @overload each_node
+ # @overload each_node
+ # @overload each_node
+ # @return [self] if a block is given
+ # @return [Enumerator] if no block is given
+ # @yieldparam node [Node] each node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/descendence.rb#95
+ def each_node(*types, &block); end
+
+ protected
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/descendence.rb#107
+ def visit_descendants(types, &block); end
+end
+
+# A node extension for `dstr` nodes. This will be used
+# in place of a plain node when the builder constructs the AST, making
+# its methods available to all `dstr` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/dstr_node.rb#8
+class RuboCop::AST::DstrNode < ::RuboCop::AST::StrNode
+ # source://rubocop-ast//lib/rubocop/ast/node/dstr_node.rb#9
+ def value; end
+end
+
+# A node extension for `ensure` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `ensure` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/ensure_node.rb#8
+class RuboCop::AST::EnsureNode < ::RuboCop::AST::Node
+ # Returns the body of the `ensure` clause.
+ #
+ # @return [Node, nil] The body of the `ensure`.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/ensure_node.rb#12
+ def body; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/ext/range.rb#5
+module RuboCop::AST::Ext; end
+
+# Extensions to Parser::AST::Range
+#
+# source://rubocop-ast//lib/rubocop/ast/ext/range.rb#7
+module RuboCop::AST::Ext::Range
+ # If `exclude_end` is `true`, then the range will be exclusive.
+ #
+ # Assume that `node` corresponds to the following array literal:
+ #
+ # [
+ # :foo,
+ # :bar
+ # ]
+ #
+ # node.loc.begin.line_span # => 1..1
+ # node.source_range.line_span(exclude_end: true) # => 1...4
+ #
+ # @return [Range] the range of line numbers for the node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/ext/range.rb#20
+ def line_span(exclude_end: T.unsafe(nil)); end
+end
+
+# Refinement to circumvent broken `Range#minmax` for infinity ranges in 2.6-
+#
+# source://rubocop-ast//lib/rubocop/ast/ext/range_min_max.rb#7
+module RuboCop::AST::Ext::RangeMinMax; end
+
+# A node extension for `float` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available to
+# all `float` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/float_node.rb#8
+class RuboCop::AST::FloatNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::BasicLiteralNode
+ include ::RuboCop::AST::NumericNode
+end
+
+# A node extension for `for` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `for` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/for_node.rb#8
+class RuboCop::AST::ForNode < ::RuboCop::AST::Node
+ # Returns the body of the `for` loop.
+ #
+ # @return [Node, nil] The body of the `for` loop.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/for_node.rb#48
+ def body; end
+
+ # Returns the collection the `for` loop is iterating over.
+ #
+ # @return [Node] The collection the `for` loop is iterating over
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/for_node.rb#41
+ def collection; end
+
+ # Checks whether the `for` node has a `do` keyword.
+ #
+ # @return [Boolean] whether the `for` node has a `do` keyword
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/for_node.rb#19
+ def do?; end
+
+ # Returns the keyword of the `for` statement as a string.
+ #
+ # @return [String] the keyword of the `until` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/for_node.rb#12
+ def keyword; end
+
+ # Returns the iteration variable of the `for` loop.
+ #
+ # @return [Node] The iteration variable of the `for` loop
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/for_node.rb#34
+ def variable; end
+
+ # Checks whether this node body is a void context.
+ # Always `true` for `for`.
+ #
+ # @return [true] whether the `for` node body is a void context
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/for_node.rb#27
+ def void_context?; end
+end
+
+# A node extension for `forward-args` nodes. This will be used in place
+# of a plain node when the builder constructs the AST, making its methods
+# available to all `forward-args` nodes within RuboCop.
+#
+# Not used with modern emitters:
+#
+# $ ruby-parse -e "def foo(...); end"
+# (def :foo
+# (args
+# (forward-arg)) nil)
+# $ ruby-parse --legacy -e "->(foo) { bar }"
+# (def :foo
+# (forward-args) nil)
+#
+# Note the extra 's' with legacy form.
+#
+# The main RuboCop runs in legacy mode; this node is only used
+# if user `AST::Builder.modernize` or `AST::Builder.emit_lambda=true`
+#
+# source://rubocop-ast//lib/rubocop/ast/node/forward_args_node.rb#23
+class RuboCop::AST::ForwardArgsNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::CollectionNode
+
+ # Node wraps itself in an array to be compatible with other
+ # enumerable argument types.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/forward_args_node.rb#28
+ def to_a; end
+end
+
+# Common functionality for nodes that can be used as hash elements:
+# `pair`, `kwsplat`
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#7
+module RuboCop::AST::HashElementNode
+ # Returns the delta between this element's delimiter and the argument's.
+ #
+ # @note Pairs with different delimiter styles return a delta of 0
+ # @return [Integer] the delta between the two delimiters
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#61
+ def delimiter_delta(other); end
+
+ # Returns the key of this `hash` element.
+ #
+ # @note For keyword splats, this returns the whole node
+ # @return [Node] the key of the hash element
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#13
+ def key; end
+
+ # Returns the delta between this pair's key and the argument pair's.
+ #
+ # @note Keys on the same line always return a delta of 0
+ # @note Keyword splats always return a delta of 0 for right alignment
+ # @param alignment [Symbol] whether to check the left or right side
+ # @return [Integer] the delta between the two keys
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#43
+ def key_delta(other, alignment = T.unsafe(nil)); end
+
+ # Checks whether this `hash` element is on the same line as `other`.
+ #
+ # @note A multiline element is considered to be on the same line if it
+ # shares any of its lines with `other`
+ # @return [Boolean] whether this element is on the same line as `other`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#32
+ def same_line?(other); end
+
+ # Returns the value of this `hash` element.
+ #
+ # @note For keyword splats, this returns the whole node
+ # @return [Node] the value of the hash element
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#22
+ def value; end
+
+ # Returns the delta between this element's value and the argument's.
+ #
+ # @note Keyword splats always return a delta of 0
+ # @return [Integer] the delta between the two values
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#52
+ def value_delta(other); end
+end
+
+# A helper class for comparing the positions of different parts of a
+# `pair` node.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#67
+class RuboCop::AST::HashElementNode::HashElementDelta
+ # @raise [ArgumentError]
+ # @return [HashElementDelta] a new instance of HashElementDelta
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#68
+ def initialize(first, second); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#89
+ def delimiter_delta; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#75
+ def key_delta(alignment = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#82
+ def value_delta; end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#106
+ def delta(first, second, alignment = T.unsafe(nil)); end
+
+ # Returns the value of attribute first.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#98
+ def first; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#117
+ def keyword_splat?; end
+
+ # Returns the value of attribute second.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#98
+ def second; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/hash_element_node.rb#100
+ def valid_argument_types?; end
+end
+
+# A node extension for `hash` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `hash` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#8
+class RuboCop::AST::HashNode < ::RuboCop::AST::Node
+ # Checks whether the `hash` literal is delimited by curly braces.
+ #
+ # @return [Boolean] whether the `hash` literal is enclosed in braces
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#117
+ def braces?; end
+
+ # Calls the given block for each `key` node in the `hash` literal.
+ # If no block is given, an `Enumerator` is returned.
+ #
+ # @note `kwsplat` nodes are ignored.
+ # @return [self] if a block is given
+ # @return [Enumerator] if no block is given
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#59
+ def each_key(&block); end
+
+ # Calls the given block for each `pair` node in the `hash` literal.
+ # If no block is given, an `Enumerator` is returned.
+ #
+ # @note `kwsplat` nodes are ignored.
+ # @return [self] if a block is given
+ # @return [Enumerator] if no block is given
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#33
+ def each_pair; end
+
+ # Calls the given block for each `value` node in the `hash` literal.
+ # If no block is given, an `Enumerator` is returned.
+ #
+ # @note `kwsplat` nodes are ignored.
+ # @return [self] if a block is given
+ # @return [Enumerator] if no block is given
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#83
+ def each_value(&block); end
+
+ # Checks whether the `hash` node contains any `pair`- or `kwsplat` nodes.
+ #
+ # @return[Boolean] whether the `hash` is empty
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#22
+ def empty?; end
+
+ # Returns an array of all the keys in the `hash` literal.
+ #
+ # @note `kwsplat` nodes are ignored.
+ # @return [Array] an array of keys in the `hash` literal
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#48
+ def keys; end
+
+ # Checks whether this `hash` uses a mix of hash rocket and colon
+ # delimiters for its pairs.
+ #
+ # @note `kwsplat` nodes are ignored.
+ # @return [Boolean] whether the `hash` uses mixed delimiters
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#110
+ def mixed_delimiters?; end
+
+ # Returns an array of all the key value pairs in the `hash` literal.
+ #
+ # ignored.
+ #
+ # @note this may be different from children as `kwsplat` nodes are
+ # @return [Array] an array of `pair` nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#15
+ def pairs; end
+
+ # Checks whether any of the key value pairs in the `hash` literal are on
+ # the same line.
+ #
+ # @note A multiline `pair` is considered to be on the same line if it
+ # shares any of its lines with another `pair`
+ # @note `kwsplat` nodes are ignored.
+ # @return [Boolean] whether any `pair` nodes are on the same line
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#100
+ def pairs_on_same_line?; end
+
+ # Returns an array of all the values in the `hash` literal.
+ #
+ # @note `kwsplat` nodes are ignored.
+ # @return [Array] an array of values in the `hash` literal
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/hash_node.rb#72
+ def values; end
+end
+
+# A node extension for `if` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `if` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#8
+class RuboCop::AST::IfNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ConditionalNode
+ include ::RuboCop::AST::ModifierNode
+
+ # Returns an array of all the branches in the conditional statement.
+ #
+ # @return [Array] an array of branch nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#147
+ def branches; end
+
+ # @deprecated Use `branches.each`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#164
+ def each_branch(&block); end
+
+ # Checks whether the `if` node has an `else` clause.
+ #
+ # @note This returns `true` for nodes containing an `elsif` clause.
+ # This is legacy behavior, and many cops rely on it.
+ # @return [Boolean] whether the node has an `else` clause
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#42
+ def else?; end
+
+ # Returns the branch of the `if` node that gets evaluated when its
+ # condition is falsey.
+ #
+ # @note This is normalized for `unless` nodes.
+ # @return [Node] the falsey branch node of the `if` node
+ # @return [nil] when there is no else branch
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#126
+ def else_branch; end
+
+ # Checks whether the `if` is an `elsif`. Parser handles these by nesting
+ # `if` nodes in the `else` branch.
+ #
+ # @return [Boolean] whether the node is an `elsif`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#32
+ def elsif?; end
+
+ # Checks whether the `if` node has at least one `elsif` branch. Returns
+ # true if this `if` node itself is an `elsif`.
+ #
+ # @return [Boolean] whether the `if` node has at least one `elsif` branch
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#104
+ def elsif_conditional?; end
+
+ # Checks whether this node is an `if` statement. (This is not true of
+ # ternary operators and `unless` statements.)
+ #
+ # @return [Boolean] whether the node is an `if` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#16
+ def if?; end
+
+ # Returns the branch of the `if` node that gets evaluated when its
+ # condition is truthy.
+ #
+ # @note This is normalized for `unless` nodes.
+ # @return [Node] the truthy branch node of the `if` node
+ # @return [nil] if the truthy branch is empty
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#115
+ def if_branch; end
+
+ # Returns the inverse keyword of the `if` node as a string. Returns `if`
+ # for `unless` nodes and vice versa. Returns an empty string for ternary
+ # operators.
+ #
+ # @return [String] the inverse keyword of the `if` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#66
+ def inverse_keyword; end
+
+ # Returns the keyword of the `if` statement as a string. Returns an empty
+ # string for ternary operators.
+ #
+ # @return [String] the keyword of the `if` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#57
+ def keyword; end
+
+ # Checks whether the `if` node is in a modifier form, i.e. a condition
+ # trailing behind an expression. Only `if` and `unless` nodes without
+ # other branches can be modifiers.
+ #
+ # @return [Boolean] whether the `if` node is a modifier
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#80
+ def modifier_form?; end
+
+ # Chacks whether the `if` node has nested `if` nodes in any of its
+ # branches.
+ #
+ # @note This performs a shallow search.
+ # @return [Boolean] whether the `if` node contains nested conditionals
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#90
+ def nested_conditional?; end
+
+ # Custom destructuring method. This is used to normalize the branches
+ # for `if` and `unless` nodes, to aid comparisons and conversions.
+ #
+ # @return [Array] the different parts of the `if` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#134
+ def node_parts; end
+
+ # Checks whether the `if` node is a ternary operator.
+ #
+ # @return [Boolean] whether the `if` node is a ternary operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#49
+ def ternary?; end
+
+ # Checks whether this node is an `unless` statement. (This is not true
+ # of ternary operators and `if` statements.)
+ #
+ # @return [Boolean] whether the node is an `unless` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#24
+ def unless?; end
+end
+
+# A node extension for `in` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `in` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/in_pattern_node.rb#8
+class RuboCop::AST::InPatternNode < ::RuboCop::AST::Node
+ # Returns the body of the `in` node.
+ #
+ # @return [Node, nil] the body of the `in` node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/in_pattern_node.rb#33
+ def body; end
+
+ # Returns the index of the `in` branch within the `case` statement.
+ #
+ # @return [Integer] the index of the `in` branch
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/in_pattern_node.rb#19
+ def branch_index; end
+
+ # Returns a node of the pattern in the `in` branch.
+ #
+ # @return [Node] a pattern node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/in_pattern_node.rb#12
+ def pattern; end
+
+ # Checks whether the `in` node has a `then` keyword.
+ #
+ # @return [Boolean] whether the `in` node has a `then` keyword
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/in_pattern_node.rb#26
+ def then?; end
+end
+
+# Used for modern support only!
+# Not as thoroughly tested as legacy equivalent
+#
+# $ ruby-parse -e "foo[:bar]"
+# (index
+# (send nil :foo)
+# (sym :bar))
+# $ ruby-parse --legacy -e "foo[:bar]"
+# (send
+# (send nil :foo) :[]
+# (sym :bar))
+#
+# The main RuboCop runs in legacy mode; this node is only used
+# if user `AST::Builder.modernize` or `AST::Builder.emit_index=true`
+#
+# source://rubocop-ast//lib/rubocop/ast/node/index_node.rb#19
+class RuboCop::AST::IndexNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::ParameterizedNode::RestArguments
+ include ::RuboCop::AST::MethodIdentifierPredicates
+ include ::RuboCop::AST::MethodDispatchNode
+
+ # For similarity with legacy mode
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/index_node.rb#29
+ def assignment_method?; end
+
+ # For similarity with legacy mode
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/index_node.rb#24
+ def attribute_accessor?; end
+
+ # For similarity with legacy mode
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/index_node.rb#34
+ def method_name; end
+
+ private
+
+ # An array containing the arguments of the dispatched method.
+ #
+ # @return [Array] the arguments of the dispatched method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/index_node.rb#43
+ def first_argument_index; end
+end
+
+# Used for modern support only!
+# Not as thoroughly tested as legacy equivalent
+#
+# $ ruby-parse -e "foo[:bar] = :baz"
+# (indexasgn
+# (send nil :foo)
+# (sym :bar)
+# (sym :baz))
+# $ ruby-parse --legacy -e "foo[:bar] = :baz"
+# (send
+# (send nil :foo) :[]=
+# (sym :bar)
+# (sym :baz))
+#
+# The main RuboCop runs in legacy mode; this node is only used
+# if user `AST::Builder.modernize` or `AST::Builder.emit_index=true`
+#
+# source://rubocop-ast//lib/rubocop/ast/node/indexasgn_node.rb#21
+class RuboCop::AST::IndexasgnNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::ParameterizedNode::RestArguments
+ include ::RuboCop::AST::MethodIdentifierPredicates
+ include ::RuboCop::AST::MethodDispatchNode
+
+ # For similarity with legacy mode
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/indexasgn_node.rb#31
+ def assignment_method?; end
+
+ # For similarity with legacy mode
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/indexasgn_node.rb#26
+ def attribute_accessor?; end
+
+ # For similarity with legacy mode
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/indexasgn_node.rb#36
+ def method_name; end
+
+ private
+
+ # An array containing the arguments of the dispatched method.
+ #
+ # @return [Array] the arguments of the dispatched method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/indexasgn_node.rb#45
+ def first_argument_index; end
+end
+
+# A node extension for `int` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available to
+# all `int` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/int_node.rb#8
+class RuboCop::AST::IntNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::BasicLiteralNode
+ include ::RuboCop::AST::NumericNode
+end
+
+# A node extension for `kwsplat` and `forwarded_kwrestarg` nodes. This will be used in
+# place of a plain node when the builder constructs the AST, making its methods available to
+# all `kwsplat` and `forwarded_kwrestarg` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/keyword_splat_node.rb#8
+class RuboCop::AST::KeywordSplatNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::HashElementNode
+
+ # This is used for duck typing with `pair` nodes which also appear as
+ # `hash` elements.
+ #
+ # @return [false]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/keyword_splat_node.rb#26
+ def colon?; end
+
+ # This is used for duck typing with `pair` nodes which also appear as
+ # `hash` elements.
+ #
+ # @return [false]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/keyword_splat_node.rb#18
+ def hash_rocket?; end
+
+ # This provides `forwarded_kwrestarg` node to return true to be compatible with `kwsplat` node.
+ #
+ # @return [true]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/keyword_splat_node.rb#48
+ def kwsplat_type?; end
+
+ # Custom destructuring method. This is used to normalize the branches
+ # for `pair` and `kwsplat` nodes, to add duck typing to `hash` elements.
+ #
+ # @return [Array] the different parts of the `kwsplat`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/keyword_splat_node.rb#41
+ def node_parts; end
+
+ # Returns the operator for the `kwsplat` as a string.
+ #
+ # @return [String] the double splat operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/keyword_splat_node.rb#33
+ def operator; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/keyword_splat_node.rb#11
+RuboCop::AST::KeywordSplatNode::DOUBLE_SPLAT = T.let(T.unsafe(nil), String)
+
+# Used for modern support only:
+# Not as thoroughly tested as legacy equivalent
+#
+# $ ruby-parse -e "->(foo) { bar }"
+# (block
+# (lambda)
+# (args
+# (arg :foo))
+# (send nil :bar))
+# $ ruby-parse --legacy -e "->(foo) { bar }"
+# (block
+# (send nil :lambda)
+# (args
+# (arg :foo))
+# (send nil :bar))
+#
+# The main RuboCop runs in legacy mode; this node is only used
+# if user `AST::Builder.modernize` or `AST::Builder.emit_lambda=true`
+#
+# source://rubocop-ast//lib/rubocop/ast/node/lambda_node.rb#23
+class RuboCop::AST::LambdaNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::ParameterizedNode::RestArguments
+ include ::RuboCop::AST::MethodIdentifierPredicates
+ include ::RuboCop::AST::MethodDispatchNode
+
+ # For similarity with legacy mode
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/lambda_node.rb#43
+ def assignment_method?; end
+
+ # For similarity with legacy mode
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/lambda_node.rb#38
+ def attribute_accessor?; end
+
+ # For similarity with legacy mode
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/lambda_node.rb#28
+ def lambda?; end
+
+ # For similarity with legacy mode
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/lambda_node.rb#33
+ def lambda_literal?; end
+
+ # For similarity with legacy mode
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/lambda_node.rb#53
+ def method_name; end
+
+ # For similarity with legacy mode
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/lambda_node.rb#48
+ def receiver; end
+
+ private
+
+ # For similarity with legacy mode
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/lambda_node.rb#60
+ def first_argument_index; end
+end
+
+# Common functionality for nodes that are a kind of method dispatch:
+# `send`, `csend`, `super`, `zsuper`, `yield`, `defined?`,
+# and (modern only): `index`, `indexasgn`, `lambda`
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#8
+module RuboCop::AST::MethodDispatchNode
+ include ::RuboCop::AST::MethodIdentifierPredicates
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # Checks whether the dispatched method is an access modifier.
+ #
+ # @return [Boolean] whether the dispatched method is an access modifier
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#64
+ def access_modifier?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#273
+ def adjacent_def_modifier?(param0 = T.unsafe(nil)); end
+
+ # Checks whether this node is an arithmetic operation
+ #
+ # @return [Boolean] whether the dispatched method is an arithmetic
+ # operation
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#175
+ def arithmetic_operation?; end
+
+ # Checks whether the dispatched method is a setter method.
+ #
+ # @return [Boolean] whether the dispatched method is a setter
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#107
+ def assignment?; end
+
+ # Checks whether the dispatched method is a bare access modifier that
+ # affects all methods defined after the macro.
+ #
+ # @return [Boolean] whether the dispatched method is a bare
+ # access modifier
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#73
+ def bare_access_modifier?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#278
+ def bare_access_modifier_declaration?(param0 = T.unsafe(nil)); end
+
+ # Checks whether this is a binary operation.
+ #
+ # @example
+ #
+ # foo + bar
+ # @return [Boolean] whether this method is a binary operation
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#248
+ def binary_operation?; end
+
+ # Whether this method dispatch has an explicit block.
+ #
+ # @return [Boolean] whether the dispatched method has a block
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#167
+ def block_literal?; end
+
+ # The `block` or `numblock` node associated with this method dispatch, if any.
+ #
+ # @return [BlockNode, nil] the `block` or `numblock` node associated with this method
+ # call or `nil`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#46
+ def block_node; end
+
+ # Checks whether the name of the dispatched method matches the argument
+ # and has an implicit receiver.
+ #
+ # @param name [Symbol, String] the method name to check for
+ # @return [Boolean] whether the method name matches the argument
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#100
+ def command?(name); end
+
+ # Checks whether the *explicit* receiver of this method dispatch is a
+ # `const` node.
+ #
+ # @return [Boolean] whether the receiver of this method dispatch
+ # is a `const` node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#152
+ def const_receiver?; end
+
+ # Checks if this node is part of a chain of `def` or `defs` modifiers.
+ #
+ # or `nil` if it isn't a def modifier
+ #
+ # @example
+ #
+ # private def foo; end
+ # @return [Node | nil] returns the `def|defs` node this is a modifier for,
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#199
+ def def_modifier(node = T.unsafe(nil)); end
+
+ # Checks if this node is part of a chain of `def` or `defs` modifiers.
+ #
+ # See also `def_modifier` that returns the node or `nil`
+ #
+ # @example
+ #
+ # private def foo; end
+ # @return [Boolean] whether the `def|defs` node is a modifier or not.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#187
+ def def_modifier?(node = T.unsafe(nil)); end
+
+ # Checks whether the dispatched method uses a dot to connect the
+ # receiver and the method name.
+ #
+ # This is useful for comparison operators, which can be called either
+ # with or without a dot, i.e. `foo == bar` or `foo.== bar`.
+ #
+ # @return [Boolean] whether the method was called with a connecting dot
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#119
+ def dot?; end
+
+ # Checks whether the dispatched method uses a double colon to connect the
+ # receiver and the method name.
+ #
+ # @return [Boolean] whether the method was called with a connecting dot
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#127
+ def double_colon?; end
+
+ # Checks whether the method dispatch is the implicit form of `#call`,
+ # e.g. `foo.(bar)`.
+ #
+ # @return [Boolean] whether the method is the implicit form of `#call`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#160
+ def implicit_call?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#257
+ def in_macro_scope?(param0 = T.unsafe(nil)); end
+
+ # Checks whether this is a lambda. Some versions of parser parses
+ # non-literal lambdas as a method send.
+ #
+ # @return [Boolean] whether this method is a lambda
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#213
+ def lambda?; end
+
+ # Checks whether this is a lambda literal (stabby lambda.)
+ #
+ # @example
+ #
+ # -> (foo) { bar }
+ # @return [Boolean] whether this method is a lambda literal
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#224
+ def lambda_literal?; end
+
+ # Checks whether the dispatched method is a macro method. A macro method
+ # is defined as a method that sits in a class, module, or block body and
+ # has an implicit receiver.
+ #
+ # @note This does not include DSLs that use nested blocks, like RSpec
+ # @return [Boolean] whether the dispatched method is a macro method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#57
+ def macro?; end
+
+ # The name of the dispatched method as a symbol.
+ #
+ # @return [Symbol] the name of the dispatched method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#27
+ def method_name; end
+
+ # Checks whether the dispatched method is a non-bare access modifier that
+ # affects only the method it receives.
+ #
+ # @return [Boolean] whether the dispatched method is a non-bare
+ # access modifier
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#82
+ def non_bare_access_modifier?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#283
+ def non_bare_access_modifier_declaration?(param0 = T.unsafe(nil)); end
+
+ # The receiving node of the method dispatch.
+ #
+ # @return [Node, nil] the receiver of the dispatched method or `nil`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#20
+ def receiver; end
+
+ # Checks whether the dispatched method uses a safe navigation operator to
+ # connect the receiver and the method name.
+ #
+ # @return [Boolean] whether the method was called with a connecting dot
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#135
+ def safe_navigation?; end
+
+ # The source range for the method name or keyword that dispatches this call.
+ #
+ # @return [Parser::Source::Range] the source range for the method name or keyword
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#34
+ def selector; end
+
+ # Checks whether the *explicit* receiver of this method dispatch is
+ # `self`.
+ #
+ # @return [Boolean] whether the receiver of this method dispatch is `self`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#143
+ def self_receiver?; end
+
+ # Checks whether the dispatched method is a setter method.
+ #
+ # @return [Boolean] whether the dispatched method is a setter
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#107
+ def setter_method?; end
+
+ # Checks whether the dispatched method is a bare `private` or `protected`
+ # access modifier that affects all methods defined after the macro.
+ #
+ # @return [Boolean] whether the dispatched method is a bare
+ # `private` or `protected` access modifier
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#91
+ def special_modifier?; end
+
+ # Checks whether this is a unary operation.
+ #
+ # @example
+ #
+ # -foo
+ # @return [Boolean] whether this method is a unary operation
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#235
+ def unary_operation?; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#12
+RuboCop::AST::MethodDispatchNode::ARITHMETIC_OPERATORS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_dispatch_node.rb#14
+RuboCop::AST::MethodDispatchNode::SPECIAL_MODIFIERS = T.let(T.unsafe(nil), Array)
+
+# Common predicates for nodes that reference method identifiers:
+# `send`, `csend`, `def`, `defs`, `super`, `zsuper`
+#
+# @note this mixin expects `#method_name` and `#receiver` to be implemented
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#9
+module RuboCop::AST::MethodIdentifierPredicates
+ # Checks whether the method is an assignment method.
+ #
+ # @return [Boolean] whether the method is an assignment
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#142
+ def assignment_method?; end
+
+ # Checks whether the method is a bang method.
+ #
+ # @return [Boolean] whether the method is a bang method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#171
+ def bang_method?; end
+
+ # Checks whether the method is a camel case method,
+ # e.g. `Integer()`.
+ #
+ # @return [Boolean] whether the method is a camel case method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#179
+ def camel_case_method?; end
+
+ # Checks whether the method is a comparison method.
+ #
+ # @return [Boolean] whether the method is a comparison
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#135
+ def comparison_method?; end
+
+ # Checks whether the *explicit* receiver of node is a `const` node.
+ #
+ # @return [Boolean] whether the receiver of this node is a `const` node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#193
+ def const_receiver?; end
+
+ # Checks whether the method is an Enumerable method.
+ #
+ # @return [Boolean] whether the method is an Enumerable method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#157
+ def enumerable_method?; end
+
+ # Checks whether the method is an enumerator method.
+ #
+ # @return [Boolean] whether the method is an enumerator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#149
+ def enumerator_method?; end
+
+ # Checks whether the method name matches the argument.
+ #
+ # @param name [Symbol, String] the method name to check for
+ # @return [Boolean] whether the method name matches the argument
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#79
+ def method?(name); end
+
+ # Checks whether this is a negation method, i.e. `!` or keyword `not`.
+ #
+ # @return [Boolean] whether this method is a negation method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#200
+ def negation_method?; end
+
+ # Checks whether the method is a nonmutating Array method.
+ #
+ # @return [Boolean] whether the method is a nonmutating Array method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#114
+ def nonmutating_array_method?; end
+
+ # Checks whether the method is a nonmutating binary operator method.
+ #
+ # @return [Boolean] whether the method is a nonmutating binary operator method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#93
+ def nonmutating_binary_operator_method?; end
+
+ # Checks whether the method is a nonmutating Hash method.
+ #
+ # @return [Boolean] whether the method is a nonmutating Hash method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#121
+ def nonmutating_hash_method?; end
+
+ # Checks whether the method is a nonmutating operator method.
+ #
+ # @return [Boolean] whether the method is a nonmutating operator method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#107
+ def nonmutating_operator_method?; end
+
+ # Checks whether the method is a nonmutating String method.
+ #
+ # @return [Boolean] whether the method is a nonmutating String method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#128
+ def nonmutating_string_method?; end
+
+ # Checks whether the method is a nonmutating unary operator method.
+ #
+ # @return [Boolean] whether the method is a nonmutating unary operator method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#100
+ def nonmutating_unary_operator_method?; end
+
+ # Checks whether the method is an operator method.
+ #
+ # @return [Boolean] whether the method is an operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#86
+ def operator_method?; end
+
+ # Checks whether the method is a predicate method.
+ #
+ # @return [Boolean] whether the method is a predicate method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#164
+ def predicate_method?; end
+
+ # Checks whether this is a prefix bang method, e.g. `!foo`.
+ #
+ # @return [Boolean] whether this method is a prefix bang
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#214
+ def prefix_bang?; end
+
+ # Checks whether this is a prefix not method, e.g. `not foo`.
+ #
+ # @return [Boolean] whether this method is a prefix not
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#207
+ def prefix_not?; end
+
+ # Checks whether the *explicit* receiver of this node is `self`.
+ #
+ # @return [Boolean] whether the receiver of this node is `self`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#186
+ def self_receiver?; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#16
+RuboCop::AST::MethodIdentifierPredicates::ENUMERABLE_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#10
+RuboCop::AST::MethodIdentifierPredicates::ENUMERATOR_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#32
+RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_ARRAY_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#24
+RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_BINARY_OPERATOR_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#48
+RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_HASH_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#28
+RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_OPERATOR_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#59
+RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_STRING_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#26
+RuboCop::AST::MethodIdentifierPredicates::NONMUTATING_UNARY_OPERATOR_METHODS = T.let(T.unsafe(nil), Set)
+
+# http://phrogz.net/programmingruby/language.html#table_18.4
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/method_identifier_predicates.rb#20
+RuboCop::AST::MethodIdentifierPredicates::OPERATOR_METHODS = T.let(T.unsafe(nil), Set)
+
+# Common functionality for nodes that can be used as modifiers:
+# `if`, `while`, `until`
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/modifier_node.rb#7
+module RuboCop::AST::ModifierNode
+ # Checks whether the node is in a modifier form, i.e. a condition
+ # trailing behind an expression.
+ #
+ # @return [Boolean] whether the node is a modifier
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/modifier_node.rb#12
+ def modifier_form?; end
+end
+
+# A node extension for `module` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `module` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/module_node.rb#8
+class RuboCop::AST::ModuleNode < ::RuboCop::AST::Node
+ # The body of this `module` node.
+ #
+ # @return [Node, nil] the body of the module
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/module_node.rb#19
+ def body; end
+
+ # The identifier for this `module` node.
+ #
+ # @return [Node] the identifier of the module
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/module_node.rb#12
+ def identifier; end
+end
+
+# A node extension for `next` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `next` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/next_node.rb#8
+class RuboCop::AST::NextNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::ParameterizedNode::WrappedArguments
+end
+
+# `RuboCop::AST::Node` is a subclass of `Parser::AST::Node`. It provides
+# access to parent nodes and an object-oriented way to traverse an AST with
+# the power of `Enumerable`.
+#
+# It has predicate methods for every node type, like this:
+#
+# @example
+# node.send_type? # Equivalent to: `node.type == :send`
+# node.op_asgn_type? # Equivalent to: `node.type == :op_asgn`
+#
+# # Non-word characters (other than a-zA-Z0-9_) in type names are omitted.
+# node.defined_type? # Equivalent to: `node.type == :defined?`
+#
+# # Find the first lvar node under the receiver node.
+# lvar_node = node.each_descendant.find(&:lvar_type?)
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#21
+class RuboCop::AST::Node < ::Parser::AST::Node
+ include ::RuboCop::AST::Sexp
+ include ::RuboCop::AST::Descendence
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # @return [Node] a new instance of Node
+ # @see https://www.rubydoc.info/gems/ast/AST/Node:initialize
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#92
+ def initialize(type, children = T.unsafe(nil), properties = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def __ENCODING___type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def __FILE___type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def __LINE___type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def alias_type?; end
+
+ # Returns an array of ancestor nodes.
+ # This is a shorthand for `node.each_ancestor.to_a`.
+ #
+ # @return [Array] an array of ancestor nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#247
+ def ancestors; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def and_asgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def and_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def arg_expr_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def arg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def args_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#464
+ def argument?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#468
+ def argument_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def array_pattern_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def array_pattern_with_tail_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def array_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#416
+ def assignment?; end
+
+ # Some cops treat the shovel operator as a kind of assignment.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#355
+ def assignment_or_similar?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def back_ref_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#420
+ def basic_conditional?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#363
+ def basic_literal?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def begin_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def block_pass_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def block_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def blockarg_expr_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def blockarg_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#472
+ def boolean_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def break_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#456
+ def call_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def case_match_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def case_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def casgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def cbase_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#460
+ def chained?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#512
+ def class_constructor?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#530
+ def class_definition?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def class_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#144
+ def complete!; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#149
+ def complete?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def complex_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#424
+ def conditional?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#293
+ def const_name; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def const_pattern_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def const_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def csend_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def cvar_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def cvasgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def def_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#314
+ def defined_module; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#319
+ def defined_module_name; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def defined_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def defs_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def dstr_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def dsym_type?; end
+
+ # Calls the given block for each ancestor node from parent to root.
+ # If no block is given, an `Enumerator` is returned.
+ #
+ # @overload each_ancestor
+ # @overload each_ancestor
+ # @overload each_ancestor
+ # @return [self] if a block is given
+ # @return [Enumerator] if no block is given
+ # @yieldparam node [Node] each ancestor node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#235
+ def each_ancestor(*types, &block); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def eflipflop_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def empty_else_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#349
+ def empty_source?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def ensure_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#408
+ def equals_asgn?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def erange_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def false_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#371
+ def falsey_literal?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def find_pattern_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#261
+ def first_line; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def float_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def for_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def forward_arg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def forward_args_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def forwarded_args_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def forwarded_kwrestarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def forwarded_restarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#509
+ def global_const?(param0 = T.unsafe(nil), param1); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#484
+ def guard_clause?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def gvar_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def gvasgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def hash_pattern_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def hash_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def ident_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def if_guard_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def if_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def iflipflop_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#379
+ def immutable_literal?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def in_match_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def in_pattern_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def index_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def indexasgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def int_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def irange_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def ivar_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def ivasgn_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#437
+ def keyword?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def kwarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def kwargs_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def kwbegin_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def kwnilarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def kwoptarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def kwrestarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def kwsplat_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#503
+ def lambda?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#506
+ def lambda_or_proc?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def lambda_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#265
+ def last_line; end
+
+ # Use is discouraged, this is a potentially slow method and can lead
+ # to even slower algorithms
+ #
+ # @return [Node, nil] the left (aka previous) sibling
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#187
+ def left_sibling; end
+
+ # Use is discouraged, this is a potentially slow method and can lead
+ # to even slower algorithms
+ #
+ # @return [Array] the left (aka previous) siblings
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#197
+ def left_siblings; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#269
+ def line_count; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#359
+ def literal?; end
+
+ # NOTE: `loop { }` is a normal method call and thus not a loop keyword.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#433
+ def loop_keyword?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def lvar_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def lvasgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def masgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_alt_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_as_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_current_line_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#491
+ def match_guard_clause?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_nil_pattern_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_pattern_p_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_pattern_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_rest_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_var_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_with_lvasgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def match_with_trailing_comma_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def mlhs_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#537
+ def module_definition?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def module_type?; end
+
+ # Predicates
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#341
+ def multiline?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#375
+ def mutable_literal?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#671
+ def new_class_or_module_block?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def next_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def nil_type?; end
+
+ # Common destructuring method. This can be used to normalize
+ # destructuring for different variations of the node.
+ # Some node types override this with their own custom
+ # destructuring method.
+ #
+ # @return [Array] the different parts of the ndde
+ #
+ # source://ast/2.4.2/lib/ast/node.rb#56
+ def node_parts; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#275
+ def nonempty_line_count; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def not_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def nth_ref_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def numargs_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def numblock_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#476
+ def numeric_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def objc_kwarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def objc_restarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def objc_varargs_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def op_asgn_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#448
+ def operator_keyword?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def optarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def or_asgn_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def or_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def pair_type?; end
+
+ # Returns the parent node, or `nil` if the receiver is a root node.
+ #
+ # @return [Node, nil] the parent node or `nil`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#126
+ def parent; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#135
+ def parent?; end
+
+ # Searching the AST
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#325
+ def parent_module_name; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#452
+ def parenthesized_call?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def pin_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#428
+ def post_condition_loop?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def postexe_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def preexe_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#496
+ def proc?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def procarg0_type?; end
+
+ # Some expressions are evaluated for their value, some for their side
+ # effects, and some for both.
+ # If we know that expressions are useful only for their return values,
+ # and have no side effects, that means we can reorder them, change the
+ # number of times they are evaluated, or replace them with other
+ # expressions which are equivalent in value.
+ # So, is evaluation of this node free of side effects?
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#582
+ def pure?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#480
+ def range_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def rational_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#286
+ def receiver(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#386
+ def recursive_basic_literal?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#386
+ def recursive_literal?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def redo_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#404
+ def reference?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def regexp_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def regopt_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def resbody_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def rescue_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def restarg_expr_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def restarg_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def retry_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def return_type?; end
+
+ # Use is discouraged, this is a potentially slow method and can lead
+ # to even slower algorithms
+ #
+ # @return [Node, nil] the right (aka next) sibling
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#178
+ def right_sibling; end
+
+ # Use is discouraged, this is a potentially slow method and can lead
+ # to even slower algorithms
+ #
+ # @return [Array] the right (aka next) siblings
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#206
+ def right_siblings; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#140
+ def root?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def sclass_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def self_type?; end
+
+ # Most nodes are of 'send' type, so this method is defined
+ # separately to make this check as fast as possible.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#119
+ def send_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def shadowarg_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#412
+ def shorthand_asgn?; end
+
+ # Returns the index of the receiver node in its siblings. (Sibling index
+ # uses zero based numbering.)
+ # Use is discouraged, this is a potentially slow method.
+ #
+ # @return [Integer, nil] the index of the receiver node in its siblings
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#171
+ def sibling_index; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#345
+ def single_line?; end
+
+ # NOTE: Some rare nodes may have no source, like `s(:args)` in `foo {}`
+ #
+ # @return [String, nil]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#253
+ def source; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#279
+ def source_length; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#257
+ def source_range; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#444
+ def special_keyword?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def splat_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#291
+ def str_content(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def str_type?; end
+
+ # @deprecated Use `:class_constructor?`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#525
+ def struct_constructor?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def super_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def sym_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def true_type?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#367
+ def truthy_literal?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def undef_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def unless_guard_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def until_post_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def until_type?; end
+
+ # Override `AST::Node#updated` so that `AST::Processor` does not try to
+ # mutate our ASTs. Since we keep references from children to parents and
+ # not just the other way around, we cannot update an AST and share
+ # identical subtrees. Rather, the entire AST must be copied any time any
+ # part of it is changed.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#160
+ def updated(type = T.unsafe(nil), children = T.unsafe(nil), properties = T.unsafe(nil)); end
+
+ # Some expressions are evaluated for their value, some for their side
+ # effects, and some for both
+ # If we know that an expression is useful only for its side effects, that
+ # means we can transform it in ways which preserve the side effects, but
+ # change the return value
+ # So, does the return value of this node matter? If we changed it to
+ # `(...; nil)`, might that affect anything?
+ #
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#551
+ def value_used?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#400
+ def variable?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def when_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def while_post_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def while_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def xstr_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def yield_type?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#111
+ def zsuper_type?; end
+
+ protected
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#130
+ def parent=(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#610
+ def begin_value_used?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#621
+ def case_if_value_used?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#305
+ def defined_module0(param0 = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#615
+ def for_value_used?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#657
+ def parent_module_name_for_block(ancestor); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#645
+ def parent_module_name_for_sclass(sclass_node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#632
+ def parent_module_name_part(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#600
+ def visit_ancestors(types); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node.rb#627
+ def while_until_value_used?; end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#80
+RuboCop::AST::Node::ARGUMENT_TYPES = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#55
+RuboCop::AST::Node::ASSIGNMENTS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#58
+RuboCop::AST::Node::BASIC_CONDITIONALS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#42
+RuboCop::AST::Node::BASIC_LITERALS = T.let(T.unsafe(nil), Set)
+
+# <=> isn't included here, because it doesn't return a boolean.
+#
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#28
+RuboCop::AST::Node::COMPARISON_OPERATORS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#39
+RuboCop::AST::Node::COMPOSITE_LITERALS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#60
+RuboCop::AST::Node::CONDITIONALS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node.rb#87
+RuboCop::AST::Node::EMPTY_CHILDREN = T.let(T.unsafe(nil), Array)
+
+# source://rubocop-ast//lib/rubocop/ast/node.rb#88
+RuboCop::AST::Node::EMPTY_PROPERTIES = T.let(T.unsafe(nil), Hash)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#50
+RuboCop::AST::Node::EQUALS_ASSIGNMENTS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#35
+RuboCop::AST::Node::FALSEY_LITERALS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#47
+RuboCop::AST::Node::IMMUTABLE_LITERALS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#70
+RuboCop::AST::Node::KEYWORDS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#37
+RuboCop::AST::Node::LITERALS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node.rb#83
+RuboCop::AST::Node::LITERAL_RECURSIVE_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node.rb#84
+RuboCop::AST::Node::LITERAL_RECURSIVE_TYPES = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#64
+RuboCop::AST::Node::LOOP_TYPES = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#44
+RuboCop::AST::Node::MUTABLE_LITERALS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#76
+RuboCop::AST::Node::OPERATOR_KEYWORDS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#62
+RuboCop::AST::Node::POST_CONDITION_LOOP_TYPES = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#68
+RuboCop::AST::Node::REFERENCES = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#53
+RuboCop::AST::Node::SHORTHAND_ASSIGNMENTS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#78
+RuboCop::AST::Node::SPECIAL_KEYWORDS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#31
+RuboCop::AST::Node::TRUTHY_LITERALS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node.rb#66
+RuboCop::AST::Node::VARIABLES = T.let(T.unsafe(nil), Set)
+
+# This class performs a pattern-matching operation on an AST node.
+#
+# Detailed syntax: /docs/modules/ROOT/pages/node_pattern.adoc
+#
+# Initialize a new `NodePattern` with `NodePattern.new(pattern_string)`, then
+# pass an AST node to `NodePattern#match`. Alternatively, use one of the class
+# macros in `NodePattern::Macros` to define your own pattern-matching method.
+#
+# If the match fails, `nil` will be returned. If the match succeeds, the
+# return value depends on whether a block was provided to `#match`, and
+# whether the pattern contained any "captures" (values which are extracted
+# from a matching AST.)
+#
+# - With block: #match yields the captures (if any) and passes the return
+# value of the block through.
+# - With no block, but one capture: the capture is returned.
+# - With no block, but multiple captures: captures are returned as an array.
+# - With no block and no captures: #match returns `true`.
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#5
+class RuboCop::AST::NodePattern
+ include ::RuboCop::AST::NodePattern::MethodDefiner
+ extend ::Forwardable
+
+ # @return [NodePattern] a new instance of NodePattern
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#77
+ def initialize(str, compiler: T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#90
+ def ==(other); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#107
+ def as_json(_options = T.unsafe(nil)); end
+
+ # Returns the value of attribute ast.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#73
+ def ast; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def captures(*args, **_arg1, &block); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#111
+ def encode_with(coder); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#90
+ def eql?(other); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#119
+ def freeze; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#115
+ def init_with(coder); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#103
+ def marshal_dump; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#99
+ def marshal_load(pattern); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#85
+ def match(*args, **rest, &block); end
+
+ # Returns the value of attribute match_code.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#73
+ def match_code; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def named_parameters(*args, **_arg1, &block); end
+
+ # Returns the value of attribute pattern.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#73
+ def pattern; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def positional_parameters(*args, **_arg1, &block); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#95
+ def to_s; end
+
+ class << self
+ # Yields its argument and any descendants, depth-first.
+ #
+ # @yield [element]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#59
+ def descend(element, &block); end
+ end
+end
+
+# Responsible to build the AST nodes for `NodePattern`
+#
+# Doc on how this fits in the compiling process:
+# /docs/modules/ROOT/pages/node_pattern.adoc
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#10
+class RuboCop::AST::NodePattern::Builder
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#17
+ def emit_atom(type, value); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#29
+ def emit_call(type, selector, args = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#11
+ def emit_capture(capture_token, node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#25
+ def emit_list(type, _begin, children, _end); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#41
+ def emit_subsequence(node_list); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#21
+ def emit_unary_op(type, _operator = T.unsafe(nil), *children); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#34
+ def emit_union(begin_t, pattern_lists, end_t); end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#53
+ def n(type, *args); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#49
+ def optimizable_as_set?(children); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/builder.rb#57
+ def union_children(pattern_lists); end
+end
+
+# A NodePattern comment, simplified version of ::Parser::Source::Comment
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/comment.rb#7
+class RuboCop::AST::NodePattern::Comment
+ # @param range [Parser::Source::Range]
+ # @return [Comment] a new instance of Comment
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/comment.rb#14
+ def initialize(range); end
+
+ # Compares comments. Two comments are equal if they
+ # correspond to the same source range.
+ #
+ # @param other [Object]
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/comment.rb#31
+ def ==(other); end
+
+ # @return [String] a human-readable representation of this comment
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/comment.rb#39
+ def inspect; end
+
+ # Returns the value of attribute location.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/comment.rb#8
+ def loc; end
+
+ # Returns the value of attribute location.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/comment.rb#8
+ def location; end
+
+ # @return [String]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/comment.rb#20
+ def text; end
+end
+
+# The top-level compiler holding the global state
+# Defers work to its subcompilers
+#
+# Doc on how this fits in the compiling process:
+# /docs/modules/ROOT/pages/node_pattern.adoc
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#11
+class RuboCop::AST::NodePattern::Compiler
+ extend ::Forwardable
+
+ # @return [Compiler] a new instance of Compiler
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#15
+ def initialize; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def bind(*args, **_arg1, &block); end
+
+ # Returns the value of attribute binding.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#13
+ def binding; end
+
+ # Returns the value of attribute captures.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#13
+ def captures; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#42
+ def compile_as_atom(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#46
+ def compile_as_node_pattern(node, **options); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#50
+ def compile_sequence(sequence, var:); end
+
+ # Enumerates `enum` while keeping track of state across
+ # union branches (captures and unification).
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#38
+ def each_union(enum, &block); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#74
+ def freeze; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#31
+ def named_parameter(name); end
+
+ # Returns the value of attribute named_parameters.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#13
+ def named_parameters; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#70
+ def next_capture; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#54
+ def parser; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#26
+ def positional_parameter(number); end
+
+ # Returns the value of attribute positional_parameters.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#13
+ def positional_parameters; end
+
+ # Utilities
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#60
+ def with_temp_variables(*names, &block); end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#81
+ def enforce_same_captures(enum); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler.rb#96
+ def new_capture; end
+end
+
+# Generates code that evaluates to a value (Ruby object)
+# This value responds to `===`.
+#
+# Doc on how this fits in the compiling process:
+# /docs/modules/ROOT/pages/node_pattern.adoc
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#12
+class RuboCop::AST::NodePattern::Compiler::AtomSubcompiler < ::RuboCop::AST::NodePattern::Compiler::Subcompiler
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#28
+ def visit_const; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#32
+ def visit_named_parameter; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#21
+ def visit_number; end
+
+ # Assumes other types are node patterns.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#46
+ def visit_other_type; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#36
+ def visit_positional_parameter; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#21
+ def visit_regexp; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#40
+ def visit_set; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#21
+ def visit_string; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#21
+ def visit_symbol; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/atom_subcompiler.rb#15
+ def visit_unify; end
+end
+
+# Holds the list of bound variable names
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/binding.rb#8
+class RuboCop::AST::NodePattern::Compiler::Binding
+ # @return [Binding] a new instance of Binding
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/binding.rb#9
+ def initialize; end
+
+ # Yields the first time a given name is bound
+ #
+ # @return [String] bound variable name
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/binding.rb#16
+ def bind(name); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/binding.rb#30
+ def union_bind(enum); end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/binding.rb#69
+ def forbid(names); end
+end
+
+# Variant of the Compiler with tracing information for nodes
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#10
+class RuboCop::AST::NodePattern::Compiler::Debug < ::RuboCop::AST::NodePattern::Compiler
+ # @return [Debug] a new instance of Debug
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#123
+ def initialize; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def comments(*args, **_arg1, &block); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#128
+ def named_parameters; end
+
+ # Returns the value of attribute node_ids.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#33
+ def node_ids; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#132
+ def parser; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def tokens(*args, **_arg1, &block); end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#36
+class RuboCop::AST::NodePattern::Compiler::Debug::Colorizer
+ # @api private
+ # @return [Colorizer] a new instance of Colorizer
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#96
+ def initialize(pattern, compiler: T.unsafe(nil)); end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#94
+ def compiler; end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#94
+ def node_pattern; end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#94
+ def pattern; end
+
+ # @api private
+ # @return [Node] the Ruby AST
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#103
+ def test(ruby, trace: T.unsafe(nil)); end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#111
+ def ruby_ast(ruby); end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#116
+ def ruby_parser; end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#37
+RuboCop::AST::NodePattern::Compiler::Debug::Colorizer::COLOR_SCHEME = T.let(T.unsafe(nil), Hash)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#92
+RuboCop::AST::NodePattern::Compiler::Debug::Colorizer::Compiler = RuboCop::AST::NodePattern::Compiler::Debug
+
+# Result of a NodePattern run against a particular AST
+# Consider constructor is private
+#
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#46
+class RuboCop::AST::NodePattern::Compiler::Debug::Colorizer::Result < ::Struct
+ # @api private
+ # @return [Hash] a map for {character_position => color}
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#56
+ def color_map(color_scheme = T.unsafe(nil)); end
+
+ # @api private
+ # @return [String] a Rainbow colorized version of ruby
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#48
+ def colorize(color_scheme = T.unsafe(nil)); end
+
+ # Returns the value of attribute colorizer
+ #
+ # @return [Object] the current value of colorizer
+ def colorizer; end
+
+ # Sets the attribute colorizer
+ #
+ # @param value [Object] the value to set the attribute colorizer to.
+ # @return [Object] the newly set value
+ def colorizer=(_); end
+
+ # @api private
+ # @return [Hash] a map for {node => matched?}, depth-first
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#66
+ def match_map; end
+
+ # @api private
+ # @return [Boolean] a value of `Trace#matched?` or `:not_visitable`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#74
+ def matched?(node); end
+
+ # Returns the value of attribute returned
+ #
+ # @return [Object] the current value of returned
+ def returned; end
+
+ # Sets the attribute returned
+ #
+ # @param value [Object] the value to set the attribute returned to.
+ # @return [Object] the newly set value
+ def returned=(_); end
+
+ # Returns the value of attribute ruby_ast
+ #
+ # @return [Object] the current value of ruby_ast
+ def ruby_ast; end
+
+ # Sets the attribute ruby_ast
+ #
+ # @param value [Object] the value to set the attribute ruby_ast to.
+ # @return [Object] the newly set value
+ def ruby_ast=(_); end
+
+ # Returns the value of attribute trace
+ #
+ # @return [Object] the current value of trace
+ def trace; end
+
+ # Sets the attribute trace
+ #
+ # @param value [Object] the value to set the attribute trace to.
+ # @return [Object] the newly set value
+ def trace=(_); end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#87
+ def ast; end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#81
+ def color_map_for(node, color); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#139
+module RuboCop::AST::NodePattern::Compiler::Debug::InstrumentationSubcompiler
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#140
+ def do_compile; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#150
+ def node_id; end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#146
+ def tracer(kind); end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#156
+class RuboCop::AST::NodePattern::Compiler::Debug::NodePatternSubcompiler < ::RuboCop::AST::NodePattern::Compiler::NodePatternSubcompiler
+ include ::RuboCop::AST::NodePattern::Compiler::Debug::InstrumentationSubcompiler
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#161
+class RuboCop::AST::NodePattern::Compiler::Debug::SequenceSubcompiler < ::RuboCop::AST::NodePattern::Compiler::SequenceSubcompiler
+ include ::RuboCop::AST::NodePattern::Compiler::Debug::InstrumentationSubcompiler
+end
+
+# Compiled node pattern requires a named parameter `trace`,
+# which should be an instance of this class
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#13
+class RuboCop::AST::NodePattern::Compiler::Debug::Trace
+ # @return [Trace] a new instance of Trace
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#14
+ def initialize; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#18
+ def enter(node_id); end
+
+ # return nil (not visited), false (not matched) or true (matched)
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#28
+ def matched?(node_id); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/debug.rb#23
+ def success(node_id); end
+end
+
+# Compiles code that evalues to true or false
+# for a given value `var` (typically a RuboCop::AST::Node)
+# or it's `node.type` if `seq_head` is true
+#
+# Doc on how this fits in the compiling process:
+# /docs/modules/ROOT/pages/node_pattern.adoc
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#13
+class RuboCop::AST::NodePattern::Compiler::NodePatternSubcompiler < ::RuboCop::AST::NodePattern::Compiler::Subcompiler
+ # @return [NodePatternSubcompiler] a new instance of NodePatternSubcompiler
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#16
+ def initialize(compiler, var: T.unsafe(nil), access: T.unsafe(nil), seq_head: T.unsafe(nil)); end
+
+ # Returns the value of attribute access.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#14
+ def access; end
+
+ # Returns the value of attribute seq_head.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#14
+ def seq_head; end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#119
+ def access_element; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#123
+ def access_node; end
+
+ # @param [Array, nil]
+ # @return [String, nil]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#113
+ def compile_args(arg_list, first: T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#129
+ def compile_guard_clause; end
+
+ # Compiling helpers
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#107
+ def compile_value_match(value); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#133
+ def multiple_access(kind); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#30
+ def visit_ascend; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#58
+ def visit_capture; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#37
+ def visit_descend; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#84
+ def visit_function_call; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#73
+ def visit_intersection; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#25
+ def visit_negation; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#88
+ def visit_node_type; end
+
+ # Assumes other types are atoms.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#100
+ def visit_other_type; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#80
+ def visit_predicate; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#92
+ def visit_sequence; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#49
+ def visit_unify; end
+
+ # Lists
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#64
+ def visit_union; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb#45
+ def visit_wildcard; end
+end
+
+# Compiles terms within a sequence to code that evalues to true or false.
+# Compilation of the nodes that can match only a single term is deferred to
+# `NodePatternSubcompiler`; only nodes that can match multiple terms are
+# compiled here.
+# Assumes the given `var` is a `::RuboCop::AST::Node`
+#
+# Doc on how this fits in the compiling process:
+# /docs/modules/ROOT/pages/node_pattern.adoc
+#
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#17
+class RuboCop::AST::NodePattern::Compiler::SequenceSubcompiler < ::RuboCop::AST::NodePattern::Compiler::Subcompiler
+ # Calls `compile_sequence`; the actual `compile` method
+ # will be used for the different terms of the sequence.
+ # The only case of re-entrant call to `compile` is `visit_capture`
+ #
+ # @return [SequenceSubcompiler] a new instance of SequenceSubcompiler
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#25
+ def initialize(compiler, sequence:, var:); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#31
+ def compile_sequence; end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#251
+ def in_sync; end
+
+ protected
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#226
+ def compile_terms(children = T.unsafe(nil), last_arity = T.unsafe(nil)); end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#251
+ def cur_index; end
+
+ # yield `sync_code` iff not already in sync
+ #
+ # @yield [code]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#242
+ def sync; end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#20
+ def compile(node); end
+
+ # Compilation helpers
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#165
+ def compile_and_advance(term); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#128
+ def compile_any_order_branches(matched_var); end
+
+ # @return [Array] Else code, and init code (if any)
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#137
+ def compile_any_order_else; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#180
+ def compile_captured_repetition(child_code, child_captures); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#119
+ def compile_case(when_branches, else_code); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#361
+ def compile_child_nb_guard(arity_range); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#319
+ def compile_cur_index; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#325
+ def compile_index(cur = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#353
+ def compile_loop(term); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#347
+ def compile_loop_advance(to = T.unsafe(nil)); end
+
+ # Assumes `@cur_index` is already updated
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#198
+ def compile_matched(kind); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#304
+ def compile_max_matched; end
+
+ # @return [String] code that evaluates to `false` if the matched arity is too small
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#270
+ def compile_min_check; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#285
+ def compile_remaining; end
+
+ # @return [Hash] of {subcompiler => code}
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#373
+ def compile_union_forks; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#313
+ def empty_loop; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#214
+ def handle_prev; end
+
+ # Modifies in place `forks`
+ # Syncs our state
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#400
+ def merge_forks!(forks); end
+
+ # Modifies in place `forks` to insure that `cur_{child|index}_var` are ok
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#384
+ def preserve_union_start(forks); end
+
+ # E.g. For sequence `(_ _? <_ _>)`, arities are: 1, 0..1, 2
+ # and remaining arities are: 3..4, 2..3, 2..2, 0..0
+ #
+ # @return [Array] total arities (as Ranges) of remaining children nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#259
+ def remaining_arities(children, last_arity); end
+
+ # returns truthy iff `@cur_index` switched to relative from end mode (i.e. < 0)
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#341
+ def use_index_from_end; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#88
+ def visit_any_order; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#150
+ def visit_capture; end
+
+ # Single node patterns are all handled here
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#62
+ def visit_other_type; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#78
+ def visit_repetition; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#159
+ def visit_rest; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#104
+ def visit_union; end
+
+ # NOTE: assumes `@cur_index != :seq_head`. Node types using `within_loop` must
+ # have `def in_sequence_head; :raise; end`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#333
+ def within_loop; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#18
+RuboCop::AST::NodePattern::Compiler::SequenceSubcompiler::DELTA = T.let(T.unsafe(nil), Integer)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb#19
+RuboCop::AST::NodePattern::Compiler::SequenceSubcompiler::POSITIVE = T.let(T.unsafe(nil), Proc)
+
+# Base class for subcompilers
+# Implements visitor pattern
+#
+# Doc on how this fits in the compiling process:
+# /docs/modules/ROOT/pages/node_pattern.adoc
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#12
+class RuboCop::AST::NodePattern::Compiler::Subcompiler
+ # @return [Subcompiler] a new instance of Subcompiler
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#15
+ def initialize(compiler); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#20
+ def compile(node); end
+
+ # Returns the value of attribute compiler.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#13
+ def compiler; end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#34
+ def do_compile; end
+
+ # Returns the value of attribute node.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#32
+ def node; end
+
+ class << self
+ # @private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#47
+ def inherited(base); end
+
+ # @private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#42
+ def method_added(method); end
+
+ # Returns the value of attribute registry.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/compiler/subcompiler.rb#40
+ def registry; end
+ end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#53
+class RuboCop::AST::NodePattern::Invalid < ::StandardError; end
+
+# Lexer class for `NodePattern`
+#
+# Doc on how this fits in the compiling process:
+# /docs/modules/ROOT/pages/node_pattern.adoc
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#18
+class RuboCop::AST::NodePattern::Lexer < ::RuboCop::AST::NodePattern::LexerRex
+ # @return [Lexer] a new instance of Lexer
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#31
+ def initialize(source); end
+
+ # Returns the value of attribute comments.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#29
+ def comments; end
+
+ # Returns the value of attribute source_buffer.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#29
+ def source_buffer; end
+
+ # Returns the value of attribute tokens.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#29
+ def tokens; end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#60
+ def do_parse; end
+
+ # @return [token]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#40
+ def emit(type); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#48
+ def emit_comment; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#52
+ def emit_regexp; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#64
+ def token(type, value); end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#19
+RuboCop::AST::NodePattern::Lexer::Error = RuboCop::AST::NodePattern::LexerRex::ScanError
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rb#21
+RuboCop::AST::NodePattern::Lexer::REGEXP_OPTIONS = T.let(T.unsafe(nil), Hash)
+
+# The generated lexer RuboCop::AST::NodePattern::LexerRex
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#23
+class RuboCop::AST::NodePattern::LexerRex
+ # Yields on the current action.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#69
+ def action; end
+
+ # The file name / path
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#43
+ def filename; end
+
+ # The file name / path
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#43
+ def filename=(_arg0); end
+
+ # The current location in the parse.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#104
+ def location; end
+
+ # The StringScanner for this lexer.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#48
+ def match; end
+
+ # The match groups for the current scan.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#60
+ def matches; end
+
+ # Lex the next token.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#113
+ def next_token; end
+
+ # Parse the given string.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#84
+ def parse(str); end
+
+ # Read in and parse the file at +path+.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#94
+ def parse_file(path); end
+
+ # The current scanner class. Must be overridden in subclasses.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#77
+ def scanner_class; end
+
+ # The StringScanner for this lexer.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#48
+ def ss; end
+
+ # The StringScanner for this lexer.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#48
+ def ss=(_arg0); end
+
+ # The current lexical state.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#53
+ def state; end
+
+ # The current lexical state.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#53
+ def state=(_arg0); end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#31
+RuboCop::AST::NodePattern::LexerRex::CALL = T.let(T.unsafe(nil), Regexp)
+
+# :stopdoc:
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#27
+RuboCop::AST::NodePattern::LexerRex::CONST_NAME = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#29
+RuboCop::AST::NodePattern::LexerRex::IDENTIFIER = T.let(T.unsafe(nil), Regexp)
+
+# :startdoc:
+# :stopdoc:
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#36
+class RuboCop::AST::NodePattern::LexerRex::LexerError < ::StandardError; end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#30
+RuboCop::AST::NodePattern::LexerRex::NODE_TYPE = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#33
+RuboCop::AST::NodePattern::LexerRex::REGEXP = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#32
+RuboCop::AST::NodePattern::LexerRex::REGEXP_BODY = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#28
+RuboCop::AST::NodePattern::LexerRex::SYMBOL_NAME = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/lexer.rex.rb#37
+class RuboCop::AST::NodePattern::LexerRex::ScanError < ::RuboCop::AST::NodePattern::LexerRex::LexerError; end
+
+# Helpers for defining methods based on a pattern string
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#28
+module RuboCop::AST::NodePattern::Macros
+ # Define a method which applies a pattern to an AST node
+ #
+ # The new method will return nil if the node does not match.
+ # If the node matches, and a block is provided, the new method will
+ # yield to the block (passing any captures as block arguments).
+ # If the node matches, and no block is provided, the new method will
+ # return the captures, or `true` if there were none.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#36
+ def def_node_matcher(method_name, pattern_str, **keyword_defaults); end
+
+ # Define a method which recurses over the descendants of an AST node,
+ # checking whether any of them match the provided pattern
+ #
+ # If the method name ends with '?', the new method will return `true`
+ # as soon as it finds a descendant which matches. Otherwise, it will
+ # yield all descendants which match.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#46
+ def def_node_search(method_name, pattern_str, **keyword_defaults); end
+end
+
+# Functionality to turn `match_code` into methods/lambda
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#7
+module RuboCop::AST::NodePattern::MethodDefiner
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#37
+ def as_lambda; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#27
+ def compile_as_lambda; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#8
+ def def_node_matcher(base, method_name, **defaults); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#21
+ def def_node_search(base, method_name, **defaults); end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#139
+ def compile_init; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#50
+ def def_helper(base, method_name, **defaults); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#114
+ def emit_keyword_list(forwarding: T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#132
+ def emit_lambda_code; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#125
+ def emit_method_code; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#63
+ def emit_node_search(method_name); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#74
+ def emit_node_search_body(method_name, prelude:, on_match:); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#110
+ def emit_param_list; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#119
+ def emit_params(*first, forwarding: T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#100
+ def emit_retval; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#89
+ def emit_yield_capture(when_no_capture = T.unsafe(nil), yield_with: T.unsafe(nil)); end
+
+ # This method minimizes the closure for our method
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/method_definer.rb#44
+ def wrapping_block(method_name, **defaults); end
+end
+
+# Base class for AST Nodes of a `NodePattern`
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#7
+class RuboCop::AST::NodePattern::Node < ::Parser::AST::Node
+ include ::RuboCop::AST::Descendence
+ extend ::Forwardable
+
+ # Note: `arity.end` may be `Float::INFINITY`
+ #
+ # @return [Integer, Range] An Integer for fixed length terms, otherwise a Range.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#29
+ def arity; end
+
+ # @return [Range] arity as a Range
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#69
+ def arity_range; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#23
+ def capture?; end
+
+ # @return [Node] most nodes have only one child
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#48
+ def child; end
+
+ # @return [Array]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#43
+ def children_nodes; end
+
+ # @return [Array, nil] replace node with result, or `nil` if no change requested.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#34
+ def in_sequence_head; end
+
+ # that matches within a Set (e.g. `42`, `:sym` but not `/regexp/`)
+ #
+ # @return [Boolean] returns true for nodes having a Ruby literal equivalent
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#64
+ def matches_within_set?; end
+
+ # @return [Integer] nb of captures of that node and its descendants
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#53
+ def nb_captures; end
+
+ # To be overridden by subclasses
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#19
+ def rest?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#78
+ def source_range; end
+
+ # @return [Boolean] returns whether it matches a variable number of elements
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#58
+ def variadic?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#74
+ def with(type: T.unsafe(nil), children: T.unsafe(nil), location: T.unsafe(nil)); end
+end
+
+# Node class for ``
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#180
+class RuboCop::AST::NodePattern::Node::AnyOrder < ::RuboCop::AST::NodePattern::Node
+ include ::RuboCop::AST::NodePattern::Node::ForbidInSeqHead
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#198
+ def arity; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#190
+ def ends_with_rest?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#194
+ def rest_node; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#186
+ def term_nodes; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#183
+RuboCop::AST::NodePattern::Node::AnyOrder::ARITIES = T.let(T.unsafe(nil), Hash)
+
+# Node class for `$something`
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#97
+class RuboCop::AST::NodePattern::Node::Capture < ::RuboCop::AST::NodePattern::Node
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def arity(*args, **_arg1, &block); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#101
+ def capture?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#109
+ def in_sequence_head; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#105
+ def nb_captures; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def rest?(*args, **_arg1, &block); end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#86
+module RuboCop::AST::NodePattern::Node::ForbidInSeqHead
+ # @raise [NodePattern::Invalid]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#87
+ def in_sequence_head; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#140
+RuboCop::AST::NodePattern::Node::FunctionCall = RuboCop::AST::NodePattern::Node::Predicate
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#82
+RuboCop::AST::NodePattern::Node::INT_TO_RANGE = T.let(T.unsafe(nil), Hash)
+
+# Registry
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#250
+RuboCop::AST::NodePattern::Node::MAP = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#12
+RuboCop::AST::NodePattern::Node::MATCHES_WITHIN_SET = T.let(T.unsafe(nil), Set)
+
+# Node class for `predicate?(:arg, :list)`
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#131
+class RuboCop::AST::NodePattern::Node::Predicate < ::RuboCop::AST::NodePattern::Node
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#136
+ def arg_list; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#132
+ def method_name; end
+end
+
+# Node class for `int+`
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#143
+class RuboCop::AST::NodePattern::Node::Repetition < ::RuboCop::AST::NodePattern::Node
+ include ::RuboCop::AST::NodePattern::Node::ForbidInSeqHead
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#156
+ def arity; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#146
+ def operator; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#150
+RuboCop::AST::NodePattern::Node::Repetition::ARITIES = T.let(T.unsafe(nil), Hash)
+
+# Node class for `...`
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#162
+class RuboCop::AST::NodePattern::Node::Rest < ::RuboCop::AST::NodePattern::Node
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#170
+ def arity; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#174
+ def in_sequence_head; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#166
+ def rest?; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#163
+RuboCop::AST::NodePattern::Node::Rest::ARITY = T.let(T.unsafe(nil), Range)
+
+# Node class for `(type first second ...)`
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#118
+class RuboCop::AST::NodePattern::Node::Sequence < ::RuboCop::AST::NodePattern::Node
+ include ::RuboCop::AST::NodePattern::Node::ForbidInSeqHead
+
+ # @return [Sequence] a new instance of Sequence
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#121
+ def initialize(type, children = T.unsafe(nil), properties = T.unsafe(nil)); end
+end
+
+# A list (potentially empty) of nodes; part of a Union
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#206
+class RuboCop::AST::NodePattern::Node::Subsequence < ::RuboCop::AST::NodePattern::Node
+ include ::RuboCop::AST::NodePattern::Node::ForbidInSeqHead
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#209
+ def arity; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#214
+ def in_sequence_head; end
+end
+
+# Node class for `{ ... }`
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#224
+class RuboCop::AST::NodePattern::Node::Union < ::RuboCop::AST::NodePattern::Node
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#225
+ def arity; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/node.rb#232
+ def in_sequence_head; end
+end
+
+# Parser for NodePattern
+# Note: class reopened in `parser.racc`
+#
+# Doc on how this fits in the compiling process:
+# /docs/modules/ROOT/pages/node_pattern.adoc
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#12
+class RuboCop::AST::NodePattern::Parser < ::Racc::Parser
+ extend ::Forwardable
+
+ # @return [Parser] a new instance of Parser
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.rb#19
+ def initialize(builder = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#333
+ def _reduce_10(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#337
+ def _reduce_11(val, _values); end
+
+ # reduce 12 omitted
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#343
+ def _reduce_13(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#347
+ def _reduce_14(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#351
+ def _reduce_15(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#355
+ def _reduce_16(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#359
+ def _reduce_17(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#363
+ def _reduce_18(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#367
+ def _reduce_19(val, _values); end
+
+ # reduce 1 omitted
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#301
+ def _reduce_2(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#371
+ def _reduce_20(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#375
+ def _reduce_21(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#379
+ def _reduce_22(val, _values); end
+
+ # reduce 24 omitted
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#387
+ def _reduce_25(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#393
+ def _reduce_26(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#305
+ def _reduce_3(val, _values); end
+
+ # reduce 32 omitted
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#413
+ def _reduce_33(val, _values); end
+
+ # reduce 36 omitted
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#423
+ def _reduce_37(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#427
+ def _reduce_38(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#431
+ def _reduce_39(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#309
+ def _reduce_4(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#435
+ def _reduce_40(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#439
+ def _reduce_41(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#443
+ def _reduce_42(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#447
+ def _reduce_43(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#451
+ def _reduce_44(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#455
+ def _reduce_45(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#459
+ def _reduce_46(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#313
+ def _reduce_5(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#317
+ def _reduce_6(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#321
+ def _reduce_7(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#325
+ def _reduce_8(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#329
+ def _reduce_9(val, _values); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#463
+ def _reduce_none(val, _values); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def emit_atom(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def emit_call(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def emit_capture(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def emit_list(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def emit_unary_op(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def emit_union(*args, **_arg1, &block); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.rb#40
+ def inspect; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def next_token(*args, **_arg1, &block); end
+
+ # (Similar API to `parser` gem)
+ # Parses a source and returns the AST.
+ #
+ # @param source_buffer [Parser::Source::Buffer, String] The source buffer to parse.
+ # @return [NodePattern::Node]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.rb#31
+ def parse(source); end
+
+ private
+
+ # @raise [NodePattern::Invalid]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.rb#50
+ def enforce_unary(node); end
+
+ # Overrides Racc::Parser's method:
+ #
+ # @raise [NodePattern::Invalid]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.rb#59
+ def on_error(token, val, _vstack); end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.rb#16
+RuboCop::AST::NodePattern::Parser::Builder = RuboCop::AST::NodePattern::Builder
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.rb#17
+RuboCop::AST::NodePattern::Parser::Lexer = RuboCop::AST::NodePattern::Lexer
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#227
+RuboCop::AST::NodePattern::Parser::Racc_arg = T.let(T.unsafe(nil), Array)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#293
+RuboCop::AST::NodePattern::Parser::Racc_debug_parser = T.let(T.unsafe(nil), FalseClass)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#243
+RuboCop::AST::NodePattern::Parser::Racc_token_to_s_table = T.let(T.unsafe(nil), Array)
+
+# Overrides Parser to use `WithMeta` variants and provide additional methods
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#8
+class RuboCop::AST::NodePattern::Parser::WithMeta < ::RuboCop::AST::NodePattern::Parser
+ # Returns the value of attribute comments.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#98
+ def comments; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#100
+ def do_parse; end
+
+ # Returns the value of attribute tokens.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#98
+ def tokens; end
+end
+
+# Overrides Builder to emit nodes with locations
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#39
+class RuboCop::AST::NodePattern::Parser::WithMeta::Builder < ::RuboCop::AST::NodePattern::Builder
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#40
+ def emit_atom(type, token); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#61
+ def emit_call(type, selector_t, args = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#55
+ def emit_list(type, begin_t, children, end_t); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#49
+ def emit_unary_op(type, operator_t = T.unsafe(nil), *children); end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#81
+ def join_exprs(left_expr, right_expr); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#75
+ def loc(token_or_range); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#71
+ def n(type, children, source_map); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#85
+ def source_map(token_or_range, begin_t: T.unsafe(nil), end_t: T.unsafe(nil), operator_t: T.unsafe(nil), selector_t: T.unsafe(nil)); end
+end
+
+# Overrides Lexer to token locations and comments
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#10
+class RuboCop::AST::NodePattern::Parser::WithMeta::Lexer < ::RuboCop::AST::NodePattern::Lexer
+ # @return [Lexer] a new instance of Lexer
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#13
+ def initialize(str_or_buffer); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#27
+ def emit_comment; end
+
+ # @return [::Parser::Source::Range] last match's position
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#33
+ def pos; end
+
+ # Returns the value of attribute source_buffer.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#11
+ def source_buffer; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/with_meta.rb#23
+ def token(type, value); end
+end
+
+# Utility to assign a set of values to a constant
+#
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#7
+module RuboCop::AST::NodePattern::Sets
+ class << self
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#31
+ def [](set); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#15
+ def name(set); end
+
+ # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#22
+ def uniq(name); end
+ end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#14
+RuboCop::AST::NodePattern::Sets::MAX = T.let(T.unsafe(nil), Integer)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#8
+RuboCop::AST::NodePattern::Sets::REGISTRY = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_0_1 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_10_10 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_1_1 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_ADD_DEPENDENCY_ADD_RUNTIME_DEPENDENCY_ADD_DEVELOPMENT_DEPENDENCY = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_ANY_EMPTY = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_ANY_EMPTY_NONE_ETC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_ATTR_READER_ATTR_WRITER_ATTR_ACCESSOR_ATTR = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_BRANCH_REF_TAG = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_CAPTURE2_CAPTURE2E_CAPTURE3_ETC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_CIPHER_DIGEST = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_CLASS_EVAL_INSTANCE_EVAL = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_CLASS_EVAL_MODULE_EVAL = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_CLASS_MODULE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_CLASS_MODULE_STRUCT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_CLONE_DUP_FREEZE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_COUNT_LENGTH_SIZE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_DEFINE_METHOD = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_DEFINE_METHOD_DEFINE_SINGLETON_METHOD = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_EACH_WITH_INDEX_WITH_INDEX = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_EACH_WITH_OBJECT_WITH_OBJECT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_ENV = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_ESCAPE_ENCODE_UNESCAPE_DECODE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_EXIST_EXISTS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_FILETEST_FILE_DIR_SHELL = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_FILE_DIR = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_FILE_FILETEST = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_FILE_TEMPFILE_STRINGIO = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_FIRST_LAST__ETC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_FIXNUM_BIGNUM = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_FORMAT_SPRINTF_PRINTF = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_GETHOSTBYADDR_GETHOSTBYNAME = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_GSUB_GSUB = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_INCLUDE_EXTEND_PREPEND = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_INSTANCE_EVAL_CLASS_EVAL_MODULE_EVAL = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_INSTANCE_EXEC_CLASS_EXEC_MODULE_EXEC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_KEYS_VALUES = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_KEY_HAS_KEY_FETCH_ETC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_LAST_FIRST = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_LENGTH_SIZE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_LOAD_RESTORE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_MAP_COLLECT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_MODULE_FUNCTION_RUBY2_KEYWORDS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_NEW_ = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_NEW_COMPILE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_NEW_OPEN = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_NIL_ = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_PIPELINE_PIPELINE_R_PIPELINE_RW_ETC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_PRESENT_ANY_BLANK_EMPTY = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_PRIVATE_PROTECTED_PRIVATE_CLASS_METHOD = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_PRIVATE_PROTECTED_PUBLIC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_PUBLIC_CONSTANT_PRIVATE_CONSTANT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_PUBLIC_PROTECTED_PRIVATE_MODULE_FUNCTION = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_RAISE_FAIL = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_RAISE_FAIL_THROW_ETC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_READ_BINREAD = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_REDUCE_INJECT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_REJECT_DELETE_IF_REJECT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_REQUIRE_REQUIRE_RELATIVE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_SELECT_FILTER_FIND_ALL = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_SELECT_SELECT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_SEND_PUBLIC_SEND___SEND__ = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_SORT_BY_SORT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_SPAWN_SYSTEM = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_SPRINTF_FORMAT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_STRUCT_CLASS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_SUCC_PRED_NEXT = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_TO_ENUM_ENUM_FOR = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_TO_H_TO_HASH = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_TO_I_TO_F_TO_C_TO_R = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_TRUE_FALSE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_ZERO_POSITIVE_NEGATIVE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET__ = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET__AT_SLICE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET__EQUAL_EQL = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET__FETCH = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET__GLOB = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___ = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___2 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___3 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___4 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___5 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___6 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___7 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___8 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___EQL_ETC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___EQL_INCLUDE = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET___METHOD_____CALLEE__ = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET____ = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET____2 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET____ETC = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET____ETC_2 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET____ETC_3 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET____ETC_4 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10
+RuboCop::AST::NodePattern::Sets::SET_____2 = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#55
+RuboCop::AST::NodePattern::VAR = T.let(T.unsafe(nil), String)
+
+# Common functionality for primitive numeric nodes: `int`, `float`, ...
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/numeric_node.rb#6
+module RuboCop::AST::NumericNode
+ # Checks whether this is literal has a sign.
+ #
+ # @example
+ #
+ # +42
+ # @return [Boolean] whether this literal has a sign.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/numeric_node.rb#17
+ def sign?; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/numeric_node.rb#7
+RuboCop::AST::NumericNode::SIGN_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# A node extension for `op_asgn` nodes.
+# This will be used in place of a plain node when the builder constructs
+# the AST, making its methods available to all assignment nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/op_asgn_node.rb#8
+class RuboCop::AST::OpAsgnNode < ::RuboCop::AST::Node
+ # @return [AsgnNode] the assignment node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/op_asgn_node.rb#10
+ def assignment_node; end
+
+ # The expression being assigned to the variable.
+ #
+ # @return [Node] the expression being assigned.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/op_asgn_node.rb#31
+ def expression; end
+
+ # The name of the variable being assigned as a symbol.
+ #
+ # @return [Symbol] the name of the variable being assigned
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/op_asgn_node.rb#17
+ def name; end
+
+ # The operator being used for assignment as a symbol.
+ #
+ # @return [Symbol] the assignment operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/op_asgn_node.rb#24
+ def operator; end
+end
+
+# A node extension for `op_asgn` nodes.
+# This will be used in place of a plain node when the builder constructs
+# the AST, making its methods available to all assignment nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/or_asgn_node.rb#8
+class RuboCop::AST::OrAsgnNode < ::RuboCop::AST::OpAsgnNode
+ # The operator being used for assignment as a symbol.
+ #
+ # @return [Symbol] the assignment operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/or_asgn_node.rb#12
+ def operator; end
+end
+
+# A node extension for `or` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `or` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/or_node.rb#8
+class RuboCop::AST::OrNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::BinaryOperatorNode
+ include ::RuboCop::AST::PredicateOperatorNode
+
+ # Returns the alternate operator of the `or` as a string.
+ # Returns `or` for `||` and vice versa.
+ #
+ # @return [String] the alternate of the `or` operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/or_node.rb#16
+ def alternate_operator; end
+
+ # Returns the inverse keyword of the `or` node as a string.
+ # Returns `and` for `or` and `&&` for `||`.
+ #
+ # @return [String] the inverse of the `or` operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/or_node.rb#24
+ def inverse_operator; end
+end
+
+# A node extension for `pair` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `pair` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#8
+class RuboCop::AST::PairNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::HashElementNode
+
+ # Checks whether the `pair` uses a colon delimiter.
+ #
+ # @return [Boolean] whether this `pair` uses a colon delimiter
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#30
+ def colon?; end
+
+ # Returns the delimiter of the `pair` as a string. Returns `=>` for a
+ # colon delimited `pair` and `:` for a hash rocket delimited `pair`.
+ #
+ # @param with_spacing [Boolean] whether to include spacing
+ # @return [String] the delimiter of the `pair`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#39
+ def delimiter(*deprecated, with_spacing: T.unsafe(nil)); end
+
+ # Checks whether the `pair` uses a hash rocket delimiter.
+ #
+ # @return [Boolean] whether this `pair` uses a hash rocket delimiter
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#23
+ def hash_rocket?; end
+
+ # Returns the inverse delimiter of the `pair` as a string.
+ #
+ # @param with_spacing [Boolean] whether to include spacing
+ # @return [String] the inverse delimiter of the `pair`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#51
+ def inverse_delimiter(*deprecated, with_spacing: T.unsafe(nil)); end
+
+ # Checks whether the `pair` uses hash value omission.
+ #
+ # @return [Boolean] whether this `pair` uses hash value omission
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#69
+ def value_omission?; end
+
+ # Checks whether the value starts on its own line.
+ #
+ # @return [Boolean] whether the value in the `pair` starts its own line
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#62
+ def value_on_new_line?; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#15
+RuboCop::AST::PairNode::COLON = T.let(T.unsafe(nil), String)
+
+# source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#11
+RuboCop::AST::PairNode::HASH_ROCKET = T.let(T.unsafe(nil), String)
+
+# source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#17
+RuboCop::AST::PairNode::SPACED_COLON = T.let(T.unsafe(nil), String)
+
+# source://rubocop-ast//lib/rubocop/ast/node/pair_node.rb#13
+RuboCop::AST::PairNode::SPACED_HASH_ROCKET = T.let(T.unsafe(nil), String)
+
+# Requires implementing `arguments`.
+#
+# Common functionality for nodes that are parameterized:
+# `send`, `super`, `zsuper`, `def`, `defs`
+# and (modern only): `index`, `indexasgn`, `lambda`
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#10
+module RuboCop::AST::ParameterizedNode
+ # Checks whether this node has any arguments.
+ #
+ # @return [Boolean] whether this node has any arguments
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#40
+ def arguments?; end
+
+ # Whether the last argument of the node is a block pass,
+ # i.e. `&block`.
+ #
+ # @return [Boolean] whether the last argument of the node is a block pass
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#58
+ def block_argument?; end
+
+ # A shorthand for getting the first argument of the node.
+ # Equivalent to `arguments.first`.
+ #
+ # @return [Node, nil] the first argument of the node,
+ # or `nil` if there are no arguments
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#24
+ def first_argument; end
+
+ # A shorthand for getting the last argument of the node.
+ # Equivalent to `arguments.last`.
+ #
+ # @return [Node, nil] the last argument of the node,
+ # or `nil` if there are no arguments
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#33
+ def last_argument; end
+
+ # Checks whether this node's arguments are wrapped in parentheses.
+ #
+ # @return [Boolean] whether this node's arguments are
+ # wrapped in parentheses
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#15
+ def parenthesized?; end
+
+ # Checks whether any argument of the node is a splat
+ # argument, i.e. `*splat`.
+ #
+ # @return [Boolean] whether the node is a splat argument
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#48
+ def rest_argument?; end
+
+ # Checks whether any argument of the node is a splat
+ # argument, i.e. `*splat`.
+ #
+ # @return [Boolean] whether the node is a splat argument
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#48
+ def splat_argument?; end
+end
+
+# A specialized `ParameterizedNode`.
+# Requires implementing `first_argument_index`
+# Implements `arguments` as `children[first_argument_index..-1]`
+# and optimizes other calls
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#83
+module RuboCop::AST::ParameterizedNode::RestArguments
+ include ::RuboCop::AST::ParameterizedNode
+
+ # @return [Array] arguments, if any
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#89
+ def arguments; end
+
+ # Checks whether this node has any arguments.
+ #
+ # @return [Boolean] whether this node has any arguments
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#119
+ def arguments?; end
+
+ # A shorthand for getting the first argument of the node.
+ # Equivalent to `arguments.first`.
+ #
+ # @return [Node, nil] the first argument of the node,
+ # or `nil` if there are no arguments
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#103
+ def first_argument; end
+
+ # A shorthand for getting the last argument of the node.
+ # Equivalent to `arguments.last`.
+ #
+ # @return [Node, nil] the last argument of the node,
+ # or `nil` if there are no arguments
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#112
+ def last_argument; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#86
+RuboCop::AST::ParameterizedNode::RestArguments::EMPTY_ARGUMENTS = T.let(T.unsafe(nil), Array)
+
+# A specialized `ParameterizedNode` for node that have a single child
+# containing either `nil`, an argument, or a `begin` node with all the
+# arguments
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#66
+module RuboCop::AST::ParameterizedNode::WrappedArguments
+ include ::RuboCop::AST::ParameterizedNode
+
+ # @return [Array] The arguments of the node.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/parameterized_node.rb#69
+ def arguments; end
+end
+
+# Common functionality for nodes that are predicates:
+# `or`, `and` ...
+#
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/predicate_operator_node.rb#7
+module RuboCop::AST::PredicateOperatorNode
+ # Checks whether this is a logical operator.
+ #
+ # @return [Boolean] whether this is a logical operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/predicate_operator_node.rb#27
+ def logical_operator?; end
+
+ # Returns the operator as a string.
+ #
+ # @return [String] the operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/predicate_operator_node.rb#20
+ def operator; end
+
+ # Checks whether this is a semantic operator.
+ #
+ # @return [Boolean] whether this is a semantic operator
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/mixin/predicate_operator_node.rb#34
+ def semantic_operator?; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/predicate_operator_node.rb#8
+RuboCop::AST::PredicateOperatorNode::LOGICAL_AND = T.let(T.unsafe(nil), String)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/predicate_operator_node.rb#12
+RuboCop::AST::PredicateOperatorNode::LOGICAL_OR = T.let(T.unsafe(nil), String)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/predicate_operator_node.rb#10
+RuboCop::AST::PredicateOperatorNode::SEMANTIC_AND = T.let(T.unsafe(nil), String)
+
+# source://rubocop-ast//lib/rubocop/ast/node/mixin/predicate_operator_node.rb#14
+RuboCop::AST::PredicateOperatorNode::SEMANTIC_OR = T.let(T.unsafe(nil), String)
+
+# A node extension for `procarg0` nodes.
+# This will be used in place of a plain node when the builder constructs
+# the AST, making its methods available to all `arg` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/procarg0_node.rb#8
+class RuboCop::AST::Procarg0Node < ::RuboCop::AST::ArgNode
+ # Returns the name of an argument.
+ #
+ # @return [Symbol, nil] the name of the argument
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/procarg0_node.rb#12
+ def name; end
+end
+
+# ProcessedSource contains objects which are generated by Parser
+# and other information such as disabled lines for cops.
+# It also provides a convenient way to access source lines.
+#
+# source://rubocop-ast//lib/rubocop/ast/processed_source.rb#11
+class RuboCop::AST::ProcessedSource
+ # @return [ProcessedSource] a new instance of ProcessedSource
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#26
+ def initialize(source, ruby_version, path = T.unsafe(nil)); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#63
+ def [](*args); end
+
+ # Returns the value of attribute ast.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def ast; end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#41
+ def ast_with_comments; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#102
+ def blank?; end
+
+ # Returns the value of attribute buffer.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def buffer; end
+
+ # Raw source checksum for tracking infinite loops.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#74
+ def checksum; end
+
+ # @return [Comment, nil] the comment at that line, if any.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#107
+ def comment_at_line(line); end
+
+ # Consider using `each_comment_in_lines` instead
+ #
+ # @deprecated use contains_comment?
+ # @return [Boolean] if any of the lines in the given `source_range` has a comment.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#129
+ def commented?(source_range); end
+
+ # Returns the value of attribute comments.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def comments; end
+
+ # Should have been called `comments_before_or_at_line`. Doubtful it has of any valid use.
+ #
+ # @deprecated Use `each_comment_in_lines`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#137
+ def comments_before_line(line); end
+
+ # Consider using `each_comment_in_lines` instead
+ #
+ # @return [Boolean] if any of the lines in the given `source_range` has a comment.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#129
+ def contains_comment?(source_range); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#151
+ def current_line(token); end
+
+ # Returns the value of attribute diagnostics.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def diagnostics; end
+
+ # @deprecated Use `comments.each`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#79
+ def each_comment(&block); end
+
+ # Enumerates on the comments contained with the given `line_range`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#117
+ def each_comment_in_lines(line_range); end
+
+ # @deprecated Use `tokens.each`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#89
+ def each_token(&block); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#98
+ def file_path; end
+
+ # @deprecated Use `comment_at_line`, `each_comment_in_lines`, or `comments.find`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#84
+ def find_comment(&block); end
+
+ # @deprecated Use `tokens.find`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#94
+ def find_token(&block); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#172
+ def first_token_of(range_or_node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#155
+ def following_line(token); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#176
+ def last_token_of(range_or_node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#159
+ def line_indentation(line_number); end
+
+ # @return [Boolean] if the given line number has a comment.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#112
+ def line_with_comment?(line); end
+
+ # Returns the source lines, line break characters removed, excluding a
+ # possible __END__ and everything that comes after.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#49
+ def lines; end
+
+ # Returns the value of attribute parser_error.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def parser_error; end
+
+ # Returns the value of attribute path.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def path; end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#147
+ def preceding_line(token); end
+
+ # Returns the value of attribute raw_source.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def raw_source; end
+
+ # Returns the value of attribute ruby_version.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def ruby_version; end
+
+ # The tokens list is always sorted by token position, except for cases when heredoc
+ # is passed as a method argument. In this case tokens are interleaved by
+ # heredoc contents' tokens.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#183
+ def sorted_tokens; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#141
+ def start_with?(string); end
+
+ # Returns the value of attribute tokens.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#18
+ def tokens; end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#166
+ def tokens_within(range_or_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#67
+ def valid_syntax?; end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#190
+ def comment_index; end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#278
+ def create_parser(ruby_version); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#294
+ def first_token_index(range_or_node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#299
+ def last_token_index(range_or_node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#196
+ def parse(source, ruby_version); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#230
+ def parser_class(ruby_version); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#304
+ def source_range(range_or_node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#213
+ def tokenize(parser); end
+
+ class << self
+ # source://rubocop-ast//lib/rubocop/ast/processed_source.rb#21
+ def from_file(path, ruby_version); end
+ end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/processed_source.rb#15
+RuboCop::AST::ProcessedSource::INVALID_LEVELS = T.let(T.unsafe(nil), Array)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/processed_source.rb#13
+RuboCop::AST::ProcessedSource::STRING_SOURCE_NAME = T.let(T.unsafe(nil), String)
+
+# A node extension for `irange` and `erange` nodes. This will be used in
+# place of a plain node when the builder constructs the AST, making its
+# methods available to all `irange` and `erange` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/range_node.rb#8
+class RuboCop::AST::RangeNode < ::RuboCop::AST::Node
+ # source://rubocop-ast//lib/rubocop/ast/node/range_node.rb#9
+ def begin; end
+
+ # source://rubocop-ast//lib/rubocop/ast/node/range_node.rb#13
+ def end; end
+end
+
+# A node extension for `regexp` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `regexp` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#8
+class RuboCop::AST::RegexpNode < ::RuboCop::AST::Node
+ # @return [String] a string of regexp content
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#37
+ def content; end
+
+ # @return [Bool] if char is one of the delimiters
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#57
+ def delimiter?(char); end
+
+ # @return [String] the regexp delimiters (without %r)
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#52
+ def delimiters; end
+
+ # @return [Bool] if regexp uses the extended regopt
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#72
+ def extended?; end
+
+ # @return [Bool] if regexp uses the fixed-encoding regopt
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#92
+ def fixed_encoding?; end
+
+ # @return [Bool] if regexp uses the ignore-case regopt
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#77
+ def ignore_case?; end
+
+ # @return [Bool] if regexp contains interpolation
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#62
+ def interpolation?; end
+
+ # @return [Bool] if regexp uses the multiline regopt
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#67
+ def multiline_mode?; end
+
+ # @return [Bool] if regexp uses the no-encoding regopt
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#87
+ def no_encoding?; end
+
+ # NOTE: The 'o' option is ignored.
+ #
+ # @return [Integer] the Regexp option bits as returned by Regexp#options
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#32
+ def options; end
+
+ # @return [Bool] if the regexp is a %r{...} literal (using any delimiters)
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#47
+ def percent_r_literal?; end
+
+ # @return [RuboCop::AST::Node] a regopt node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#25
+ def regopt; end
+
+ # @return [Bool] if regexp uses the single-interpolation regopt
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#82
+ def single_interpolation?; end
+
+ # @return [Bool] if the regexp is a /.../ literal
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#42
+ def slash_literal?; end
+
+ # @return [Regexp] a regexp of this node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#20
+ def to_regexp; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#98
+ def regopt_include?(option); end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/node/regexp_node.rb#9
+RuboCop::AST::RegexpNode::OPTIONS = T.let(T.unsafe(nil), Hash)
+
+# A node extension for `resbody` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `resbody` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/resbody_node.rb#8
+class RuboCop::AST::ResbodyNode < ::RuboCop::AST::Node
+ # Returns the body of the `rescue` clause.
+ #
+ # @return [Node, nil] The body of the `resbody`.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/resbody_node.rb#12
+ def body; end
+
+ # Returns the index of the `resbody` branch within the exception handling statement.
+ #
+ # @return [Integer] the index of the `resbody` branch
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/resbody_node.rb#40
+ def branch_index; end
+
+ # Returns the exception variable of the `rescue` clause.
+ #
+ # @return [Node, nil] The exception variable of the `resbody`.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/resbody_node.rb#33
+ def exception_variable; end
+
+ # Returns an array of all the exceptions in the `rescue` clause.
+ #
+ # @return [Array] an array of exception nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/resbody_node.rb#19
+ def exceptions; end
+end
+
+# A node extension for `rescue` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `rescue` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/rescue_node.rb#8
+class RuboCop::AST::RescueNode < ::RuboCop::AST::Node
+ # Returns the body of the rescue node.
+ #
+ # @return [Node, nil] The body of the rescue node.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/rescue_node.rb#12
+ def body; end
+
+ # Returns an array of all the rescue branches in the exception handling statement.
+ #
+ # and the else (if any). Note that these bodies could be nil.
+ #
+ # @return [Array] an array of the bodies of the rescue branches
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/rescue_node.rb#27
+ def branches; end
+
+ # Checks whether this exception handling statement has an `else` branch.
+ #
+ # @return [Boolean] whether the exception handling statement has an `else` branch
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/rescue_node.rb#44
+ def else?; end
+
+ # Returns the else branch of the exception handling statement, if any.
+ #
+ # @return [Node] the else branch node of the exception handling statement
+ # @return [nil] if the exception handling statement does not have an else branch.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/rescue_node.rb#37
+ def else_branch; end
+
+ # Returns an array of all the rescue branches in the exception handling statement.
+ #
+ # @return [Array] an array of `resbody` nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/rescue_node.rb#19
+ def resbody_branches; end
+end
+
+# A node extension for `return` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `return` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/return_node.rb#8
+class RuboCop::AST::ReturnNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::ParameterizedNode::WrappedArguments
+end
+
+# Responsible for compatibility with main gem
+#
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/rubocop_compatibility.rb#8
+module RuboCop::AST::RuboCopCompatibility
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/rubocop_compatibility.rb#13
+ def rubocop_loaded; end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/rubocop_compatibility.rb#9
+RuboCop::AST::RuboCopCompatibility::INCOMPATIBLE_COPS = T.let(T.unsafe(nil), Hash)
+
+# A node extension for `sclass` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `sclass` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/self_class_node.rb#8
+class RuboCop::AST::SelfClassNode < ::RuboCop::AST::Node
+ # The body of this `sclass` node.
+ #
+ # @return [Node, nil] the body of the class
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/self_class_node.rb#19
+ def body; end
+
+ # The identifier for this `sclass` node. (Always `self`.)
+ #
+ # @return [Node] the identifier of the class
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/self_class_node.rb#12
+ def identifier; end
+end
+
+# A node extension for `send` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `send` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/send_node.rb#8
+class RuboCop::AST::SendNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::ParameterizedNode::RestArguments
+ include ::RuboCop::AST::MethodIdentifierPredicates
+ include ::RuboCop::AST::MethodDispatchNode
+
+ # source://rubocop-ast//lib/rubocop/ast/node/send_node.rb#13
+ def attribute_accessor?(param0 = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/send_node.rb#18
+ def send_type?; end
+
+ private
+
+ # source://rubocop-ast//lib/rubocop/ast/node/send_node.rb#24
+ def first_argument_index; end
+end
+
+# This module provides a shorthand method to create a {Node} like
+# `Parser::AST::Sexp`.
+#
+# @see https://www.rubydoc.info/gems/ast/AST/Sexp
+#
+# source://rubocop-ast//lib/rubocop/ast/sexp.rb#9
+module RuboCop::AST::Sexp
+ # Creates a {Node} with type `type` and children `children`.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/sexp.rb#11
+ def s(type, *children); end
+end
+
+# A node extension for `str`, `dstr`, and `xstr` nodes. This will be used
+# in place of a plain node when the builder constructs the AST, making
+# its methods available to all `str` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/str_node.rb#8
+class RuboCop::AST::StrNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::BasicLiteralNode
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/str_node.rb#11
+ def character_literal?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/str_node.rb#15
+ def heredoc?; end
+end
+
+# A node extension for `super`- and `zsuper` nodes. This will be used in
+# place of a plain node when the builder constructs the AST, making its
+# methods available to all `super`- and `zsuper` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/super_node.rb#8
+class RuboCop::AST::SuperNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::MethodIdentifierPredicates
+ include ::RuboCop::AST::MethodDispatchNode
+
+ # source://ast/2.4.2/lib/ast/node.rb#56
+ def arguments; end
+
+ # Custom destructuring method. This can be used to normalize
+ # destructuring for different variations of the node.
+ #
+ # @return [Array] the different parts of the `super` node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/super_node.rb#16
+ def node_parts; end
+end
+
+# A node extension for `sym` nodes. This will be used in place of a
+# plain node when the builder constructs the AST, making its methods
+# available to all `sym` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/symbol_node.rb#8
+class RuboCop::AST::SymbolNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::BasicLiteralNode
+end
+
+# A basic wrapper around Parser's tokens.
+#
+# source://rubocop-ast//lib/rubocop/ast/token.rb#6
+class RuboCop::AST::Token
+ # @return [Token] a new instance of Token
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#17
+ def initialize(pos, type, text); end
+
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#32
+ def begin_pos; end
+
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#28
+ def column; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#101
+ def comma?; end
+
+ # Type Predicates
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#57
+ def comment?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#105
+ def dot?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#117
+ def end?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#36
+ def end_pos; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#121
+ def equal_sign?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#65
+ def left_array_bracket?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#81
+ def left_brace?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#73
+ def left_bracket?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#85
+ def left_curly_brace?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#93
+ def left_parens?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#69
+ def left_ref_bracket?; end
+
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#24
+ def line; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#125
+ def new_line?; end
+
+ # Returns the value of attribute pos.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#9
+ def pos; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#109
+ def regexp_dots?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#113
+ def rescue_modifier?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#77
+ def right_bracket?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#89
+ def right_curly_brace?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#97
+ def right_parens?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#61
+ def semicolon?; end
+
+ # Checks if there is whitespace after token
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#45
+ def space_after?; end
+
+ # Checks if there is whitespace before token
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#50
+ def space_before?; end
+
+ # Returns the value of attribute text.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#9
+ def text; end
+
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#40
+ def to_s; end
+
+ # Returns the value of attribute type.
+ #
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#9
+ def type; end
+
+ class << self
+ # source://rubocop-ast//lib/rubocop/ast/token.rb#11
+ def from_parser_token(parser_token); end
+ end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/token.rb#7
+RuboCop::AST::Token::LEFT_PAREN_TYPES = T.let(T.unsafe(nil), Array)
+
+# Provides methods for traversing an AST.
+# Does not transform an AST; for that, use Parser::AST::Processor.
+# Override methods to perform custom processing. Remember to call `super`
+# if you want to recursively process descendant nodes.
+#
+# source://rubocop-ast//lib/rubocop/ast/traversal.rb#9
+module RuboCop::AST::Traversal
+ extend ::RuboCop::AST::Traversal::CallbackCompiler
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#173
+ def on_(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on___ENCODING__(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on___FILE__(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on___LINE__(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_alias(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_and(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_and_asgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_arg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#128
+ def on_arg_expr(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_args(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_array(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_array_pattern(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_array_pattern_with_tail(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_back_ref(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_begin(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#151
+ def on_block(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#129
+ def on_block_pass(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_blockarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_break(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_case(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_case_match(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#146
+ def on_casgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_cbase(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#147
+ def on_class(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_complex(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#145
+ def on_const(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_const_pattern(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#155
+ def on_csend(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_cvar(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#131
+ def on_cvasgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#148
+ def on_def(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#128
+ def on_defined?(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#153
+ def on_defs(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_dstr(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_dsym(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_eflipflop(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_empty_else(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_ensure(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_erange(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_false(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_find_pattern(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_float(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_for(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_forward_arg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_forward_args(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_forwarded_args(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_forwarded_kwrestarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_forwarded_restarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_gvar(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#131
+ def on_gvasgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_hash(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_hash_pattern(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#150
+ def on_if(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#128
+ def on_if_guard(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_iflipflop(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_in_match(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_in_pattern(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_index(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_indexasgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_int(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_irange(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_ivar(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#131
+ def on_ivasgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_kwarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_kwargs(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_kwbegin(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_kwnilarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#132
+ def on_kwoptarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#124
+ def on_kwrestarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#125
+ def on_kwsplat(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_lambda(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_lvar(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#131
+ def on_lvasgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_masgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_match_alt(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_match_as(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#128
+ def on_match_current_line(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_match_nil_pattern(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_match_pattern(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_match_pattern_p(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#125
+ def on_match_rest(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_match_var(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_match_with_lvasgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#128
+ def on_match_with_trailing_comma(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_mlhs(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#133
+ def on_module(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_mrasgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_next(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_nil(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#128
+ def on_not(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_nth_ref(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#152
+ def on_numblock(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#149
+ def on_op_asgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#132
+ def on_optarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_or(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_or_asgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_pair(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#128
+ def on_pin(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#129
+ def on_postexe(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#129
+ def on_preexe(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_procarg0(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_rasgn(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_rational(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_redo(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_regexp(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#135
+ def on_regopt(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_resbody(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_rescue(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#124
+ def on_restarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_retry(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_return(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#133
+ def on_sclass(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_self(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#155
+ def on_send(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_shadowarg(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#125
+ def on_splat(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_str(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_super(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#127
+ def on_sym(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_true(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_undef(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#128
+ def on_unless_guard(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#133
+ def on_until(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_until_post(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#139
+ def on_when(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#133
+ def on_while(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_while_post(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_xstr(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#136
+ def on_yield(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#123
+ def on_zsuper(node); end
+
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#17
+ def walk(node); end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/traversal.rb#25
+module RuboCop::AST::Traversal::CallbackCompiler
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#61
+ def arity_check(range); end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#52
+ def body(signature, prelude); end
+
+ # @api private
+ #
+ # source://rubocop-ast//lib/rubocop/ast/traversal.rb#35
+ def def_callback(type, *signature, arity: T.unsafe(nil), arity_check: T.unsafe(nil), body: T.unsafe(nil)); end
+end
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/traversal.rb#26
+RuboCop::AST::Traversal::CallbackCompiler::SEND = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/traversal.rb#29
+RuboCop::AST::Traversal::CallbackCompiler::TEMPLATE = T.let(T.unsafe(nil), Hash)
+
+# Only for debugging.
+#
+# @api private
+#
+# source://rubocop-ast//lib/rubocop/ast/traversal.rb#12
+class RuboCop::AST::Traversal::DebugError < ::RuntimeError; end
+
+# source://rubocop-ast//lib/rubocop/ast/traversal.rb#100
+RuboCop::AST::Traversal::NO_CHILD_NODES = T.let(T.unsafe(nil), Set)
+
+# source://rubocop-ast//lib/rubocop/ast/traversal.rb#15
+RuboCop::AST::Traversal::TYPE_TO_METHOD = T.let(T.unsafe(nil), Hash)
+
+# A node extension for `until` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `until` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/until_node.rb#8
+class RuboCop::AST::UntilNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ConditionalNode
+ include ::RuboCop::AST::ModifierNode
+
+ # Checks whether the `until` node has a `do` keyword.
+ #
+ # @return [Boolean] whether the `until` node has a `do` keyword
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/until_node.rb#30
+ def do?; end
+
+ # Returns the inverse keyword of the `until` node as a string.
+ # Returns `while` for `until` nodes and vice versa.
+ #
+ # @return [String] the inverse keyword of the `until` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/until_node.rb#23
+ def inverse_keyword; end
+
+ # Returns the keyword of the `until` statement as a string.
+ #
+ # @return [String] the keyword of the `until` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/until_node.rb#15
+ def keyword; end
+end
+
+# source://rubocop-ast//lib/rubocop/ast/version.rb#5
+module RuboCop::AST::Version; end
+
+# source://rubocop-ast//lib/rubocop/ast/version.rb#6
+RuboCop::AST::Version::STRING = T.let(T.unsafe(nil), String)
+
+# A node extension for `when` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `when` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/when_node.rb#8
+class RuboCop::AST::WhenNode < ::RuboCop::AST::Node
+ # Returns the body of the `when` node.
+ #
+ # @return [Node, nil] the body of the `when` node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/when_node.rb#42
+ def body; end
+
+ # Returns the index of the `when` branch within the `case` statement.
+ #
+ # @return [Integer] the index of the `when` branch
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/when_node.rb#28
+ def branch_index; end
+
+ # Returns an array of all the conditions in the `when` branch.
+ #
+ # @return [Array] an array of condition nodes
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/when_node.rb#12
+ def conditions; end
+
+ # @deprecated Use `conditions.each`
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/when_node.rb#17
+ def each_condition(&block); end
+
+ # Checks whether the `when` node has a `then` keyword.
+ #
+ # @return [Boolean] whether the `when` node has a `then` keyword
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/when_node.rb#35
+ def then?; end
+end
+
+# A node extension for `while` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `while` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/while_node.rb#8
+class RuboCop::AST::WhileNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ConditionalNode
+ include ::RuboCop::AST::ModifierNode
+
+ # Checks whether the `until` node has a `do` keyword.
+ #
+ # @return [Boolean] whether the `until` node has a `do` keyword
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/while_node.rb#30
+ def do?; end
+
+ # Returns the inverse keyword of the `while` node as a string.
+ # Returns `until` for `while` nodes and vice versa.
+ #
+ # @return [String] the inverse keyword of the `while` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/while_node.rb#23
+ def inverse_keyword; end
+
+ # Returns the keyword of the `while` statement as a string.
+ #
+ # @return [String] the keyword of the `while` statement
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/while_node.rb#15
+ def keyword; end
+end
+
+# A node extension for `yield` nodes. This will be used in place of a plain
+# node when the builder constructs the AST, making its methods available
+# to all `yield` nodes within RuboCop.
+#
+# source://rubocop-ast//lib/rubocop/ast/node/yield_node.rb#8
+class RuboCop::AST::YieldNode < ::RuboCop::AST::Node
+ include ::RuboCop::AST::ParameterizedNode
+ include ::RuboCop::AST::MethodIdentifierPredicates
+ include ::RuboCop::AST::MethodDispatchNode
+
+ # source://ast/2.4.2/lib/ast/node.rb#56
+ def arguments; end
+
+ # Custom destructuring method. This can be used to normalize
+ # destructuring for different variations of the node.
+ #
+ # @return [Array] the different parts of the `send` node
+ #
+ # source://rubocop-ast//lib/rubocop/ast/node/yield_node.rb#16
+ def node_parts; end
+end
diff --git a/sorbet/rbi/gems/rubocop@1.57.1.rbi b/sorbet/rbi/gems/rubocop@1.57.1.rbi
new file mode 100644
index 0000000..4115bac
--- /dev/null
+++ b/sorbet/rbi/gems/rubocop@1.57.1.rbi
@@ -0,0 +1,56791 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `rubocop` gem.
+# Please instead update this file by running `bin/tapioca gem rubocop`.
+
+class Parser::Source::Comment
+ include ::RuboCop::Ext::Comment
+end
+
+class Parser::Source::Range
+ include ::RuboCop::Ext::Range
+end
+
+class Regexp::Expression::Base
+ include ::RuboCop::Ext::RegexpParser::Expression::Base
+end
+
+class Regexp::Expression::CharacterSet < ::Regexp::Expression::Subexpression
+ include ::RuboCop::Ext::RegexpParser::Expression::CharacterSet
+end
+
+class Regexp::Expression::Quantifier
+ include ::RuboCop::Ext::RegexpParser::Expression::Base
+end
+
+# source://rubocop//lib/rubocop/version.rb#3
+module RuboCop; end
+
+class RuboCop::AST::ProcessedSource
+ include ::RuboCop::Ext::ProcessedSource
+end
+
+class RuboCop::AST::RegexpNode < ::RuboCop::AST::Node
+ include ::RuboCop::Ext::RegexpNode
+end
+
+# This is a class that reads optional command line arguments to rubocop from environment variable.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/arguments_env.rb#6
+class RuboCop::ArgumentsEnv
+ class << self
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/arguments_env.rb#7
+ def read_as_arguments; end
+ end
+end
+
+# This is a class that reads optional command line arguments to rubocop from .rubocop file.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/arguments_file.rb#6
+class RuboCop::ArgumentsFile
+ class << self
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/arguments_file.rb#7
+ def read_as_arguments; end
+ end
+end
+
+# The CLI is a class responsible of handling all the command line interface
+# logic.
+#
+# source://rubocop//lib/rubocop/cli.rb#8
+class RuboCop::CLI
+ # @return [CLI] a new instance of CLI
+ #
+ # source://rubocop//lib/rubocop/cli.rb#24
+ def initialize; end
+
+ # Returns the value of attribute config_store.
+ #
+ # source://rubocop//lib/rubocop/cli.rb#22
+ def config_store; end
+
+ # Returns the value of attribute options.
+ #
+ # source://rubocop//lib/rubocop/cli.rb#22
+ def options; end
+
+ # Entry point for the application logic. Here we
+ # do the command line arguments processing and inspect
+ # the target files.
+ #
+ #
+ # @api public
+ # @param args [Array] command line arguments
+ # @return [Integer] UNIX exit code
+ #
+ # source://rubocop//lib/rubocop/cli.rb#39
+ def run(args = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cli.rb#152
+ def act_on_options; end
+
+ # source://rubocop//lib/rubocop/cli.rb#189
+ def apply_default_formatter; end
+
+ # source://rubocop//lib/rubocop/cli.rb#121
+ def execute_runners; end
+
+ # @raise [Finished]
+ #
+ # source://rubocop//lib/rubocop/cli.rb#178
+ def handle_exiting_options; end
+
+ # source://rubocop//lib/rubocop/cli.rb#140
+ def parallel_by_default!; end
+
+ # source://rubocop//lib/rubocop/cli.rb#76
+ def profile_if_needed; end
+
+ # source://rubocop//lib/rubocop/cli.rb#109
+ def require_gem(name); end
+
+ # source://rubocop//lib/rubocop/cli.rb#117
+ def run_command(name); end
+
+ # source://rubocop//lib/rubocop/cli.rb#169
+ def set_options_to_config_loader; end
+
+ # source://rubocop//lib/rubocop/cli.rb#129
+ def suggest_extensions; end
+
+ # @raise [OptionArgumentError]
+ #
+ # source://rubocop//lib/rubocop/cli.rb#133
+ def validate_options_vs_config; end
+end
+
+# Home of subcommands in the CLI.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command.rb#7
+module RuboCop::CLI::Command
+ class << self
+ # Find the command with a given name and run it in an environment.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command.rb#10
+ def run(env, name); end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command.rb#16
+ def class_for(name); end
+ end
+end
+
+# Generate a configuration file acting as a TODO list.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#8
+class RuboCop::CLI::Command::AutoGenerateConfig < ::RuboCop::CLI::Command::Base
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#21
+ def run; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#97
+ def add_formatter; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#105
+ def add_inheritance_from_auto_generated_file(config_file); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#101
+ def execute_runner; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#126
+ def existing_configuration(config_file); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#59
+ def line_length_cop(config); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#47
+ def line_length_enabled?(config); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#55
+ def max_line_length(config); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#30
+ def maybe_run_line_length_cop; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#148
+ def options_config_in_root?; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#63
+ def options_has_only_flag?; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#139
+ def relative_path_to_todo_from_options_config; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#90
+ def reset_config_and_auto_gen_file; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#81
+ def run_all_cops(line_length_contents); end
+
+ # Do an initial run with only Layout/LineLength so that cops that
+ # depend on Layout/LineLength:Max get the correct value for that
+ # parameter.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#70
+ def run_line_length_cop; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#51
+ def same_max_line_length?(config1, config2); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#42
+ def skip_line_length_cop(reason); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#132
+ def write_config_file(file_name, file_string, rubocop_yml_contents); end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#11
+RuboCop::CLI::Command::AutoGenerateConfig::AUTO_GENERATED_FILE = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#14
+RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1 = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#18
+RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_DISABLED = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#17
+RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_OVERRIDDEN = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#19
+RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_SKIPPED = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#15
+RuboCop::CLI::Command::AutoGenerateConfig::PHASE_2 = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#12
+RuboCop::CLI::Command::AutoGenerateConfig::YAML_OPTIONAL_DOC_START = T.let(T.unsafe(nil), Regexp)
+
+# A subcommand in the CLI.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/base.rb#8
+class RuboCop::CLI::Command::Base
+ # @api private
+ # @return [Base] a new instance of Base
+ #
+ # source://rubocop//lib/rubocop/cli/command/base.rb#26
+ def initialize(env); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/base.rb#9
+ def env; end
+
+ class << self
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/base.rb#21
+ def by_command_name(name); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/base.rb#14
+ def command_name; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/base.rb#14
+ def command_name=(_arg0); end
+
+ # @api private
+ # @private
+ #
+ # source://rubocop//lib/rubocop/cli/command/base.rb#16
+ def inherited(subclass); end
+ end
+end
+
+# Run all the selected cops and report the result.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#8
+class RuboCop::CLI::Command::ExecuteRunner < ::RuboCop::CLI::Command::Base
+ include ::RuboCop::Formatter::TextUtil
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/execute_runner.rb#16
+ def run; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/execute_runner.rb#85
+ def bug_tracker_uri; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/execute_runner.rb#69
+ def display_error_summary(errors); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/execute_runner.rb#56
+ def display_summary(runner); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/execute_runner.rb#61
+ def display_warning_summary(warnings); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/execute_runner.rb#22
+ def execute_runner(paths); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/execute_runner.rb#91
+ def maybe_print_corrected_source; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/execute_runner.rb#42
+ def with_redirect; end
+end
+
+# Combination of short and long formatter names.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#12
+RuboCop::CLI::Command::ExecuteRunner::INTEGRATION_FORMATTERS = T.let(T.unsafe(nil), Array)
+
+# Generate a .rubocop.yml file in the current directory.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/init_dotfile.rb#8
+class RuboCop::CLI::Command::InitDotfile < ::RuboCop::CLI::Command::Base
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/init_dotfile.rb#13
+ def run; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/init_dotfile.rb#9
+RuboCop::CLI::Command::InitDotfile::DOTFILE = T.let(T.unsafe(nil), String)
+
+# Start Language Server Protocol of RuboCop.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/lsp.rb#10
+class RuboCop::CLI::Command::Lsp < ::RuboCop::CLI::Command::Base
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/lsp.rb#13
+ def run; end
+end
+
+# Shows the given cops, or all cops by default, and their configurations
+# for the current directory.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/show_cops.rb#9
+class RuboCop::CLI::Command::ShowCops < ::RuboCop::CLI::Command::Base
+ # @api private
+ # @return [ShowCops] a new instance of ShowCops
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_cops.rb#12
+ def initialize(env); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_cops.rb#19
+ def run; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_cops.rb#67
+ def config_lines(cop); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_cops.rb#63
+ def cops_of_department(cops, department); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_cops.rb#25
+ def print_available_cops; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_cops.rb#48
+ def print_cop_details(cops); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_cops.rb#36
+ def print_cops_of_department(registry, department, show_all); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_cops.rb#57
+ def selected_cops_of_department(cops, department); end
+end
+
+# Prints out url to documentation of provided cops
+# or documentation base url by default.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#9
+class RuboCop::CLI::Command::ShowDocsUrl < ::RuboCop::CLI::Command::Base
+ # @api private
+ # @return [ShowDocsUrl] a new instance of ShowDocsUrl
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#12
+ def initialize(env); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#18
+ def run; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#38
+ def cops_array; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#24
+ def print_documentation_url; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#42
+ def registry_hash; end
+end
+
+# Suggest RuboCop extensions to install based on Gemfile dependencies.
+# Only primary dependencies are evaluated, so if a dependency depends on a
+# gem with an extension, it is not suggested. However, if an extension is
+# a transitive dependency, it will not be suggested.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#11
+class RuboCop::CLI::Command::SuggestExtensions < ::RuboCop::CLI::Command::Base
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#17
+ def run; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#73
+ def all_extensions; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#69
+ def current_formatter; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#111
+ def dependent_gems; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#87
+ def extensions; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#103
+ def installed_and_not_loaded_extensions; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#91
+ def installed_extensions; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#115
+ def installed_gems; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#99
+ def loaded_extensions; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#107
+ def lockfile; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#95
+ def not_installed_extensions; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#41
+ def print_install_suggestions; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#51
+ def print_load_suggestions; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#60
+ def print_opt_out_instruction; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#119
+ def puts(*args); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#30
+ def skip?; end
+end
+
+# Combination of short and long formatter names.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#13
+RuboCop::CLI::Command::SuggestExtensions::INCLUDED_FORMATTERS = T.let(T.unsafe(nil), Array)
+
+# Display version.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/command/version.rb#8
+class RuboCop::CLI::Command::Version < ::RuboCop::CLI::Command::Base
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/command/version.rb#11
+ def run; end
+end
+
+# source://rubocop//lib/rubocop/cli.rb#13
+RuboCop::CLI::DEFAULT_PARALLEL_OPTIONS = T.let(T.unsafe(nil), Array)
+
+# Execution environment for a CLI command.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cli/environment.rb#7
+class RuboCop::CLI::Environment
+ # @api private
+ # @return [Environment] a new instance of Environment
+ #
+ # source://rubocop//lib/rubocop/cli/environment.rb#10
+ def initialize(options, config_store, paths); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/environment.rb#8
+ def config_store; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/environment.rb#8
+ def options; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/environment.rb#8
+ def paths; end
+
+ # Run a command in this environment.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cli/environment.rb#17
+ def run(name); end
+end
+
+# source://rubocop//lib/rubocop/cli.rb#20
+class RuboCop::CLI::Finished < ::StandardError; end
+
+# source://rubocop//lib/rubocop/cli.rb#11
+RuboCop::CLI::STATUS_ERROR = T.let(T.unsafe(nil), Integer)
+
+# source://rubocop//lib/rubocop/cli.rb#12
+RuboCop::CLI::STATUS_INTERRUPTED = T.let(T.unsafe(nil), Integer)
+
+# source://rubocop//lib/rubocop/cli.rb#10
+RuboCop::CLI::STATUS_OFFENSES = T.let(T.unsafe(nil), Integer)
+
+# source://rubocop//lib/rubocop/cli.rb#9
+RuboCop::CLI::STATUS_SUCCESS = T.let(T.unsafe(nil), Integer)
+
+# This class represents the cache config of the caching RuboCop runs.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cache_config.rb#6
+class RuboCop::CacheConfig
+ class << self
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cache_config.rb#7
+ def root_dir; end
+ end
+end
+
+# Converts RuboCop objects to and from the serialization format JSON.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cached_data.rb#8
+class RuboCop::CachedData
+ # @api private
+ # @return [CachedData] a new instance of CachedData
+ #
+ # source://rubocop//lib/rubocop/cached_data.rb#9
+ def initialize(filename); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cached_data.rb#13
+ def from_json(text); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cached_data.rb#17
+ def to_json(offenses); end
+
+ private
+
+ # Restore an offense object loaded from a JSON file.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cached_data.rb#47
+ def deserialize_offenses(offenses); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cached_data.rb#40
+ def message(offense); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cached_data.rb#23
+ def serialize_offense(offense); end
+end
+
+# and provides a way to check if each cop is enabled at arbitrary line.
+#
+# source://rubocop//lib/rubocop/comment_config.rb#6
+class RuboCop::CommentConfig
+ extend ::Forwardable
+
+ # @return [CommentConfig] a new instance of CommentConfig
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#34
+ def initialize(processed_source); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#63
+ def comment_only_line?(line_number); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def config(*args, **_arg1, &block); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#51
+ def cop_disabled_line_ranges; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#39
+ def cop_enabled_at_line?(cop, line_number); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#47
+ def cop_opted_in?(cop); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#55
+ def extra_enabled_comments; end
+
+ # Returns the value of attribute processed_source.
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#30
+ def processed_source; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def registry(*args, **_arg1, &block); end
+
+ private
+
+ # source://rubocop//lib/rubocop/comment_config.rb#96
+ def analyze; end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#124
+ def analyze_cop(analysis, directive); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#144
+ def analyze_disabled(analysis, directive); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#155
+ def analyze_rest(analysis, directive); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#135
+ def analyze_single_line(analysis, directive); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#164
+ def cop_line_ranges(analysis); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#170
+ def each_directive; end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#69
+ def extra_enabled_comments_with_names(extras:, names:); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#190
+ def handle_enable_all(directive, names, extras); end
+
+ # Collect cops that have been disabled or enabled by name in a directive comment
+ # so that `Lint/RedundantCopEnableDirective` can register offenses correctly.
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#204
+ def handle_switch(directive, names, extras); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#115
+ def inject_disabled_cops_directives(analyses); end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#183
+ def non_comment_token_line_numbers; end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#83
+ def opt_in_cops; end
+
+ # source://rubocop//lib/rubocop/comment_config.rb#179
+ def qualified_cop_name(cop_name); end
+end
+
+# source://rubocop//lib/rubocop/comment_config.rb#9
+RuboCop::CommentConfig::CONFIG_DISABLED_LINE_RANGE_MIN = T.let(T.unsafe(nil), Float)
+
+# This class provides an API compatible with RuboCop::DirectiveComment
+# to be used for cops that are disabled in the config file
+#
+# source://rubocop//lib/rubocop/comment_config.rb#13
+class RuboCop::CommentConfig::ConfigDisabledCopDirectiveComment
+ include ::RuboCop::Ext::Comment
+
+ # @return [ConfigDisabledCopDirectiveComment] a new instance of ConfigDisabledCopDirectiveComment
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#21
+ def initialize(cop_name); end
+
+ # Returns the value of attribute line_number.
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#16
+ def line_number; end
+
+ # Returns the value of attribute loc.
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#16
+ def loc; end
+
+ # Returns the value of attribute text.
+ #
+ # source://rubocop//lib/rubocop/comment_config.rb#16
+ def text; end
+end
+
+# source://rubocop//lib/rubocop/comment_config.rb#19
+class RuboCop::CommentConfig::ConfigDisabledCopDirectiveComment::Expression < ::Struct
+ # Returns the value of attribute line
+ #
+ # @return [Object] the current value of line
+ def line; end
+
+ # Sets the attribute line
+ #
+ # @param value [Object] the value to set the attribute line to.
+ # @return [Object] the newly set value
+ def line=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://rubocop//lib/rubocop/comment_config.rb#18
+class RuboCop::CommentConfig::ConfigDisabledCopDirectiveComment::Loc < ::Struct
+ # Returns the value of attribute expression
+ #
+ # @return [Object] the current value of expression
+ def expression; end
+
+ # Sets the attribute expression
+ #
+ # @param value [Object] the value to set the attribute expression to.
+ # @return [Object] the newly set value
+ def expression=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://rubocop//lib/rubocop/comment_config.rb#28
+class RuboCop::CommentConfig::CopAnalysis < ::Struct
+ # Returns the value of attribute line_ranges
+ #
+ # @return [Object] the current value of line_ranges
+ def line_ranges; end
+
+ # Sets the attribute line_ranges
+ #
+ # @param value [Object] the value to set the attribute line_ranges to.
+ # @return [Object] the newly set value
+ def line_ranges=(_); end
+
+ # Returns the value of attribute start_line_number
+ #
+ # @return [Object] the current value of start_line_number
+ def start_line_number; end
+
+ # Sets the attribute start_line_number
+ #
+ # @param value [Object] the value to set the attribute start_line_number to.
+ # @return [Object] the newly set value
+ def start_line_number=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# This class represents the configuration of the RuboCop application
+# and all its cops. A Config is associated with a YAML configuration
+# file from which it was read. Several different Configs can be used
+# during a run of the rubocop program, if files in several
+# directories are inspected.
+#
+# source://rubocop//lib/rubocop/config.rb#14
+class RuboCop::Config
+ include ::RuboCop::PathUtil
+ include ::RuboCop::FileFinder
+ extend ::Forwardable
+
+ # @return [Config] a new instance of Config
+ #
+ # source://rubocop//lib/rubocop/config.rb#32
+ def initialize(hash = T.unsafe(nil), loaded_path = T.unsafe(nil)); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def [](*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def []=(*args, **_arg1, &block); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#172
+ def active_support_extensions_enabled?; end
+
+ # source://rubocop//lib/rubocop/config.rb#98
+ def add_excludes_from_higher_level(highest_config); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#195
+ def allowed_camel_case_file?(file); end
+
+ # Paths specified in configuration files starting with .rubocop are
+ # relative to the directory where that file is. Paths in other config files
+ # are relative to the current directory. This is so that paths in
+ # config/default.yml, for example, are not relative to RuboCop's config
+ # directory since that wouldn't work.
+ #
+ # source://rubocop//lib/rubocop/config.rb#239
+ def base_dir_for_path_parameters; end
+
+ # source://rubocop//lib/rubocop/config.rb#264
+ def bundler_lock_file_path; end
+
+ # source://rubocop//lib/rubocop/config.rb#53
+ def check; end
+
+ # @api private
+ # @return [Boolean] whether config for this badge has 'Include' or 'Exclude' keys
+ #
+ # source://rubocop//lib/rubocop/config.rb#144
+ def clusivity_config_for_badge?(badge); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def delete(*args, **_arg1, &block); end
+
+ # source://rubocop//lib/rubocop/config.rb#110
+ def deprecation_check; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def dig(*args, **_arg1, &block); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#164
+ def disabled_new_cops?; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def each_key(*args, **_arg1, &block); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#168
+ def enabled_new_cops?; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def fetch(*args, **_arg1, &block); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#217
+ def file_to_exclude?(file); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#176
+ def file_to_include?(file); end
+
+ # source://rubocop//lib/rubocop/config.rb#160
+ def for_all_cops; end
+
+ # Note: the 'Enabled' attribute is same as that returned by `for_cop`
+ #
+ # @return [Config] for the given cop merged with that of its department (if any)
+ #
+ # source://rubocop//lib/rubocop/config.rb#130
+ def for_badge(badge); end
+
+ # Note: the 'Enabled' attribute is calculated according to the department's
+ # and 'AllCops' configuration; other attributes are not inherited.
+ #
+ # @return [Config] for the given cop / cop name.
+ #
+ # source://rubocop//lib/rubocop/config.rb#124
+ def for_cop(cop); end
+
+ # Note: the 'Enabled' attribute will be present only if specified
+ # at the department's level
+ #
+ # @return [Config] for the given department name.
+ #
+ # source://rubocop//lib/rubocop/config.rb#155
+ def for_department(department_name); end
+
+ # source://rubocop//lib/rubocop/config.rb#287
+ def inspect; end
+
+ # True if this is a config file that is shipped with RuboCop
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#78
+ def internal?; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def key?(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def keys(*args, **_arg1, &block); end
+
+ # source://rubocop//lib/rubocop/config.rb#49
+ def loaded_features; end
+
+ # Returns the value of attribute loaded_path.
+ #
+ # source://rubocop//lib/rubocop/config.rb#22
+ def loaded_path; end
+
+ # source://rubocop//lib/rubocop/config.rb#83
+ def make_excludes_absolute; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def map(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def merge(*args, **_arg1, &block); end
+
+ # source://rubocop//lib/rubocop/config.rb#230
+ def path_relative_to_config(path); end
+
+ # source://rubocop//lib/rubocop/config.rb#226
+ def patterns_to_exclude; end
+
+ # source://rubocop//lib/rubocop/config.rb#222
+ def patterns_to_include; end
+
+ # source://rubocop//lib/rubocop/config.rb#275
+ def pending_cops; end
+
+ # Returns true if there's a chance that an Include pattern matches hidden
+ # files, false if that's definitely not possible.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#209
+ def possibly_include_hidden?; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def replace(*args, **_arg1, &block); end
+
+ # source://rubocop//lib/rubocop/config.rb#73
+ def signature; end
+
+ # source://rubocop//lib/rubocop/config.rb#260
+ def smart_loaded_path; end
+
+ # source://rubocop//lib/rubocop/config.rb#249
+ def target_rails_version; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def target_ruby_version(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def to_h(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def to_hash(*args, **_arg1, &block); end
+
+ # source://rubocop//lib/rubocop/config.rb#69
+ def to_s; end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def transform_values(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def validate(*args, **_arg1, &block); end
+
+ # source://rubocop//lib/rubocop/config.rb#60
+ def validate_after_resolution; end
+
+ private
+
+ # source://rubocop//lib/rubocop/config.rb#322
+ def department_of(qualified_cop_name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config.rb#310
+ def enable_cop?(qualified_cop_name, cop_options); end
+
+ # source://rubocop//lib/rubocop/config.rb#297
+ def read_rails_version_from_bundler_lock_file; end
+
+ # source://rubocop//lib/rubocop/config.rb#293
+ def target_rails_version_from_bundler_lock_file; end
+
+ class << self
+ # source://rubocop//lib/rubocop/config.rb#24
+ def create(hash, path, check: T.unsafe(nil)); end
+ end
+end
+
+# source://rubocop//lib/rubocop/config.rb#19
+class RuboCop::Config::CopConfig < ::Struct
+ # Returns the value of attribute metadata
+ #
+ # @return [Object] the current value of metadata
+ def metadata; end
+
+ # Sets the attribute metadata
+ #
+ # @param value [Object] the value to set the attribute metadata to.
+ # @return [Object] the newly set value
+ def metadata=(_); end
+
+ # Returns the value of attribute name
+ #
+ # @return [Object] the current value of name
+ def name; end
+
+ # Sets the attribute name
+ #
+ # @param value [Object] the value to set the attribute name to.
+ # @return [Object] the newly set value
+ def name=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://rubocop//lib/rubocop/config.rb#21
+RuboCop::Config::DEFAULT_RAILS_VERSION = T.let(T.unsafe(nil), Float)
+
+# This class has methods related to finding configuration path.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_finder.rb#8
+class RuboCop::ConfigFinder
+ extend ::RuboCop::FileFinder
+
+ class << self
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_finder.rb#19
+ def find_config_path(target_dir); end
+
+ # Returns the path RuboCop inferred as the root of the project. No file
+ # searches will go past this directory.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_finder.rb#26
+ def project_root; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_finder.rb#17
+ def project_root=(_arg0); end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_finder.rb#59
+ def expand_path(path); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_finder.rb#40
+ def find_project_dotfile(target_dir); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_finder.rb#32
+ def find_project_root; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_finder.rb#44
+ def find_user_dotfile; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_finder.rb#52
+ def find_user_xdg_config; end
+ end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_finder.rb#12
+RuboCop::ConfigFinder::DEFAULT_FILE = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_finder.rb#9
+RuboCop::ConfigFinder::DOTFILE = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_finder.rb#11
+RuboCop::ConfigFinder::RUBOCOP_HOME = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_finder.rb#10
+RuboCop::ConfigFinder::XDG_CONFIG = T.let(T.unsafe(nil), String)
+
+# This class represents the configuration of the RuboCop application
+# and all its cops. A Config is associated with a YAML configuration
+# file from which it was read. Several different Configs can be used
+# during a run of the rubocop program, if files in several
+# directories are inspected.
+#
+# source://rubocop//lib/rubocop/config_loader.rb#18
+class RuboCop::ConfigLoader
+ extend ::RuboCop::FileFinder
+
+ class << self
+ # source://rubocop//lib/rubocop/config_loader.rb#138
+ def add_excludes_from_files(config, config_file); end
+
+ # Used to add features that were required inside a config or from
+ # the CLI using `--require`.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#199
+ def add_loaded_features(loaded_features); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#81
+ def add_missing_namespaces(path, hash); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#42
+ def clear_options; end
+
+ # Returns the path of .rubocop.yml searching upwards in the
+ # directory structure starting at the given directory where the
+ # inspected file is. If no .rubocop.yml is found there, the
+ # user's home directory is checked. If there's no .rubocop.yml
+ # there either, the path to the default file is returned.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#105
+ def configuration_file_for(target_dir); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#109
+ def configuration_from_file(config_file, check: T.unsafe(nil)); end
+
+ # Returns the value of attribute debug.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def debug; end
+
+ # Sets the attribute debug
+ #
+ # @param value the value to set the attribute debug to.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def debug=(_arg0); end
+
+ # Returns the value of attribute debug.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def debug?; end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#148
+ def default_configuration; end
+
+ # Sets the attribute default_configuration
+ #
+ # @param value the value to set the attribute default_configuration to.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#36
+ def default_configuration=(_arg0); end
+
+ # Returns the value of attribute disable_pending_cops.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def disable_pending_cops; end
+
+ # Sets the attribute disable_pending_cops
+ #
+ # @param value the value to set the attribute disable_pending_cops to.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def disable_pending_cops=(_arg0); end
+
+ # Returns the value of attribute enable_pending_cops.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def enable_pending_cops; end
+
+ # Sets the attribute enable_pending_cops
+ #
+ # @param value the value to set the attribute enable_pending_cops to.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def enable_pending_cops=(_arg0); end
+
+ # Returns the value of attribute ignore_parent_exclusion.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def ignore_parent_exclusion; end
+
+ # Sets the attribute ignore_parent_exclusion
+ #
+ # @param value the value to set the attribute ignore_parent_exclusion to.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def ignore_parent_exclusion=(_arg0); end
+
+ # Returns the value of attribute ignore_parent_exclusion.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def ignore_parent_exclusion?; end
+
+ # Returns the value of attribute ignore_unrecognized_cops.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def ignore_unrecognized_cops; end
+
+ # Sets the attribute ignore_unrecognized_cops
+ #
+ # @param value the value to set the attribute ignore_unrecognized_cops to.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#34
+ def ignore_unrecognized_cops=(_arg0); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#156
+ def inject_defaults!(project_root); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#48
+ def load_file(file, check: T.unsafe(nil)); end
+
+ # @raise [TypeError]
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#68
+ def load_yaml_configuration(absolute_path); end
+
+ # Returns the value of attribute loaded_features.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#37
+ def loaded_features; end
+
+ # Return a recursive merge of two hashes. That is, a normal hash merge,
+ # with the addition that any value that is a hash, and occurs in both
+ # arguments, will also be merged. And so on.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#96
+ def merge(base_hash, derived_hash); end
+
+ # Merges the given configuration with the default one.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#192
+ def merge_with_default(config, config_file, unset_nil: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#129
+ def pending_cops_only_qualified(pending_cops); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#133
+ def possible_new_cops?(config); end
+
+ # Returns the path RuboCop inferred as the root of the project. No file
+ # searches will go past this directory.
+ #
+ # @deprecated Use `RuboCop::ConfigFinder.project_root` instead.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#167
+ def project_root; end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#176
+ def warn_on_pending_cops(pending_cops); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#184
+ def warn_pending_cop(cop); end
+
+ private
+
+ # source://rubocop//lib/rubocop/config_loader.rb#213
+ def check_duplication(yaml_code, absolute_path); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#205
+ def file_path(file); end
+
+ # Read the specified file, or exit with a friendly, concise message on
+ # stderr. Care is taken to use the standard OS exit code for a "file not
+ # found" error.
+ #
+ # source://rubocop//lib/rubocop/config_loader.rb#233
+ def read_file(absolute_path); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#209
+ def resolver; end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#239
+ def yaml_safe_load(yaml_code, filename); end
+
+ # source://rubocop//lib/rubocop/config_loader.rb#249
+ def yaml_safe_load!(yaml_code, filename); end
+ end
+end
+
+# source://rubocop//lib/rubocop/config_loader.rb#21
+RuboCop::ConfigLoader::DEFAULT_FILE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/config_loader.rb#19
+RuboCop::ConfigLoader::DOTFILE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/config_loader.rb#20
+RuboCop::ConfigLoader::RUBOCOP_HOME = T.let(T.unsafe(nil), String)
+
+# A help class for ConfigLoader that handles configuration resolution.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_loader_resolver.rb#9
+class RuboCop::ConfigLoaderResolver
+ # When one .rubocop.yml file inherits from another .rubocop.yml file, the Include paths in the
+ # base configuration are relative to the directory where the base configuration file is. For the
+ # derived configuration, we need to make those paths relative to where the derived configuration
+ # file is.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#45
+ def fix_include_paths(base_config_path, hash, path, key, value); end
+
+ # Return a recursive merge of two hashes. That is, a normal hash merge,
+ # with the addition that any value that is a hash, and occurs in both
+ # arguments, will also be merged. And so on.
+ #
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#99
+ def merge(base_hash, derived_hash, **opts); end
+
+ # Merges the given configuration with the default one. If
+ # AllCops:DisabledByDefault is true, it changes the Enabled params so that
+ # only cops from user configuration are enabled. If
+ # AllCops:EnabledByDefault is true, it changes the Enabled params so that
+ # only cops explicitly disabled in user configuration are disabled.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#75
+ def merge_with_default(config, config_file, unset_nil:); end
+
+ # An `Enabled: true` setting in user configuration for a cop overrides an
+ # `Enabled: false` setting for its department.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#119
+ def override_department_setting_for_cops(base_hash, derived_hash); end
+
+ # If a cop was previously explicitly enabled, but then superseded by the
+ # department being disabled, disable it.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#136
+ def override_enabled_for_disabled_departments(base_hash, derived_hash); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#19
+ def resolve_inheritance(path, hash, file, debug); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#55
+ def resolve_inheritance_from_gems(hash); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#10
+ def resolve_requires(path, hash); end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#208
+ def base_configs(path, inherit_from, file); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#176
+ def determine_inherit_mode(hash, key); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#152
+ def disabled?(hash, department); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#156
+ def duplicate_setting?(base_hash, derived_hash, key, inherited_file); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#268
+ def gem_config_path(gem_name, relative_config_path); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#246
+ def handle_disabled_by_default(config, new_default_configuration); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#220
+ def inherited_file(path, inherit_from, file); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#204
+ def merge_hashes?(base_hash, derived_hash, key); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#241
+ def remote_file?(uri); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#196
+ def should_merge?(mode, key); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#200
+ def should_override?(mode, key); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#182
+ def should_union?(derived_hash, base_hash, root_mode, key); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#264
+ def transform(config, &block); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_loader_resolver.rb#165
+ def warn_on_duplicate_setting(base_hash, derived_hash, key, **opts); end
+end
+
+# Raised when a RuboCop configuration file is not found.
+#
+# source://rubocop//lib/rubocop/config_loader.rb#10
+class RuboCop::ConfigNotFoundError < ::RuboCop::Error; end
+
+# This class handles obsolete configuration.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#4
+class RuboCop::ConfigObsoletion
+ # @api private
+ # @return [ConfigObsoletion] a new instance of ConfigObsoletion
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#33
+ def initialize(config); end
+
+ # @api private
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#39
+ def reject_obsolete!; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#19
+ def rules; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#19
+ def warnings; end
+
+ private
+
+ # Cop rules are keyed by the name of the original cop
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#69
+ def load_cop_rules(rules); end
+
+ # Parameter rules may apply to multiple cops and multiple parameters
+ # and are given as an array. Each combination is turned into a separate
+ # rule object.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#82
+ def load_parameter_rules(rules); end
+
+ # Default rules for obsoletions are in config/obsoletion.yml
+ # Additional rules files can be added with `RuboCop::ConfigObsoletion.files << filename`
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#50
+ def load_rules; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#95
+ def obsoletions; end
+
+ class << self
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#22
+ def files; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#22
+ def files=(_arg0); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion.rb#24
+ def legacy_cop_names; end
+ end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion.rb#8
+RuboCop::ConfigObsoletion::COP_RULE_CLASSES = T.let(T.unsafe(nil), Hash)
+
+# Encapsulation of a ConfigObsoletion rule for changing a parameter
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#7
+class RuboCop::ConfigObsoletion::ChangedEnforcedStyles < ::RuboCop::ConfigObsoletion::ParameterRule
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#14
+ def message; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#10
+ def violated?; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#28
+ def value; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#8
+RuboCop::ConfigObsoletion::ChangedEnforcedStyles::BASE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# Encapsulation of a ConfigObsoletion rule for changing a parameter
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/changed_parameter.rb#7
+class RuboCop::ConfigObsoletion::ChangedParameter < ::RuboCop::ConfigObsoletion::ParameterRule
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/changed_parameter.rb#10
+ def message; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/changed_parameter.rb#8
+RuboCop::ConfigObsoletion::ChangedParameter::BASE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# Base class for ConfigObsoletion rules relating to cops
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#7
+class RuboCop::ConfigObsoletion::CopRule < ::RuboCop::ConfigObsoletion::Rule
+ # @api private
+ # @return [CopRule] a new instance of CopRule
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#10
+ def initialize(config, old_name); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#15
+ def cop_rule?; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#19
+ def message; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#8
+ def old_name; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#28
+ def violated?; end
+
+ # Cop rules currently can only be failures, not warnings
+ #
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#24
+ def warning?; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion.rb#7
+RuboCop::ConfigObsoletion::DEFAULT_RULES_FILE = T.let(T.unsafe(nil), String)
+
+# Encapsulation of a ConfigObsoletion rule for splitting a cop's
+# functionality into multiple new cops.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#8
+class RuboCop::ConfigObsoletion::ExtractedCop < ::RuboCop::ConfigObsoletion::CopRule
+ # @api private
+ # @return [ExtractedCop] a new instance of ExtractedCop
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#11
+ def initialize(config, old_name, gem); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#9
+ def department; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#9
+ def gem; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#23
+ def rule_message; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#17
+ def violated?; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#32
+ def affected_cops; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#41
+ def feature_loaded?; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion.rb#14
+RuboCop::ConfigObsoletion::PARAMETER_RULE_CLASSES = T.let(T.unsafe(nil), Hash)
+
+# Base class for ConfigObsoletion rules relating to parameters
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#7
+class RuboCop::ConfigObsoletion::ParameterRule < ::RuboCop::ConfigObsoletion::Rule
+ # @api private
+ # @return [ParameterRule] a new instance of ParameterRule
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#10
+ def initialize(config, cop, parameter, metadata); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#8
+ def cop; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#8
+ def metadata; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#8
+ def parameter; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#17
+ def parameter_rule?; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#21
+ def violated?; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#25
+ def warning?; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#39
+ def alternative; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#43
+ def alternatives; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#31
+ def applies_to_current_ruby_version?; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#47
+ def reason; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#51
+ def severity; end
+end
+
+# Encapsulation of a ConfigObsoletion rule for removing
+# a previously defined cop.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#8
+class RuboCop::ConfigObsoletion::RemovedCop < ::RuboCop::ConfigObsoletion::CopRule
+ # @api private
+ # @return [RemovedCop] a new instance of RemovedCop
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#13
+ def initialize(config, old_name, metadata); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#9
+ def metadata; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#9
+ def old_name; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#18
+ def rule_message; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#36
+ def alternatives; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#32
+ def reason; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#11
+RuboCop::ConfigObsoletion::RemovedCop::BASE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# Encapsulation of a ConfigObsoletion rule for renaming
+# a cop or moving it to a new department.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#8
+class RuboCop::ConfigObsoletion::RenamedCop < ::RuboCop::ConfigObsoletion::CopRule
+ # @api private
+ # @return [RenamedCop] a new instance of RenamedCop
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#11
+ def initialize(config, old_name, new_name); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#9
+ def new_name; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#16
+ def rule_message; end
+
+ private
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#22
+ def moved?; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#29
+ def verb; end
+end
+
+# Abstract base class for ConfigObsoletion rules
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#7
+class RuboCop::ConfigObsoletion::Rule
+ # @api private
+ # @return [Rule] a new instance of Rule
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/rule.rb#8
+ def initialize(config); end
+
+ # Does this rule relate to cops?
+ #
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/rule.rb#13
+ def cop_rule?; end
+
+ # Does this rule relate to parameters?
+ #
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/rule.rb#18
+ def parameter_rule?; end
+
+ # @api private
+ # @raise [NotImplementedError]
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/rule.rb#22
+ def violated?; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/rule.rb#28
+ def config; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/rule.rb#36
+ def smart_loaded_path; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/rule.rb#30
+ def to_sentence(collection, connector: T.unsafe(nil)); end
+end
+
+# Encapsulation of a ConfigObsoletion rule for splitting a cop's
+# functionality into multiple new cops.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#8
+class RuboCop::ConfigObsoletion::SplitCop < ::RuboCop::ConfigObsoletion::CopRule
+ # @api private
+ # @return [SplitCop] a new instance of SplitCop
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#11
+ def initialize(config, old_name, metadata); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#9
+ def metadata; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#16
+ def rule_message; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#22
+ def alternatives; end
+end
+
+# This class handles collecting the options for regenerating a TODO file.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/config_regeneration.rb#6
+class RuboCop::ConfigRegeneration
+ # Get options from the comment in the TODO file, and parse them as options
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_regeneration.rb#12
+ def options; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/config_regeneration.rb#29
+ def generation_command; end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/config_regeneration.rb#25
+ def todo_exists?; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_regeneration.rb#7
+RuboCop::ConfigRegeneration::AUTO_GENERATED_FILE = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_regeneration.rb#8
+RuboCop::ConfigRegeneration::COMMAND_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_regeneration.rb#9
+RuboCop::ConfigRegeneration::DEFAULT_OPTIONS = T.let(T.unsafe(nil), Hash)
+
+# Handles caching of configurations and association of inspected
+# ruby files to configurations.
+#
+# source://rubocop//lib/rubocop/config_store.rb#6
+class RuboCop::ConfigStore
+ # @return [ConfigStore] a new instance of ConfigStore
+ #
+ # source://rubocop//lib/rubocop/config_store.rb#10
+ def initialize; end
+
+ # If type (file/dir) is known beforehand,
+ # prefer using #for_file or #for_dir for improved performance
+ #
+ # source://rubocop//lib/rubocop/config_store.rb#52
+ def for(file_or_dir); end
+
+ # source://rubocop//lib/rubocop/config_store.rb#61
+ def for_dir(dir); end
+
+ # source://rubocop//lib/rubocop/config_store.rb#42
+ def for_file(file); end
+
+ # source://rubocop//lib/rubocop/config_store.rb#46
+ def for_pwd; end
+
+ # source://rubocop//lib/rubocop/config_store.rb#33
+ def force_default_config!; end
+
+ # source://rubocop//lib/rubocop/config_store.rb#28
+ def options_config=(options_config); end
+
+ # source://rubocop//lib/rubocop/config_store.rb#37
+ def unvalidated; end
+
+ # Returns the value of attribute validated.
+ #
+ # source://rubocop//lib/rubocop/config_store.rb#7
+ def validated; end
+
+ # Returns the value of attribute validated.
+ #
+ # source://rubocop//lib/rubocop/config_store.rb#7
+ def validated?; end
+end
+
+# Handles validation of configuration, for example cop names, parameter
+# names, and Ruby versions.
+#
+# source://rubocop//lib/rubocop/config_validator.rb#8
+class RuboCop::ConfigValidator
+ extend ::Forwardable
+
+ # @return [ConfigValidator] a new instance of ConfigValidator
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#27
+ def initialize(config); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def for_all_cops(*args, **_arg1, &block); end
+
+ # source://forwardable/1.3.3/forwardable.rb#231
+ def smart_loaded_path(*args, **_arg1, &block); end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#63
+ def target_ruby_version; end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#33
+ def validate; end
+
+ # Validations that should only be run after all config resolving has
+ # taken place:
+ # * The target ruby version is only checked once the entire inheritance
+ # chain has been loaded so that only the final value is validated, and
+ # any obsolete but overridden values are ignored.
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#59
+ def validate_after_resolution; end
+
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#67
+ def validate_section_presence(name); end
+
+ private
+
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#104
+ def alert_about_unrecognized_cops(invalid_cop_names); end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#253
+ def check_cop_config_value(hash, parent = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#77
+ def check_obsoletions; end
+
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#84
+ def check_target_ruby; end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#195
+ def each_invalid_parameter(cop_name); end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#120
+ def list_unknown_cops(invalid_cop_names); end
+
+ # FIXME: Handling colors in exception messages like this is ugly.
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#266
+ def msg_not_boolean(parent, key, value); end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#242
+ def reject_conflicting_safe_settings; end
+
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#233
+ def reject_mutually_exclusive_defaults; end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#142
+ def suggestion(name); end
+
+ # Returns the value of attribute target_ruby.
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#75
+ def target_ruby; end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#207
+ def validate_enforced_styles(valid_cop_names); end
+
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#169
+ def validate_new_cops_parameter; end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#180
+ def validate_parameter_names(valid_cop_names); end
+
+ # source://rubocop//lib/rubocop/config_validator.rb#227
+ def validate_support_and_has_list(name, formats, valid); end
+
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/config_validator.rb#158
+ def validate_syntax_cop; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_validator.rb#12
+RuboCop::ConfigValidator::COMMON_PARAMS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/config_validator.rb#22
+RuboCop::ConfigValidator::CONFIG_CHECK_DEPARTMENTS = T.let(T.unsafe(nil), Array)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_validator.rb#21
+RuboCop::ConfigValidator::CONFIG_CHECK_KEYS = T.let(T.unsafe(nil), Set)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_validator.rb#14
+RuboCop::ConfigValidator::INTERNAL_PARAMS = T.let(T.unsafe(nil), Array)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/config_validator.rb#18
+RuboCop::ConfigValidator::NEW_COPS_VALUES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/util.rb#4
+module RuboCop::Cop; end
+
+# This module checks for nodes that should be aligned to the left or right.
+# This amount is determined by the instance variable @column_delta.
+#
+# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#7
+module RuboCop::Cop::Alignment
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#26
+ def check_alignment(items, base_column = T.unsafe(nil)); end
+
+ # Returns the value of attribute column_delta.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#12
+ def column_delta; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#14
+ def configured_indentation_width; end
+
+ # @api public
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#58
+ def display_column(range); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#45
+ def each_bad_alignment(items, base_column); end
+
+ # @deprecated Use processed_source.comment_at_line(line)
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#69
+ def end_of_line_comment(line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#18
+ def indentation(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#22
+ def offset(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#74
+ def register_offense(offense_node, message_node); end
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/alignment.rb#64
+ def within?(inner, outer); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#10
+RuboCop::Cop::Alignment::SPACE = T.let(T.unsafe(nil), String)
+
+# This class does autocorrection of nodes that should just be moved to
+# the left or to the right, amount being determined by the instance
+# variable column_delta.
+#
+# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#8
+class RuboCop::Cop::AlignmentCorrector
+ extend ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::Alignment
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#29
+ def align_end(corrector, processed_source, node, align_to); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#15
+ def correct(corrector, processed_source, node, column_delta); end
+
+ # Returns the value of attribute processed_source.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#13
+ def processed_source; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#124
+ def alignment_column(align_to); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#40
+ def autocorrect_line(corrector, line_begin_pos, expr, column_delta, taboo_ranges); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#81
+ def block_comment_within?(expr); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#87
+ def calculate_range(expr, line_begin_pos, column_delta); end
+
+ # Some special kinds of string literals are not composed of literal
+ # characters between two delimiters:
+ # - The source map of `?a` responds to :begin and :end but its end is
+ # nil.
+ # - The source map of `__FILE__` responds to neither :begin nor :end.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#75
+ def delimited_string_literal?(node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#110
+ def each_line(expr); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#60
+ def inside_string_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#54
+ def inside_string_ranges(node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#99
+ def remove(range, corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#118
+ def whitespace_range(node); end
+ end
+end
+
+# This module encapsulates the ability to allow certain identifiers in a cop.
+#
+# source://rubocop//lib/rubocop/cop/mixin/allowed_identifiers.rb#6
+module RuboCop::Cop::AllowedIdentifiers
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_identifiers.rb#9
+ def allowed_identifier?(name); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_identifiers.rb#13
+ def allowed_identifiers; end
+end
+
+# if a variable starts with a sigil it will be removed
+#
+# source://rubocop//lib/rubocop/cop/mixin/allowed_identifiers.rb#7
+RuboCop::Cop::AllowedIdentifiers::SIGILS = T.let(T.unsafe(nil), String)
+
+# This module encapsulates the ability to allow certain methods when
+# parsing. Even if the code is in offense, if it contains methods
+# that are allowed. This module is equivalent to the IgnoredMethods module,
+# which will be deprecated in RuboCop 2.0.
+#
+# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#9
+module RuboCop::Cop::AllowedMethods
+ private
+
+ # @api public
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#13
+ def allowed_method?(name); end
+
+ # @api public
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#21
+ def allowed_methods; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#29
+ def cop_config_allowed_methods; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#33
+ def cop_config_deprecated_values; end
+
+ # @api public
+ # @deprecated Use allowed_method? instead
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#13
+ def ignored_method?(name); end
+end
+
+# This module encapsulates the ability to ignore certain lines when
+# parsing.
+#
+# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#7
+module RuboCop::Cop::AllowedPattern
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#10
+ def allowed_line?(line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#30
+ def allowed_patterns; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#46
+ def cop_config_deprecated_methods_values; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#40
+ def cop_config_patterns_values; end
+
+ # @deprecated Use allowed_line? instead
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#10
+ def ignored_line?(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#23
+ def matches_allowed_pattern?(line); end
+
+ # @deprecated Use matches_allowed_pattern?? instead
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#23
+ def matches_ignored_pattern?(line); end
+end
+
+# This module encapsulates the ability to allow certain receivers in a cop.
+#
+# source://rubocop//lib/rubocop/cop/mixin/allowed_receivers.rb#6
+module RuboCop::Cop::AllowedReceivers
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_receivers.rb#7
+ def allowed_receiver?(receiver); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_receivers.rb#29
+ def allowed_receivers; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/allowed_receivers.rb#13
+ def receiver_name(receiver); end
+end
+
+# Error raised when an unqualified cop name is used that could
+# refer to two or more cops under different departments
+#
+# source://rubocop//lib/rubocop/cop/registry.rb#7
+class RuboCop::Cop::AmbiguousCopName < ::RuboCop::Error
+ # @return [AmbiguousCopName] a new instance of AmbiguousCopName
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#11
+ def initialize(name, origin, badges); end
+end
+
+# source://rubocop//lib/rubocop/cop/registry.rb#8
+RuboCop::Cop::AmbiguousCopName::MSG = T.let(T.unsafe(nil), String)
+
+# Representation of an annotation comment in source code (eg. `# TODO: blah blah blah`).
+#
+# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#6
+class RuboCop::Cop::AnnotationComment
+ extend ::Forwardable
+
+ # @param comment [Parser::Source::Comment]
+ # @param keywords [Array]
+ # @return [AnnotationComment] a new instance of AnnotationComment
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#13
+ def initialize(comment, keywords); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#19
+ def annotation?; end
+
+ # Returns the range bounds for just the annotation
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#31
+ def bounds; end
+
+ # Returns the value of attribute colon.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#9
+ def colon; end
+
+ # Returns the value of attribute comment.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#9
+ def comment; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#23
+ def correct?(colon:); end
+
+ # Returns the value of attribute keyword.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#9
+ def keyword; end
+
+ # Returns the value of attribute margin.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#9
+ def margin; end
+
+ # Returns the value of attribute note.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#9
+ def note; end
+
+ # Returns the value of attribute space.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#9
+ def space; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#67
+ def just_keyword_of_sentence?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#63
+ def keyword_appearance?; end
+
+ # Returns the value of attribute keywords.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#39
+ def keywords; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#53
+ def regex; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#41
+ def split_comment(comment); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#50
+RuboCop::Cop::AnnotationComment::KEYWORDS_REGEX_CACHE = T.let(T.unsafe(nil), Hash)
+
+# Handles the `MinSize` configuration option for array-based cops
+# `Style/SymbolArray` and `Style/WordArray`, which check for use of the
+# relevant percent literal syntax such as `%i[...]` and `%w[...]`
+#
+# source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#8
+module RuboCop::Cop::ArrayMinSize
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#19
+ def array_style_detected(style, ary_size); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#11
+ def below_array_length?(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#38
+ def largest_brackets_size(style, ary_size); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#15
+ def min_size_config; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#48
+ def smallest_percent_size(style, ary_size); end
+end
+
+# Common code for ordinary arrays with [] that can be written with %
+# syntax.
+#
+# source://rubocop//lib/rubocop/cop/mixin/array_syntax.rb#7
+module RuboCop::Cop::ArraySyntax
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/array_syntax.rb#10
+ def bracketed_array_of?(element_type, node); end
+end
+
+# extend this module to signal autocorrection support
+#
+# source://rubocop//lib/rubocop/cop/mixin/auto_corrector.rb#6
+module RuboCop::Cop::AutoCorrector
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/auto_corrector.rb#7
+ def support_autocorrect?; end
+end
+
+# This module encapsulates the logic for autocorrect behavior for a cop.
+#
+# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#6
+module RuboCop::Cop::AutocorrectLogic
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#7
+ def autocorrect?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#31
+ def autocorrect_enabled?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#15
+ def autocorrect_requested?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#11
+ def autocorrect_with_disable_uncorrectable?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#19
+ def correctable?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#23
+ def disable_uncorrectable?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#27
+ def safe_autocorrect?; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#46
+ def disable_offense(offense_range); end
+
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#113
+ def disable_offense_at_end_of_line(range, eol_comment); end
+
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#117
+ def disable_offense_before_and_after(range_by_lines); end
+
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#56
+ def disable_offense_with_eol_or_surround_comment(range); end
+
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#109
+ def max_line_length; end
+
+ # Expand the given range to include all of any lines it covers. Does not
+ # include newline at end of the last line.
+ #
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#99
+ def range_by_lines(range); end
+
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#90
+ def range_of_first_line(range); end
+
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#67
+ def surrounding_heredoc(offense_range); end
+
+ # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#78
+ def surrounding_percent_array(offense_range); end
+end
+
+# Identifier of all cops containing a department and cop name.
+#
+# All cops are identified by their badge. For example, the badge for
+# `RuboCop::Cop::Layout::IndentationStyle` is `Layout/IndentationStyle`.
+# Badges can be parsed as either `Department/CopName` or just `CopName` to
+# allow for badge references in source files that omit the department for
+# RuboCop to infer.
+#
+# source://rubocop//lib/rubocop/cop/badge.rb#12
+class RuboCop::Cop::Badge
+ # @return [Badge] a new instance of Badge
+ #
+ # source://rubocop//lib/rubocop/cop/badge.rb#34
+ def initialize(class_name_parts); end
+
+ # source://rubocop//lib/rubocop/cop/badge.rb#41
+ def ==(other); end
+
+ # Returns the value of attribute cop_name.
+ #
+ # source://rubocop//lib/rubocop/cop/badge.rb#13
+ def cop_name; end
+
+ # Returns the value of attribute department.
+ #
+ # source://rubocop//lib/rubocop/cop/badge.rb#13
+ def department; end
+
+ # Returns the value of attribute department_name.
+ #
+ # source://rubocop//lib/rubocop/cop/badge.rb#13
+ def department_name; end
+
+ # source://rubocop//lib/rubocop/cop/badge.rb#41
+ def eql?(other); end
+
+ # source://rubocop//lib/rubocop/cop/badge.rb#46
+ def hash; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/badge.rb#51
+ def match?(other); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/badge.rb#59
+ def qualified?; end
+
+ # source://rubocop//lib/rubocop/cop/badge.rb#55
+ def to_s; end
+
+ # source://rubocop//lib/rubocop/cop/badge.rb#63
+ def with_department(department); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/badge.rb#27
+ def camel_case(name_part); end
+
+ # source://rubocop//lib/rubocop/cop/badge.rb#15
+ def for(class_name); end
+
+ # source://rubocop//lib/rubocop/cop/badge.rb#23
+ def parse(identifier); end
+ end
+end
+
+# A scaffold for concrete cops.
+#
+# The Cop::Base class is meant to be extended.
+#
+# Cops track offenses and can autocorrect them on the fly.
+#
+# A commissioner object is responsible for traversing the AST and invoking
+# the specific callbacks on each cop.
+#
+# First the callback `on_new_investigation` is called;
+# if a cop needs to do its own processing of the AST or depends on
+# something else.
+#
+# Then callbacks like `on_def`, `on_send` (see AST::Traversal) are called
+# with their respective nodes.
+#
+# Finally the callback `on_investigation_end` is called.
+#
+# Within these callbacks, cops are meant to call `add_offense` or
+# `add_global_offense`. Use the `processed_source` method to
+# get the currently processed source being investigated.
+#
+# In case of invalid syntax / unparsable content,
+# the callback `on_other_file` is called instead of all the other
+# `on_...` callbacks.
+#
+# Private methods are not meant for custom cops consumption,
+# nor are any instance variables.
+#
+# source://rubocop//lib/rubocop/cop/base.rb#34
+class RuboCop::Cop::Base
+ include ::RuboCop::AST::Sexp
+ include ::RuboCop::PathUtil
+ include ::RuboCop::Cop::Util
+ include ::RuboCop::Cop::IgnoredNode
+ include ::RuboCop::Cop::AutocorrectLogic
+ extend ::RuboCop::AST::Sexp
+ extend ::RuboCop::AST::NodePattern::Macros
+ extend ::RuboCop::ExcludeLimit
+
+ # @return [Base] a new instance of Base
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#129
+ def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#239
+ def active_support_extensions_enabled?; end
+
+ # Adds an offense that has no particular location.
+ # No correction can be applied to global offenses
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#162
+ def add_global_offense(message = T.unsafe(nil), severity: T.unsafe(nil)); end
+
+ # Adds an offense on the specified range (or node with an expression)
+ # Unless that offense is disabled for this range, a corrector will be yielded
+ # to provide the cop the opportunity to autocorrect the offense.
+ # If message is not specified, the method `message` will be called.
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#172
+ def add_offense(node_or_range, message: T.unsafe(nil), severity: T.unsafe(nil), &block); end
+
+ # Called before any investigation
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#295
+ def begin_investigation(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#280
+ def callbacks_needed; end
+
+ # Returns the value of attribute config.
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#43
+ def config; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#223
+ def config_to_allow_offenses; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#227
+ def config_to_allow_offenses=(hash); end
+
+ # Configuration Helpers
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#217
+ def cop_config; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#209
+ def cop_name; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#251
+ def excluded_file?(file); end
+
+ # This method should be overridden when a cop's behavior depends
+ # on state that lives outside of these locations:
+ #
+ # (1) the file under inspection
+ # (2) the cop's source code
+ # (3) the config (eg a .rubocop.yml file)
+ #
+ # For example, some cops may want to look at other parts of
+ # the codebase being inspected to find violations. A cop may
+ # use the presence or absence of file `foo.rb` to determine
+ # whether a certain violation exists in `bar.rb`.
+ #
+ # Overriding this method allows the cop to indicate to RuboCop's
+ # ResultCache system when those external dependencies change,
+ # ie when the ResultCache should be invalidated.
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#205
+ def external_dependency_checksum; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#308
+ def inspect; end
+
+ # Gets called if no message is specified when calling `add_offense` or
+ # `add_global_offense`
+ # Cops are discouraged to override this; instead pass your message directly
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#156
+ def message(_range = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#209
+ def name; end
+
+ # @deprecated Make potential errors with previous API more obvious
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#271
+ def offenses; end
+
+ # Called after all on_... have been called
+ # When refining this method, always call `super`
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#143
+ def on_investigation_end; end
+
+ # Called before all on_... have been called
+ # When refining this method, always call `super`
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#137
+ def on_new_investigation; end
+
+ # Called instead of all on_... callbacks for unrecognized files / syntax errors
+ # When refining this method, always call `super`
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#149
+ def on_other_file; end
+
+ # There should be very limited reasons for a Cop to do it's own parsing
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#256
+ def parse(source, path = T.unsafe(nil)); end
+
+ # Returns the value of attribute processed_source.
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#43
+ def processed_source; end
+
+ # Called between investigations
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#262
+ def ready; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#243
+ def relevant_file?(file); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#235
+ def target_rails_version; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#231
+ def target_ruby_version; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/base.rb#436
+ def annotate(message); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#320
+ def apply_correction(corrector); end
+
+ # @return [Symbol] offense status
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#400
+ def attempt_correction(range, corrector); end
+
+ # Reserved for Cop::Cop
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#316
+ def callback_argument(range); end
+
+ # Called to complete an investigation
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#349
+ def complete_investigation; end
+
+ # @return [Symbol, Corrector] offense status
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#374
+ def correct(range); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#334
+ def current_corrector; end
+
+ # Reserved for Commissioner:
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#326
+ def current_offense_locations; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#338
+ def current_offenses; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#330
+ def currently_disabled_lines; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#464
+ def custom_severity; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#460
+ def default_severity; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#414
+ def disable_uncorrectable(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#450
+ def enabled_line?(line_number); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#442
+ def file_name_matches_any?(file, parameter, default_result); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#432
+ def find_message(range, message); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#456
+ def find_severity(_range, severity); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#477
+ def range_for_original(range); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#421
+ def range_from_node_or_range(node_or_range); end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#369
+ def reset_investigation; end
+
+ # @return [Symbol] offense status
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#389
+ def use_corrector(range, corrector); end
+
+ class << self
+ # List of cops that should not try to autocorrect at the same
+ # time as this cop
+ #
+ # @api public
+ # @return [Array]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#59
+ def autocorrect_incompatible_with; end
+
+ # Naming
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#89
+ def badge; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#285
+ def callbacks_needed; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#93
+ def cop_name; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#97
+ def department; end
+
+ # Cops (other than builtin) are encouraged to implement this
+ #
+ # @api public
+ # @return [String, nil]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#67
+ def documentation_url; end
+
+ # Call for abstract Cop classes
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#77
+ def exclude_from_registry; end
+
+ # @private
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#71
+ def inherited(subclass); end
+
+ # Override and return the Force class(es) you need to join
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#114
+ def joining_forces; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#101
+ def lint?; end
+
+ # Returns true if the cop name or the cop namespace matches any of the
+ # given names.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#107
+ def match?(given_names); end
+
+ # Returns if class supports autocorrect.
+ # It is recommended to extend AutoCorrector instead of overriding
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#83
+ def support_autocorrect?; end
+
+ # Override if your cop should be called repeatedly for multiple investigations
+ # Between calls to `on_new_investigation` and `on_investigation_end`,
+ # the result of `processed_source` will remain constant.
+ # You should invalidate any caches that depend on the current `processed_source`
+ # in the `on_new_investigation` callback.
+ # If your cop does autocorrections, be aware that your instance may be called
+ # multiple times with the same `processed_source.path` but different content.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#125
+ def support_multiple_source?; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/base.rb#360
+ def builtin?; end
+
+ # source://rubocop//lib/rubocop/cop/base.rb#342
+ def restrict_on_send; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/base.rb#346
+RuboCop::Cop::Base::EMPTY_OFFENSES = T.let(T.unsafe(nil), Array)
+
+# Reports of an investigation.
+# Immutable
+# Consider creation API private
+#
+# source://rubocop//lib/rubocop/cop/base.rb#48
+class RuboCop::Cop::Base::InvestigationReport < ::Struct
+ # Returns the value of attribute cop
+ #
+ # @return [Object] the current value of cop
+ def cop; end
+
+ # Sets the attribute cop
+ #
+ # @param value [Object] the value to set the attribute cop to.
+ # @return [Object] the newly set value
+ def cop=(_); end
+
+ # Returns the value of attribute corrector
+ #
+ # @return [Object] the current value of corrector
+ def corrector; end
+
+ # Sets the attribute corrector
+ #
+ # @param value [Object] the value to set the attribute corrector to.
+ # @return [Object] the newly set value
+ def corrector=(_); end
+
+ # Returns the value of attribute offenses
+ #
+ # @return [Object] the current value of offenses
+ def offenses; end
+
+ # Sets the attribute offenses
+ #
+ # @param value [Object] the value to set the attribute offenses to.
+ # @return [Object] the newly set value
+ def offenses=(_); end
+
+ # Returns the value of attribute processed_source
+ #
+ # @return [Object] the current value of processed_source
+ def processed_source; end
+
+ # Sets the attribute processed_source
+ #
+ # @param value [Object] the value to set the attribute processed_source to.
+ # @return [Object] the newly set value
+ def processed_source=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# List of methods names to restrict calls for `on_send` / `on_csend`
+#
+# source://rubocop//lib/rubocop/cop/base.rb#51
+RuboCop::Cop::Base::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#5
+module RuboCop::Cop::Bundler; end
+
+# A Gem's requirements should be listed only once in a Gemfile.
+#
+# @example
+# # bad
+# gem 'rubocop'
+# gem 'rubocop'
+#
+# # bad
+# group :development do
+# gem 'rubocop'
+# end
+#
+# group :test do
+# gem 'rubocop'
+# end
+#
+# # good
+# group :development, :test do
+# gem 'rubocop'
+# end
+#
+# # good
+# gem 'rubocop', groups: [:development, :test]
+#
+# # good - conditional declaration
+# if Dir.exist?(local)
+# gem 'rubocop', path: local
+# elsif ENV['RUBOCOP_VERSION'] == 'master'
+# gem 'rubocop', git: 'https://github.com/rubocop/rubocop.git'
+# else
+# gem 'rubocop', '~> 0.90.0'
+# end
+#
+# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#39
+class RuboCop::Cop::Bundler::DuplicatedGem < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#58
+ def gem_declarations(param0); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#45
+ def on_new_investigation; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#67
+ def conditional_declaration?(nodes); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#60
+ def duplicated_gem_nodes; end
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#81
+ def register_offense(node, gem_name, line_of_first_occurrence); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#75
+ def within_conditional?(node, conditional_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#42
+RuboCop::Cop::Bundler::DuplicatedGem::MSG = T.let(T.unsafe(nil), String)
+
+# A Gem group, or a set of groups, should be listed only once in a Gemfile.
+#
+# For example, if the values of `source`, `git`, `platforms`, or `path`
+# surrounding `group` are different, no offense will be registered:
+#
+# [source,ruby]
+# -----
+# platforms :ruby do
+# group :default do
+# gem 'openssl'
+# end
+# end
+#
+# platforms :jruby do
+# group :default do
+# gem 'jruby-openssl'
+# end
+# end
+# -----
+#
+# @example
+# # bad
+# group :development do
+# gem 'rubocop'
+# end
+#
+# group :development do
+# gem 'rubocop-rails'
+# end
+#
+# # bad (same set of groups declared twice)
+# group :development, :test do
+# gem 'rubocop'
+# end
+#
+# group :test, :development do
+# gem 'rspec'
+# end
+#
+# # good
+# group :development do
+# gem 'rubocop'
+# end
+#
+# group :development, :test do
+# gem 'rspec'
+# end
+#
+# # good
+# gem 'rubocop', groups: [:development, :test]
+# gem 'rspec', groups: [:development, :test]
+#
+# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#58
+class RuboCop::Cop::Bundler::DuplicatedGroup < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#66
+ def group_declarations(param0); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#68
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#82
+ def duplicated_group_nodes; end
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#105
+ def find_source_key(node); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#115
+ def group_attributes(node); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#94
+ def register_offense(node, group_name, line_of_first_occurrence); end
+end
+
+# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#61
+RuboCop::Cop::Bundler::DuplicatedGroup::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#63
+RuboCop::Cop::Bundler::DuplicatedGroup::SOURCE_BLOCK_NAMES = T.let(T.unsafe(nil), Array)
+
+# Each gem in the Gemfile should have a comment explaining
+# its purpose in the project, or the reason for its version
+# or source.
+#
+# The optional "OnlyFor" configuration array
+# can be used to only register offenses when the gems
+# use certain options or have version specifiers.
+#
+# When "version_specifiers" is included, a comment
+# will be enforced if the gem has any version specifier.
+#
+# When "restrictive_version_specifiers" is included, a comment
+# will be enforced if the gem has a version specifier that
+# holds back the version of the gem.
+#
+# For any other value in the array, a comment will be enforced for
+# a gem if an option by the same name is present.
+# A useful use case is to enforce a comment when using
+# options that change the source of a gem:
+#
+# - `bitbucket`
+# - `gist`
+# - `git`
+# - `github`
+# - `source`
+#
+# For a full list of options supported by bundler,
+# see https://bundler.io/man/gemfile.5.html
+# .
+#
+# @example OnlyFor: [] (default)
+# # bad
+#
+# gem 'foo'
+#
+# # good
+#
+# # Helpers for the foo things.
+# gem 'foo'
+# @example OnlyFor: ['version_specifiers']
+# # bad
+#
+# gem 'foo', '< 2.1'
+#
+# # good
+#
+# # Version 2.1 introduces breaking change baz
+# gem 'foo', '< 2.1'
+# @example OnlyFor: ['restrictive_version_specifiers']
+# # bad
+#
+# gem 'foo', '< 2.1'
+#
+# # good
+#
+# gem 'foo', '>= 1.0'
+#
+# # Version 2.1 introduces breaking change baz
+# gem 'foo', '< 2.1'
+# @example OnlyFor: ['version_specifiers', 'github']
+# # bad
+#
+# gem 'foo', github: 'some_account/some_fork_of_foo'
+#
+# gem 'bar', '< 2.1'
+#
+# # good
+#
+# # Using this fork because baz
+# gem 'foo', github: 'some_account/some_fork_of_foo'
+#
+# # Version 2.1 introduces breaking change baz
+# gem 'bar', '< 2.1'
+#
+# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#83
+class RuboCop::Cop::Bundler::GemComment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::VisibilityHelp
+ include ::RuboCop::Cop::DefNode
+ include ::RuboCop::Cop::GemDeclaration
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#94
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#135
+ def checked_options_present?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#109
+ def commented?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#105
+ def commented_any_descendant?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#159
+ def contains_checked_options?(node); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#163
+ def gem_options(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#130
+ def ignored_gem?(node); end
+
+ # The args node1 & node2 may represent a RuboCop::AST::Node
+ # or a Parser::Source::Comment. Both respond to #loc.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#116
+ def precede?(node1, node2); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#126
+ def preceding_comment?(node1, node2); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#120
+ def preceding_lines(node); end
+
+ # Version specifications that restrict all updates going forward. This excludes versions
+ # like ">= 1.0" or "!= 2.0.3".
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#152
+ def restrictive_version_specified_gem?(node); end
+
+ # Besides the gem name, all other *positional* arguments to `gem` are version specifiers,
+ # as long as it has one we know there's at least one version specifier.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#145
+ def version_specified_gem?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#88
+RuboCop::Cop::Bundler::GemComment::CHECKED_OPTIONS_CONFIG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#87
+RuboCop::Cop::Bundler::GemComment::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#91
+RuboCop::Cop::Bundler::GemComment::RESTRICTIVE_VERSION_PATTERN = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#90
+RuboCop::Cop::Bundler::GemComment::RESTRICTIVE_VERSION_SPECIFIERS_OPTION = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#92
+RuboCop::Cop::Bundler::GemComment::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#89
+RuboCop::Cop::Bundler::GemComment::VERSION_SPECIFIERS_OPTION = T.let(T.unsafe(nil), String)
+
+# Verifies that a project contains Gemfile or gems.rb file and correct
+# associated lock file based on the configuration.
+#
+# @example EnforcedStyle: Gemfile (default)
+# # bad
+# Project contains gems.rb and gems.locked files
+#
+# # bad
+# Project contains Gemfile and gems.locked file
+#
+# # good
+# Project contains Gemfile and Gemfile.lock
+# @example EnforcedStyle: gems.rb
+# # bad
+# Project contains Gemfile and Gemfile.lock files
+#
+# # bad
+# Project contains gems.rb and Gemfile.lock file
+#
+# # good
+# Project contains gems.rb and gems.locked files
+#
+# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#28
+class RuboCop::Cop::Bundler::GemFilename < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#43
+ def on_new_investigation; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#88
+ def expected_gemfile?(basename); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#80
+ def gemfile_offense?(basename); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#93
+ def gemfile_required?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#84
+ def gems_rb_offense?(basename); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#97
+ def gems_rb_required?; end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#58
+ def register_gemfile_offense(file_path, basename); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#69
+ def register_gems_rb_offense(file_path, basename); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#53
+ def register_offense(file_path, basename); end
+end
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#40
+RuboCop::Cop::Bundler::GemFilename::GEMFILE_FILES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#41
+RuboCop::Cop::Bundler::GemFilename::GEMS_RB_FILES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#36
+RuboCop::Cop::Bundler::GemFilename::MSG_GEMFILE_MISMATCHED = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#32
+RuboCop::Cop::Bundler::GemFilename::MSG_GEMFILE_REQUIRED = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#38
+RuboCop::Cop::Bundler::GemFilename::MSG_GEMS_RB_MISMATCHED = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#34
+RuboCop::Cop::Bundler::GemFilename::MSG_GEMS_RB_REQUIRED = T.let(T.unsafe(nil), String)
+
+# Enforce that Gem version specifications or a commit reference (branch,
+# ref, or tag) are either required or forbidden.
+#
+# @example EnforcedStyle: required (default)
+# # bad
+# gem 'rubocop'
+#
+# # good
+# gem 'rubocop', '~> 1.12'
+#
+# # good
+# gem 'rubocop', '>= 1.10.0'
+#
+# # good
+# gem 'rubocop', '>= 1.5.0', '< 1.10.0'
+#
+# # good
+# gem 'rubocop', branch: 'feature-branch'
+#
+# # good
+# gem 'rubocop', ref: '74b5bfbb2c4b6fd6cdbbc7254bd7084b36e0c85b'
+#
+# # good
+# gem 'rubocop', tag: 'v1.17.0'
+# @example EnforcedStyle: forbidden
+# # good
+# gem 'rubocop'
+#
+# # bad
+# gem 'rubocop', '~> 1.12'
+#
+# # bad
+# gem 'rubocop', '>= 1.10.0'
+#
+# # bad
+# gem 'rubocop', '>= 1.5.0', '< 1.10.0'
+#
+# # bad
+# gem 'rubocop', branch: 'feature-branch'
+#
+# # bad
+# gem 'rubocop', ref: '74b5bfbb2c4b6fd6cdbbc7254bd7084b36e0c85b'
+#
+# # bad
+# gem 'rubocop', tag: 'v1.17.0'
+#
+# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#53
+class RuboCop::Cop::Bundler::GemVersion < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::GemDeclaration
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#67
+ def includes_commit_reference?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#62
+ def includes_version_specification?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#71
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#85
+ def allowed_gem?(node); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#89
+ def allowed_gems; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#113
+ def forbidden_offense?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#119
+ def forbidden_style?; end
+
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#93
+ def message(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#103
+ def offense?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#107
+ def required_offense?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#123
+ def required_style?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#127
+ def version_specification?(expression); end
+end
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#58
+RuboCop::Cop::Bundler::GemVersion::FORBIDDEN_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#57
+RuboCop::Cop::Bundler::GemVersion::REQUIRED_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#59
+RuboCop::Cop::Bundler::GemVersion::VERSION_SPECIFICATION_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# Passing symbol arguments to `source` (e.g. `source :rubygems`) is
+# deprecated because they default to using HTTP requests. Instead, specify
+# `'https://rubygems.org'` if possible, or `'http://rubygems.org'` if not.
+#
+# When autocorrecting, this cop will replace symbol arguments with
+# `'https://rubygems.org'`.
+#
+# This cop will not replace existing sources that use `http://`. This may
+# be necessary where HTTPS is not available. For example, where using an
+# internal gem server via an intranet, or where HTTPS is prohibited.
+# However, you should strongly prefer `https://` where possible, as it is
+# more secure.
+#
+# If you don't allow `http://`, please set `false` to `AllowHttpProtocol`.
+# This option is `true` by default for safe autocorrection.
+#
+# @example
+# # bad
+# source :gemcutter
+# source :rubygems
+# source :rubyforge
+#
+# # good
+# source 'https://rubygems.org' # strongly recommended
+# @example AllowHttpProtocol: true (default)
+#
+# # good
+# source 'http://rubygems.org' # use only if HTTPS is unavailable
+# @example AllowHttpProtocol: false
+#
+# # bad
+# source 'http://rubygems.org'
+#
+# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#41
+class RuboCop::Cop::Bundler::InsecureProtocolSource < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#54
+ def insecure_protocol_source?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#59
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#80
+ def allow_http_protocol?; end
+end
+
+# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#45
+RuboCop::Cop::Bundler::InsecureProtocolSource::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#49
+RuboCop::Cop::Bundler::InsecureProtocolSource::MSG_HTTP_PROTOCOL = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#51
+RuboCop::Cop::Bundler::InsecureProtocolSource::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Gems should be alphabetically sorted within groups.
+#
+# @example
+# # bad
+# gem 'rubocop'
+# gem 'rspec'
+#
+# # good
+# gem 'rspec'
+# gem 'rubocop'
+#
+# # good
+# gem 'rubocop'
+#
+# gem 'rspec'
+# @example TreatCommentsAsGroupSeparators: true (default)
+# # good
+# # For code quality
+# gem 'rubocop'
+# # For tests
+# gem 'rspec'
+# @example TreatCommentsAsGroupSeparators: false
+# # bad
+# # For code quality
+# gem 'rubocop'
+# # For tests
+# gem 'rspec'
+#
+# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#35
+class RuboCop::Cop::Bundler::OrderedGems < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::OrderedGemNode
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#64
+ def gem_declarations(param0); end
+
+ # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#43
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#57
+ def previous_declaration(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#39
+RuboCop::Cop::Bundler::OrderedGems::MSG = T.let(T.unsafe(nil), String)
+
+# Common functionality for checking assignment nodes.
+#
+# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#6
+module RuboCop::Cop::CheckAssignment
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_and_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_casgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_cvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_gvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_ivasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_masgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_op_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
+ def on_or_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#19
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#29
+ def extract_rhs(node); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#29
+ def extract_rhs(node); end
+ end
+end
+
+# This mixin detects collections that are safe to "break"
+# by inserting new lines. This is useful for breaking
+# up long lines.
+#
+# Let's look at hashes as an example:
+#
+# We know hash keys are safe to break across lines. We can add
+# linebreaks into hashes on lines longer than the specified maximum.
+# Then in further passes cops can clean up the multi-line hash.
+# For example, say the maximum line length is as indicated below:
+#
+# |
+# v
+# {foo: "0000000000", bar: "0000000000", baz: "0000000000"}
+#
+# In a LineLength autocorrection pass, a line is added before
+# the first key that exceeds the column limit:
+#
+# {foo: "0000000000", bar: "0000000000",
+# baz: "0000000000"}
+#
+# In a MultilineHashKeyLineBreaks pass, lines are inserted
+# before all keys:
+#
+# {foo: "0000000000",
+# bar: "0000000000",
+# baz: "0000000000"}
+#
+# Then in future passes FirstHashElementLineBreak,
+# MultilineHashBraceLayout, and TrailingCommaInHashLiteral will
+# manipulate as well until we get:
+#
+# {
+# foo: "0000000000",
+# bar: "0000000000",
+# baz: "0000000000",
+# }
+#
+# (Note: Passes may not happen exactly in this sequence.)
+#
+# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#44
+module RuboCop::Cop::CheckLineBreakable
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#45
+ def extract_breakable_node(node, max); end
+
+ private
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#200
+ def all_on_same_line?(nodes); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#220
+ def already_on_multiple_lines?(node); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#133
+ def breakable_collection?(node, elements); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#187
+ def children_could_be_broken_up?(children); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#150
+ def contained_by_breakable_collection_on_same_line?(node); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#170
+ def contained_by_multiline_collection_that_could_be_broken_up?(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#60
+ def extract_breakable_node_from_elements(node, elements, max); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#72
+ def extract_first_element_over_column_limit(node, elements, max); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#92
+ def first_argument_is_heredoc?(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#207
+ def process_args(args); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#117
+ def safe_to_ignore?(node); end
+
+ # If a send node contains a heredoc argument, splitting cannot happen
+ # after the heredoc or else it will cause a syntax error.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#101
+ def shift_elements_for_heredoc_arg(node, elements, index); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#112
+ def within_column_limit?(element, max, line); end
+end
+
+# Common functionality for checking length of code segments.
+#
+# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#6
+module RuboCop::Cop::CodeLength
+ extend ::RuboCop::ExcludeLimit
+
+ # source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
+ def max=(value); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/code_length.rb#49
+ def build_code_length_calculator(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/code_length.rb#31
+ def check_code_length(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/code_length.rb#27
+ def count_as_one; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/code_length.rb#23
+ def count_comments?; end
+
+ # Returns true for lines that shall not be included in the count.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/code_length.rb#45
+ def irrelevant_line(source_line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/code_length.rb#19
+ def max_length; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/code_length.rb#15
+ def message(length, max_length); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#9
+RuboCop::Cop::CodeLength::MSG = T.let(T.unsafe(nil), String)
+
+# Help methods for working with nodes containing comments.
+#
+# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#6
+module RuboCop::Cop::CommentsHelp
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#25
+ def comments_contain_disables?(node, cop_name); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#18
+ def comments_in_range(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#14
+ def contains_comments?(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#7
+ def source_range_with_comment(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#44
+ def begin_pos_with_comment(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#58
+ def buffer; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#39
+ def end_position_for(node); end
+
+ # Returns the end line of a node, which might be a comment and not part of the AST
+ # End line is considered either the line at which another node starts, or
+ # the line at which the parent node ends.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#66
+ def find_end_line(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#54
+ def start_line_position(node); end
+end
+
+# Commissioner class is responsible for processing the AST and delegating
+# work to the specified cops.
+#
+# source://rubocop//lib/rubocop/cop/commissioner.rb#7
+class RuboCop::Cop::Commissioner
+ include ::RuboCop::AST::Traversal
+
+ # @return [Commissioner] a new instance of Commissioner
+ #
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#44
+ def initialize(cops, forces = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # Returns the value of attribute errors.
+ #
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#42
+ def errors; end
+
+ # @return [InvestigationReport]
+ #
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#79
+ def investigate(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on___ENCODING__(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on___FILE__(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on___LINE__(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_alias(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_and(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_and_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_arg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_arg_expr(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_args(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_array_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_array_pattern_with_tail(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_back_ref(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_begin(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_block_pass(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_blockarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_break(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_case(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_case_match(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_casgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_cbase(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_complex(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_const(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_const_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_cvar(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_cvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_defined?(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_dstr(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_dsym(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_eflipflop(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_empty_else(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_ensure(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_erange(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_false(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_find_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_float(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_for(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_forward_arg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_forward_args(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_forwarded_args(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_forwarded_kwrestarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_forwarded_restarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_gvar(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_gvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_hash_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_if_guard(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_iflipflop(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_in_match(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_in_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_index(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_indexasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_int(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_irange(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_ivar(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_ivasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_kwarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_kwargs(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_kwbegin(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_kwnilarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_kwoptarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_kwrestarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_kwsplat(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_lambda(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_lvar(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_masgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_alt(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_as(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_current_line(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_nil_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_pattern_p(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_rest(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_var(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_with_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_match_with_trailing_comma(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_mlhs(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_module(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_next(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_nil(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_not(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_nth_ref(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_op_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_optarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_or(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_or_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_pair(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_pin(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_postexe(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_preexe(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_procarg0(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_rational(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_redo(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_regexp(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_regopt(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_resbody(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_rescue(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_restarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_retry(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_return(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_sclass(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_self(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_shadowarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_splat(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_str(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_super(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_sym(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_true(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_undef(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_unless_guard(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_until(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_until_post(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_when(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_while(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_while_post(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_xstr(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_yield(node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#68
+ def on_zsuper(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#98
+ def begin_investigation(processed_source, offset:, original:); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#121
+ def build_callbacks(cops); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#116
+ def initialize_callbacks; end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#159
+ def invoke(callback, cops); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#163
+ def invoke_with_argument(callback, cops, arg); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#112
+ def reset; end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#131
+ def restrict_callbacks(callbacks); end
+
+ # NOTE: mutates `callbacks` in place
+ #
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#149
+ def restricted_map(callbacks); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#104
+ def trigger_responding_cops(callback, node); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#139
+ def trigger_restricted_cops(event, node); end
+
+ # Allow blind rescues here, since we're absorbing and packaging or
+ # re-raising exceptions that can be raised from within the individual
+ # cops' `#investigate` methods.
+ #
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#170
+ def with_cop_error_handling(cop, node = T.unsafe(nil)); end
+end
+
+# How a Commissioner returns the results of the investigation
+# as a list of Cop::InvestigationReport and any errors caught
+# during the investigation.
+# Immutable
+# Consider creation API private
+#
+# source://rubocop//lib/rubocop/cop/commissioner.rb#18
+class RuboCop::Cop::Commissioner::InvestigationReport < ::Struct
+ # Returns the value of attribute cop_reports
+ #
+ # @return [Object] the current value of cop_reports
+ def cop_reports; end
+
+ # Sets the attribute cop_reports
+ #
+ # @param value [Object] the value to set the attribute cop_reports to.
+ # @return [Object] the newly set value
+ def cop_reports=(_); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#19
+ def cops; end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#27
+ def correctors; end
+
+ # Returns the value of attribute errors
+ #
+ # @return [Object] the current value of errors
+ def errors; end
+
+ # Sets the attribute errors
+ #
+ # @param value [Object] the value to set the attribute errors to.
+ # @return [Object] the newly set value
+ def errors=(_); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#35
+ def merge(investigation); end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#31
+ def offenses; end
+
+ # source://rubocop//lib/rubocop/cop/commissioner.rb#23
+ def offenses_per_cop; end
+
+ # Returns the value of attribute processed_source
+ #
+ # @return [Object] the current value of processed_source
+ def processed_source; end
+
+ # Sets the attribute processed_source
+ #
+ # @param value [Object] the value to set the attribute processed_source to.
+ # @return [Object] the newly set value
+ def processed_source=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/commissioner.rb#10
+RuboCop::Cop::Commissioner::RESTRICTED_CALLBACKS = T.let(T.unsafe(nil), Array)
+
+# This class does condition autocorrection
+#
+# source://rubocop//lib/rubocop/cop/correctors/condition_corrector.rb#6
+class RuboCop::Cop::ConditionCorrector
+ class << self
+ # source://rubocop//lib/rubocop/cop/correctors/condition_corrector.rb#8
+ def correct_negative_condition(corrector, node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/correctors/condition_corrector.rb#17
+ def negated_condition(node); end
+ end
+end
+
+# Handles `EnforcedStyle` configuration parameters.
+#
+# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#6
+module RuboCop::Cop::ConfigurableEnforcedStyle
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#88
+ def alternative_style; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#96
+ def alternative_styles; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#19
+ def ambiguous_style_detected(*possibilities); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#60
+ def conflicting_styles_detected; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#11
+ def correct_style_detected; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#64
+ def detected_style; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#68
+ def detected_style=(style); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#60
+ def no_acceptable_style!; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#56
+ def no_acceptable_style?; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#7
+ def opposite_style_detected; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#79
+ def style; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#75
+ def style_configured?; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#29
+ def style_detected(detected); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#107
+ def style_parameter_name; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#100
+ def supported_styles; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#15
+ def unexpected_style_detected(unexpected); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#60
+ def unrecognized_style_detected; end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#23
+RuboCop::Cop::ConfigurableEnforcedStyle::SYMBOL_TO_STRING_CACHE = T.let(T.unsafe(nil), Hash)
+
+# Shared functionality between mixins that enforce naming conventions
+#
+# source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#6
+module RuboCop::Cop::ConfigurableFormatting
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#9
+ def check_name(node, name, name_range); end
+
+ # A class emitter method is a singleton method in a class/module, where
+ # the method has the same name as a class defined in the class/module.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#29
+ def class_emitter_method?(node, name); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#17
+ def report_opposing_styles(node, name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#23
+ def valid_name?(node, name, given_style = T.unsafe(nil)); end
+end
+
+# Handles `Max` configuration parameters, especially setting them to an
+# appropriate value with --auto-gen-config.
+#
+# @deprecated Use `exclude_limit ParameterName` instead.
+#
+# source://rubocop//lib/rubocop/cop/mixin/configurable_max.rb#8
+module RuboCop::Cop::ConfigurableMax
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_max.rb#11
+ def max=(value); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/configurable_max.rb#19
+ def max_parameter_name; end
+end
+
+# This module provides functionality for checking if names match the
+# configured EnforcedStyle.
+#
+# source://rubocop//lib/rubocop/cop/mixin/configurable_naming.rb#7
+module RuboCop::Cop::ConfigurableNaming
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::ConfigurableFormatting
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/configurable_naming.rb#10
+RuboCop::Cop::ConfigurableNaming::FORMATS = T.let(T.unsafe(nil), Hash)
+
+# This module provides functionality for checking if numbering match the
+# configured EnforcedStyle.
+#
+# source://rubocop//lib/rubocop/cop/mixin/configurable_numbering.rb#7
+module RuboCop::Cop::ConfigurableNumbering
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::ConfigurableFormatting
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/configurable_numbering.rb#11
+RuboCop::Cop::ConfigurableNumbering::FORMATS = T.let(T.unsafe(nil), Hash)
+
+# Monkey-patch Cop for tests to provide easy access to messages and
+# highlights.
+#
+# source://rubocop//lib/rubocop/cop/cop.rb#11
+class RuboCop::Cop::Cop < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/cop.rb#53
+ def add_offense(node_or_range, location: T.unsafe(nil), message: T.unsafe(nil), severity: T.unsafe(nil), &block); end
+
+ # Called before any investigation
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#103
+ def begin_investigation(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end
+
+ # @deprecated
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#82
+ def corrections; end
+
+ # source://rubocop//lib/rubocop/cop/cop.rb#70
+ def find_location(node, loc); end
+
+ # Returns the value of attribute offenses.
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#12
+ def offenses; end
+
+ # Called after all on_... have been called
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#96
+ def on_investigation_end; end
+
+ # Called before all on_... have been called
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#90
+ def on_new_investigation; end
+
+ # @deprecated Use class method
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#76
+ def support_autocorrect?; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/cop.rb#121
+ def apply_correction(corrector); end
+
+ # Override Base
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#117
+ def callback_argument(_range); end
+
+ # source://rubocop//lib/rubocop/cop/cop.rb#138
+ def correction_lambda; end
+
+ # source://rubocop//lib/rubocop/cop/cop.rb#144
+ def dedupe_on_node(node); end
+
+ # Just for legacy
+ #
+ # @yield [corrector]
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#126
+ def emulate_v0_callsequence(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/cop.rb#157
+ def range_for_original(range); end
+
+ # source://rubocop//lib/rubocop/cop/cop.rb#151
+ def suppress_clobbering; end
+
+ class << self
+ # @deprecated Use Registry.all
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#44
+ def all; end
+
+ # source://rubocop//lib/rubocop/cop/cop.rb#29
+ def joining_forces; end
+
+ # @deprecated Use Registry.qualified_cop_name
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#49
+ def qualified_cop_name(name, origin); end
+
+ # @deprecated Use Registry.global
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#39
+ def registry; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/cop.rb#25
+ def support_autocorrect?; end
+ end
+end
+
+# @deprecated
+#
+# source://rubocop//lib/rubocop/cop/cop.rb#17
+class RuboCop::Cop::Cop::Correction < ::Struct
+ # source://rubocop//lib/rubocop/cop/cop.rb#18
+ def call(corrector); end
+
+ # Returns the value of attribute cop
+ #
+ # @return [Object] the current value of cop
+ def cop; end
+
+ # Sets the attribute cop
+ #
+ # @param value [Object] the value to set the attribute cop to.
+ # @return [Object] the newly set value
+ def cop=(_); end
+
+ # Returns the value of attribute lambda
+ #
+ # @return [Object] the current value of lambda
+ def lambda; end
+
+ # Sets the attribute lambda
+ #
+ # @param value [Object] the value to set the attribute lambda to.
+ # @return [Object] the newly set value
+ def lambda=(_); end
+
+ # Returns the value of attribute node
+ #
+ # @return [Object] the current value of node
+ def node; end
+
+ # Sets the attribute node
+ #
+ # @param value [Object] the value to set the attribute node to.
+ # @return [Object] the newly set value
+ def node=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# This class takes a source buffer and rewrite its source
+# based on the different correction rules supplied.
+#
+# Important!
+# The nodes modified by the corrections should be part of the
+# AST of the source_buffer.
+#
+# source://rubocop//lib/rubocop/cop/corrector.rb#11
+class RuboCop::Cop::Corrector < ::Parser::Source::TreeRewriter
+ # corrector = Corrector.new(cop)
+ #
+ # @param source [Parser::Source::Buffer, or anything
+ # leading to one via `(processed_source.)buffer`]
+ # @return [Corrector] a new instance of Corrector
+ #
+ # source://rubocop//lib/rubocop/cop/corrector.rb#32
+ def initialize(source); end
+
+ # Removes `size` characters from the beginning of the given range.
+ # If `size` is greater than the size of `range`, the removed region can
+ # overrun the end of `range`.
+ #
+ # @param range [Parser::Source::Range, RuboCop::AST::Node] or node
+ # @param size [Integer]
+ #
+ # source://rubocop//lib/rubocop/cop/corrector.rb#63
+ def remove_leading(node_or_range, size); end
+
+ # Removes `size` characters prior to the source range.
+ #
+ # @param range [Parser::Source::Range, RuboCop::AST::Node] or node
+ # @param size [Integer]
+ #
+ # source://rubocop//lib/rubocop/cop/corrector.rb#51
+ def remove_preceding(node_or_range, size); end
+
+ # Removes `size` characters from the end of the given range.
+ # If `size` is greater than the size of `range`, the removed region can
+ # overrun the beginning of `range`.
+ #
+ # @param range [Parser::Source::Range, RuboCop::AST::Node] or node
+ # @param size [Integer]
+ #
+ # source://rubocop//lib/rubocop/cop/corrector.rb#75
+ def remove_trailing(node_or_range, size); end
+
+ # Legacy
+ #
+ # source://parser/3.2.2.4/lib/parser/source/tree_rewriter.rb#252
+ def rewrite; end
+
+ # Swaps sources at the given ranges.
+ #
+ # @param node_or_range1 [Parser::Source::Range, RuboCop::AST::Node]
+ # @param node_or_range2 [Parser::Source::Range, RuboCop::AST::Node]
+ #
+ # source://rubocop//lib/rubocop/cop/corrector.rb#85
+ def swap(node_or_range1, node_or_range2); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/corrector.rb#119
+ def check_range_validity(node_or_range); end
+
+ # source://rubocop//lib/rubocop/cop/corrector.rb#104
+ def to_range(node_or_range); end
+
+ # source://rubocop//lib/rubocop/cop/corrector.rb#123
+ def validate_buffer(buffer); end
+
+ class << self
+ # Duck typing for get to a ::Parser::Source::Buffer
+ #
+ # source://rubocop//lib/rubocop/cop/corrector.rb#15
+ def source_buffer(source); end
+ end
+end
+
+# noop
+#
+# source://rubocop//lib/rubocop/cop/corrector.rb#12
+RuboCop::Cop::Corrector::NOOP_CONSUMER = T.let(T.unsafe(nil), Proc)
+
+# Common functionality for checking def nodes.
+#
+# source://rubocop//lib/rubocop/cop/mixin/def_node.rb#6
+module RuboCop::Cop::DefNode
+ include ::RuboCop::Cop::VisibilityHelp
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/def_node.rb#21
+ def non_public_modifier?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/def_node.rb#12
+ def non_public?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/def_node.rb#16
+ def preceding_non_public_modifier?(node); end
+end
+
+# Helpers for builtin documentation
+#
+# source://rubocop//lib/rubocop/cop/documentation.rb#6
+module RuboCop::Cop::Documentation
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/documentation.rb#24
+ def base_url_for(cop_class, config); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/documentation.rb#34
+ def default_base_url; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/documentation.rb#10
+ def department_to_basename(department); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/documentation.rb#15
+ def url_for(cop_class, config = T.unsafe(nil)); end
+
+ class << self
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/documentation.rb#24
+ def base_url_for(cop_class, config); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/documentation.rb#34
+ def default_base_url; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/documentation.rb#10
+ def department_to_basename(department); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/documentation.rb#15
+ def url_for(cop_class, config = T.unsafe(nil)); end
+ end
+end
+
+# Common functionality for checking documentation.
+#
+# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#6
+module RuboCop::Cop::DocumentationComment
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#47
+ def annotation_keywords; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#11
+ def documentation_comment?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#39
+ def interpreter_directive_comment?(comment); end
+
+ # The args node1 & node2 may represent a RuboCop::AST::Node
+ # or a Parser::Source::Comment. Both respond to #loc.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#31
+ def precede?(node1, node2); end
+
+ # The args node1 & node2 may represent a RuboCop::AST::Node
+ # or a Parser::Source::Comment. Both respond to #loc.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#25
+ def preceding_comment?(node1, node2); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#35
+ def preceding_lines(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#43
+ def rubocop_directive_comment?(comment); end
+end
+
+# Common functionality for dealing with duplication.
+#
+# source://rubocop//lib/rubocop/cop/mixin/duplication.rb#6
+module RuboCop::Cop::Duplication
+ private
+
+ # Returns the consecutive duplicates, leaving out the first instance of
+ # the duplicated elements.
+ #
+ # @param collection [Array] an array to return consecutive duplicates for
+ # @return [Array] the consecutive duplicates
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/duplication.rb#31
+ def consecutive_duplicates(collection); end
+
+ # Returns all duplicates, including the first instance of the duplicated
+ # elements.
+ #
+ # @param collection [Array] an array to return duplicates for
+ # @return [Array] all the duplicates
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/duplication.rb#22
+ def duplicates(collection); end
+
+ # Whether the `collection` contains any duplicates.
+ #
+ # @param collection [Array] an array to check for duplicates
+ # @return [Boolean] whether the array contains any duplicates
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/duplication.rb#13
+ def duplicates?(collection); end
+
+ # Returns a hash of grouped duplicates. The key will be the first
+ # instance of the element, and the value an `array` of the initial
+ # element and all duplicate instances.
+ #
+ # @param collection [Array] an array to group duplicates for
+ # @return [Array] the grouped duplicates
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/duplication.rb#41
+ def grouped_duplicates(collection); end
+end
+
+# This class autocorrects `#each` enumeration to `for` iteration.
+#
+# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#6
+class RuboCop::Cop::EachToForCorrector
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # @return [EachToForCorrector] a new instance of EachToForCorrector
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#12
+ def initialize(block_node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#18
+ def call(corrector); end
+
+ private
+
+ # Returns the value of attribute argument_node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#24
+ def argument_node; end
+
+ # Returns the value of attribute block_node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#24
+ def block_node; end
+
+ # Returns the value of attribute collection_node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#24
+ def collection_node; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#26
+ def correction; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#36
+ def offending_range; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#44
+ def replacement_range(end_pos); end
+end
+
+# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#10
+RuboCop::Cop::EachToForCorrector::CORRECTION_WITHOUT_ARGUMENTS = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#9
+RuboCop::Cop::EachToForCorrector::CORRECTION_WITH_ARGUMENTS = T.let(T.unsafe(nil), String)
+
+# This class does empty line autocorrection
+#
+# source://rubocop//lib/rubocop/cop/correctors/empty_line_corrector.rb#6
+class RuboCop::Cop::EmptyLineCorrector
+ class << self
+ # source://rubocop//lib/rubocop/cop/correctors/empty_line_corrector.rb#8
+ def correct(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/empty_line_corrector.rb#19
+ def insert_before(corrector, node); end
+ end
+end
+
+# Common code for empty parameter cops.
+#
+# source://rubocop//lib/rubocop/cop/mixin/empty_parameter.rb#6
+module RuboCop::Cop::EmptyParameter
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_parameter.rb#12
+ def empty_arguments?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_parameter.rb#16
+ def check(node); end
+end
+
+# Functions for checking the alignment of the `end` keyword.
+#
+# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#6
+module RuboCop::Cop::EndKeywordAlignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#60
+ def accept_end_kw_alignment?(end_loc); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#50
+ def add_offense_for_misalignment(node, align_with); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#19
+ def check_end_kw_alignment(node, align_ranges); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#15
+ def check_end_kw_in_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#75
+ def line_break_before_keyword?(whole_expression, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#35
+ def matching_ranges(end_loc, align_ranges); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#41
+ def start_line_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#65
+ def style_parameter_name; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#69
+ def variable_alignment?(whole_expression, rhs, end_alignment_style); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#10
+RuboCop::Cop::EndKeywordAlignment::MSG = T.let(T.unsafe(nil), String)
+
+# Common functionality for enforcing a specific superclass.
+#
+# IMPORTANT: RuboCop core depended on this module when it supported Rails department.
+# Rails department has been extracted to RuboCop Rails gem.
+#
+# It will not be updated to `RuboCop::Cop::Base` v1 API to maintain compatibility
+# with existing RuboCop Rails 2.8 or lower.
+#
+# @api private
+# @deprecated This module is deprecated and will be removed by RuboCop 2.0.
+#
+# source://rubocop//lib/rubocop/cop/mixin/enforce_superclass.rb#15
+module RuboCop::Cop::EnforceSuperclass
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/enforce_superclass.rb#35
+ def on_class(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/enforce_superclass.rb#39
+ def on_send(node); end
+
+ class << self
+ # @api private
+ # @private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/enforce_superclass.rb#16
+ def included(base); end
+ end
+end
+
+# Common functionality for checking for a line break before the first
+# element in a multi-line collection.
+#
+# source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#7
+module RuboCop::Cop::FirstElementLineBreak
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#23
+ def check_children_line_break(node, children, start = T.unsafe(nil), ignore_last: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#10
+ def check_method_line_break(node, children, ignore_last: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#37
+ def first_by_line(nodes); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#41
+ def last_line(nodes, ignore_last:); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#18
+ def method_uses_parens?(node, limit); end
+end
+
+# This class autocorrects `for` iteration to `#each` enumeration.
+#
+# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#6
+class RuboCop::Cop::ForToEachCorrector
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # @return [ForToEachCorrector] a new instance of ForToEachCorrector
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#11
+ def initialize(for_node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#17
+ def call(corrector); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#55
+ def collection_end; end
+
+ # Returns the value of attribute collection_node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#23
+ def collection_node; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#29
+ def collection_source; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#25
+ def correction; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#43
+ def end_position; end
+
+ # Returns the value of attribute for_node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#23
+ def for_node; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#51
+ def keyword_begin; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#63
+ def offending_range; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#67
+ def replacement_range(end_pos); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#37
+ def requires_parentheses?; end
+
+ # Returns the value of attribute variable_node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#23
+ def variable_node; end
+end
+
+# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#9
+RuboCop::Cop::ForToEachCorrector::CORRECTION = T.let(T.unsafe(nil), String)
+
+# A scaffold for concrete forces.
+#
+# source://rubocop//lib/rubocop/cop/force.rb#6
+class RuboCop::Cop::Force
+ # @return [Force] a new instance of Force
+ #
+ # source://rubocop//lib/rubocop/cop/force.rb#22
+ def initialize(cops); end
+
+ # Returns the value of attribute cops.
+ #
+ # source://rubocop//lib/rubocop/cop/force.rb#7
+ def cops; end
+
+ # source://rubocop//lib/rubocop/cop/force.rb#38
+ def investigate(_processed_source); end
+
+ # source://rubocop//lib/rubocop/cop/force.rb#26
+ def name; end
+
+ # source://rubocop//lib/rubocop/cop/force.rb#30
+ def run_hook(method_name, *args); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/force.rb#9
+ def all; end
+
+ # source://rubocop//lib/rubocop/cop/force.rb#18
+ def force_name; end
+
+ # @private
+ #
+ # source://rubocop//lib/rubocop/cop/force.rb#13
+ def inherited(subclass); end
+ end
+end
+
+# Common functionality for dealing with frozen string literals.
+#
+# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#6
+module RuboCop::Cop::FrozenStringLiteral
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#35
+ def frozen_heredoc?(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#21
+ def frozen_string_literal?(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#15
+ def frozen_string_literal_comment_exists?; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#66
+ def frozen_string_literal_specified?; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#60
+ def frozen_string_literals_disabled?; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#41
+ def frozen_string_literals_enabled?; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#76
+ def leading_comment_lines; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#72
+ def leading_magic_comments; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#31
+ def uninterpolated_string?(node); end
+
+ class << self
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#15
+ def frozen_string_literal_comment_exists?; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#9
+RuboCop::Cop::FrozenStringLiteral::FROZEN_STRING_LITERAL = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#10
+RuboCop::Cop::FrozenStringLiteral::FROZEN_STRING_LITERAL_ENABLED = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#11
+RuboCop::Cop::FrozenStringLiteral::FROZEN_STRING_LITERAL_TYPES_RUBY27 = T.let(T.unsafe(nil), Array)
+
+# Common functionality for checking gem declarations.
+#
+# source://rubocop//lib/rubocop/cop/mixin/gem_declaration.rb#6
+module RuboCop::Cop::GemDeclaration
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/gem_declaration.rb#10
+ def gem_declaration?(param0 = T.unsafe(nil)); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#5
+module RuboCop::Cop::Gemspec; end
+
+# Enforce that gem dependency version specifications or a commit reference (branch,
+# ref, or tag) are either required or forbidden.
+#
+# @example EnforcedStyle: required (default)
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.add_dependency 'parser'
+# end
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.add_development_dependency 'parser'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.add_dependency 'parser', '>= 2.3.3.1', '< 3.0'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.add_development_dependency 'parser', '>= 2.3.3.1', '< 3.0'
+# end
+# @example EnforcedStyle: forbidden
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.add_dependency 'parser', '>= 2.3.3.1', '< 3.0'
+# end
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.add_development_dependency 'parser', '>= 2.3.3.1', '< 3.0'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.add_dependency 'parser'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.add_development_dependency 'parser'
+# end
+#
+# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#53
+class RuboCop::Cop::Gemspec::DependencyVersion < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::GemspecHelp
+
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#67
+ def add_dependency_method_declaration?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#78
+ def includes_commit_reference?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#73
+ def includes_version_specification?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#82
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#120
+ def add_dependency_method?(method_name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#96
+ def allowed_gem?(node); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#100
+ def allowed_gems; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#134
+ def forbidden_offense?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#140
+ def forbidden_style?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#114
+ def match_block_variable_name?(receiver_name); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#104
+ def message(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#124
+ def offense?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#128
+ def required_offense?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#144
+ def required_style?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#148
+ def version_specification?(expression); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#61
+RuboCop::Cop::Gemspec::DependencyVersion::ADD_DEPENDENCY_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#58
+RuboCop::Cop::Gemspec::DependencyVersion::FORBIDDEN_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#57
+RuboCop::Cop::Gemspec::DependencyVersion::REQUIRED_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#64
+RuboCop::Cop::Gemspec::DependencyVersion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#59
+RuboCop::Cop::Gemspec::DependencyVersion::VERSION_SPECIFICATION_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# Checks that deprecated attributes are not set in a gemspec file.
+# Removing deprecated attributes allows the user to receive smaller packed gems.
+#
+# @example
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.name = 'your_cool_gem_name'
+# spec.test_files = Dir.glob('test/**/*')
+# end
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.name = 'your_cool_gem_name'
+# spec.test_files += Dir.glob('test/**/*')
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.name = 'your_cool_gem_name'
+# end
+#
+# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#28
+class RuboCop::Cop::Gemspec::DeprecatedAttributeAssignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#35
+ def gem_specification(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#43
+ def on_block(block_node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#86
+ def format_message_from; end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#63
+ def node_and_method_name(node, attribute); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#72
+ def use_deprecated_attributes?(node, block_parameter); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#32
+RuboCop::Cop::Gemspec::DeprecatedAttributeAssignment::MSG = T.let(T.unsafe(nil), String)
+
+# Enforce that development dependencies for a gem are specified in
+# `Gemfile`, rather than in the `gemspec` using
+# `add_development_dependency`. Alternatively, using `EnforcedStyle:
+# gemspec`, enforce that all dependencies are specified in `gemspec`,
+# rather than in `Gemfile`.
+#
+# @example EnforcedStyle: Gemfile (default)
+# # Specify runtime dependencies in your gemspec,
+# # but all other dependencies in your Gemfile.
+#
+# # bad
+# # example.gemspec
+# s.add_development_dependency "foo"
+#
+# # good
+# # Gemfile
+# gem "foo"
+#
+# # good
+# # gems.rb
+# gem "foo"
+#
+# # good (with AllowedGems: ["bar"])
+# # example.gemspec
+# s.add_development_dependency "bar"
+# @example EnforcedStyle: gems.rb
+# # Specify runtime dependencies in your gemspec,
+# # but all other dependencies in your Gemfile.
+# #
+# # Identical to `EnforcedStyle: Gemfile`, but with a different error message.
+# # Rely on Bundler/GemFilename to enforce the use of `Gemfile` vs `gems.rb`.
+#
+# # bad
+# # example.gemspec
+# s.add_development_dependency "foo"
+#
+# # good
+# # Gemfile
+# gem "foo"
+#
+# # good
+# # gems.rb
+# gem "foo"
+#
+# # good (with AllowedGems: ["bar"])
+# # example.gemspec
+# s.add_development_dependency "bar"
+# @example EnforcedStyle: gemspec
+# # Specify all dependencies in your gemspec.
+#
+# # bad
+# # Gemfile
+# gem "foo"
+#
+# # good
+# # example.gemspec
+# s.add_development_dependency "foo"
+#
+# # good (with AllowedGems: ["bar"])
+# # Gemfile
+# gem "bar"
+#
+# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#70
+class RuboCop::Cop::Gemspec::DevelopmentDependencies < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+
+ # source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#77
+ def add_development_dependency?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#82
+ def gem?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#86
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#97
+ def forbidden_gem?(gem_name); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#101
+ def message(_range); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#73
+RuboCop::Cop::Gemspec::DevelopmentDependencies::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#74
+RuboCop::Cop::Gemspec::DevelopmentDependencies::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# An attribute assignment method calls should be listed only once
+# in a gemspec.
+#
+# Assigning to an attribute with the same name using `spec.foo =` will be
+# an unintended usage. On the other hand, duplication of methods such
+# as `spec.requirements`, `spec.add_runtime_dependency`, and others are
+# permitted because it is the intended use of appending values.
+#
+# @example
+# # bad
+# Gem::Specification.new do |spec|
+# spec.name = 'rubocop'
+# spec.name = 'rubocop2'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.name = 'rubocop'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.requirements << 'libmagick, v6.0'
+# spec.requirements << 'A good graphics card'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.add_runtime_dependency('parallel', '~> 1.10')
+# spec.add_runtime_dependency('parser', '>= 2.3.3.1', '< 3.0')
+# end
+#
+# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#37
+class RuboCop::Cop::Gemspec::DuplicatedAssignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::GemspecHelp
+
+ # source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#45
+ def assignment_method_declarations(param0); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#50
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#68
+ def duplicated_assignment_method_nodes; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#62
+ def match_block_variable_name?(receiver_name); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#76
+ def register_offense(node, assignment, line_of_first_occurrence); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#41
+RuboCop::Cop::Gemspec::DuplicatedAssignment::MSG = T.let(T.unsafe(nil), String)
+
+# Dependencies in the gemspec should be alphabetically sorted.
+#
+# @example
+# # bad
+# spec.add_dependency 'rubocop'
+# spec.add_dependency 'rspec'
+#
+# # good
+# spec.add_dependency 'rspec'
+# spec.add_dependency 'rubocop'
+#
+# # good
+# spec.add_dependency 'rubocop'
+#
+# spec.add_dependency 'rspec'
+#
+# # bad
+# spec.add_development_dependency 'rubocop'
+# spec.add_development_dependency 'rspec'
+#
+# # good
+# spec.add_development_dependency 'rspec'
+# spec.add_development_dependency 'rubocop'
+#
+# # good
+# spec.add_development_dependency 'rubocop'
+#
+# spec.add_development_dependency 'rspec'
+#
+# # bad
+# spec.add_runtime_dependency 'rubocop'
+# spec.add_runtime_dependency 'rspec'
+#
+# # good
+# spec.add_runtime_dependency 'rspec'
+# spec.add_runtime_dependency 'rubocop'
+#
+# # good
+# spec.add_runtime_dependency 'rubocop'
+#
+# spec.add_runtime_dependency 'rspec'
+# @example TreatCommentsAsGroupSeparators: true (default)
+# # good
+# # For code quality
+# spec.add_dependency 'rubocop'
+# # For tests
+# spec.add_dependency 'rspec'
+# @example TreatCommentsAsGroupSeparators: false
+# # bad
+# # For code quality
+# spec.add_dependency 'rubocop'
+# # For tests
+# spec.add_dependency 'rspec'
+#
+# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#61
+class RuboCop::Cop::Gemspec::OrderedDependencies < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::OrderedGemNode
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#95
+ def dependency_declarations(param0); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#69
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#90
+ def get_dependency_name(node); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#84
+ def previous_declaration(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#65
+RuboCop::Cop::Gemspec::OrderedDependencies::MSG = T.let(T.unsafe(nil), String)
+
+# Requires a gemspec to have `rubygems_mfa_required` metadata set.
+#
+# This setting tells RubyGems that MFA (Multi-Factor Authentication) is
+# required for accounts to be able perform privileged operations, such as
+# (see RubyGems' documentation for the full list of privileged
+# operations):
+#
+# * `gem push`
+# * `gem yank`
+# * `gem owner --add/remove`
+# * adding or removing owners using gem ownership page
+#
+# This helps make your gem more secure, as users can be more
+# confident that gem updates were pushed by maintainers.
+#
+# @example
+# # bad
+# Gem::Specification.new do |spec|
+# # no `rubygems_mfa_required` metadata specified
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.metadata = {
+# 'rubygems_mfa_required' => 'true'
+# }
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.metadata['rubygems_mfa_required'] = 'true'
+# end
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.metadata = {
+# 'rubygems_mfa_required' => 'false'
+# }
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.metadata = {
+# 'rubygems_mfa_required' => 'true'
+# }
+# end
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.metadata['rubygems_mfa_required'] = 'false'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.metadata['rubygems_mfa_required'] = 'true'
+# end
+#
+# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#63
+class RuboCop::Cop::Gemspec::RequireMFA < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::GemspecHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#70
+ def metadata(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#87
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#78
+ def rubygems_mfa_required(param0); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#83
+ def true_string?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#115
+ def autocorrect(corrector, node, block_var, metadata); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#139
+ def change_value(corrector, value); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#125
+ def correct_metadata(corrector, metadata); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#133
+ def insert_mfa_required(corrector, node, block_var); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#108
+ def mfa_value(metadata_value); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#67
+RuboCop::Cop::Gemspec::RequireMFA::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that `required_ruby_version` in a gemspec file is set to a valid
+# value (non-blank) and matches `TargetRubyVersion` as set in RuboCop's
+# configuration for the gem.
+#
+# This ensures that RuboCop is using the same Ruby version as the gem.
+#
+# @example
+# # When `TargetRubyVersion` of .rubocop.yml is `2.5`.
+#
+# # bad
+# Gem::Specification.new do |spec|
+# # no `required_ruby_version` specified
+# end
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.required_ruby_version = '>= 2.4.0'
+# end
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.required_ruby_version = '>= 2.6.0'
+# end
+#
+# # bad
+# Gem::Specification.new do |spec|
+# spec.required_ruby_version = ''
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.required_ruby_version = '>= 2.5.0'
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.required_ruby_version = '>= 2.5'
+# end
+#
+# # accepted but not recommended
+# Gem::Specification.new do |spec|
+# spec.required_ruby_version = ['>= 2.5.0', '< 2.7.0']
+# end
+#
+# # accepted but not recommended, since
+# # Ruby does not really follow semantic versioning
+# Gem::Specification.new do |spec|
+# spec.required_ruby_version = '~> 2.5'
+# end
+#
+# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#55
+class RuboCop::Cop::Gemspec::RequiredRubyVersion < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#70
+ def defined_ruby_version(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#78
+ def on_new_investigation; end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#82
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#65
+ def required_ruby_version?(param0); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#94
+ def dynamic_version?(node); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#100
+ def extract_ruby_version(required_ruby_version); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#116
+ def not_equal_message(required_ruby_version, target_ruby_version); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#62
+RuboCop::Cop::Gemspec::RequiredRubyVersion::MISSING_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#59
+RuboCop::Cop::Gemspec::RequiredRubyVersion::NOT_EQUAL_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#58
+RuboCop::Cop::Gemspec::RequiredRubyVersion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks that `RUBY_VERSION` constant is not used in gemspec.
+# Using `RUBY_VERSION` is dangerous because value of the
+# constant is determined by `rake release`.
+# It's possible to have dependency based on ruby version used
+# to execute `rake release` and not user's ruby version.
+#
+# @example
+#
+# # bad
+# Gem::Specification.new do |spec|
+# if RUBY_VERSION >= '3.0'
+# spec.add_runtime_dependency 'gem_a'
+# else
+# spec.add_runtime_dependency 'gem_b'
+# end
+# end
+#
+# # good
+# Gem::Specification.new do |spec|
+# spec.add_runtime_dependency 'gem_a'
+# end
+#
+# source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#28
+class RuboCop::Cop::Gemspec::RubyVersionGlobalsUsage < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::GemspecHelp
+
+ # source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#36
+ def on_const(node); end
+
+ # source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#34
+ def ruby_version?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#44
+ def gem_spec_with_ruby_version?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#31
+RuboCop::Cop::Gemspec::RubyVersionGlobalsUsage::MSG = T.let(T.unsafe(nil), String)
+
+# Common functionality for checking gem declarations.
+#
+# source://rubocop//lib/rubocop/cop/mixin/gemspec_help.rb#6
+module RuboCop::Cop::GemspecHelp
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/gemspec_help.rb#20
+ def gem_specification(param0); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/gemspec_help.rb#10
+ def gem_specification?(param0 = T.unsafe(nil)); end
+end
+
+# Source and spec generator for new cops
+#
+# This generator will take a cop name and generate a source file
+# and spec file when given a valid qualified cop name.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/generator.rb#10
+class RuboCop::Cop::Generator
+ # @api private
+ # @raise [ArgumentError]
+ # @return [Generator] a new instance of Generator
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#113
+ def initialize(name, output: T.unsafe(nil)); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#133
+ def inject_config(config_file_path: T.unsafe(nil), version_added: T.unsafe(nil)); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#129
+ def inject_require(root_file_path: T.unsafe(nil)); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#146
+ def todo; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#121
+ def write_source; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#125
+ def write_spec; end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#160
+ def badge; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#183
+ def generate(template); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#175
+ def generated_source; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#179
+ def generated_spec; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#160
+ def output; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#208
+ def snake_case(camel_case_string); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#198
+ def source_path; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#188
+ def spec_path; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/generator.rb#162
+ def write_unless_file_exists(path, contents); end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/generator.rb#109
+RuboCop::Cop::Generator::CONFIGURATION_ADDED_MESSAGE = T.let(T.unsafe(nil), String)
+
+# A class that injects a require directive into the root RuboCop file.
+# It looks for other directives that require files in the same (cop)
+# namespace and injects the provided one in alpha
+#
+# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#9
+class RuboCop::Cop::Generator::ConfigurationInjector
+ # @return [ConfigurationInjector] a new instance of ConfigurationInjector
+ #
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#17
+ def initialize(configuration_file_path:, badge:, version_added: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#24
+ def inject; end
+
+ private
+
+ # Returns the value of attribute badge.
+ #
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#39
+ def badge; end
+
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#41
+ def configuration_entries; end
+
+ # Returns the value of attribute configuration_file_path.
+ #
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#39
+ def configuration_file_path; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#59
+ def cop_name_line?(yaml); end
+
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#49
+ def find_target_line; end
+
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#45
+ def new_configuration_entry; end
+
+ # Returns the value of attribute output.
+ #
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#39
+ def output; end
+
+ # Returns the value of attribute version_added.
+ #
+ # source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#39
+ def version_added; end
+end
+
+# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#10
+RuboCop::Cop::Generator::ConfigurationInjector::TEMPLATE = T.let(T.unsafe(nil), String)
+
+# A class that injects a require directive into the root RuboCop file.
+# It looks for other directives that require files in the same (cop)
+# namespace and injects the provided one in alpha
+#
+# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#9
+class RuboCop::Cop::Generator::RequireFileInjector
+ # @return [RequireFileInjector] a new instance of RequireFileInjector
+ #
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#12
+ def initialize(source_path:, root_file_path:, output: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#19
+ def inject; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#64
+ def injectable_require_directive; end
+
+ # Returns the value of attribute output.
+ #
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#29
+ def output; end
+
+ # Returns the value of attribute require_entries.
+ #
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#29
+ def require_entries; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#31
+ def require_exists?; end
+
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#68
+ def require_path; end
+
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#58
+ def require_path_fragments(require_directive); end
+
+ # Returns the value of attribute root_file_path.
+ #
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#29
+ def root_file_path; end
+
+ # Returns the value of attribute source_path.
+ #
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#29
+ def source_path; end
+
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#39
+ def target_line; end
+
+ # source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#35
+ def updated_directives; end
+end
+
+# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#10
+RuboCop::Cop::Generator::RequireFileInjector::REQUIRE_PATH = T.let(T.unsafe(nil), Regexp)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/generator.rb#11
+RuboCop::Cop::Generator::SOURCE_TEMPLATE = T.let(T.unsafe(nil), String)
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/generator.rb#85
+RuboCop::Cop::Generator::SPEC_TEMPLATE = T.let(T.unsafe(nil), String)
+
+# Common functionality for checking hash alignment.
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#6
+module RuboCop::Cop::HashAlignmentStyles; end
+
+# Handles calculation of deltas when the enforced style is 'key'.
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#8
+class RuboCop::Cop::HashAlignmentStyles::KeyAlignment
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#9
+ def checkable_layout?(_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#20
+ def deltas(first_pair, current_pair); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#13
+ def deltas_for_first_pair(first_pair, _node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#34
+ def separator_delta(pair); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#45
+ def value_delta(pair); end
+end
+
+# Handles calculation of deltas for `kwsplat` nodes.
+# This is a special case that just ensures the kwsplat is aligned with the rest of the hash
+# since a `kwsplat` does not have a key, separator or value.
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#145
+class RuboCop::Cop::HashAlignmentStyles::KeywordSplatAlignment
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#146
+ def deltas(first_pair, current_pair); end
+end
+
+# Handles calculation of deltas when the enforced style is 'separator'.
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#120
+class RuboCop::Cop::HashAlignmentStyles::SeparatorAlignment
+ include ::RuboCop::Cop::HashAlignmentStyles::ValueAlignment
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#123
+ def deltas_for_first_pair(*_nodes); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#133
+ def hash_rocket_delta(first_pair, current_pair); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#129
+ def key_delta(first_pair, current_pair); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#137
+ def value_delta(first_pair, current_pair); end
+end
+
+# Handles calculation of deltas when the enforced style is 'table'.
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#81
+class RuboCop::Cop::HashAlignmentStyles::TableAlignment
+ include ::RuboCop::Cop::HashAlignmentStyles::ValueAlignment
+
+ # @return [TableAlignment] a new instance of TableAlignment
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#84
+ def initialize; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#88
+ def deltas_for_first_pair(first_pair, node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#106
+ def hash_rocket_delta(first_pair, current_pair); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#102
+ def key_delta(first_pair, current_pair); end
+
+ # Returns the value of attribute max_key_width.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#100
+ def max_key_width; end
+
+ # Sets the attribute max_key_width
+ #
+ # @param value the value to set the attribute max_key_width to.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#100
+ def max_key_width=(_arg0); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#110
+ def value_delta(first_pair, current_pair); end
+end
+
+# Common functionality for checking alignment of hash values.
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#56
+module RuboCop::Cop::HashAlignmentStyles::ValueAlignment
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#57
+ def checkable_layout?(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#61
+ def deltas(first_pair, current_pair); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#71
+ def separator_delta(first_pair, current_pair, key_delta); end
+end
+
+# This module checks for Ruby 3.1's hash value omission syntax.
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#7
+module RuboCop::Cop::HashShorthandSyntax
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#14
+ def on_hash_for_mixed_shorthand(hash_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#26
+ def on_pair(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#122
+ def brackets?(method_dispatch_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#152
+ def breakdown_value_types_of_hash(hash_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#99
+ def def_node_that_require_parentheses(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#176
+ def each_omittable_value_pair(hash_value_type_breakdown, &block); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#172
+ def each_omitted_value_pair(hash_value_type_breakdown, &block); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#77
+ def enforced_shorthand_syntax; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#114
+ def find_ancestor_method_dispatch_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#164
+ def hash_with_mixed_shorthand_syntax?(hash_value_type_breakdown); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#168
+ def hash_with_values_that_cant_be_omitted?(hash_value_type_breakdown); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#71
+ def ignore_hash_shorthand_syntax?(pair_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#66
+ def ignore_mixed_hash_shorthand_syntax?(hash_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#137
+ def last_expression?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#145
+ def method_dispatch_as_argument?(method_dispatch_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#180
+ def mixed_shorthand_syntax_check(hash_value_type_breakdown); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#196
+ def no_mixed_shorthand_syntax_check(hash_value_type_breakdown); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#49
+ def register_offense(node, message, replacement); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#81
+ def require_hash_value?(hash_key_source, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#90
+ def require_hash_value_for_around_hash_literal?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#126
+ def use_element_of_hash_literal_as_receiver?(ancestor, parent); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#131
+ def use_modifier_form_without_parenthesized_method_call?(ancestor); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#12
+RuboCop::Cop::HashShorthandSyntax::DO_NOT_MIX_EXPLICIT_VALUE_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#10
+RuboCop::Cop::HashShorthandSyntax::DO_NOT_MIX_MSG_PREFIX = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#11
+RuboCop::Cop::HashShorthandSyntax::DO_NOT_MIX_OMIT_VALUE_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#206
+class RuboCop::Cop::HashShorthandSyntax::DefNode < ::Struct
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#215
+ def first_argument; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#219
+ def last_argument; end
+
+ # Returns the value of attribute node
+ #
+ # @return [Object] the current value of node
+ def node; end
+
+ # Sets the attribute node
+ #
+ # @param value [Object] the value to set the attribute node to.
+ # @return [Object] the newly set value
+ def node=(_); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#207
+ def selector; end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#9
+RuboCop::Cop::HashShorthandSyntax::EXPLICIT_HASH_VALUE_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#8
+RuboCop::Cop::HashShorthandSyntax::OMIT_HASH_VALUE_MSG = T.let(T.unsafe(nil), String)
+
+# Common functionality for Style/HashTransformKeys and
+# Style/HashTransformValues
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#7
+module RuboCop::Cop::HashTransformMethod
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#13
+ def array_receiver?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#17
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#34
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#27
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#108
+ def execute_correction(corrector, node, correction); end
+
+ # @abstract
+ # @raise [NotImplementedError]
+ # @return [Captures]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#83
+ def extract_captures(_match); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#60
+ def handle_possible_offense(node, match, match_desc); end
+
+ # @abstract
+ # @raise [NotImplementedError]
+ # @return [String]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#90
+ def new_method_name; end
+
+ # @abstract Implemented with `def_node_matcher`
+ # @raise [NotImplementedError]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#41
+ def on_bad_each_with_object(_node); end
+
+ # @abstract Implemented with `def_node_matcher`
+ # @raise [NotImplementedError]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#46
+ def on_bad_hash_brackets_map(_node); end
+
+ # @abstract Implemented with `def_node_matcher`
+ # @raise [NotImplementedError]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#51
+ def on_bad_map_to_h(_node); end
+
+ # @abstract Implemented with `def_node_matcher`
+ # @raise [NotImplementedError]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#56
+ def on_bad_to_h(_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#94
+ def prepare_correction(node); end
+end
+
+# Internal helper class to hold autocorrect data
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#136
+class RuboCop::Cop::HashTransformMethod::Autocorrection < ::Struct
+ # Returns the value of attribute block_node
+ #
+ # @return [Object] the current value of block_node
+ def block_node; end
+
+ # Sets the attribute block_node
+ #
+ # @param value [Object] the value to set the attribute block_node to.
+ # @return [Object] the newly set value
+ def block_node=(_); end
+
+ # Returns the value of attribute leading
+ #
+ # @return [Object] the current value of leading
+ def leading; end
+
+ # Sets the attribute leading
+ #
+ # @param value [Object] the value to set the attribute leading to.
+ # @return [Object] the newly set value
+ def leading=(_); end
+
+ # Returns the value of attribute match
+ #
+ # @return [Object] the current value of match
+ def match; end
+
+ # Sets the attribute match
+ #
+ # @param value [Object] the value to set the attribute match to.
+ # @return [Object] the newly set value
+ def match=(_); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#177
+ def set_new_arg_name(transformed_argname, corrector); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#181
+ def set_new_body_expression(transforming_body_expr, corrector); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#167
+ def set_new_method_name(new_method_name, corrector); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#161
+ def strip_prefix_and_suffix(node, corrector); end
+
+ # Returns the value of attribute trailing
+ #
+ # @return [Object] the current value of trailing
+ def trailing; end
+
+ # Sets the attribute trailing
+ #
+ # @param value [Object] the value to set the attribute trailing to.
+ # @return [Object] the newly set value
+ def trailing=(_); end
+
+ class << self
+ def [](*_arg0); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#137
+ def from_each_with_object(node, match); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#141
+ def from_hash_brackets_map(node, match); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#145
+ def from_map_to_h(node, match); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#157
+ def from_to_h(node, match); end
+
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# Internal helper class to hold match data
+#
+# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#118
+class RuboCop::Cop::HashTransformMethod::Captures < ::Struct
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#119
+ def noop_transformation?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#124
+ def transformation_uses_both_args?; end
+
+ # Returns the value of attribute transformed_argname
+ #
+ # @return [Object] the current value of transformed_argname
+ def transformed_argname; end
+
+ # Sets the attribute transformed_argname
+ #
+ # @param value [Object] the value to set the attribute transformed_argname to.
+ # @return [Object] the newly set value
+ def transformed_argname=(_); end
+
+ # Returns the value of attribute transforming_body_expr
+ #
+ # @return [Object] the current value of transforming_body_expr
+ def transforming_body_expr; end
+
+ # Sets the attribute transforming_body_expr
+ #
+ # @param value [Object] the value to set the attribute transforming_body_expr to.
+ # @return [Object] the newly set value
+ def transforming_body_expr=(_); end
+
+ # Returns the value of attribute unchanged_body_expr
+ #
+ # @return [Object] the current value of unchanged_body_expr
+ def unchanged_body_expr; end
+
+ # Sets the attribute unchanged_body_expr
+ #
+ # @param value [Object] the value to set the attribute unchanged_body_expr to.
+ # @return [Object] the newly set value
+ def unchanged_body_expr=(_); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#128
+ def use_transformed_argname?; end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#10
+RuboCop::Cop::HashTransformMethod::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Common functionality for working with heredoc strings.
+#
+# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#6
+module RuboCop::Cop::Heredoc
+ # source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#9
+ def on_dstr(node); end
+
+ # @raise [NotImplementedError]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#17
+ def on_heredoc(_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#9
+ def on_str(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#9
+ def on_xstr(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#28
+ def delimiter_string(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#34
+ def heredoc_type(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#23
+ def indent_level(str); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#7
+RuboCop::Cop::Heredoc::OPENING_DELIMITER = T.let(T.unsafe(nil), Regexp)
+
+# This class autocorrects `if...then` structures to a multiline `if` statement
+#
+# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#6
+class RuboCop::Cop::IfThenCorrector
+ # @return [IfThenCorrector] a new instance of IfThenCorrector
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#9
+ def initialize(if_node, indentation: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#14
+ def call(corrector); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#50
+ def branch_body_indentation; end
+
+ # Returns the value of attribute if_node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#20
+ def if_node; end
+
+ # Returns the value of attribute indentation.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#20
+ def indentation; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#22
+ def replacement(node = T.unsafe(nil), indentation = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#36
+ def rewrite_else_branch(else_branch, indentation); end
+end
+
+# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#7
+RuboCop::Cop::IfThenCorrector::DEFAULT_INDENTATION_WIDTH = T.let(T.unsafe(nil), Integer)
+
+# @deprecated IgnoredMethods class has been replaced with AllowedMethods.
+#
+# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#40
+RuboCop::Cop::IgnoredMethods = RuboCop::Cop::AllowedMethods
+
+# Handles adding and checking ignored nodes.
+#
+# source://rubocop//lib/rubocop/cop/ignored_node.rb#6
+module RuboCop::Cop::IgnoredNode
+ # source://rubocop//lib/rubocop/cop/ignored_node.rb#7
+ def ignore_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/ignored_node.rb#24
+ def ignored_node?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/ignored_node.rb#11
+ def part_of_ignored_node?(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/ignored_node.rb#31
+ def ignored_nodes; end
+end
+
+# @deprecated IgnoredPattern class has been replaced with AllowedPattern.
+#
+# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#54
+RuboCop::Cop::IgnoredPattern = RuboCop::Cop::AllowedPattern
+
+# Common functionality for checking integer nodes.
+#
+# source://rubocop//lib/rubocop/cop/mixin/integer_node.rb#6
+module RuboCop::Cop::IntegerNode
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/integer_node.rb#9
+ def integer_part(node); end
+end
+
+# Common functionality for working with string interpolations.
+#
+# @abstract Subclasses are expected to implement {#on_interpolation}.
+#
+# source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#8
+module RuboCop::Cop::Interpolation
+ # source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#9
+ def on_dstr(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#9
+ def on_dsym(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#17
+ def on_node_with_interpolations(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#9
+ def on_regexp(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#9
+ def on_xstr(node); end
+end
+
+# This class autocorrects lambda literal to method notation.
+#
+# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#6
+class RuboCop::Cop::LambdaLiteralToMethodCorrector
+ # @return [LambdaLiteralToMethodCorrector] a new instance of LambdaLiteralToMethodCorrector
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#7
+ def initialize(block_node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#13
+ def call(corrector); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#118
+ def arg_to_unparenthesized_call?; end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34
+ def arguments; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#102
+ def arguments_begin_pos; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#98
+ def arguments_end_pos; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#110
+ def block_begin; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#106
+ def block_end; end
+
+ # Returns the value of attribute block_node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34
+ def block_node; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#59
+ def insert_arguments(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#43
+ def insert_separating_space(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#88
+ def lambda_arg_string; end
+
+ # Returns the value of attribute method.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34
+ def method; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#92
+ def needs_separating_space?; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#53
+ def remove_arguments(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#66
+ def remove_leading_whitespace(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#74
+ def remove_trailing_whitespace(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#36
+ def remove_unparenthesized_whitespace(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#79
+ def replace_delimiters(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#49
+ def replace_selector(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#114
+ def selector_end; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#134
+ def separating_space?; end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#5
+module RuboCop::Cop::Layout; end
+
+# Bare access modifiers (those not applying to specific methods) should be
+# indented as deep as method definitions, or as deep as the class/module
+# keyword, depending on configuration.
+#
+# @example EnforcedStyle: indent (default)
+# # bad
+# class Plumbus
+# private
+# def smooth; end
+# end
+#
+# # good
+# class Plumbus
+# private
+# def smooth; end
+# end
+# @example EnforcedStyle: outdent
+# # bad
+# class Plumbus
+# private
+# def smooth; end
+# end
+#
+# # good
+# class Plumbus
+# private
+# def smooth; end
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#35
+class RuboCop::Cop::Layout::AccessModifierIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#43
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#43
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#43
+ def on_module(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#43
+ def on_sclass(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#54
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#58
+ def check_body(body, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#65
+ def check_modifier(send_node, end_range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#88
+ def expected_indent_offset; end
+
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#84
+ def message(range); end
+
+ # An offset that is not expected, but correct if the configuration is
+ # changed.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#94
+ def unexpected_indent_offset; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#41
+RuboCop::Cop::Layout::AccessModifierIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Here we check if the arguments on a multi-line method
+# definition are aligned.
+#
+# @example EnforcedStyle: with_first_argument (default)
+# # good
+#
+# foo :bar,
+# :baz,
+# key: value
+#
+# foo(
+# :bar,
+# :baz,
+# key: value
+# )
+#
+# # bad
+#
+# foo :bar,
+# :baz,
+# key: value
+#
+# foo(
+# :bar,
+# :baz,
+# key: value
+# )
+# @example EnforcedStyle: with_fixed_indentation
+# # good
+#
+# foo :bar,
+# :baz,
+# key: value
+#
+# # bad
+#
+# foo :bar,
+# :baz,
+# key: value
+#
+# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#46
+class RuboCop::Cop::Layout::ArgumentAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#55
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#55
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#92
+ def arguments_or_first_arg_pairs(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#80
+ def arguments_with_last_arg_pairs(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#108
+ def autocorrect(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#68
+ def autocorrect_incompatible_with_other_cops?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#124
+ def base_column(node, first_argument); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#144
+ def enforce_hash_argument_with_separator?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#116
+ def fixed_indentation?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#72
+ def flattened_arguments(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#152
+ def hash_argument_config; end
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#112
+ def message(_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#101
+ def multiple_arguments?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#135
+ def target_method_lineno(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#120
+ def with_first_argument_style?; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#50
+RuboCop::Cop::Layout::ArgumentAlignment::ALIGN_PARAMS_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#52
+RuboCop::Cop::Layout::ArgumentAlignment::FIXED_INDENT_MSG = T.let(T.unsafe(nil), String)
+
+# Here we check if the elements of a multi-line array literal are
+# aligned.
+#
+# @example EnforcedStyle: with_first_element (default)
+# # good
+#
+# array = [1, 2, 3,
+# 4, 5, 6]
+# array = ['run',
+# 'forrest',
+# 'run']
+#
+# # bad
+#
+# array = [1, 2, 3,
+# 4, 5, 6]
+# array = ['run',
+# 'forrest',
+# 'run']
+# @example EnforcedStyle: with_fixed_indentation
+# # good
+#
+# array = [1, 2, 3,
+# 4, 5, 6]
+#
+# # bad
+#
+# array = [1, 2, 3,
+# 4, 5, 6]
+#
+# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#36
+class RuboCop::Cop::Layout::ArrayAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#46
+ def on_array(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#55
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#67
+ def base_column(node, args); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#63
+ def fixed_indentation?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#59
+ def message(_range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#78
+ def target_method_lineno(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#40
+RuboCop::Cop::Layout::ArrayAlignment::ALIGN_ELEMENTS_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#43
+RuboCop::Cop::Layout::ArrayAlignment::FIXED_INDENT_MSG = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of the first line of the
+# right-hand-side of a multi-line assignment.
+#
+# The indentation of the remaining lines can be corrected with
+# other cops such as `IndentationConsistency` and `EndAlignment`.
+#
+# @example
+# # bad
+# value =
+# if foo
+# 'bar'
+# end
+#
+# # good
+# value =
+# if foo
+# 'bar'
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#24
+class RuboCop::Cop::Layout::AssignmentIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CheckAssignment
+ include ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#42
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#33
+ def check_assignment(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#46
+ def leftmost_multiple_assignment(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#29
+RuboCop::Cop::Layout::AssignmentIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether the end keyword of `begin` is aligned properly.
+#
+# Two modes are supported through the `EnforcedStyleAlignWith` configuration
+# parameter. If it's set to `start_of_line` (which is the default), the
+# `end` shall be aligned with the start of the line where the `begin`
+# keyword is. If it's set to `begin`, the `end` shall be aligned with the
+# `begin` keyword.
+#
+# `Layout/EndAlignment` cop aligns with keywords (e.g. `if`, `while`, `case`)
+# by default. On the other hand, `||= begin` that this cop targets tends to
+# align with the start of the line, it defaults to `EnforcedStyleAlignWith: start_of_line`.
+# These style can be configured by each cop.
+#
+# @example EnforcedStyleAlignWith: start_of_line (default)
+# # bad
+# foo ||= begin
+# do_something
+# end
+#
+# # good
+# foo ||= begin
+# do_something
+# end
+# @example EnforcedStyleAlignWith: begin
+# # bad
+# foo ||= begin
+# do_something
+# end
+#
+# # good
+# foo ||= begin
+# do_something
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#41
+class RuboCop::Cop::Layout::BeginEndAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::EndKeywordAlignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#48
+ def on_kwbegin(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#63
+ def alignment_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#59
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#54
+ def check_begin_alignment(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#46
+RuboCop::Cop::Layout::BeginEndAlignment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether the end keywords are aligned properly for do
+# end blocks.
+#
+# Three modes are supported through the `EnforcedStyleAlignWith`
+# configuration parameter:
+#
+# `start_of_block` : the `end` shall be aligned with the
+# start of the line where the `do` appeared.
+#
+# `start_of_line` : the `end` shall be aligned with the
+# start of the line where the expression started.
+#
+# `either` (which is the default) : the `end` is allowed to be in either
+# location. The autofixer will default to `start_of_line`.
+#
+# @example EnforcedStyleAlignWith: either (default)
+# # bad
+#
+# foo.bar
+# .each do
+# baz
+# end
+#
+# # good
+#
+# foo.bar
+# .each do
+# baz
+# end
+# @example EnforcedStyleAlignWith: start_of_block
+# # bad
+#
+# foo.bar
+# .each do
+# baz
+# end
+#
+# # good
+#
+# foo.bar
+# .each do
+# baz
+# end
+# @example EnforcedStyleAlignWith: start_of_line
+# # bad
+#
+# foo.bar
+# .each do
+# baz
+# end
+#
+# # good
+#
+# foo.bar
+# .each do
+# baz
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#66
+class RuboCop::Cop::Layout::BlockAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#74
+ def block_end_align_target?(param0 = T.unsafe(nil), param1); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#83
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#83
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#89
+ def style_parameter_name; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#228
+ def add_space_before(corrector, loc, delta); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#205
+ def alt_start_msg(start_loc, source_line_column); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#155
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#105
+ def block_end_align_target(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#123
+ def check_block_alignment(start_node, block_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#178
+ def compute_do_source_line_column(node, end_loc); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#220
+ def compute_start_col(ancestor_node, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#119
+ def disqualified_parent?(parent, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#115
+ def end_align_target?(node, parent); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#168
+ def format_message(start_loc, end_loc, do_source_line_column, error_source_line_column); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#215
+ def format_source_line_column(source_line_column); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#197
+ def loc_to_source_line_column(loc); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#136
+ def register_offense(block_node, start_loc, end_loc, do_source_line_column); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#232
+ def remove_space_before(corrector, end_pos, delta); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#95
+ def start_for_block_node(block_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#71
+RuboCop::Cop::Layout::BlockAlignment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether the end statement of a do..end block
+# is on its own line.
+#
+# @example
+# # bad
+# blah do |i|
+# foo(i) end
+#
+# # good
+# blah do |i|
+# foo(i)
+# end
+#
+# # bad
+# blah { |i|
+# foo(i) }
+#
+# # good
+# blah { |i|
+# foo(i)
+# }
+#
+# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#27
+class RuboCop::Cop::Layout::BlockEndNewline < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#33
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#33
+ def on_numblock(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#66
+ def last_heredoc_argument(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#62
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#76
+ def offense_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#49
+ def register_offense(node, offense_range); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#31
+RuboCop::Cop::Layout::BlockEndNewline::MSG = T.let(T.unsafe(nil), String)
+
+# Checks how the `when` and ``in``s of a `case` expression
+# are indented in relation to its `case` or `end` keyword.
+#
+# It will register a separate offense for each misaligned `when` and `in`.
+#
+# @example
+# # If Layout/EndAlignment is set to keyword style (default)
+# # *case* and *end* should always be aligned to same depth,
+# # and therefore *when* should always be aligned to both -
+# # regardless of configuration.
+#
+# # bad for all styles
+# case n
+# when 0
+# x * 2
+# else
+# y / 3
+# end
+#
+# case n
+# in pattern
+# x * 2
+# else
+# y / 3
+# end
+#
+# # good for all styles
+# case n
+# when 0
+# x * 2
+# else
+# y / 3
+# end
+#
+# case n
+# in pattern
+# x * 2
+# else
+# y / 3
+# end
+# @example EnforcedStyle: case (default)
+# # if EndAlignment is set to other style such as
+# # start_of_line (as shown below), then *when* alignment
+# # configuration does have an effect.
+#
+# # bad
+# a = case n
+# when 0
+# x * 2
+# else
+# y / 3
+# end
+#
+# a = case n
+# in pattern
+# x * 2
+# else
+# y / 3
+# end
+#
+# # good
+# a = case n
+# when 0
+# x * 2
+# else
+# y / 3
+# end
+#
+# a = case n
+# in pattern
+# x * 2
+# else
+# y / 3
+# end
+# @example EnforcedStyle: end
+# # bad
+# a = case n
+# when 0
+# x * 2
+# else
+# y / 3
+# end
+#
+# a = case n
+# in pattern
+# x * 2
+# else
+# y / 3
+# end
+#
+# # good
+# a = case n
+# when 0
+# x * 2
+# else
+# y / 3
+# end
+#
+# a = case n
+# in pattern
+# x * 2
+# else
+# y / 3
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#112
+class RuboCop::Cop::Layout::CaseIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#120
+ def on_case(case_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#127
+ def on_case_match(case_match_node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#193
+ def base_column(case_node, base); end
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#150
+ def check_when(when_node, branch_type); end
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#182
+ def detect_incorrect_style(when_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#136
+ def end_and_last_conditional_same_line?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#146
+ def enforced_style_end?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#169
+ def incorrect_style(when_node, branch_type); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#161
+ def indent_one_step?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#165
+ def indentation_width; end
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#207
+ def replacement(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#200
+ def whitespace_range(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#118
+RuboCop::Cop::Layout::CaseIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks if the code style follows the ExpectedOrder configuration:
+#
+# `Categories` allows us to map macro names into a category.
+#
+# Consider an example of code style that covers the following order:
+#
+# * Module inclusion (include, prepend, extend)
+# * Constants
+# * Associations (has_one, has_many)
+# * Public attribute macros (attr_accessor, attr_writer, attr_reader)
+# * Other macros (validates, validate)
+# * Public class methods
+# * Initializer
+# * Public instance methods
+# * Protected attribute macros (attr_accessor, attr_writer, attr_reader)
+# * Protected instance methods
+# * Private attribute macros (attr_accessor, attr_writer, attr_reader)
+# * Private instance methods
+#
+# You can configure the following order:
+#
+# [source,yaml]
+# ----
+# Layout/ClassStructure:
+# ExpectedOrder:
+# - module_inclusion
+# - constants
+# - association
+# - public_attribute_macros
+# - public_delegate
+# - macros
+# - public_class_methods
+# - initializer
+# - public_methods
+# - protected_attribute_macros
+# - protected_methods
+# - private_attribute_macros
+# - private_delegate
+# - private_methods
+# ----
+#
+# Instead of putting all literals in the expected order, is also
+# possible to group categories of macros. Visibility levels are handled
+# automatically.
+#
+# [source,yaml]
+# ----
+# Layout/ClassStructure:
+# Categories:
+# association:
+# - has_many
+# - has_one
+# attribute_macros:
+# - attr_accessor
+# - attr_reader
+# - attr_writer
+# macros:
+# - validates
+# - validate
+# module_inclusion:
+# - include
+# - prepend
+# - extend
+# ----
+#
+# @example
+# # bad
+# # Expect extend be before constant
+# class Person < ApplicationRecord
+# has_many :orders
+# ANSWER = 42
+#
+# extend SomeModule
+# include AnotherModule
+# end
+#
+# # good
+# class Person
+# # extend and include go first
+# extend SomeModule
+# include AnotherModule
+#
+# # inner classes
+# CustomError = Class.new(StandardError)
+#
+# # constants are next
+# SOME_CONSTANT = 20
+#
+# # afterwards we have public attribute macros
+# attr_reader :name
+#
+# # followed by other macros (if any)
+# validates :name
+#
+# # then we have public delegate macros
+# delegate :to_s, to: :name
+#
+# # public class methods are next in line
+# def self.some_method
+# end
+#
+# # initialization goes between class methods and instance methods
+# def initialize
+# end
+#
+# # followed by other public instance methods
+# def some_method
+# end
+#
+# # protected attribute macros and methods go next
+# protected
+#
+# attr_reader :protected_name
+#
+# def some_protected_method
+# end
+#
+# # private attribute macros, delegate macros and methods
+# # are grouped near the end
+# private
+#
+# attr_reader :private_name
+#
+# delegate :some_private_delegate, to: :name
+#
+# def some_private_method
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#142
+class RuboCop::Cop::Layout::ClassStructure < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::VisibilityHelp
+ include ::RuboCop::Cop::CommentsHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # Validates code style on class declaration.
+ # Add offense when find a node out of expected order.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#158
+ def on_class(class_node); end
+
+ # Validates code style on class declaration.
+ # Add offense when find a node out of expected order.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#158
+ def on_sclass(class_node); end
+
+ private
+
+ # Autocorrect by swapping between two nodes autocorrecting them
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#174
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#305
+ def begin_pos_with_comment(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#328
+ def buffer; end
+
+ # Setting categories hash allow you to group methods in group to match
+ # in the {expected_order}.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#340
+ def categories; end
+
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#234
+ def class_elements(class_node); end
+
+ # Classifies a node to match with something in the {expected_order}
+ #
+ # @param node to be analysed
+ # @return String when the node type is a `:block` then
+ # {classify} recursively with the first children
+ # @return String when the node type is a `:send` then {find_category}
+ # by method name
+ # @return String otherwise trying to {humanize_node} of the current node
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#194
+ def classify(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#271
+ def dynamic_constant?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#295
+ def end_position_for(node); end
+
+ # Load expected order from `ExpectedOrder` config.
+ # Define new terms in the expected order by adding new {categories}.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#334
+ def expected_order; end
+
+ # Categorize a node according to the {expected_order}
+ # Try to match {categories} values against the node's method_name given
+ # also its visibility.
+ #
+ # @param node to be analysed.
+ # @return [String] with the key category or the `method_name` as string
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#212
+ def find_category(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#324
+ def find_heredoc(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#262
+ def humanize_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#246
+ def ignore?(node, classification); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#253
+ def ignore_for_autocorrect?(node, sibling); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#289
+ def marked_as_private_constant?(node, name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#279
+ def private_constant?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#320
+ def start_line_position(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#225
+ def walk_over_nested_class_definition(class_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/class_structure.rb#316
+ def whole_line_comment_at_line?(line); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#147
+RuboCop::Cop::Layout::ClassStructure::HUMANIZED_NODE_TYPE = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#154
+RuboCop::Cop::Layout::ClassStructure::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of here document closings.
+#
+# @example
+#
+# # bad
+# class Foo
+# def bar
+# <<~SQL
+# 'Hi'
+# SQL
+# end
+# end
+#
+# # good
+# class Foo
+# def bar
+# <<~SQL
+# 'Hi'
+# SQL
+# end
+# end
+#
+# # bad
+#
+# # heredoc contents is before closing heredoc.
+# foo arg,
+# <<~EOS
+# Hi
+# EOS
+#
+# # good
+# foo arg,
+# <<~EOS
+# Hi
+# EOS
+#
+# # good
+# foo arg,
+# <<~EOS
+# Hi
+# EOS
+#
+# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#48
+class RuboCop::Cop::Layout::ClosingHeredocIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Heredoc
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#57
+ def on_heredoc(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#74
+ def argument_indentation_correct?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#82
+ def closing_indentation(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#101
+ def find_node_used_heredoc_argument(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#90
+ def heredoc_closing(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#86
+ def heredoc_opening(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#117
+ def indent_level(source_line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#94
+ def indented_end(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#109
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#70
+ def opening_indentation(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#53
+RuboCop::Cop::Layout::ClosingHeredocIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#54
+RuboCop::Cop::Layout::ClosingHeredocIndentation::MSG_ARG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#52
+RuboCop::Cop::Layout::ClosingHeredocIndentation::SIMPLE_HEREDOC = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of hanging closing parentheses in
+# method calls, method definitions, and grouped expressions. A hanging
+# closing parenthesis means `)` preceded by a line break.
+#
+# @example
+#
+# # bad
+# some_method(
+# a,
+# b
+# )
+#
+# some_method(
+# a, b
+# )
+#
+# some_method(a, b, c
+# )
+#
+# some_method(a,
+# b,
+# c
+# )
+#
+# some_method(a,
+# x: 1,
+# y: 2
+# )
+#
+# # Scenario 1: When First Parameter Is On Its Own Line
+#
+# # good: when first param is on a new line, right paren is *always*
+# # outdented by IndentationWidth
+# some_method(
+# a,
+# b
+# )
+#
+# # good
+# some_method(
+# a, b
+# )
+#
+# # Scenario 2: When First Parameter Is On The Same Line
+#
+# # good: when all other params are also on the same line, outdent
+# # right paren by IndentationWidth
+# some_method(a, b, c
+# )
+#
+# # good: when all other params are on multiple lines, but are lined
+# # up, align right paren with left paren
+# some_method(a,
+# b,
+# c
+# )
+#
+# # good: when other params are not lined up on multiple lines, outdent
+# # right paren by IndentationWidth
+# some_method(a,
+# x: 1,
+# y: 2
+# )
+#
+# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#71
+class RuboCop::Cop::Layout::ClosingParenthesisIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#84
+ def on_begin(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#79
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#88
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#88
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#79
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#157
+ def all_elements_aligned?(elements); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#95
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#99
+ def check(node, elements); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#107
+ def check_for_elements(node, elements); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#125
+ def check_for_no_elements(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#171
+ def correct_column_candidates(node, left_paren); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#144
+ def expected_column(left_paren, elements); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#167
+ def first_argument_line(elements); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#187
+ def line_break_after_left_paren?(left_paren, elements); end
+
+ # source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#179
+ def message(correct_column, left_paren, right_paren); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#77
+RuboCop::Cop::Layout::ClosingParenthesisIndentation::MSG_ALIGN = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#75
+RuboCop::Cop::Layout::ClosingParenthesisIndentation::MSG_INDENT = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of comments.
+#
+# @example
+# # bad
+# # comment here
+# def method_name
+# end
+#
+# # comment here
+# a = 'hello'
+#
+# # yet another comment
+# if true
+# true
+# end
+#
+# # good
+# # comment here
+# def method_name
+# end
+#
+# # comment here
+# a = 'hello'
+#
+# # yet another comment
+# if true
+# true
+# end
+# @example AllowForAlignment: false (default)
+# # bad
+# a = 1 # A really long comment
+# # spanning two lines.
+#
+# # good
+# # A really long comment spanning one line.
+# a = 1
+# @example AllowForAlignment: true
+# # good
+# a = 1 # A really long comment
+# # spanning two lines.
+#
+# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#48
+class RuboCop::Cop::Layout::CommentIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#55
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#61
+ def autocorrect(corrector, comment); end
+
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#88
+ def autocorrect_one(corrector, comment); end
+
+ # Corrects all comment lines that occur immediately before the given
+ # comment and have the same indentation. This is to avoid a long chain
+ # of correcting, saving the file, parsing and inspecting again, and
+ # then correcting one more line, and so on.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#71
+ def autocorrect_preceding_comments(corrector, comment); end
+
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#92
+ def check(comment, comment_index); end
+
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#145
+ def correct_indentation(next_line); end
+
+ # Returns true if:
+ # a) the cop is configured to allow extra indentation for alignment, and
+ # b) the currently inspected comment is aligned with the nearest preceding end-of-line
+ # comment.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#121
+ def correctly_aligned_with_preceding_comment?(comment_index, column); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#156
+ def less_indented?(line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#140
+ def line_after_comment(comment); end
+
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#131
+ def message(column, correct_comment_indentation); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#135
+ def own_line_comment?(comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#82
+ def should_correct?(preceding_comment, reference_comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#162
+ def two_alternatives?(line); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#52
+RuboCop::Cop::Layout::CommentIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for conditions that are not on the same line as
+# if/while/until.
+#
+# @example
+#
+# # bad
+#
+# if
+# some_condition
+# do_something
+# end
+# @example
+#
+# # good
+#
+# if some_condition
+# do_something
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#25
+class RuboCop::Cop::Layout::ConditionPosition < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/condition_position.rb#31
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/condition_position.rb#37
+ def on_until(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/condition_position.rb#37
+ def on_while(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/condition_position.rb#44
+ def check(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/condition_position.rb#58
+ def message(condition); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#29
+RuboCop::Cop::Layout::ConditionPosition::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether the end keywords of method definitions are
+# aligned properly.
+#
+# Two modes are supported through the EnforcedStyleAlignWith configuration
+# parameter. If it's set to `start_of_line` (which is the default), the
+# `end` shall be aligned with the start of the line where the `def`
+# keyword is. If it's set to `def`, the `end` shall be aligned with the
+# `def` keyword.
+#
+# @example EnforcedStyleAlignWith: start_of_line (default)
+# # bad
+#
+# private def foo
+# end
+#
+# # good
+#
+# private def foo
+# end
+# @example EnforcedStyleAlignWith: def
+# # bad
+#
+# private def foo
+# end
+#
+# # good
+#
+# private def foo
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#36
+class RuboCop::Cop::Layout::DefEndAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::EndKeywordAlignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#43
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#43
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#48
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#63
+ def autocorrect(corrector, node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#41
+RuboCop::Cop::Layout::DefEndAlignment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the . position in multi-line method calls.
+#
+# @example EnforcedStyle: leading (default)
+# # bad
+# something.
+# method
+#
+# # good
+# something
+# .method
+# @example EnforcedStyle: trailing
+# # bad
+# something
+# .method
+#
+# # good
+# something.
+# method
+#
+# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#25
+class RuboCop::Cop::Layout::DotPosition < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#34
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#34
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#49
+ def autocorrect(corrector, dot, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#99
+ def correct_dot_position_style?(dot_line, selector_line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#126
+ def end_range(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#122
+ def heredoc?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#114
+ def last_heredoc_line(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#95
+ def line_between?(first_line, second_line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#64
+ def message(dot); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#74
+ def proper_dot_position?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#106
+ def receiver_end_line(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#130
+ def selector_range(node); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#30
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# Checks the alignment of else keywords. Normally they should
+# be aligned with an if/unless/while/until/begin/def/rescue keyword, but there
+# are special cases when they should follow the same rules as the
+# alignment of end.
+#
+# @example
+# # bad
+# if something
+# code
+# else
+# code
+# end
+#
+# # bad
+# if something
+# code
+# elsif something
+# code
+# end
+#
+# # good
+# if something
+# code
+# else
+# code
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#32
+class RuboCop::Cop::Layout::ElseAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::EndKeywordAlignment
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::CheckAssignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#57
+ def on_case(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#63
+ def on_case_match(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#40
+ def on_if(node, base = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#51
+ def on_rescue(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#147
+ def assignment_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#71
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#106
+ def base_for_method_definition(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#80
+ def base_range_of_if(node, base); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#89
+ def base_range_of_rescue(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#131
+ def check_alignment(base_range, else_range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#115
+ def check_assignment(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#75
+ def check_nested(node, base); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#38
+RuboCop::Cop::Layout::ElseAlignment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks empty comment.
+#
+# @example
+# # bad
+#
+# #
+# class Foo
+# end
+#
+# # good
+#
+# #
+# # Description of `Foo` class.
+# #
+# class Foo
+# end
+# @example AllowBorderComment: true (default)
+# # good
+#
+# def foo
+# end
+#
+# #################
+#
+# def bar
+# end
+# @example AllowBorderComment: false
+# # bad
+#
+# def foo
+# end
+#
+# #################
+#
+# def bar
+# end
+# @example AllowMarginComment: true (default)
+# # good
+#
+# #
+# # Description of `Foo` class.
+# #
+# class Foo
+# end
+# @example AllowMarginComment: false
+# # bad
+#
+# #
+# # Description of `Foo` class.
+# #
+# class Foo
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#63
+class RuboCop::Cop::Layout::EmptyComment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#69
+ def on_new_investigation; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#131
+ def allow_border_comment?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#135
+ def allow_margin_comment?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#97
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#127
+ def comment_text(comment); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#108
+ def concat_consecutive_comments(comments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#139
+ def current_token(comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#117
+ def empty_comment_only?(comment_text); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#85
+ def investigate(comments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#143
+ def previous_token(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#67
+RuboCop::Cop::Layout::EmptyComment::MSG = T.let(T.unsafe(nil), String)
+
+# Enforces empty line after guard clause.
+#
+# This cop allows `# :nocov:` directive after guard clause because
+# SimpleCov excludes code from the coverage report by wrapping it in `# :nocov:`:
+#
+# [source,ruby]
+# ----
+# def foo
+# # :nocov:
+# return if condition
+# # :nocov:
+# bar
+# end
+# ----
+#
+# Refer to SimpleCov's documentation for more details:
+# https://github.com/simplecov-ruby/simplecov#ignoringskipping-code
+#
+# @example
+#
+# # bad
+# def foo
+# return if need_return?
+# bar
+# end
+#
+# # good
+# def foo
+# return if need_return?
+#
+# bar
+# end
+#
+# # good
+# def foo
+# return if something?
+# return if something_different?
+#
+# bar
+# end
+#
+# # also good
+# def foo
+# if something?
+# do_something
+# return if need_return?
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#54
+class RuboCop::Cop::Layout::EmptyLineAfterGuardClause < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+ extend ::RuboCop::PathUtil
+ extend ::RuboCop::Cop::Util
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#63
+ def on_if(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#84
+ def autocorrect(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#106
+ def contains_guard_clause?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#99
+ def correct_style?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#181
+ def heredoc?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#174
+ def heredoc_line(node, heredoc_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#148
+ def last_heredoc_argument(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#162
+ def last_heredoc_argument_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#199
+ def multiple_statements_on_line?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#121
+ def next_line_allowed_directive_comment?(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#117
+ def next_line_empty?(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#110
+ def next_line_empty_or_allowed_directive_comment?(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#127
+ def next_line_rescue_or_ensure?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#141
+ def next_sibling_empty_or_guard_clause?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#132
+ def next_sibling_parent_empty_or_else?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#191
+ def offense_location(node); end
+
+ # SimpleCov excludes code from the coverage report by wrapping it in `# :nocov:`:
+ # https://github.com/simplecov-ruby/simplecov#ignoringskipping-code
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#208
+ def simplecov_directive_comment?(comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#185
+ def use_heredoc_in_condition?(condition); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#60
+RuboCop::Cop::Layout::EmptyLineAfterGuardClause::END_OF_HEREDOC_LINE = T.let(T.unsafe(nil), Integer)
+
+# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#59
+RuboCop::Cop::Layout::EmptyLineAfterGuardClause::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#61
+RuboCop::Cop::Layout::EmptyLineAfterGuardClause::SIMPLE_DIRECTIVE_COMMENT_PATTERN = T.let(T.unsafe(nil), Regexp)
+
+# Checks for a newline after the final magic comment.
+#
+# @example
+# # good
+# # frozen_string_literal: true
+#
+# # Some documentation for Person
+# class Person
+# # Some code
+# end
+#
+# # bad
+# # frozen_string_literal: true
+# # Some documentation for Person
+# class Person
+# # Some code
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#23
+class RuboCop::Cop::Layout::EmptyLineAfterMagicComment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#29
+ def on_new_investigation; end
+
+ private
+
+ # Find the last magic comment in the source file.
+ #
+ # Take all comments that precede the first line of code, select the
+ # magic comments, and return the last magic comment in the file.
+ #
+ # @return [Parser::Source::Comment] if magic comments exist before code
+ # @return [nil] otherwise
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#54
+ def last_magic_comment(source); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#43
+ def offending_range(last_magic_comment); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#27
+RuboCop::Cop::Layout::EmptyLineAfterMagicComment::MSG = T.let(T.unsafe(nil), String)
+
+# Enforces empty line after multiline condition.
+#
+# @example
+# # bad
+# if multiline &&
+# condition
+# do_something
+# end
+#
+# # good
+# if multiline &&
+# condition
+#
+# do_something
+# end
+#
+# # bad
+# case x
+# when foo,
+# bar
+# do_something
+# end
+#
+# # good
+# case x
+# when foo,
+# bar
+#
+# do_something
+# end
+#
+# # bad
+# begin
+# do_something
+# rescue FooError,
+# BarError
+# handle_error
+# end
+#
+# # good
+# begin
+# do_something
+# rescue FooError,
+# BarError
+#
+# handle_error
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#54
+class RuboCop::Cop::Layout::EmptyLineAfterMultilineCondition < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#82
+ def on_case(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#60
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#93
+ def on_rescue(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#70
+ def on_until(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#75
+ def on_until_post(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#70
+ def on_while(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#75
+ def on_while_post(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#127
+ def autocorrect(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#105
+ def check_condition(condition); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#120
+ def multiline_rescue_exceptions?(exception_nodes); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#116
+ def multiline_when_condition?(when_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#112
+ def next_line_empty?(line); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#58
+RuboCop::Cop::Layout::EmptyLineAfterMultilineCondition::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether class/module/method definitions are
+# separated by one or more empty lines.
+#
+# `NumberOfEmptyLines` can be an integer (default is 1) or
+# an array (e.g. [1, 2]) to specify a minimum and maximum
+# number of empty lines permitted.
+#
+# `AllowAdjacentOneLineDefs` configures whether adjacent
+# one-line definitions are considered an offense.
+#
+# @example EmptyLineBetweenMethodDefs: true (default)
+# # checks for empty lines between method definitions.
+#
+# # bad
+# def a
+# end
+# def b
+# end
+# @example
+#
+# # good
+# def a
+# end
+#
+# def b
+# end
+# @example EmptyLineBetweenClassDefs: true (default)
+# # checks for empty lines between class definitions.
+#
+# # bad
+# class A
+# end
+# class B
+# end
+# def b
+# end
+# @example
+#
+# # good
+# class A
+# end
+#
+# class B
+# end
+#
+# def b
+# end
+# @example EmptyLineBetweenModuleDefs: true (default)
+# # checks for empty lines between module definitions.
+#
+# # bad
+# module A
+# end
+# module B
+# end
+# def b
+# end
+# @example
+#
+# # good
+# module A
+# end
+#
+# module B
+# end
+#
+# def b
+# end
+# @example AllowAdjacentOneLineDefs: true (default)
+#
+# # good
+# class ErrorA < BaseError; end
+# class ErrorB < BaseError; end
+# class ErrorC < BaseError; end
+#
+# # good
+# class ErrorA < BaseError; end
+#
+# class ErrorB < BaseError; end
+#
+# class ErrorC < BaseError; end
+# @example AllowAdjacentOneLineDefs: false
+#
+# # bad
+# class ErrorA < BaseError; end
+# class ErrorB < BaseError; end
+# class ErrorC < BaseError; end
+#
+# # good
+# class ErrorA < BaseError; end
+#
+# class ErrorB < BaseError; end
+#
+# class ErrorC < BaseError; end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#108
+class RuboCop::Cop::Layout::EmptyLineBetweenDefs < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#145
+ def autocorrect(corrector, prev_def, node, count); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#130
+ def check_defs(nodes); end
+
+ # We operate on `begin` nodes, instead of using `OnMethodDef`,
+ # so that we can walk over pairs of consecutive nodes and
+ # efficiently access a node's predecessor; #prev_node ends up
+ # doing a linear scan over siblings, so we don't want to call
+ # it on each def.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#123
+ def on_begin(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#290
+ def allowance_range?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#274
+ def autocorrect_insert_lines(corrector, newline_pos, count); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#267
+ def autocorrect_remove_lines(corrector, newline_pos, count); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#227
+ def blank_lines_count_between(first_def_node, second_def_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#171
+ def candidate?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#191
+ def class_candidate?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#255
+ def def_end(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#163
+ def def_location(correction_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#247
+ def def_start(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#178
+ def empty_line_between_macros; end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#259
+ def end_loc(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#205
+ def expected_lines; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#223
+ def line_count_allowed?(count); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#239
+ def lines_between_defs(first_def_node, second_def_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#182
+ def macro_candidate?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#235
+ def maximum_empty_lines; end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#199
+ def message(node, count: T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#187
+ def method_candidate?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#231
+ def minimum_empty_lines; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#195
+ def module_candidate?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#214
+ def multiple_blank_lines_groups?(first_def_node, second_def_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#281
+ def node_type(node); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#114
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#112
+RuboCop::Cop::Layout::EmptyLineBetweenDefs::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for two or more consecutive blank lines.
+#
+# @example
+#
+# # bad - It has two empty lines.
+# some_method
+# # one empty line
+# # two empty lines
+# some_method
+#
+# # good
+# some_method
+# # one empty line
+# some_method
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#21
+class RuboCop::Cop::Layout::EmptyLines < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#28
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#45
+ def each_extra_empty_line(lines); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#63
+ def exceeds_line_offset?(line_diff); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#67
+ def previous_and_current_lines_empty?(line); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#26
+RuboCop::Cop::Layout::EmptyLines::LINE_OFFSET = T.let(T.unsafe(nil), Integer)
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#25
+RuboCop::Cop::Layout::EmptyLines::MSG = T.let(T.unsafe(nil), String)
+
+# Access modifiers should be surrounded by blank lines.
+#
+# @example EnforcedStyle: around (default)
+#
+# # bad
+# class Foo
+# def bar; end
+# private
+# def baz; end
+# end
+#
+# # good
+# class Foo
+# def bar; end
+#
+# private
+#
+# def baz; end
+# end
+# @example EnforcedStyle: only_before
+#
+# # bad
+# class Foo
+# def bar; end
+# private
+# def baz; end
+# end
+#
+# # good
+# class Foo
+# def bar; end
+#
+# private
+# def baz; end
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#43
+class RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # @return [EmptyLinesAroundAccessModifier] a new instance of EmptyLinesAroundAccessModifier
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#56
+ def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#81
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#62
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#71
+ def on_module(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#81
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#76
+ def on_sclass(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#87
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#115
+ def allowed_only_before_style?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#164
+ def block_start?(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#170
+ def body_end?(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#158
+ def class_def?(line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#124
+ def correct_next_line_if_denied_style(corrector, node, line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#154
+ def empty_lines_around?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#104
+ def expected_empty_lines?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#180
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#189
+ def message_for_around_style(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#199
+ def message_for_only_before_style(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#176
+ def next_empty_line_range(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#148
+ def next_line_empty?(last_send_line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#141
+ def previous_line_empty?(send_line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#137
+ def previous_line_ignoring_comments(processed_source, send_line); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#48
+RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::MSG_AFTER = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#52
+RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::MSG_AFTER_FOR_ONLY_BEFORE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#49
+RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::MSG_BEFORE_AND_AFTER = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#51
+RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::MSG_BEFORE_FOR_ONLY_BEFORE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#54
+RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks if empty lines exist around the arguments
+# of a method invocation.
+#
+# @example
+# # bad
+# do_something(
+# foo
+#
+# )
+#
+# process(bar,
+#
+# baz: qux,
+# thud: fred)
+#
+# some_method(
+#
+# [1,2,3],
+# x: y
+# )
+#
+# # good
+# do_something(
+# foo
+# )
+#
+# process(bar,
+# baz: qux,
+# thud: fred)
+#
+# some_method(
+# [1,2,3],
+# x: y
+# )
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#41
+class RuboCop::Cop::Layout::EmptyLinesAroundArguments < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#47
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#47
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#65
+ def empty_lines(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#71
+ def extra_lines(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#93
+ def inner_lines(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#84
+ def line_numbers(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#97
+ def outer_lines(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#78
+ def processed_lines(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#61
+ def receiver_and_method_call_on_different_lines?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#45
+RuboCop::Cop::Layout::EmptyLinesAroundArguments::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for a newline after an attribute accessor or a group of them.
+# `alias` syntax and `alias_method`, `public`, `protected`, and `private` methods are allowed
+# by default. These are customizable with `AllowAliasSyntax` and `AllowedMethods` options.
+#
+# @example
+# # bad
+# attr_accessor :foo
+# def do_something
+# end
+#
+# # good
+# attr_accessor :foo
+#
+# def do_something
+# end
+#
+# # good
+# attr_accessor :foo
+# attr_reader :bar
+# attr_writer :baz
+# attr :qux
+#
+# def do_something
+# end
+# @example AllowAliasSyntax: true (default)
+# # good
+# attr_accessor :foo
+# alias :foo? :foo
+#
+# def do_something
+# end
+# @example AllowAliasSyntax: false
+# # bad
+# attr_accessor :foo
+# alias :foo? :foo
+#
+# def do_something
+# end
+#
+# # good
+# attr_accessor :foo
+#
+# alias :foo? :foo
+#
+# def do_something
+# end
+# @example AllowedMethods: ['private']
+# # good
+# attr_accessor :foo
+# private :foo
+#
+# def do_something
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#63
+class RuboCop::Cop::Layout::EmptyLinesAroundAttributeAccessor < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::AllowedMethods
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#70
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#123
+ def allow_alias?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#133
+ def allow_alias_syntax?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#127
+ def attribute_or_allowed_method?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#83
+ def autocorrect(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#107
+ def next_line_empty?(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#94
+ def next_line_empty_or_enable_directive_comment?(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#101
+ def next_line_enable_directive_comment?(line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#117
+ def next_line_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#111
+ def require_empty_line?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#68
+RuboCop::Cop::Layout::EmptyLinesAroundAttributeAccessor::MSG = T.let(T.unsafe(nil), String)
+
+# Checks if empty lines exist around the bodies of begin-end
+# blocks.
+#
+# @example
+#
+# # good
+#
+# begin
+# # ...
+# end
+#
+# # bad
+#
+# begin
+#
+# # ...
+#
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_begin_body.rb#24
+class RuboCop::Cop::Layout::EmptyLinesAroundBeginBody < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_begin_body.rb#30
+ def on_kwbegin(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_begin_body.rb#36
+ def style; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_begin_body.rb#28
+RuboCop::Cop::Layout::EmptyLinesAroundBeginBody::KIND = T.let(T.unsafe(nil), String)
+
+# Checks if empty lines around the bodies of blocks match
+# the configuration.
+#
+# @example EnforcedStyle: no_empty_lines (default)
+# # good
+#
+# foo do |bar|
+# # ...
+# end
+# @example EnforcedStyle: empty_lines
+# # good
+#
+# foo do |bar|
+#
+# # ...
+#
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_block_body.rb#24
+class RuboCop::Cop::Layout::EmptyLinesAroundBlockBody < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_block_body.rb#30
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_block_body.rb#30
+ def on_numblock(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_block_body.rb#28
+RuboCop::Cop::Layout::EmptyLinesAroundBlockBody::KIND = T.let(T.unsafe(nil), String)
+
+# Common functionality for checking if presence/absence of empty lines
+# around some kind of body matches the configuration.
+#
+# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#8
+module RuboCop::Cop::Layout::EmptyLinesAroundBody
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#20
+ def constant_definition?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#23
+ def empty_line_required?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#26
+ def check(node, body, adjusted_first_line: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#81
+ def check_beginning(style, first_line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#67
+ def check_both(style, first_line, last_line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#108
+ def check_deferred_empty_line(body); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#43
+ def check_empty_lines_except_namespace(body, first_line, last_line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#51
+ def check_empty_lines_special(body, first_line, last_line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#85
+ def check_ending(style, last_line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#98
+ def check_line(style, line, msg); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#89
+ def check_source(style, line_no, desc); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#159
+ def deferred_message(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#132
+ def first_child_requires_empty_line?(body); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#140
+ def first_empty_line_required_child(body); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#155
+ def message(type, desc); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#122
+ def namespace?(body, with_one_child: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#148
+ def previous_line_ignoring_comments(send_line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#163
+ def valid_body_style?(body); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#15
+RuboCop::Cop::Layout::EmptyLinesAroundBody::MSG_DEFERRED = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#13
+RuboCop::Cop::Layout::EmptyLinesAroundBody::MSG_EXTRA = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#14
+RuboCop::Cop::Layout::EmptyLinesAroundBody::MSG_MISSING = T.let(T.unsafe(nil), String)
+
+# Checks if empty lines around the bodies of classes match
+# the configuration.
+#
+# @example EnforcedStyle: no_empty_lines (default)
+# # good
+#
+# class Foo
+# def bar
+# # ...
+# end
+# end
+# @example EnforcedStyle: empty_lines
+# # good
+#
+# class Foo
+#
+# def bar
+# # ...
+# end
+#
+# end
+# @example EnforcedStyle: empty_lines_except_namespace
+# # good
+#
+# class Foo
+# class Bar
+#
+# # ...
+#
+# end
+# end
+# @example EnforcedStyle: empty_lines_special
+# # good
+# class Foo
+#
+# def bar; end
+#
+# end
+# @example EnforcedStyle: beginning_only
+# # good
+#
+# class Foo
+#
+# def bar
+# # ...
+# end
+# end
+# @example EnforcedStyle: ending_only
+# # good
+#
+# class Foo
+# def bar
+# # ...
+# end
+#
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_class_body.rb#67
+class RuboCop::Cop::Layout::EmptyLinesAroundClassBody < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_class_body.rb#73
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_class_body.rb#79
+ def on_sclass(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_class_body.rb#71
+RuboCop::Cop::Layout::EmptyLinesAroundClassBody::KIND = T.let(T.unsafe(nil), String)
+
+# Checks if empty lines exist around the bodies of `begin`
+# sections. This cop doesn't check empty lines at `begin` body
+# beginning/end and around method definition body.
+# `Style/EmptyLinesAroundBeginBody` or `Style/EmptyLinesAroundMethodBody`
+# can be used for this purpose.
+#
+# @example
+#
+# # good
+#
+# begin
+# do_something
+# rescue
+# do_something2
+# else
+# do_something3
+# ensure
+# do_something4
+# end
+#
+# # good
+#
+# def foo
+# do_something
+# rescue
+# do_something2
+# end
+#
+# # bad
+#
+# begin
+# do_something
+#
+# rescue
+#
+# do_something2
+#
+# else
+#
+# do_something3
+#
+# ensure
+#
+# do_something4
+# end
+#
+# # bad
+#
+# def foo
+# do_something
+#
+# rescue
+#
+# do_something2
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#61
+class RuboCop::Cop::Layout::EmptyLinesAroundExceptionHandlingKeywords < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#67
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#67
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#67
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#74
+ def on_kwbegin(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#67
+ def on_numblock(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#81
+ def check_body(body, line_of_def_or_kwbegin); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#108
+ def keyword_locations(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#125
+ def keyword_locations_in_ensure(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#121
+ def keyword_locations_in_rescue(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#96
+ def last_rescue_and_end_on_same_line(body); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#100
+ def message(location, keyword); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#104
+ def style; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#65
+RuboCop::Cop::Layout::EmptyLinesAroundExceptionHandlingKeywords::MSG = T.let(T.unsafe(nil), String)
+
+# Checks if empty lines exist around the bodies of methods.
+#
+# @example
+#
+# # good
+#
+# def foo
+# # ...
+# end
+#
+# # bad
+#
+# def bar
+#
+# # ...
+#
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#23
+class RuboCop::Cop::Layout::EmptyLinesAroundMethodBody < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#29
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#29
+ def on_defs(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#36
+ def style; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#27
+RuboCop::Cop::Layout::EmptyLinesAroundMethodBody::KIND = T.let(T.unsafe(nil), String)
+
+# Checks if empty lines around the bodies of modules match
+# the configuration.
+#
+# @example EnforcedStyle: no_empty_lines (default)
+# # good
+#
+# module Foo
+# def bar
+# # ...
+# end
+# end
+# @example EnforcedStyle: empty_lines
+# # good
+#
+# module Foo
+#
+# def bar
+# # ...
+# end
+#
+# end
+# @example EnforcedStyle: empty_lines_except_namespace
+# # good
+#
+# module Foo
+# module Bar
+#
+# # ...
+#
+# end
+# end
+# @example EnforcedStyle: empty_lines_special
+# # good
+# module Foo
+#
+# def bar; end
+#
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_module_body.rb#47
+class RuboCop::Cop::Layout::EmptyLinesAroundModuleBody < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/empty_lines_around_module_body.rb#53
+ def on_module(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_module_body.rb#51
+RuboCop::Cop::Layout::EmptyLinesAroundModuleBody::KIND = T.let(T.unsafe(nil), String)
+
+# Checks whether the end keywords are aligned properly.
+#
+# Three modes are supported through the `EnforcedStyleAlignWith`
+# configuration parameter:
+#
+# If it's set to `keyword` (which is the default), the `end`
+# shall be aligned with the start of the keyword (if, class, etc.).
+#
+# If it's set to `variable` the `end` shall be aligned with the
+# left-hand-side of the variable assignment, if there is one.
+#
+# If it's set to `start_of_line`, the `end` shall be aligned with the
+# start of the line where the matching keyword appears.
+#
+# This `Layout/EndAlignment` cop aligns with keywords (e.g. `if`, `while`, `case`)
+# by default. On the other hand, `Layout/BeginEndAlignment` cop aligns with
+# `EnforcedStyleAlignWith: start_of_line` by default due to `||= begin` tends
+# to align with the start of the line. These style can be configured by each cop.
+#
+# @example EnforcedStyleAlignWith: keyword (default)
+# # bad
+#
+# variable = if true
+# end
+#
+# # good
+#
+# variable = if true
+# end
+#
+# variable =
+# if true
+# end
+# @example EnforcedStyleAlignWith: variable
+# # bad
+#
+# variable = if true
+# end
+#
+# # good
+#
+# variable = if true
+# end
+#
+# variable =
+# if true
+# end
+# @example EnforcedStyleAlignWith: start_of_line
+# # bad
+#
+# variable = if true
+# end
+#
+# puts(if true
+# end)
+#
+# # good
+#
+# variable = if true
+# end
+#
+# puts(if true
+# end)
+#
+# variable =
+# if true
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#75
+class RuboCop::Cop::Layout::EndAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CheckAssignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::EndKeywordAlignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#105
+ def on_case(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#105
+ def on_case_match(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#81
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#93
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#89
+ def on_module(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#85
+ def on_sclass(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#101
+ def on_until(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#97
+ def on_while(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#161
+ def alignment_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#172
+ def alignment_node_for_variable_style(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#142
+ def asgn_variable_align_with(outer_node, inner_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#190
+ def assignment_or_operator_method(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#116
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#131
+ def check_asgn_alignment(outer_node, inner_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#120
+ def check_assignment(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#152
+ def check_other_alignment(node); end
+end
+
+# Checks for Windows-style line endings in the source code.
+#
+# @example EnforcedStyle: native (default)
+# # The `native` style means that CR+LF (Carriage Return + Line Feed) is
+# # enforced on Windows, and LF is enforced on other platforms.
+#
+# # bad
+# puts 'Hello' # Return character is LF on Windows.
+# puts 'Hello' # Return character is CR+LF on other than Windows.
+#
+# # good
+# puts 'Hello' # Return character is CR+LF on Windows.
+# puts 'Hello' # Return character is LF on other than Windows.
+# @example EnforcedStyle: lf
+# # The `lf` style means that LF (Line Feed) is enforced on
+# # all platforms.
+#
+# # bad
+# puts 'Hello' # Return character is CR+LF on all platforms.
+#
+# # good
+# puts 'Hello' # Return character is LF on all platforms.
+# @example EnforcedStyle: crlf
+# # The `crlf` style means that CR+LF (Carriage Return + Line Feed) is
+# # enforced on all platforms.
+#
+# # bad
+# puts 'Hello' # Return character is LF on all platforms.
+#
+# # good
+# puts 'Hello' # Return character is CR+LF on all platforms.
+#
+# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#40
+class RuboCop::Cop::Layout::EndOfLine < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#71
+ def offense_message(line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#47
+ def on_new_investigation; end
+
+ # If there is no LF on the last line, we don't care if there's no CR.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#67
+ def unimportant_missing_cr?(index, last_line, line); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#85
+ def last_line(processed_source); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#44
+RuboCop::Cop::Layout::EndOfLine::MSG_DETECTED = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#45
+RuboCop::Cop::Layout::EndOfLine::MSG_MISSING = T.let(T.unsafe(nil), String)
+
+# Checks for extra/unnecessary whitespace.
+#
+# @example
+#
+# # good if AllowForAlignment is true
+# name = "RuboCop"
+# # Some comment and an empty line
+#
+# website += "/rubocop/rubocop" unless cond
+# puts "rubocop" if debug
+#
+# # bad for any configuration
+# set_app("RuboCop")
+# website = "https://github.com/rubocop/rubocop"
+#
+# # good only if AllowBeforeTrailingComments is true
+# object.method(arg) # this is a comment
+#
+# # good even if AllowBeforeTrailingComments is false or not set
+# object.method(arg) # this is a comment
+#
+# # good with either AllowBeforeTrailingComments or AllowForAlignment
+# object.method(arg) # this is a comment
+# another_object.method(arg) # this is another comment
+# some_object.method(arg) # this is some comment
+#
+# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#31
+class RuboCop::Cop::Layout::ExtraSpacing < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::PrecedingFollowingAlignment
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#39
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#176
+ def align_column(asgn_token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#153
+ def align_equal_sign(corrector, token, align_to); end
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#143
+ def align_equal_signs(range, corrector); end
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#52
+ def aligned_locations(locs); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#109
+ def aligned_tok?(token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#165
+ def all_relevant_assignment_lines(line_number); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#185
+ def allow_for_trailing_comments?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#78
+ def check_assignment(token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#87
+ def check_other(token1, token2, ast); end
+
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#68
+ def check_tokens(ast, token1, token2); end
+
+ # @yield [range_between(start_pos, end_pos)]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#97
+ def extra_space_range(token1, token2); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#139
+ def force_equal_sign_alignment?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#117
+ def ignored_range?(ast, start_pos); end
+
+ # Returns an array of ranges that should not be reported. It's the
+ # extra spaces between the keys and values in a multiline hash,
+ # since those are handled by the Layout/HashAlignment cop.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#124
+ def ignored_ranges(ast); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#37
+RuboCop::Cop::Layout::ExtraSpacing::MSG_UNALIGNED_ASGN = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#36
+RuboCop::Cop::Layout::ExtraSpacing::MSG_UNNECESSARY = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of the first argument in a method call.
+# Arguments after the first one are checked by `Layout/ArgumentAlignment`,
+# not by this cop.
+#
+# For indenting the first parameter of method _definitions_, check out
+# `Layout/FirstParameterIndentation`.
+#
+# This cop will respect `Layout/ArgumentAlignment` and will not work when
+# `EnforcedStyle: with_fixed_indentation` is specified for `Layout/ArgumentAlignment`.
+#
+# @example
+#
+# # bad
+# some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(nested_call(
+# nested_first_param),
+# second_param)
+#
+# foo = some_method(
+# nested_call(
+# nested_first_param),
+# second_param)
+#
+# some_method nested_call(
+# nested_first_param),
+# second_param
+# @example EnforcedStyle: special_for_inner_method_call_in_parentheses (default)
+# # Same as `special_for_inner_method_call` except that the special rule
+# # only applies if the outer method call encloses its arguments in
+# # parentheses.
+#
+# # good
+# some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(nested_call(
+# nested_first_param),
+# second_param)
+#
+# foo = some_method(
+# nested_call(
+# nested_first_param),
+# second_param)
+#
+# some_method nested_call(
+# nested_first_param),
+# second_param
+# @example EnforcedStyle: consistent
+# # The first argument should always be indented one step more than the
+# # preceding line.
+#
+# # good
+# some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(nested_call(
+# nested_first_param),
+# second_param)
+#
+# foo = some_method(
+# nested_call(
+# nested_first_param),
+# second_param)
+#
+# some_method nested_call(
+# nested_first_param),
+# second_param
+# @example EnforcedStyle: consistent_relative_to_receiver
+# # The first argument should always be indented one level relative to
+# # the parent that is receiving the argument
+#
+# # good
+# some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(nested_call(
+# nested_first_param),
+# second_param)
+#
+# foo = some_method(
+# nested_call(
+# nested_first_param),
+# second_param)
+#
+# some_method nested_call(
+# nested_first_param),
+# second_params
+# @example EnforcedStyle: special_for_inner_method_call
+# # The first argument should normally be indented one step more than
+# # the preceding line, but if it's a argument for a method call that
+# # is itself a argument in a method call, then the inner argument
+# # should be indented relative to the inner method.
+#
+# # good
+# some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(
+# first_param,
+# second_param)
+#
+# foo = some_method(nested_call(
+# nested_first_param),
+# second_param)
+#
+# foo = some_method(
+# nested_call(
+# nested_first_param),
+# second_param)
+#
+# some_method nested_call(
+# nested_first_param),
+# second_param
+#
+# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#147
+class RuboCop::Cop::Layout::FirstArgumentIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#222
+ def eligible_method_call?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#155
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#155
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#155
+ def on_super(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#281
+ def argument_alignment_config; end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#174
+ def autocorrect(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#178
+ def bare_operator?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#198
+ def base_indentation(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#226
+ def base_range(send_node, arg_node); end
+
+ # Returns the column of the given range. For single line ranges, this
+ # is simple. For ranges with line breaks, we look a the last code line.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#238
+ def column_of(range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#259
+ def comment_lines; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#277
+ def enable_layout_first_method_argument_line_break?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#271
+ def enforce_first_argument_with_fixed_indentation?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#182
+ def message(arg_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#267
+ def on_new_investigation; end
+
+ # Takes the line number of a given code line and returns a string
+ # containing the previous line that's not a comment line or a blank
+ # line.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#250
+ def previous_code_line(line_number); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#170
+ def should_check?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#206
+ def special_inner_call_indentation?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#153
+RuboCop::Cop::Layout::FirstArgumentIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of the first element in an array literal
+# where the opening bracket and the first element are on separate lines.
+# The other elements' indentations are handled by the ArrayAlignment cop.
+#
+# By default, array literals that are arguments in a method call with
+# parentheses, and where the opening square bracket of the array is on the
+# same line as the opening parenthesis of the method call, shall have
+# their first element indented one step (two spaces) more than the
+# position inside the opening parenthesis.
+#
+# Other array literals shall have their first element indented one step
+# more than the start of the line where the opening square bracket is.
+#
+# This default style is called 'special_inside_parentheses'. Alternative
+# styles are 'consistent' and 'align_brackets'. Here are examples:
+#
+# @example EnforcedStyle: special_inside_parentheses (default)
+# # The `special_inside_parentheses` style enforces that the first
+# # element in an array literal where the opening bracket and first
+# # element are on separate lines is indented one step (two spaces) more
+# # than the position inside the opening parenthesis.
+#
+# #bad
+# array = [
+# :value
+# ]
+# and_in_a_method_call([
+# :no_difference
+# ])
+#
+# #good
+# array = [
+# :value
+# ]
+# but_in_a_method_call([
+# :its_like_this
+# ])
+# @example EnforcedStyle: consistent
+# # The `consistent` style enforces that the first element in an array
+# # literal where the opening bracket and the first element are on
+# # separate lines is indented the same as an array literal which is not
+# # defined inside a method call.
+#
+# #bad
+# # consistent
+# array = [
+# :value
+# ]
+# but_in_a_method_call([
+# :its_like_this
+# ])
+#
+# #good
+# array = [
+# :value
+# ]
+# and_in_a_method_call([
+# :no_difference
+# ])
+# @example EnforcedStyle: align_brackets
+# # The `align_brackets` style enforces that the opening and closing
+# # brackets are indented to the same position.
+#
+# #bad
+# # align_brackets
+# and_now_for_something = [
+# :completely_different
+# ]
+#
+# #good
+# # align_brackets
+# and_now_for_something = [
+# :completely_different
+# ]
+#
+# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#82
+class RuboCop::Cop::Layout::FirstArrayElementIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::MultilineElementIndentation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#91
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#95
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#95
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#104
+ def autocorrect(corrector, node); end
+
+ # Returns the description of what the correct indentation is based on.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#142
+ def base_description(indent_base_type); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#108
+ def brace_alignment_style; end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#112
+ def check(array_node, left_parenthesis); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#126
+ def check_right_bracket(right_bracket, first_elem, left_bracket, left_parenthesis); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#155
+ def message(base_description); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#163
+ def message_for_right_bracket(indent_base_type); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#88
+RuboCop::Cop::Layout::FirstArrayElementIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for a line break before the first element in a
+# multi-line array.
+#
+# @example
+#
+# # bad
+# [ :a,
+# :b]
+#
+# # good
+# [
+# :a,
+# :b]
+#
+# # good
+# [:a, :b]
+# @example AllowMultilineFinalElement: false (default)
+#
+# # bad
+# [ :a, {
+# :b => :c
+# }]
+#
+# # good
+# [
+# :a, {
+# :b => :c
+# }]
+# @example AllowMultilineFinalElement: true
+#
+# # good
+# [:a, {
+# :b => :c
+# }]
+#
+# source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#43
+class RuboCop::Cop::Layout::FirstArrayElementLineBreak < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::FirstElementLineBreak
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#49
+ def on_array(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#57
+ def assignment_on_same_line?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#62
+ def ignore_last_element?; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#47
+RuboCop::Cop::Layout::FirstArrayElementLineBreak::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of the first key in a hash literal
+# where the opening brace and the first key are on separate lines. The
+# other keys' indentations are handled by the HashAlignment cop.
+#
+# By default, Hash literals that are arguments in a method call with
+# parentheses, and where the opening curly brace of the hash is on the
+# same line as the opening parenthesis of the method call, shall have
+# their first key indented one step (two spaces) more than the position
+# inside the opening parenthesis.
+#
+# Other hash literals shall have their first key indented one step more
+# than the start of the line where the opening curly brace is.
+#
+# This default style is called 'special_inside_parentheses'. Alternative
+# styles are 'consistent' and 'align_braces'. Here are examples:
+#
+# @example EnforcedStyle: special_inside_parentheses (default)
+# # The `special_inside_parentheses` style enforces that the first key
+# # in a hash literal where the opening brace and the first key are on
+# # separate lines is indented one step (two spaces) more than the
+# # position inside the opening parentheses.
+#
+# # bad
+# hash = {
+# key: :value
+# }
+# and_in_a_method_call({
+# no: :difference
+# })
+# takes_multi_pairs_hash(x: {
+# a: 1,
+# b: 2
+# },
+# y: {
+# c: 1,
+# d: 2
+# })
+#
+# # good
+# special_inside_parentheses
+# hash = {
+# key: :value
+# }
+# but_in_a_method_call({
+# its_like: :this
+# })
+# takes_multi_pairs_hash(x: {
+# a: 1,
+# b: 2
+# },
+# y: {
+# c: 1,
+# d: 2
+# })
+# @example EnforcedStyle: consistent
+# # The `consistent` style enforces that the first key in a hash
+# # literal where the opening brace and the first key are on
+# # separate lines is indented the same as a hash literal which is not
+# # defined inside a method call.
+#
+# # bad
+# hash = {
+# key: :value
+# }
+# but_in_a_method_call({
+# its_like: :this
+# })
+#
+# # good
+# hash = {
+# key: :value
+# }
+# and_in_a_method_call({
+# no: :difference
+# })
+# @example EnforcedStyle: align_braces
+# # The `align_brackets` style enforces that the opening and closing
+# # braces are indented to the same position.
+#
+# # bad
+# and_now_for_something = {
+# completely: :different
+# }
+# takes_multi_pairs_hash(x: {
+# a: 1,
+# b: 2
+# },
+# y: {
+# c: 1,
+# d: 2
+# })
+#
+# # good
+# and_now_for_something = {
+# completely: :different
+# }
+# takes_multi_pairs_hash(x: {
+# a: 1,
+# b: 2
+# },
+# y: {
+# c: 1,
+# d: 2
+# })
+#
+# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#113
+class RuboCop::Cop::Layout::FirstHashElementIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::MultilineElementIndentation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#126
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#122
+ def on_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#126
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#233
+ def argument_alignment_config; end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#137
+ def autocorrect(corrector, node); end
+
+ # Returns the description of what the correct indentation is based on.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#191
+ def base_description(indent_base_type); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#141
+ def brace_alignment_style; end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#145
+ def check(hash_node, left_parenthesis); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#184
+ def check_based_on_longest_key(hash_node, left_brace, left_parenthesis); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#164
+ def check_right_brace(right_brace, first_pair, left_brace, left_parenthesis); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#227
+ def enforce_first_argument_with_fixed_indentation?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#204
+ def message(base_description); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#212
+ def message_for_right_brace(indent_base_type); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#178
+ def separator_style?(first_pair); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#119
+RuboCop::Cop::Layout::FirstHashElementIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for a line break before the first element in a
+# multi-line hash.
+#
+# @example
+#
+# # bad
+# { a: 1,
+# b: 2}
+#
+# # good
+# {
+# a: 1,
+# b: 2 }
+#
+# # good
+# {
+# a: 1, b: {
+# c: 3
+# }}
+# @example AllowMultilineFinalElement: false (default)
+#
+# # bad
+# { a: 1, b: {
+# c: 3
+# }}
+# @example AllowMultilineFinalElement: true
+#
+# # bad
+# { a: 1,
+# b: {
+# c: 3
+# }}
+#
+# # good
+# { a: 1, b: {
+# c: 3
+# }}
+#
+# source://rubocop//lib/rubocop/cop/layout/first_hash_element_line_break.rb#46
+class RuboCop::Cop::Layout::FirstHashElementLineBreak < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::FirstElementLineBreak
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_line_break.rb#52
+ def on_hash(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_hash_element_line_break.rb#62
+ def ignore_last_element?; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/first_hash_element_line_break.rb#50
+RuboCop::Cop::Layout::FirstHashElementLineBreak::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for a line break before the first argument in a
+# multi-line method call.
+#
+# @example
+#
+# # bad
+# method(foo, bar,
+# baz)
+#
+# # good
+# method(
+# foo, bar,
+# baz)
+#
+# # ignored
+# method foo, bar,
+# baz
+# @example AllowMultilineFinalElement: false (default)
+#
+# # bad
+# method(foo, bar, {
+# baz: "a",
+# qux: "b",
+# })
+#
+# # good
+# method(
+# foo, bar, {
+# baz: "a",
+# qux: "b",
+# })
+# @example AllowMultilineFinalElement: true
+#
+# # bad
+# method(foo,
+# bar,
+# {
+# baz: "a",
+# qux: "b",
+# }
+# )
+#
+# # good
+# method(foo, bar, {
+# baz: "a",
+# qux: "b",
+# })
+#
+# # good
+# method(
+# foo,
+# bar,
+# {
+# baz: "a",
+# qux: "b",
+# }
+# )
+#
+# source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#66
+class RuboCop::Cop::Layout::FirstMethodArgumentLineBreak < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::FirstElementLineBreak
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#72
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#72
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#72
+ def on_super(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#91
+ def ignore_last_element?; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#70
+RuboCop::Cop::Layout::FirstMethodArgumentLineBreak::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for a line break before the first parameter in a
+# multi-line method parameter definition.
+#
+# @example
+#
+# # bad
+# def method(foo, bar,
+# baz)
+# do_something
+# end
+#
+# # good
+# def method(
+# foo, bar,
+# baz)
+# do_something
+# end
+#
+# # ignored
+# def method foo,
+# bar
+# do_something
+# end
+# @example AllowMultilineFinalElement: false (default)
+#
+# # bad
+# def method(foo, bar, baz = {
+# :a => "b",
+# })
+# do_something
+# end
+#
+# # good
+# def method(
+# foo, bar, baz = {
+# :a => "b",
+# })
+# do_something
+# end
+# @example AllowMultilineFinalElement: true
+#
+# # good
+# def method(foo, bar, baz = {
+# :a => "b",
+# })
+# do_something
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#56
+class RuboCop::Cop::Layout::FirstMethodParameterLineBreak < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::FirstElementLineBreak
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#62
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#62
+ def on_defs(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#69
+ def ignore_last_element?; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#60
+RuboCop::Cop::Layout::FirstMethodParameterLineBreak::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of the first parameter in a method
+# definition. Parameters after the first one are checked by
+# Layout/ParameterAlignment, not by this cop.
+#
+# For indenting the first argument of method _calls_, check out
+# Layout/FirstArgumentIndentation, which supports options related to
+# nesting that are irrelevant for method _definitions_.
+#
+# @example
+#
+# # bad
+# def some_method(
+# first_param,
+# second_param)
+# 123
+# end
+# @example EnforcedStyle: consistent (default)
+# # The first parameter should always be indented one step more than the
+# # preceding line.
+#
+# # good
+# def some_method(
+# first_param,
+# second_param)
+# 123
+# end
+# @example EnforcedStyle: align_parentheses
+# # The first parameter should always be indented one step more than the
+# # opening parenthesis.
+#
+# # good
+# def some_method(
+# first_param,
+# second_param)
+# 123
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#44
+class RuboCop::Cop::Layout::FirstParameterIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::MultilineElementIndentation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#53
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#53
+ def on_defs(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#63
+ def autocorrect(corrector, node); end
+
+ # Returns the description of what the correct indentation is based on.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#83
+ def base_description(_); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#67
+ def brace_alignment_style; end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#71
+ def check(def_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#91
+ def message(base_description); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#50
+RuboCop::Cop::Layout::FirstParameterIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Check that the keys, separators, and values of a multi-line hash
+# literal are aligned according to configuration. The configuration
+# options are:
+#
+# * key (left align keys, one space before hash rockets and values)
+# * separator (align hash rockets and colons, right align keys)
+# * table (left align keys, hash rockets, and values)
+#
+# The treatment of hashes passed as the last argument to a method call
+# can also be configured. The options are:
+#
+# * always_inspect
+# * always_ignore
+# * ignore_implicit (without curly braces)
+#
+# Alternatively you can specify multiple allowed styles. That's done by
+# passing a list of styles to EnforcedStyles.
+#
+# @example EnforcedHashRocketStyle: key (default)
+# # bad
+# {
+# :foo => bar,
+# :ba => baz
+# }
+# {
+# :foo => bar,
+# :ba => baz
+# }
+#
+# # good
+# {
+# :foo => bar,
+# :ba => baz
+# }
+# @example EnforcedHashRocketStyle: separator
+# # bad
+# {
+# :foo => bar,
+# :ba => baz
+# }
+# {
+# :foo => bar,
+# :ba => baz
+# }
+#
+# # good
+# {
+# :foo => bar,
+# :ba => baz
+# }
+# @example EnforcedHashRocketStyle: table
+# # bad
+# {
+# :foo => bar,
+# :ba => baz
+# }
+#
+# # good
+# {
+# :foo => bar,
+# :ba => baz
+# }
+# @example EnforcedColonStyle: key (default)
+# # bad
+# {
+# foo: bar,
+# ba: baz
+# }
+# {
+# foo: bar,
+# ba: baz
+# }
+#
+# # good
+# {
+# foo: bar,
+# ba: baz
+# }
+# @example EnforcedColonStyle: separator
+# # bad
+# {
+# foo: bar,
+# ba: baz
+# }
+#
+# # good
+# {
+# foo: bar,
+# ba: baz
+# }
+# @example EnforcedColonStyle: table
+# # bad
+# {
+# foo: bar,
+# ba: baz
+# }
+#
+# # good
+# {
+# foo: bar,
+# ba: baz
+# }
+# @example EnforcedLastArgumentHashStyle: always_inspect (default)
+# # Inspect both implicit and explicit hashes.
+#
+# # bad
+# do_something(foo: 1,
+# bar: 2)
+#
+# # bad
+# do_something({foo: 1,
+# bar: 2})
+#
+# # good
+# do_something(foo: 1,
+# bar: 2)
+#
+# # good
+# do_something(
+# foo: 1,
+# bar: 2
+# )
+#
+# # good
+# do_something({foo: 1,
+# bar: 2})
+#
+# # good
+# do_something({
+# foo: 1,
+# bar: 2
+# })
+# @example EnforcedLastArgumentHashStyle: always_ignore
+# # Ignore both implicit and explicit hashes.
+#
+# # good
+# do_something(foo: 1,
+# bar: 2)
+#
+# # good
+# do_something({foo: 1,
+# bar: 2})
+# @example EnforcedLastArgumentHashStyle: ignore_implicit
+# # Ignore only implicit hashes.
+#
+# # bad
+# do_something({foo: 1,
+# bar: 2})
+#
+# # good
+# do_something(foo: 1,
+# bar: 2)
+# @example EnforcedLastArgumentHashStyle: ignore_explicit
+# # Ignore only explicit hashes.
+#
+# # bad
+# do_something(foo: 1,
+# bar: 2)
+#
+# # good
+# do_something({foo: 1,
+# bar: 2})
+#
+# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#178
+class RuboCop::Cop::Layout::HashAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::HashAlignmentStyles
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # Returns the value of attribute column_deltas.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#218
+ def column_deltas; end
+
+ # Sets the attribute column_deltas
+ #
+ # @param value the value to set the attribute column_deltas to.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#218
+ def column_deltas=(_arg0); end
+
+ # Returns the value of attribute offenses_by.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#218
+ def offenses_by; end
+
+ # Sets the attribute offenses_by
+ #
+ # @param value the value to set the attribute offenses_by to.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#218
+ def offenses_by=(_arg0); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#208
+ def on_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#195
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#195
+ def on_super(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#195
+ def on_yield(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#265
+ def add_offenses; end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#371
+ def adjust(corrector, delta, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#300
+ def alignment_for(pair); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#314
+ def alignment_for_colons; end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#310
+ def alignment_for_hash_rockets; end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#390
+ def argument_alignment_config; end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#233
+ def argument_before_hash(hash_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#222
+ def autocorrect_incompatible_with_other_cops?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#283
+ def check_delta(delta, node:, alignment:); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#246
+ def check_pairs(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#337
+ def correct_key_value(corrector, delta, key, value, separator); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#333
+ def correct_no_value(corrector, key_delta, key); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#318
+ def correct_node(corrector, node, delta); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#242
+ def double_splat?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#384
+ def enforce_first_argument_with_fixed_indentation?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#380
+ def good_alignment?(column_deltas); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#291
+ def ignore_hash_argument?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#353
+ def new_alignment(key); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#273
+ def register_offenses_with_format(offenses, format); end
+
+ # source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#237
+ def reset!; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#183
+RuboCop::Cop::Layout::HashAlignment::MESSAGES = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#193
+RuboCop::Cop::Layout::HashAlignment::SEPARATOR_ALIGNMENT_STYLES = T.let(T.unsafe(nil), Array)
+
+# Checks for the placement of the closing parenthesis
+# in a method call that passes a HEREDOC string as an argument.
+# It should be placed at the end of the line containing the
+# opening HEREDOC tag.
+#
+# @example
+# # bad
+#
+# foo(<<-SQL
+# bar
+# SQL
+# )
+#
+# foo(<<-SQL, 123, <<-NOSQL,
+# bar
+# SQL
+# baz
+# NOSQL
+# )
+#
+# foo(
+# bar(<<-SQL
+# baz
+# SQL
+# ),
+# 123,
+# )
+#
+# # good
+#
+# foo(<<-SQL)
+# bar
+# SQL
+#
+# foo(<<-SQL, 123, <<-NOSQL)
+# bar
+# SQL
+# baz
+# NOSQL
+#
+# foo(
+# bar(<<-SQL),
+# baz
+# SQL
+# 123,
+# )
+#
+# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#53
+class RuboCop::Cop::Layout::HeredocArgumentClosingParenthesis < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#64
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#184
+ def add_correct_closing_paren(node, corrector); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#271
+ def add_correct_external_trailing_comma(node, corrector); end
+
+ # Autocorrection note:
+ #
+ # Commas are a bit tricky to handle when the method call is
+ # embedded in another expression. Here's an example:
+ #
+ # [
+ # first_array_value,
+ # foo(<<-SQL, 123, 456,
+ # SELECT * FROM db
+ # SQL
+ # ),
+ # third_array_value,
+ # ]
+ #
+ # The "internal" trailing comma is after `456`.
+ # The "external" trailing comma is after `)`.
+ #
+ # To autocorrect, we remove the latter, and move the former up:
+ #
+ # [
+ # first_array_value,
+ # foo(<<-SQL, 123, 456),
+ # SELECT * FROM db
+ # SQL
+ # third_array_value,
+ # ]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#107
+ def autocorrect(corrector, node); end
+
+ # Closing parenthesis helpers.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#162
+ def end_keyword_before_closing_parenthesis?(parenthesized_send_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#222
+ def exist_argument_between_heredoc_end_and_closing_parentheses?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#289
+ def external_trailing_comma?(node); end
+
+ # Returns nil if no trailing external comma.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#294
+ def external_trailing_comma_offset_from_loc_end(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#137
+ def extract_heredoc(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#133
+ def extract_heredoc_argument(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#230
+ def find_most_bottom_of_heredoc_end(arguments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#179
+ def fix_closing_parenthesis(node, corrector); end
+
+ # External trailing comma helpers.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#266
+ def fix_external_trailing_comma(node, corrector); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#149
+ def heredoc_node?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#197
+ def incorrect_parenthesis_removal_begin(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#213
+ def incorrect_parenthesis_removal_end(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#244
+ def internal_trailing_comma?(node); end
+
+ # Returns nil if no trailing internal comma.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#249
+ def internal_trailing_comma_offset_from_last_arg(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#115
+ def outermost_send_on_same_line(heredoc); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#188
+ def remove_incorrect_closing_paren(node, corrector); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#277
+ def remove_incorrect_external_trailing_comma(node, corrector); end
+
+ # Internal trailing comma helpers.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#238
+ def remove_internal_trailing_comma(node, corrector); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#207
+ def safe_to_remove_line_containing_closing_paren?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#126
+ def send_missing_closing_parens?(parent, child, heredoc); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#153
+ def single_line_send_with_heredoc_receiver?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#305
+ def space?(pos); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#168
+ def subsequent_closing_parentheses_in_same_line?(outermost_send); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#60
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#57
+RuboCop::Cop::Layout::HeredocArgumentClosingParenthesis::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of the here document bodies. The bodies
+# are indented one step.
+#
+# Note: When ``Layout/LineLength``'s `AllowHeredoc` is false (not default),
+# this cop does not add any offenses for long here documents to
+# avoid `Layout/LineLength`'s offenses.
+#
+# @example
+# # bad
+# <<-RUBY
+# something
+# RUBY
+#
+# # good
+# <<~RUBY
+# something
+# RUBY
+#
+# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#24
+class RuboCop::Cop::Layout::HeredocIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::Heredoc
+ extend ::RuboCop::Cop::AutoCorrector
+ extend ::RuboCop::Cop::TargetRubyVersion
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#36
+ def on_heredoc(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#120
+ def adjust_minus(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#115
+ def adjust_squiggly(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#144
+ def base_indent_level(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#155
+ def heredoc_body(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#159
+ def heredoc_end(node); end
+
+ # Returns '~', '-' or nil
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#151
+ def heredoc_indent_type(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#126
+ def indented_body(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#133
+ def indented_end(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#91
+ def line_too_long?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#103
+ def longest_line(lines); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#111
+ def max_line_length; end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#69
+ def message(heredoc_indent_type); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#57
+ def register_offense(node, heredoc_indent_type); end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#79
+ def type_message(indentation_width, current_indent_type); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#107
+ def unlimited_heredoc_length?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#87
+ def width_message(indentation_width); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#32
+RuboCop::Cop::Layout::HeredocIndentation::TYPE_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#34
+RuboCop::Cop::Layout::HeredocIndentation::WIDTH_MSG = T.let(T.unsafe(nil), String)
+
+# Checks for inconsistent indentation.
+#
+# The difference between `indented_internal_methods` and `normal` is
+# that the `indented_internal_methods` style prescribes that in
+# classes and modules the `protected` and `private` modifier keywords
+# shall be indented the same as public methods and that protected and
+# private members shall be indented one step more than the modifiers.
+# Other than that, both styles mean that entities on the same logical
+# depth shall have the same indentation.
+#
+# @example EnforcedStyle: normal (default)
+# # bad
+# class A
+# def test
+# puts 'hello'
+# puts 'world'
+# end
+# end
+#
+# # bad
+# class A
+# def test
+# puts 'hello'
+# puts 'world'
+# end
+#
+# protected
+#
+# def foo
+# end
+#
+# private
+#
+# def bar
+# end
+# end
+#
+# # good
+# class A
+# def test
+# puts 'hello'
+# puts 'world'
+# end
+# end
+#
+# # good
+# class A
+# def test
+# puts 'hello'
+# puts 'world'
+# end
+#
+# protected
+#
+# def foo
+# end
+#
+# private
+#
+# def bar
+# end
+# end
+# @example EnforcedStyle: indented_internal_methods
+# # bad
+# class A
+# def test
+# puts 'hello'
+# puts 'world'
+# end
+# end
+#
+# # bad
+# class A
+# def test
+# puts 'hello'
+# puts 'world'
+# end
+#
+# protected
+#
+# def foo
+# end
+#
+# private
+#
+# def bar
+# end
+# end
+#
+# # good
+# class A
+# def test
+# puts 'hello'
+# puts 'world'
+# end
+# end
+#
+# # good
+# class A
+# def test
+# puts 'hello'
+# puts 'world'
+# end
+#
+# protected
+#
+# def foo
+# end
+#
+# private
+#
+# def bar
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#121
+class RuboCop::Cop::Layout::IndentationConsistency < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#128
+ def on_begin(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#132
+ def on_kwbegin(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#138
+ def autocorrect(corrector, node); end
+
+ # Not all nodes define `bare_access_modifier?` (for example,
+ # `RuboCop::AST::DefNode` does not), so we must check `send_type?` first
+ # to avoid a NoMethodError.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#145
+ def bare_access_modifier?(node); end
+
+ # Returns an integer representing the correct indentation, or nil to
+ # indicate that the correct indentation is that of the first child that
+ # is not an access modifier.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#152
+ def base_column_for_normal_style(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#172
+ def check(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#187
+ def check_indented_internal_methods_style(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#180
+ def check_normal_style(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#126
+RuboCop::Cop::Layout::IndentationConsistency::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that the indentation method is consistent.
+# Either tabs only or spaces only are used for indentation.
+#
+# @example EnforcedStyle: spaces (default)
+# # bad
+# # This example uses a tab to indent bar.
+# def foo
+# bar
+# end
+#
+# # good
+# # This example uses spaces to indent bar.
+# def foo
+# bar
+# end
+# @example EnforcedStyle: tabs
+# # bad
+# # This example uses spaces to indent bar.
+# def foo
+# bar
+# end
+#
+# # good
+# # This example uses a tab to indent bar.
+# def foo
+# bar
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#34
+class RuboCop::Cop::Layout::IndentationStyle < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#42
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#58
+ def autocorrect(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#82
+ def autocorrect_lambda_for_spaces(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#77
+ def autocorrect_lambda_for_tabs(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#66
+ def find_offense(line, lineno); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#88
+ def in_string_literal?(ranges, tabs_range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#109
+ def message(_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#92
+ def string_literal_ranges(ast); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#40
+RuboCop::Cop::Layout::IndentationStyle::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for indentation that doesn't use the specified number
+# of spaces.
+#
+# See also the IndentationConsistency cop which is the companion to this
+# one.
+#
+# @example
+# # bad
+# class A
+# def test
+# puts 'hello'
+# end
+# end
+#
+# # good
+# class A
+# def test
+# puts 'hello'
+# end
+# end
+# @example AllowedPatterns: ['^\s*module']
+# # bad
+# module A
+# class B
+# def test
+# puts 'hello'
+# end
+# end
+# end
+#
+# # good
+# module A
+# class B
+# def test
+# puts 'hello'
+# end
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#45
+class RuboCop::Cop::Layout::IndentationWidth < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::EndKeywordAlignment
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::CheckAssignment
+ include ::RuboCop::Cop::AllowedPattern
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#57
+ def access_modifier?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#81
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#138
+ def on_case(case_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#146
+ def on_case_match(case_match); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#95
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#104
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#121
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#121
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#66
+ def on_ensure(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#66
+ def on_for(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#156
+ def on_if(node, base = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#73
+ def on_kwbegin(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#95
+ def on_module(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#81
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#66
+ def on_resbody(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#61
+ def on_rescue(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#95
+ def on_sclass(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#104
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#128
+ def on_until(node, base = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#128
+ def on_while(node, base = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#227
+ def access_modifier_indentation_style; end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#165
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#235
+ def check_assignment(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#255
+ def check_if(node, body, else_clause, base_loc); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#268
+ def check_indentation(base_loc, body_node, style = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#169
+ def check_members(base, members); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#193
+ def check_members_for_indented_internal_methods_style(members); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#199
+ def check_members_for_normal_style(base, members); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#341
+ def check_rescue?(rescue_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#377
+ def configured_indentation_width; end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#207
+ def each_member(members); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#231
+ def indentation_consistency_style; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#323
+ def indentation_to_check?(base_loc, body_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#219
+ def indented_internal_methods_style?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#381
+ def leftmost_modifier_of(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#302
+ def message(configured_indentation_width, indentation, name); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#360
+ def offending_range(body_node, indentation); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#278
+ def offense(body_node, indentation, style); end
+
+ # Returns true if the given node is within another node that has
+ # already been marked for autocorrection by this cop.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#313
+ def other_offense_in_same_range?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#181
+ def select_check_member(member); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#345
+ def skip_check?(base_loc, body_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#223
+ def special_modifier?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#368
+ def starts_with_access_modifier?(body_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#53
+RuboCop::Cop::Layout::IndentationWidth::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for indentation of the first non-blank non-comment
+# line in a file.
+#
+# @example
+# # bad
+# class A
+# def foo; end
+# end
+#
+# # good
+# class A
+# def foo; end
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#20
+class RuboCop::Cop::Layout::InitialIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#26
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#36
+ def first_token; end
+
+ # @yield [range_between(space_range.begin_pos, token.begin_pos)]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#40
+ def space_before(token); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#24
+RuboCop::Cop::Layout::InitialIndentation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether comments have a leading space after the
+# `#` denoting the start of the comment. The leading space is not
+# required for some RDoc special syntax, like `#++`, `#--`,
+# `#:nodoc`, `=begin`- and `=end` comments, "shebang" directives,
+# or rackup options.
+#
+# @example
+#
+# # bad
+# #Some comment
+#
+# # good
+# # Some comment
+# @example AllowDoxygenCommentStyle: false (default)
+#
+# # bad
+#
+# #**
+# # Some comment
+# # Another line of comment
+# #*
+# @example AllowDoxygenCommentStyle: true
+#
+# # good
+#
+# #**
+# # Some comment
+# # Another line of comment
+# #*
+# @example AllowGemfileRubyComment: false (default)
+#
+# # bad
+#
+# #ruby=2.7.0
+# #ruby-gemset=myproject
+# @example AllowGemfileRubyComment: true
+#
+# # good
+#
+# #ruby=2.7.0
+# #ruby-gemset=myproject
+#
+# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#52
+class RuboCop::Cop::Layout::LeadingCommentSpace < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#58
+ def on_new_investigation; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#95
+ def allow_doxygen_comment?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#103
+ def allow_gemfile_ruby_comment?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#79
+ def allowed_on_first_line?(comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#99
+ def doxygen_comment_style?(comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#107
+ def gemfile?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#115
+ def gemfile_ruby_comment?(comment); end
+
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#75
+ def hash_mark(expr); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#91
+ def rackup_config_file?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#87
+ def rackup_options?(comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#111
+ def ruby_comment_in_gemfile?(comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#83
+ def shebang?(comment); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#56
+RuboCop::Cop::Layout::LeadingCommentSpace::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for unnecessary leading blank lines at the beginning
+# of a file.
+#
+# @example
+#
+# # bad
+# # (start of file)
+#
+# class Foo
+# end
+#
+# # bad
+# # (start of file)
+#
+# # a comment
+#
+# # good
+# # (start of file)
+# class Foo
+# end
+#
+# # good
+# # (start of file)
+# # a comment
+#
+# source://rubocop//lib/rubocop/cop/layout/leading_empty_lines.rb#30
+class RuboCop::Cop::Layout::LeadingEmptyLines < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/leading_empty_lines.rb#35
+ def on_new_investigation; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/leading_empty_lines.rb#33
+RuboCop::Cop::Layout::LeadingEmptyLines::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that strings broken over multiple lines (by a backslash) contain
+# trailing spaces instead of leading spaces (default) or leading spaces
+# instead of trailing spaces.
+#
+# @example EnforcedStyle: trailing (default)
+# # bad
+# 'this text contains a lot of' \
+# ' spaces'
+#
+# # good
+# 'this text contains a lot of ' \
+# 'spaces'
+#
+# # bad
+# 'this text is too' \
+# ' long'
+#
+# # good
+# 'this text is too ' \
+# 'long'
+# @example EnforcedStyle: leading
+# # bad
+# 'this text contains a lot of ' \
+# 'spaces'
+#
+# # good
+# 'this text contains a lot of' \
+# ' spaces'
+#
+# # bad
+# 'this text is too ' \
+# 'long'
+#
+# # good
+# 'this text is too' \
+# ' long'
+#
+# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#43
+class RuboCop::Cop::Layout::LineContinuationLeadingSpace < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#54
+ def on_dstr(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#113
+ def autocorrect(corrector, offense_range, insert_pos, spaces); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#106
+ def continuation?(line, line_num, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#138
+ def enforced_style_leading?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#76
+ def investigate(first_line, second_line, end_of_first_line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#84
+ def investigate_leading_style(first_line, second_line, end_of_first_line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#95
+ def investigate_trailing_style(first_line, second_line, end_of_first_line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#118
+ def leading_offense_range(end_of_first_line, matches); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#130
+ def message(_range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#72
+ def raw_lines(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#124
+ def trailing_offense_range(end_of_first_line, matches); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#49
+RuboCop::Cop::Layout::LineContinuationLeadingSpace::LEADING_STYLE_OFFENSE = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#47
+RuboCop::Cop::Layout::LineContinuationLeadingSpace::LINE_1_ENDING = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#48
+RuboCop::Cop::Layout::LineContinuationLeadingSpace::LINE_2_BEGINNING = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#50
+RuboCop::Cop::Layout::LineContinuationLeadingSpace::TRAILING_STYLE_OFFENSE = T.let(T.unsafe(nil), Regexp)
+
+# Checks that the backslash of a line continuation is separated from
+# preceding text by exactly one space (default) or zero spaces.
+#
+# @example EnforcedStyle: space (default)
+# # bad
+# 'a'\
+# 'b' \
+# 'c'
+#
+# # good
+# 'a' \
+# 'b' \
+# 'c'
+# @example EnforcedStyle: no_space
+# # bad
+# 'a' \
+# 'b' \
+# 'c'
+#
+# # good
+# 'a'\
+# 'b'\
+# 'c'
+#
+# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#30
+class RuboCop::Cop::Layout::LineContinuationSpacing < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#34
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#81
+ def autocorrect(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#111
+ def comment_ranges(comments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#65
+ def find_offensive_spacing(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#121
+ def ignore_range?(backtick_range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#91
+ def ignored_literal_ranges(ast); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#125
+ def ignored_ranges; end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#49
+ def investigate(line, line_number); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#115
+ def last_line(processed_source); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#73
+ def message(_range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#130
+ def no_space_style?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#134
+ def space_style?; end
+end
+
+# Checks the indentation of the next line after a line that ends with a string
+# literal and a backslash.
+#
+# If `EnforcedStyle: aligned` is set, the concatenated string parts shall be aligned with the
+# first part. There are some exceptions, such as implicit return values, where the
+# concatenated string parts shall be indented regardless of `EnforcedStyle` configuration.
+#
+# If `EnforcedStyle: indented` is set, it's the second line that shall be indented one step
+# more than the first line. Lines 3 and forward shall be aligned with line 2.
+#
+# @example
+# # bad
+# def some_method
+# 'x' \
+# 'y' \
+# 'z'
+# end
+#
+# my_hash = {
+# first: 'a message' \
+# 'in two parts'
+# }
+#
+# # good
+# def some_method
+# 'x' \
+# 'y' \
+# 'z'
+# end
+# @example EnforcedStyle: aligned (default)
+# # bad
+# puts 'x' \
+# 'y'
+#
+# my_hash = {
+# first: 'a message' \
+# 'in two parts'
+# }
+#
+# # good
+# puts 'x' \
+# 'y'
+#
+# my_hash = {
+# first: 'a message' \
+# 'in two parts'
+# }
+# @example EnforcedStyle: indented
+# # bad
+# result = 'x' \
+# 'y'
+#
+# my_hash = {
+# first: 'a message' \
+# 'in two parts'
+# }
+#
+# # good
+# result = 'x' \
+# 'y'
+#
+# my_hash = {
+# first: 'a message' \
+# 'in two parts'
+# }
+#
+# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#74
+class RuboCop::Cop::Layout::LineEndStringConcatenationIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#97
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#83
+ def on_dstr(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#137
+ def add_offense_and_correction(node, message); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#109
+ def always_indented?(dstr_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#128
+ def base_column(child); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#113
+ def check_aligned(children, start_index); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#122
+ def check_indented(children); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#103
+ def strings_concatenated_with_backslash?(dstr_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#79
+RuboCop::Cop::Layout::LineEndStringConcatenationIndentation::MSG_ALIGN = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#80
+RuboCop::Cop::Layout::LineEndStringConcatenationIndentation::MSG_INDENT = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#81
+RuboCop::Cop::Layout::LineEndStringConcatenationIndentation::PARENT_TYPES_FOR_INDENTED = T.let(T.unsafe(nil), Array)
+
+# Checks the length of lines in the source code.
+# The maximum length is configurable.
+# The tab size is configured in the `IndentationWidth`
+# of the `Layout/IndentationStyle` cop.
+# It also ignores a shebang line by default.
+#
+# This cop has some autocorrection capabilities.
+# It can programmatically shorten certain long lines by
+# inserting line breaks into expressions that can be safely
+# split across lines. These include arrays, hashes, and
+# method calls with argument lists.
+#
+# If autocorrection is enabled, the following Layout cops
+# are recommended to further format the broken lines.
+# (Many of these are enabled by default.)
+#
+# * ArgumentAlignment
+# * ArrayAlignment
+# * BlockAlignment
+# * BlockDelimiters
+# * BlockEndNewline
+# * ClosingParenthesisIndentation
+# * FirstArgumentIndentation
+# * FirstArrayElementIndentation
+# * FirstHashElementIndentation
+# * FirstParameterIndentation
+# * HashAlignment
+# * IndentationWidth
+# * MultilineArrayLineBreaks
+# * MultilineBlockLayout
+# * MultilineHashBraceLayout
+# * MultilineHashKeyLineBreaks
+# * MultilineMethodArgumentLineBreaks
+# * MultilineMethodParameterLineBreaks
+# * ParameterAlignment
+#
+# Together, these cops will pretty print hashes, arrays,
+# method calls, etc. For example, let's say the max columns
+# is 25:
+#
+# @example
+#
+# # bad
+# {foo: "0000000000", bar: "0000000000", baz: "0000000000"}
+#
+# # good
+# {foo: "0000000000",
+# bar: "0000000000", baz: "0000000000"}
+#
+# # good (with recommended cops enabled)
+# {
+# foo: "0000000000",
+# bar: "0000000000",
+# baz: "0000000000",
+# }
+#
+# source://rubocop//lib/rubocop/cop/layout/line_length.rb#63
+class RuboCop::Cop::Layout::LineLength < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CheckLineBreakable
+ include ::RuboCop::Cop::AllowedPattern
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::LineLengthHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
+ def max=(value); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#74
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
+ def on_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#94
+ def on_investigation_end; end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#88
+ def on_new_investigation; end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#74
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
+ def on_potential_breakable_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#219
+ def allow_heredoc?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#223
+ def allowed_heredoc; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#183
+ def allowed_line?(line, line_index); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#135
+ def breakable_block_range(block_node); end
+
+ # Returns the value of attribute breakable_range.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#102
+ def breakable_range; end
+
+ # Sets the attribute breakable_range
+ #
+ # @param value the value to set the attribute breakable_range to.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#102
+ def breakable_range=(_arg0); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#143
+ def breakable_range_after_semicolon(semicolon_token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#156
+ def breakable_range_by_line_index; end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#250
+ def check_directive_line(line, line_index); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#125
+ def check_for_breakable_block(block_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#104
+ def check_for_breakable_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#117
+ def check_for_breakable_semicolons(processed_source); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#171
+ def check_line(line, line_index); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#267
+ def check_uri_line(line, line_index); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#204
+ def excess_range(uri_range, line, line_index); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#227
+ def extract_heredocs(ast); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#160
+ def heredocs; end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#164
+ def highlight_start(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#246
+ def line_in_heredoc?(line_number); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#237
+ def line_in_permitted_heredoc?(line_number); end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#215
+ def max; end
+
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#193
+ def register_offense(loc, line, line_index, length: T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/line_length.rb#189
+ def shebang?(line, line_index); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/line_length.rb#72
+RuboCop::Cop::Layout::LineLength::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that the closing brace in an array literal is either
+# on the same line as the last array element or on a new line.
+#
+# When using the `symmetrical` (default) style:
+#
+# If an array's opening brace is on the same line as the first element
+# of the array, then the closing brace should be on the same line as
+# the last element of the array.
+#
+# If an array's opening brace is on the line above the first element
+# of the array, then the closing brace should be on the line below
+# the last element of the array.
+#
+# When using the `new_line` style:
+#
+# The closing brace of a multi-line array literal must be on the line
+# after the last element of the array.
+#
+# When using the `same_line` style:
+#
+# The closing brace of a multi-line array literal must be on the same
+# line as the last element of the array.
+#
+# @example EnforcedStyle: symmetrical (default)
+# # bad
+# [ :a,
+# :b
+# ]
+#
+# # bad
+# [
+# :a,
+# :b ]
+#
+# # good
+# [ :a,
+# :b ]
+#
+# # good
+# [
+# :a,
+# :b
+# ]
+# @example EnforcedStyle: new_line
+# # bad
+# [
+# :a,
+# :b ]
+#
+# # bad
+# [ :a,
+# :b ]
+#
+# # good
+# [ :a,
+# :b
+# ]
+#
+# # good
+# [
+# :a,
+# :b
+# ]
+# @example EnforcedStyle: same_line
+# # bad
+# [ :a,
+# :b
+# ]
+#
+# # bad
+# [
+# :a,
+# :b
+# ]
+#
+# # good
+# [
+# :a,
+# :b ]
+#
+# # good
+# [ :a,
+# :b ]
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#91
+class RuboCop::Cop::Layout::MultilineArrayBraceLayout < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::MultilineLiteralBraceLayout
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#109
+ def on_array(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#103
+RuboCop::Cop::Layout::MultilineArrayBraceLayout::ALWAYS_NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#106
+RuboCop::Cop::Layout::MultilineArrayBraceLayout::ALWAYS_SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#99
+RuboCop::Cop::Layout::MultilineArrayBraceLayout::NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#95
+RuboCop::Cop::Layout::MultilineArrayBraceLayout::SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# Ensures that each item in a multi-line array
+# starts on a separate line.
+#
+# @example
+#
+# # bad
+# [
+# a, b,
+# c
+# ]
+#
+# # good
+# [
+# a,
+# b,
+# c
+# ]
+#
+# # good
+# [
+# a,
+# b,
+# foo(
+# bar
+# )
+# ]
+# @example AllowMultilineFinalElement: false (default)
+#
+# # bad
+# [a, b, foo(
+# bar
+# )]
+# @example AllowMultilineFinalElement: true
+#
+# # good
+# [a, b, foo(
+# bar
+# )]
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_array_line_breaks.rb#47
+class RuboCop::Cop::Layout::MultilineArrayLineBreaks < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::MultilineElementLineBreaks
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_array_line_breaks.rb#53
+ def on_array(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_array_line_breaks.rb#59
+ def ignore_last_element?; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_array_line_breaks.rb#51
+RuboCop::Cop::Layout::MultilineArrayLineBreaks::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether the multiline assignments have a newline
+# after the assignment operator.
+#
+# @example EnforcedStyle: new_line (default)
+# # bad
+# foo = if expression
+# 'bar'
+# end
+#
+# # good
+# foo =
+# if expression
+# 'bar'
+# end
+#
+# # good
+# foo =
+# begin
+# compute
+# rescue => e
+# nil
+# end
+# @example EnforcedStyle: same_line
+# # good
+# foo = if expression
+# 'bar'
+# end
+# @example SupportedTypes: ['block', 'case', 'class', 'if', 'kwbegin', 'module'] (default)
+# # good
+# foo =
+# if expression
+# 'bar'
+# end
+#
+# # good
+# foo =
+# [1].map do |i|
+# i + 1
+# end
+# @example SupportedTypes: ['block']
+# # good
+# foo = if expression
+# 'bar'
+# end
+#
+# # good
+# foo =
+# [1].map do |i|
+# 'bar' * i
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#60
+class RuboCop::Cop::Layout::MultilineAssignmentLayout < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CheckAssignment
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#72
+ def check_assignment(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#81
+ def check_by_enforced_style(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#90
+ def check_new_line_offense(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#98
+ def check_same_line_offense(node, rhs); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#111
+ def supported_types; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#66
+RuboCop::Cop::Layout::MultilineAssignmentLayout::NEW_LINE_OFFENSE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#69
+RuboCop::Cop::Layout::MultilineAssignmentLayout::SAME_LINE_OFFENSE = T.let(T.unsafe(nil), String)
+
+# Checks whether the multiline do end blocks have a newline
+# after the start of the block. Additionally, it checks whether the block
+# arguments, if any, are on the same line as the start of the
+# block. Putting block arguments on separate lines, because the whole
+# line would otherwise be too long, is accepted.
+#
+# @example
+# # bad
+# blah do |i| foo(i)
+# bar(i)
+# end
+#
+# # bad
+# blah do
+# |i| foo(i)
+# bar(i)
+# end
+#
+# # good
+# blah do |i|
+# foo(i)
+# bar(i)
+# end
+#
+# # bad
+# blah { |i| foo(i)
+# bar(i)
+# }
+#
+# # good
+# blah { |i|
+# foo(i)
+# bar(i)
+# }
+#
+# # good
+# blah { |
+# long_list,
+# of_parameters,
+# that_would_not,
+# fit_on_one_line
+# |
+# foo(i)
+# bar(i)
+# }
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#51
+class RuboCop::Cop::Layout::MultilineBlockLayout < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#59
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#59
+ def on_numblock(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#98
+ def add_offense_for_expression(node, expr, msg); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#75
+ def args_on_beginning_line?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#105
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#120
+ def autocorrect_arguments(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#130
+ def autocorrect_body(corrector, node, block_body); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#142
+ def block_arg_string(node, args); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#90
+ def characters_needed_for_space_and_pipes(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#154
+ def include_trailing_comma?(args); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#79
+ def line_break_necessary_in_args?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#83
+ def needed_length_for_args(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#56
+RuboCop::Cop::Layout::MultilineBlockLayout::ARG_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#55
+RuboCop::Cop::Layout::MultilineBlockLayout::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#57
+RuboCop::Cop::Layout::MultilineBlockLayout::PIPE_SIZE = T.let(T.unsafe(nil), Integer)
+
+# Checks that the closing brace in a hash literal is either
+# on the same line as the last hash element, or a new line.
+#
+# When using the `symmetrical` (default) style:
+#
+# If a hash's opening brace is on the same line as the first element
+# of the hash, then the closing brace should be on the same line as
+# the last element of the hash.
+#
+# If a hash's opening brace is on the line above the first element
+# of the hash, then the closing brace should be on the line below
+# the last element of the hash.
+#
+# When using the `new_line` style:
+#
+# The closing brace of a multi-line hash literal must be on the line
+# after the last element of the hash.
+#
+# When using the `same_line` style:
+#
+# The closing brace of a multi-line hash literal must be on the same
+# line as the last element of the hash.
+#
+# @example EnforcedStyle: symmetrical (default)
+#
+# # bad
+# { a: 1,
+# b: 2
+# }
+# # bad
+# {
+# a: 1,
+# b: 2 }
+#
+# # good
+# { a: 1,
+# b: 2 }
+#
+# # good
+# {
+# a: 1,
+# b: 2
+# }
+# @example EnforcedStyle: new_line
+# # bad
+# {
+# a: 1,
+# b: 2 }
+#
+# # bad
+# { a: 1,
+# b: 2 }
+#
+# # good
+# { a: 1,
+# b: 2
+# }
+#
+# # good
+# {
+# a: 1,
+# b: 2
+# }
+# @example EnforcedStyle: same_line
+# # bad
+# { a: 1,
+# b: 2
+# }
+#
+# # bad
+# {
+# a: 1,
+# b: 2
+# }
+#
+# # good
+# {
+# a: 1,
+# b: 2 }
+#
+# # good
+# { a: 1,
+# b: 2 }
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#91
+class RuboCop::Cop::Layout::MultilineHashBraceLayout < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::MultilineLiteralBraceLayout
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#109
+ def on_hash(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#103
+RuboCop::Cop::Layout::MultilineHashBraceLayout::ALWAYS_NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#106
+RuboCop::Cop::Layout::MultilineHashBraceLayout::ALWAYS_SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#99
+RuboCop::Cop::Layout::MultilineHashBraceLayout::NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#95
+RuboCop::Cop::Layout::MultilineHashBraceLayout::SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# Ensures that each key in a multi-line hash
+# starts on a separate line.
+#
+# @example
+#
+# # bad
+# {
+# a: 1, b: 2,
+# c: 3
+# }
+#
+# # good
+# {
+# a: 1,
+# b: 2,
+# c: 3
+# }
+#
+# # good
+# {
+# a: 1,
+# b: {
+# c: 3,
+# }
+# }
+# @example AllowMultilineFinalElement: false (default)
+#
+# # bad
+# { a: 1, b: {
+# c: 3,
+# }}
+# @example AllowMultilineFinalElement: true
+#
+# # good
+# { a: 1, b: {
+# c: 3,
+# }}
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#46
+class RuboCop::Cop::Layout::MultilineHashKeyLineBreaks < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::MultilineElementLineBreaks
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#52
+ def on_hash(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#68
+ def ignore_last_element?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#64
+ def starts_with_curly_brace?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#50
+RuboCop::Cop::Layout::MultilineHashKeyLineBreaks::MSG = T.let(T.unsafe(nil), String)
+
+# Ensures that each argument in a multi-line method call
+# starts on a separate line.
+#
+# NOTE: This cop does not move the first argument, if you want that to
+# be on a separate line, see `Layout/FirstMethodArgumentLineBreak`.
+#
+# @example
+#
+# # bad
+# foo(a, b,
+# c
+# )
+#
+# # bad
+# foo(a, b, {
+# foo: "bar",
+# })
+#
+# # good
+# foo(
+# a,
+# b,
+# c
+# )
+#
+# # good
+# foo(a, b, c)
+# @example AllowMultilineFinalElement: false (default)
+#
+# # good
+# foo(
+# a,
+# b,
+# {
+# foo: "bar",
+# }
+# )
+# @example AllowMultilineFinalElement: true
+#
+# # good
+# foo(
+# a,
+# b,
+# {
+# foo: "bar",
+# }
+# )
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb#56
+class RuboCop::Cop::Layout::MultilineMethodArgumentLineBreaks < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::MultilineElementLineBreaks
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb#62
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb#81
+ def ignore_last_element?; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb#60
+RuboCop::Cop::Layout::MultilineMethodArgumentLineBreaks::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that the closing brace in a method call is either
+# on the same line as the last method argument, or a new line.
+#
+# When using the `symmetrical` (default) style:
+#
+# If a method call's opening brace is on the same line as the first
+# argument of the call, then the closing brace should be on the same
+# line as the last argument of the call.
+#
+# If an method call's opening brace is on the line above the first
+# argument of the call, then the closing brace should be on the line
+# below the last argument of the call.
+#
+# When using the `new_line` style:
+#
+# The closing brace of a multi-line method call must be on the line
+# after the last argument of the call.
+#
+# When using the `same_line` style:
+#
+# The closing brace of a multi-line method call must be on the same
+# line as the last argument of the call.
+#
+# @example EnforcedStyle: symmetrical (default)
+# # bad
+# foo(a,
+# b
+# )
+#
+# # bad
+# foo(
+# a,
+# b)
+#
+# # good
+# foo(a,
+# b)
+#
+# # good
+# foo(
+# a,
+# b
+# )
+# @example EnforcedStyle: new_line
+# # bad
+# foo(
+# a,
+# b)
+#
+# # bad
+# foo(a,
+# b)
+#
+# # good
+# foo(a,
+# b
+# )
+#
+# # good
+# foo(
+# a,
+# b
+# )
+# @example EnforcedStyle: same_line
+# # bad
+# foo(a,
+# b
+# )
+#
+# # bad
+# foo(
+# a,
+# b
+# )
+#
+# # good
+# foo(
+# a,
+# b)
+#
+# # good
+# foo(a,
+# b)
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#91
+class RuboCop::Cop::Layout::MultilineMethodCallBraceLayout < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::MultilineLiteralBraceLayout
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#109
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#115
+ def children(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#119
+ def ignored_literal?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#123
+ def single_line_ignoring_receiver?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#103
+RuboCop::Cop::Layout::MultilineMethodCallBraceLayout::ALWAYS_NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#106
+RuboCop::Cop::Layout::MultilineMethodCallBraceLayout::ALWAYS_SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#99
+RuboCop::Cop::Layout::MultilineMethodCallBraceLayout::NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#95
+RuboCop::Cop::Layout::MultilineMethodCallBraceLayout::SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of the method name part in method calls
+# that span more than one line.
+#
+# @example EnforcedStyle: aligned (default)
+# # bad
+# while myvariable
+# .b
+# # do something
+# end
+#
+# # good
+# while myvariable
+# .b
+# # do something
+# end
+#
+# # good
+# Thing.a
+# .b
+# .c
+# @example EnforcedStyle: indented
+# # good
+# while myvariable
+# .b
+#
+# # do something
+# end
+# @example EnforcedStyle: indented_relative_to_receiver
+# # good
+# while myvariable
+# .a
+# .b
+#
+# # do something
+# end
+#
+# # good
+# myvariable = Thing
+# .a
+# .b
+# .c
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#49
+class RuboCop::Cop::Layout::MultilineMethodCallIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::MultilineExpressionIndentation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#55
+ def validate_config; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#136
+ def align_with_base_message(rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#152
+ def alignment_base(node, rhs, given_style); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#67
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#140
+ def base_source; end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#101
+ def extra_indentation(given_style, parent); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#226
+ def find_multiline_block_chain_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#237
+ def first_call_has_a_dot(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#217
+ def get_dot_right_above(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#113
+ def message(node, lhs, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#144
+ def no_base_message(lhs, rhs, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#87
+ def offending_range(node, lhs, rhs, given_style); end
+
+ # @yield [operation_rhs.first_argument]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#247
+ def operation_rhs(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#257
+ def operator_rhs?(node, receiver); end
+
+ # a
+ # .b
+ # .c
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#193
+ def receiver_alignment_base(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#131
+ def relative_to_receiver_message(rhs); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#71
+ def relevant_node?(send_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#75
+ def right_hand_side(send_node); end
+
+ # a.b
+ # .c
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#181
+ def semantic_alignment_base(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#201
+ def semantic_alignment_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#127
+ def should_align_with_base?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#123
+ def should_indent_relative_to_receiver?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#163
+ def syntactic_alignment_base(lhs, rhs); end
+end
+
+# Checks that the closing brace in a method definition is either
+# on the same line as the last method parameter, or a new line.
+#
+# When using the `symmetrical` (default) style:
+#
+# If a method definition's opening brace is on the same line as the
+# first parameter of the definition, then the closing brace should be
+# on the same line as the last parameter of the definition.
+#
+# If an method definition's opening brace is on the line above the first
+# parameter of the definition, then the closing brace should be on the
+# line below the last parameter of the definition.
+#
+# When using the `new_line` style:
+#
+# The closing brace of a multi-line method definition must be on the line
+# after the last parameter of the definition.
+#
+# When using the `same_line` style:
+#
+# The closing brace of a multi-line method definition must be on the same
+# line as the last parameter of the definition.
+#
+# @example EnforcedStyle: symmetrical (default)
+# # bad
+# def foo(a,
+# b
+# )
+# end
+#
+# # bad
+# def foo(
+# a,
+# b)
+# end
+#
+# # good
+# def foo(a,
+# b)
+# end
+#
+# # good
+# def foo(
+# a,
+# b
+# )
+# end
+# @example EnforcedStyle: new_line
+# # bad
+# def foo(
+# a,
+# b)
+# end
+#
+# # bad
+# def foo(a,
+# b)
+# end
+#
+# # good
+# def foo(a,
+# b
+# )
+# end
+#
+# # good
+# def foo(
+# a,
+# b
+# )
+# end
+# @example EnforcedStyle: same_line
+# # bad
+# def foo(a,
+# b
+# )
+# end
+#
+# # bad
+# def foo(
+# a,
+# b
+# )
+# end
+#
+# # good
+# def foo(
+# a,
+# b)
+# end
+#
+# # good
+# def foo(a,
+# b)
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#103
+class RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::MultilineLiteralBraceLayout
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#121
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#121
+ def on_defs(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#115
+RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout::ALWAYS_NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#118
+RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout::ALWAYS_SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#111
+RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout::NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#107
+RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout::SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
+
+# Ensures that each parameter in a multi-line method definition
+# starts on a separate line.
+#
+# NOTE: This cop does not move the first argument, if you want that to
+# be on a separate line, see `Layout/FirstMethodParameterLineBreak`.
+#
+# @example
+#
+# # bad
+# def foo(a, b,
+# c
+# )
+# end
+#
+# # good
+# def foo(
+# a,
+# b,
+# c
+# )
+# end
+#
+# # good
+# def foo(
+# a,
+# b = {
+# foo: "bar",
+# }
+# )
+# end
+#
+# # good
+# def foo(a, b, c)
+# end
+# @example AllowMultilineFinalElement: false (default)
+#
+# # bad
+# def foo(a, b = {
+# foo: "bar",
+# })
+# end
+# @example AllowMultilineFinalElement: true
+#
+# # good
+# def foo(a, b = {
+# foo: "bar",
+# })
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb#57
+class RuboCop::Cop::Layout::MultilineMethodParameterLineBreaks < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::MultilineElementLineBreaks
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb#63
+ def on_def(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb#71
+ def ignore_last_element?; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb#61
+RuboCop::Cop::Layout::MultilineMethodParameterLineBreaks::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the indentation of the right hand side operand in binary operations that
+# span more than one line.
+#
+# The `aligned` style checks that operators are aligned if they are part of an `if` or `while`
+# condition, an explicit `return` statement, etc. In other contexts, the second operand should
+# be indented regardless of enforced style.
+#
+# @example EnforcedStyle: aligned (default)
+# # bad
+# if a +
+# b
+# something &&
+# something_else
+# end
+#
+# # good
+# if a +
+# b
+# something &&
+# something_else
+# end
+# @example EnforcedStyle: indented
+# # bad
+# if a +
+# b
+# something &&
+# something_else
+# end
+#
+# # good
+# if a +
+# b
+# something &&
+# something_else
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#43
+class RuboCop::Cop::Layout::MultilineOperationIndentation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::MultilineExpressionIndentation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#49
+ def on_and(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#53
+ def on_or(node); end
+
+ # @raise [ValidationError]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#57
+ def validate_config; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#68
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#78
+ def check_and_or(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#110
+ def message(node, lhs, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#84
+ def offending_range(node, lhs, rhs, given_style); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#72
+ def relevant_node?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#121
+ def right_hand_side(send_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#97
+ def should_align?(node, rhs, given_style); end
+end
+
+# Here we check if the parameters on a multi-line method call or
+# definition are aligned.
+#
+# To set the alignment of the first argument, use the cop
+# FirstParameterIndentation.
+#
+# @example EnforcedStyle: with_first_parameter (default)
+# # good
+#
+# def foo(bar,
+# baz)
+# 123
+# end
+#
+# def foo(
+# bar,
+# baz
+# )
+# 123
+# end
+#
+# # bad
+#
+# def foo(bar,
+# baz)
+# 123
+# end
+#
+# # bad
+#
+# def foo(
+# bar,
+# baz)
+# 123
+# end
+# @example EnforcedStyle: with_fixed_indentation
+# # good
+#
+# def foo(bar,
+# baz)
+# 123
+# end
+#
+# def foo(
+# bar,
+# baz
+# )
+# 123
+# end
+#
+# # bad
+#
+# def foo(bar,
+# baz)
+# 123
+# end
+#
+# # bad
+#
+# def foo(
+# bar,
+# baz)
+# 123
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#71
+class RuboCop::Cop::Layout::ParameterAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#81
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#81
+ def on_defs(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#90
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#102
+ def base_column(node, args); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#98
+ def fixed_indentation?; end
+
+ # source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#94
+ def message(_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#113
+ def target_method_lineno(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#75
+RuboCop::Cop::Layout::ParameterAlignment::ALIGN_PARAMS_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#78
+RuboCop::Cop::Layout::ParameterAlignment::FIXED_INDENT_MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether certain expressions, e.g. method calls, that could fit
+# completely on a single line, are broken up into multiple lines unnecessarily.
+#
+# @example any configuration
+# # bad
+# foo(
+# a,
+# b
+# )
+#
+# puts 'string that fits on ' \
+# 'a single line'
+#
+# things
+# .select { |thing| thing.cond? }
+# .join('-')
+#
+# # good
+# foo(a, b)
+#
+# puts 'string that fits on a single line'
+#
+# things.select { |thing| thing.cond? }.join('-')
+# @example InspectBlocks: false (default)
+# # good
+# foo(a) do |x|
+# puts x
+# end
+# @example InspectBlocks: true
+# # bad
+# foo(a) do |x|
+# puts x
+# end
+#
+# # good
+# foo(a) { |x| puts x }
+#
+# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#45
+class RuboCop::Cop::Layout::RedundantLineBreak < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CheckAssignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#51
+ def on_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#55
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#72
+ def check_assignment(node, _rhs); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#120
+ def comment_within?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#90
+ def configured_to_not_be_inspected?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#114
+ def convertible_block?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#68
+ def end_with_percent_blank_string?(processed_source); end
+
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#142
+ def max_line_length; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#85
+ def offense?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#97
+ def other_cop_takes_precedence?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#78
+ def register_offense(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#103
+ def single_line_block_chain_enabled?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#107
+ def suitable_as_single_line?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#133
+ def to_single_line(source); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#128
+ def too_long?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#49
+RuboCop::Cop::Layout::RedundantLineBreak::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether the rescue and ensure keywords are aligned
+# properly.
+#
+# @example
+#
+# # bad
+# begin
+# something
+# rescue
+# puts 'error'
+# end
+#
+# # good
+# begin
+# something
+# rescue
+# puts 'error'
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#24
+class RuboCop::Cop::Layout::RescueEnsureAlignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::EndKeywordAlignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#40
+ def on_ensure(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#44
+ def on_new_investigation; end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#36
+ def on_resbody(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#186
+ def access_modifier?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#163
+ def access_modifier_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#149
+ def aligned_with_leading_dot?(do_keyword_line, send_node_loc, rescue_keyword_column); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#136
+ def aligned_with_line_break_method?(ancestor_node, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#195
+ def alignment_location(alignment_node); end
+
+ # We will use ancestor or wrapper with access modifier.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#116
+ def alignment_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#95
+ def alignment_source(node, starting_loc); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#132
+ def ancestor_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#155
+ def assignment_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#73
+ def autocorrect(corrector, node, alignment_location); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#203
+ def begin_end_alignment_style; end
+
+ # Check alignment of node with rescue or ensure modifiers.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#57
+ def check(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#83
+ def format_message(alignment_node, alignment_loc, kw_loc); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#173
+ def modifier?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#179
+ def whitespace_range(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#34
+RuboCop::Cop::Layout::RescueEnsureAlignment::ALTERNATIVE_ACCESS_MODIFIERS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#32
+RuboCop::Cop::Layout::RescueEnsureAlignment::ANCESTOR_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#33
+RuboCop::Cop::Layout::RescueEnsureAlignment::ANCESTOR_TYPES_WITH_ACCESS_MODIFIERS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#29
+RuboCop::Cop::Layout::RescueEnsureAlignment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks if method calls are chained onto single line blocks. It considers that a
+# line break before the dot improves the readability of the code.
+#
+# @example
+# # bad
+# example.select { |item| item.cond? }.join('-')
+#
+# # good
+# example.select { |item| item.cond? }
+# .join('-')
+#
+# # good (not a concern for this cop)
+# example.select do |item|
+# item.cond?
+# end.join('-')
+#
+# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#22
+class RuboCop::Cop::Layout::SingleLineBlockChain < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#28
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#51
+ def call_method_after_block?(node, dot_range, closing_block_delimiter_line_num); end
+
+ # source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#35
+ def offending_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#57
+ def selector_range(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#26
+RuboCop::Cop::Layout::SingleLineBlockChain::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for colon (:) not followed by some kind of space.
+# N.B. this cop does not handle spaces after a ternary operator, which are
+# instead handled by Layout/SpaceAroundOperators.
+#
+# @example
+# # bad
+# def f(a:, b:2); {a:3}; end
+#
+# # good
+# def f(a:, b: 2); {a: 3}; end
+#
+# source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#16
+class RuboCop::Cop::Layout::SpaceAfterColon < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#29
+ def on_kwoptarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#21
+ def on_pair(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#43
+ def followed_by_space?(colon); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#39
+ def register_offense(colon); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#19
+RuboCop::Cop::Layout::SpaceAfterColon::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for comma (,) not followed by some kind of space.
+#
+# @example
+#
+# # bad
+# [1,2]
+# { foo:bar,}
+#
+# # good
+# [1, 2]
+# { foo:bar, }
+#
+# source://rubocop//lib/rubocop/cop/layout/space_after_comma.rb#17
+class RuboCop::Cop::Layout::SpaceAfterComma < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::SpaceAfterPunctuation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_comma.rb#26
+ def kind(token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_comma.rb#21
+ def space_style_before_rcurly; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_after_comma.rb#32
+ def before_semicolon?(token); end
+end
+
+# Checks for space between a method name and a left parenthesis in defs.
+#
+# @example
+#
+# # bad
+# def func (x) end
+# def method= (y) end
+#
+# # good
+# def func(x) end
+# def method=(y) end
+#
+# source://rubocop//lib/rubocop/cop/layout/space_after_method_name.rb#17
+class RuboCop::Cop::Layout::SpaceAfterMethodName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_method_name.rb#23
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_method_name.rb#23
+ def on_defs(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_after_method_name.rb#21
+RuboCop::Cop::Layout::SpaceAfterMethodName::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for space after `!`.
+#
+# @example
+# # bad
+# ! something
+#
+# # good
+# !something
+#
+# source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#14
+class RuboCop::Cop::Layout::SpaceAfterNot < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#21
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#33
+ def whitespace_after_operator?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#18
+RuboCop::Cop::Layout::SpaceAfterNot::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#19
+RuboCop::Cop::Layout::SpaceAfterNot::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for semicolon (;) not followed by some kind of space.
+#
+# @example
+# # bad
+# x = 1;y = 2
+#
+# # good
+# x = 1; y = 2
+#
+# source://rubocop//lib/rubocop/cop/layout/space_after_semicolon.rb#14
+class RuboCop::Cop::Layout::SpaceAfterSemicolon < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::SpaceAfterPunctuation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_semicolon.rb#23
+ def kind(token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_after_semicolon.rb#18
+ def space_style_before_rcurly; end
+end
+
+# Checks the spacing inside and after block parameters pipes. Line breaks
+# inside parameter pipes are checked by `Layout/MultilineBlockLayout` and
+# not by this cop.
+#
+# @example EnforcedStyleInsidePipes: no_space (default)
+# # bad
+# {}.each { | x, y |puts x }
+# ->( x, y ) { puts x }
+#
+# # good
+# {}.each { |x, y| puts x }
+# ->(x, y) { puts x }
+# @example EnforcedStyleInsidePipes: space
+# # bad
+# {}.each { |x, y| puts x }
+# ->(x, y) { puts x }
+#
+# # good
+# {}.each { | x, y | puts x }
+# ->( x, y ) { puts x }
+#
+# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#27
+class RuboCop::Cop::Layout::SpaceAroundBlockParameters < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#32
+ def on_block(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#65
+ def check_after_closing_pipe(arguments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#125
+ def check_arg(arg); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#103
+ def check_closing_pipe_space(arguments, closing_pipe); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#121
+ def check_each_arg(args); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#56
+ def check_inside_pipes(arguments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#150
+ def check_no_space(space_begin_pos, space_end_pos, msg); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#73
+ def check_no_space_style_inside_pipes(arguments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#92
+ def check_opening_pipe_space(arguments, opening_pipe); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#136
+ def check_space(space_begin_pos, space_end_pos, range, msg, node = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#85
+ def check_space_style_inside_pipes(arguments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#113
+ def last_end_pos_inside_pipes(arguments, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#44
+ def pipes(arguments); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#48
+ def pipes?(arguments); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#52
+ def style_parameter_name; end
+end
+
+# Checks that the equals signs in parameter default assignments
+# have or don't have surrounding space depending on configuration.
+#
+# @example EnforcedStyle: space (default)
+# # bad
+# def some_method(arg1=:default, arg2=nil, arg3=[])
+# # do something...
+# end
+#
+# # good
+# def some_method(arg1 = :default, arg2 = nil, arg3 = [])
+# # do something...
+# end
+# @example EnforcedStyle: no_space
+# # bad
+# def some_method(arg1 = :default, arg2 = nil, arg3 = [])
+# # do something...
+# end
+#
+# # good
+# def some_method(arg1=:default, arg2=nil, arg3=[])
+# # do something...
+# end
+#
+# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#30
+class RuboCop::Cop::Layout::SpaceAroundEqualsInParameterDefault < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SurroundingSpace
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#38
+ def on_optarg(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#67
+ def autocorrect(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#46
+ def check_optarg(arg, equals, value); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#58
+ def incorrect_style_detected(arg, value); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#83
+ def message(_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#79
+ def no_surrounding_space?(arg, equals); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#75
+ def space_on_both_sides?(arg, equals); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#36
+RuboCop::Cop::Layout::SpaceAroundEqualsInParameterDefault::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the spacing around the keywords.
+#
+# @example
+#
+# # bad
+# something 'test'do|x|
+# end
+#
+# while(something)
+# end
+#
+# something = 123if test
+#
+# # good
+# something 'test' do |x|
+# end
+#
+# while (something)
+# end
+#
+# something = 123 if test
+#
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#27
+class RuboCop::Cop::Layout::SpaceAroundKeyword < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#40
+ def on_and(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#44
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#48
+ def on_break(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#52
+ def on_case(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#56
+ def on_case_match(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#156
+ def on_defined?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#60
+ def on_ensure(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#64
+ def on_for(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#68
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#72
+ def on_if_guard(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#76
+ def on_in_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#80
+ def on_kwbegin(node); end
+
+ # Handle one-line pattern matching syntax (`in`) with `Parser::Ruby27`.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#85
+ def on_match_pattern(node); end
+
+ # Handle one-line pattern matching syntax (`in`) with `Parser::Ruby30`.
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#92
+ def on_match_pattern_p(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#96
+ def on_next(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#100
+ def on_or(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#104
+ def on_postexe(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#108
+ def on_preexe(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#112
+ def on_resbody(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#116
+ def on_rescue(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#120
+ def on_return(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#124
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#128
+ def on_super(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#136
+ def on_unless_guard(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#140
+ def on_until(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#144
+ def on_when(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#148
+ def on_while(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#152
+ def on_yield(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#132
+ def on_zsuper(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#235
+ def accept_left_parenthesis?(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#239
+ def accept_left_square_bracket?(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#243
+ def accept_namespace_operator?(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#228
+ def accepted_opening_delimiter?(range, char); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#162
+ def check(node, locations, begin_keyword = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#177
+ def check_begin(node, range, begin_keyword); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#183
+ def check_end(node, range, begin_keyword); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#196
+ def check_keyword(node, range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#192
+ def do?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#251
+ def namespace_operator?(range, pos); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#255
+ def preceded_by_operator?(node, _range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#247
+ def safe_navigation_call?(range, pos); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#217
+ def space_after_missing?(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#210
+ def space_before_missing?(range); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#36
+RuboCop::Cop::Layout::SpaceAroundKeyword::ACCEPT_LEFT_PAREN = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#37
+RuboCop::Cop::Layout::SpaceAroundKeyword::ACCEPT_LEFT_SQUARE_BRACKET = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#38
+RuboCop::Cop::Layout::SpaceAroundKeyword::ACCEPT_NAMESPACE_OPERATOR = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#33
+RuboCop::Cop::Layout::SpaceAroundKeyword::DO = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#31
+RuboCop::Cop::Layout::SpaceAroundKeyword::MSG_AFTER = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#30
+RuboCop::Cop::Layout::SpaceAroundKeyword::MSG_BEFORE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#35
+RuboCop::Cop::Layout::SpaceAroundKeyword::NAMESPACE_OPERATOR = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#34
+RuboCop::Cop::Layout::SpaceAroundKeyword::SAFE_NAVIGATION = T.let(T.unsafe(nil), String)
+
+# Checks method call operators to not have spaces around them.
+#
+# @example
+# # bad
+# foo. bar
+# foo .bar
+# foo . bar
+# foo. bar .buzz
+# foo
+# . bar
+# . buzz
+# foo&. bar
+# foo &.bar
+# foo &. bar
+# foo &. bar&. buzz
+# RuboCop:: Cop
+# RuboCop:: Cop:: Base
+# :: RuboCop::Cop
+#
+# # good
+# foo.bar
+# foo.bar.buzz
+# foo
+# .bar
+# .buzz
+# foo&.bar
+# foo&.bar&.buzz
+# RuboCop::Cop
+# RuboCop::Cop::Base
+# ::RuboCop::Cop
+#
+# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#37
+class RuboCop::Cop::Layout::SpaceAroundMethodCallOperator < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#53
+ def on_const(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#45
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#45
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#87
+ def check_space(begin_pos, end_pos); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#67
+ def check_space_after_dot(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#81
+ def check_space_after_double_colon(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#61
+ def check_space_before_dot(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#43
+RuboCop::Cop::Layout::SpaceAroundMethodCallOperator::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#41
+RuboCop::Cop::Layout::SpaceAroundMethodCallOperator::SPACES_REGEXP = T.let(T.unsafe(nil), Regexp)
+
+# Checks that operators have space around them, except for ** which
+# should or shouldn't have surrounding space depending on configuration.
+# It allows vertical alignment consisting of one or more whitespace
+# around operators.
+#
+# This cop has `AllowForAlignment` option. When `true`, allows most
+# uses of extra spacing if the intent is to align with an operator on
+# the previous or next line, not counting empty lines or comment lines.
+#
+# @example
+# # bad
+# total = 3*4
+# "apple"+"juice"
+# my_number = 38/4
+#
+# # good
+# total = 3 * 4
+# "apple" + "juice"
+# my_number = 38 / 4
+# @example AllowForAlignment: true (default)
+# # good
+# {
+# 1 => 2,
+# 11 => 3
+# }
+# @example AllowForAlignment: false
+# # bad
+# {
+# 1 => 2,
+# 11 => 3
+# }
+# @example EnforcedStyleForExponentOperator: no_space (default)
+# # bad
+# a ** b
+#
+# # good
+# a**b
+# @example EnforcedStyleForExponentOperator: space
+# # bad
+# a**b
+#
+# # good
+# a ** b
+#
+# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#53
+class RuboCop::Cop::Layout::SpaceAroundOperators < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::PrecedingFollowingAlignment
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::RationalLiteral
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#119
+ def on_and(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#103
+ def on_and_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#103
+ def on_assignment(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#119
+ def on_binary(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#111
+ def on_casgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#119
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#103
+ def on_cvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#103
+ def on_gvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#78
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#103
+ def on_ivasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#103
+ def on_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#103
+ def on_masgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#135
+ def on_match_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#127
+ def on_op_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#119
+ def on_or(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#103
+ def on_or_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#70
+ def on_pair(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#85
+ def on_resbody(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#66
+ def on_sclass(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#93
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#127
+ def on_special_asgn(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#238
+ def align_hash_cop_config; end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#181
+ def autocorrect(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#165
+ def check_operator(type, operator, right_operand); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#191
+ def enclose_operator_with_space(corrector, range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#218
+ def excess_leading_space?(type, operator, with_space); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#233
+ def excess_trailing_space?(right_operand, with_space); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#250
+ def force_equal_sign_alignment?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#242
+ def hash_table_style?; end
+
+ # @yield [msg]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#176
+ def offense(type, operator, with_space, right_operand); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#204
+ def offense_message(type, operator, with_space, right_operand); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#161
+ def operator_with_regular_syntax?(send_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#155
+ def regular_operator?(send_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#254
+ def should_not_have_surrounding_space?(operator); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#246
+ def space_around_exponent_operator?; end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#62
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#60
+RuboCop::Cop::Layout::SpaceAroundOperators::EXCESSIVE_SPACE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#59
+RuboCop::Cop::Layout::SpaceAroundOperators::IRREGULAR_METHODS = T.let(T.unsafe(nil), Array)
+
+# Checks that block braces have or don't have a space before the opening
+# brace depending on configuration.
+#
+# @example EnforcedStyle: space (default)
+# # bad
+# foo.map{ |a|
+# a.bar.to_s
+# }
+#
+# # good
+# foo.map { |a|
+# a.bar.to_s
+# }
+# @example EnforcedStyle: no_space
+# # bad
+# foo.map { |a|
+# a.bar.to_s
+# }
+#
+# # good
+# foo.map{ |a|
+# a.bar.to_s
+# }
+# @example EnforcedStyleForEmptyBraces: space (default)
+# # bad
+# 7.times{}
+#
+# # good
+# 7.times {}
+# @example EnforcedStyleForEmptyBraces: no_space
+# # bad
+# 7.times {}
+#
+# # good
+# 7.times{}
+#
+# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#44
+class RuboCop::Cop::Layout::SpaceBeforeBlockBraces < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#56
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#56
+ def on_numblock(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#124
+ def autocorrect(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#144
+ def block_delimiters_style; end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#83
+ def check_empty(left_brace, space_plus_brace, used_style); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#100
+ def check_non_empty(left_brace, space_plus_brace, used_style); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#140
+ def conflict_with_block_delimiters?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#148
+ def empty_braces?(loc); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#115
+ def space_detected(left_brace, space_plus_brace); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#108
+ def space_missing(left_brace); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#131
+ def style_for_empty_braces; end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#52
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#50
+RuboCop::Cop::Layout::SpaceBeforeBlockBraces::DETECTED_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#49
+RuboCop::Cop::Layout::SpaceBeforeBlockBraces::MISSING_MSG = T.let(T.unsafe(nil), String)
+
+# Checks for space between the name of a receiver and a left
+# brackets.
+#
+# @example
+#
+# # bad
+# collection [index_or_key]
+#
+# # good
+# collection[index_or_key]
+#
+# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#17
+class RuboCop::Cop::Layout::SpaceBeforeBrackets < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#24
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#48
+ def dot_before_brackets?(node, receiver_end_pos, selector_begin_pos); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#35
+ def offense_range(node, begin_pos); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#54
+ def offense_range_for_assignment(node, begin_pos); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#67
+ def reference_variable_with_brackets?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#63
+ def register_offense(range); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#21
+RuboCop::Cop::Layout::SpaceBeforeBrackets::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#22
+RuboCop::Cop::Layout::SpaceBeforeBrackets::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for comma (,) preceded by space.
+#
+# @example
+# # bad
+# [1 , 2 , 3]
+# a(1 , 2)
+# each { |a , b| }
+#
+# # good
+# [1, 2, 3]
+# a(1, 2)
+# each { |a, b| }
+#
+# source://rubocop//lib/rubocop/cop/layout/space_before_comma.rb#19
+class RuboCop::Cop::Layout::SpaceBeforeComma < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SpaceBeforePunctuation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_comma.rb#23
+ def kind(token); end
+end
+
+# Checks for missing space between a token and a comment on the
+# same line.
+#
+# @example
+# # bad
+# 1 + 1# this operation does ...
+#
+# # good
+# 1 + 1 # this operation does ...
+#
+# source://rubocop//lib/rubocop/cop/layout/space_before_comment.rb#15
+class RuboCop::Cop::Layout::SpaceBeforeComment < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_comment.rb#20
+ def on_new_investigation; end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_before_comment.rb#18
+RuboCop::Cop::Layout::SpaceBeforeComment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that exactly one space is used between a method name and the
+# first argument for method calls without parentheses.
+#
+# Alternatively, extra spaces can be added to align the argument with
+# something on a preceding or following line, if the AllowForAlignment
+# config parameter is true.
+#
+# @example
+# # bad
+# something x
+# something y, z
+# something'hello'
+#
+# # good
+# something x
+# something y, z
+# something 'hello'
+#
+# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#24
+class RuboCop::Cop::Layout::SpaceBeforeFirstArg < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::PrecedingFollowingAlignment
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#35
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#35
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#55
+ def expect_params_after_method_name?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#64
+ def no_space_between_method_name_and_first_argument?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#51
+ def regular_method_call_with_arguments?(node); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#31
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#29
+RuboCop::Cop::Layout::SpaceBeforeFirstArg::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for semicolon (;) preceded by space.
+#
+# @example
+# # bad
+# x = 1 ; y = 2
+#
+# # good
+# x = 1; y = 2
+#
+# source://rubocop//lib/rubocop/cop/layout/space_before_semicolon.rb#14
+class RuboCop::Cop::Layout::SpaceBeforeSemicolon < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SpaceBeforePunctuation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_before_semicolon.rb#18
+ def kind(token); end
+end
+
+# Checks for spaces between `->` and opening parameter
+# parenthesis (`(`) in lambda literals.
+#
+# @example EnforcedStyle: require_no_space (default)
+# # bad
+# a = -> (x, y) { x + y }
+#
+# # good
+# a = ->(x, y) { x + y }
+# @example EnforcedStyle: require_space
+# # bad
+# a = ->(x, y) { x + y }
+#
+# # good
+# a = -> (x, y) { x + y }
+#
+# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#22
+class RuboCop::Cop::Layout::SpaceInLambdaLiteral < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#30
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#50
+ def arrow_lambda_with_args?(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#72
+ def lambda_arguments(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#65
+ def range_of_offense(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#58
+ def space_after_arrow(lambda_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#54
+ def space_after_arrow?(lambda_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#28
+RuboCop::Cop::Layout::SpaceInLambdaLiteral::MSG_REQUIRE_NO_SPACE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#27
+RuboCop::Cop::Layout::SpaceInLambdaLiteral::MSG_REQUIRE_SPACE = T.let(T.unsafe(nil), String)
+
+# Checks that brackets used for array literals have or don't have
+# surrounding space depending on configuration.
+#
+# @example EnforcedStyle: no_space (default)
+# # The `no_space` style enforces that array literals have
+# # no surrounding space.
+#
+# # bad
+# array = [ a, b, c, d ]
+#
+# # good
+# array = [a, b, c, d]
+# @example EnforcedStyle: space
+# # The `space` style enforces that array literals have
+# # surrounding space.
+#
+# # bad
+# array = [a, b, c, d]
+#
+# # good
+# array = [ a, b, c, d ]
+# @example EnforcedStyle: compact
+# # The `compact` style normally requires a space inside
+# # array brackets, with the exception that successive left
+# # or right brackets are collapsed together in nested arrays.
+#
+# # bad
+# array = [ a, [ b, c ] ]
+# array = [
+# [ a ],
+# [ b, c ]
+# ]
+#
+# # good
+# array = [ a, [ b, c ]]
+# array = [[ a ],
+# [ b, c ]]
+# @example EnforcedStyleForEmptyBrackets: no_space (default)
+# # The `no_space` EnforcedStyleForEmptyBrackets style enforces that
+# # empty array brackets do not contain spaces.
+#
+# # bad
+# foo = [ ]
+# bar = [ ]
+#
+# # good
+# foo = []
+# bar = []
+# @example EnforcedStyleForEmptyBrackets: space
+# # The `space` EnforcedStyleForEmptyBrackets style enforces that
+# # empty array brackets contain exactly one space.
+#
+# # bad
+# foo = []
+# bar = [ ]
+#
+# # good
+# foo = [ ]
+# bar = [ ]
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#70
+class RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SurroundingSpace
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#78
+ def on_array(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#109
+ def array_brackets(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#95
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#217
+ def compact(corrector, bracket, side); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#203
+ def compact_corrections(corrector, node, left, right); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#195
+ def compact_offense(node, token, side: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#157
+ def compact_offenses(node, left, right, start_ok, end_ok); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#118
+ def empty_config; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#126
+ def end_has_own_line?(token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#133
+ def index_for(node, token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#141
+ def issue_offenses(node, left, right, start_ok, end_ok); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#137
+ def line_and_column_for(token); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#178
+ def multi_dimensional_array?(node, token, side: T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#189
+ def next_to_bracket?(token, side: T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#153
+ def next_to_comment?(node, token); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#122
+ def next_to_newline?(node, token); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#170
+ def qualifies_for_compact?(node, token, side: T.unsafe(nil)); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#76
+RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets::EMPTY_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#75
+RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for unnecessary additional spaces inside array percent literals
+# (i.e. %i/%w).
+#
+# Note that blank percent literals (e.g. `%i( )`) are checked by
+# `Layout/SpaceInsidePercentLiteralDelimiters`.
+#
+# @example
+#
+# # bad
+# %w(foo bar baz)
+# # good
+# %i(foo bar baz)
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#18
+class RuboCop::Cop::Layout::SpaceInsideArrayPercentLiteral < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::MatchRange
+ include ::RuboCop::Cop::PercentLiteral
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#26
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#30
+ def on_percent_literal(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#40
+ def each_unnecessary_space_match(node, &blk); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#23
+RuboCop::Cop::Layout::SpaceInsideArrayPercentLiteral::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#24
+RuboCop::Cop::Layout::SpaceInsideArrayPercentLiteral::MULTIPLE_SPACES_BETWEEN_ITEMS_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# Checks that block braces have or don't have surrounding space inside
+# them on configuration. For blocks taking parameters, it checks that the
+# left brace has or doesn't have trailing space depending on
+# configuration.
+#
+# @example EnforcedStyle: space (default)
+# # The `space` style enforces that block braces have
+# # surrounding space.
+#
+# # bad
+# some_array.each {puts e}
+#
+# # good
+# some_array.each { puts e }
+# @example EnforcedStyle: no_space
+# # The `no_space` style enforces that block braces don't
+# # have surrounding space.
+#
+# # bad
+# some_array.each { puts e }
+#
+# # good
+# some_array.each {puts e}
+# @example EnforcedStyleForEmptyBraces: no_space (default)
+# # The `no_space` EnforcedStyleForEmptyBraces style enforces that
+# # block braces don't have a space in between when empty.
+#
+# # bad
+# some_array.each { }
+# some_array.each { }
+# some_array.each { }
+#
+# # good
+# some_array.each {}
+# @example EnforcedStyleForEmptyBraces: space
+# # The `space` EnforcedStyleForEmptyBraces style enforces that
+# # block braces have at least a space in between when empty.
+#
+# # bad
+# some_array.each {}
+#
+# # good
+# some_array.each { }
+# some_array.each { }
+# some_array.each { }
+# @example SpaceBeforeBlockParameters: true (default)
+# # The SpaceBeforeBlockParameters style set to `true` enforces that
+# # there is a space between `{` and `|`. Overrides `EnforcedStyle`
+# # if there is a conflict.
+#
+# # bad
+# [1, 2, 3].each {|n| n * 2 }
+#
+# # good
+# [1, 2, 3].each { |n| n * 2 }
+# @example SpaceBeforeBlockParameters: false
+# # The SpaceBeforeBlockParameters style set to `false` enforces that
+# # there is no space between `{` and `|`. Overrides `EnforcedStyle`
+# # if there is a conflict.
+#
+# # bad
+# [1, 2, 3].each { |n| n * 2 }
+#
+# # good
+# [1, 2, 3].each {|n| n * 2 }
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#79
+class RuboCop::Cop::Layout::SpaceInsideBlockBraces < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SurroundingSpace
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#85
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#85
+ def on_numblock(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#122
+ def adjacent_braces(left_brace, right_brace); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#161
+ def aligned_braces?(inner, right_brace, column); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#130
+ def braces_with_contents_inside(node, inner); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#105
+ def check_inside(node, left_brace, right_brace); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#137
+ def check_left_brace(inner, left_brace, args_delimiter); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#145
+ def check_right_brace(node, inner, left_brace, right_brace, single_line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#165
+ def inner_last_space_count(inner); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#157
+ def multiline_block?(left_brace, right_brace); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#222
+ def no_space(begin_pos, end_pos, msg); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#169
+ def no_space_inside_left_brace(left_brace, args_delimiter); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#238
+ def offense(begin_pos, end_pos, msg, style_param = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#201
+ def pipe?(args_delimiter); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#230
+ def space(begin_pos, end_pos, msg); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#186
+ def space_inside_left_brace(left_brace, args_delimiter); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#205
+ def space_inside_right_brace(inner, right_brace, column); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#253
+ def style_for_empty_braces; end
+end
+
+# Checks that braces used for hash literals have or don't have
+# surrounding space depending on configuration.
+#
+# @example EnforcedStyle: space (default)
+# # The `space` style enforces that hash literals have
+# # surrounding space.
+#
+# # bad
+# h = {a: 1, b: 2}
+#
+# # good
+# h = { a: 1, b: 2 }
+# @example EnforcedStyle: no_space
+# # The `no_space` style enforces that hash literals have
+# # no surrounding space.
+#
+# # bad
+# h = { a: 1, b: 2 }
+#
+# # good
+# h = {a: 1, b: 2}
+# @example EnforcedStyle: compact
+# # The `compact` style normally requires a space inside
+# # hash braces, with the exception that successive left
+# # braces or right braces are collapsed together in nested hashes.
+#
+# # bad
+# h = { a: { b: 2 } }
+# foo = { { a: 1 } => { b: { c: 2 } } }
+#
+# # good
+# h = { a: { b: 2 }}
+# foo = {{ a: 1 } => { b: { c: 2 }}}
+# @example EnforcedStyleForEmptyBraces: no_space (default)
+# # The `no_space` EnforcedStyleForEmptyBraces style enforces that
+# # empty hash braces do not contain spaces.
+#
+# # bad
+# foo = { }
+# bar = { }
+# baz = {
+# }
+#
+# # good
+# foo = {}
+# bar = {}
+# baz = {}
+# @example EnforcedStyleForEmptyBraces: space
+# # The `space` EnforcedStyleForEmptyBraces style enforces that
+# # empty hash braces contain space.
+#
+# # bad
+# foo = {}
+#
+# # good
+# foo = { }
+# foo = { }
+# foo = {
+# }
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#70
+class RuboCop::Cop::Layout::SpaceInsideHashLiteralBraces < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SurroundingSpace
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#78
+ def on_hash(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#137
+ def ambiguous_or_unexpected_style_detected(style, is_match); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#129
+ def autocorrect(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#89
+ def check(token1, token2); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#184
+ def check_whitespace_only_hash(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#202
+ def enforce_no_space_style_for_empty_braces?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#104
+ def expect_space?(token1, token2); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#117
+ def incorrect_style_detected(token1, token2, expect_space, is_empty_braces); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#150
+ def message(brace, is_empty_braces, expect_space); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#145
+ def offense?(token1, expect_space); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#196
+ def range_inside_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#176
+ def range_of_space_to_the_left(range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#168
+ def range_of_space_to_the_right(range); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#160
+ def space_range(token_range); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#76
+RuboCop::Cop::Layout::SpaceInsideHashLiteralBraces::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for spaces inside ordinary round parentheses.
+#
+# @example EnforcedStyle: no_space (default)
+# # The `no_space` style enforces that parentheses do not have spaces.
+#
+# # bad
+# f( 3)
+# g = (a + 3 )
+# f( )
+#
+# # good
+# f(3)
+# g = (a + 3)
+# f()
+# @example EnforcedStyle: space
+# # The `space` style enforces that parentheses have a space at the
+# # beginning and end.
+# # Note: Empty parentheses should not have spaces.
+#
+# # bad
+# f(3)
+# g = (a + 3)
+# y( )
+#
+# # good
+# f( 3 )
+# g = ( a + 3 )
+# y()
+# @example EnforcedStyle: compact
+# # The `compact` style enforces that parentheses have a space at the
+# # beginning with the exception that successive parentheses are allowed.
+# # Note: Empty parentheses should not have spaces.
+#
+# # bad
+# f(3)
+# g = (a + 3)
+# y( )
+# g( f( x ) )
+# g( f( x( 3 ) ), 5 )
+# g( ( ( 3 + 5 ) * f) ** x, 5 )
+#
+# # good
+# f( 3 )
+# g = ( a + 3 )
+# y()
+# g( f( x ))
+# g( f( x( 3 )), 5 )
+# g((( 3 + 5 ) * f ) ** x, 5 )
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#57
+class RuboCop::Cop::Layout::SpaceInsideParens < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SurroundingSpace
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#66
+ def on_new_investigation; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#161
+ def can_be_ignored?(token1, token2); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#99
+ def correct_extraneous_space(tokens); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#115
+ def correct_extraneous_space_between_consecutive_parens(token1, token2); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#124
+ def correct_extraneous_space_in_empty_parens(token1, token2); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#135
+ def correct_missing_space(token1, token2); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#153
+ def left_parens?(token1, token2); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#149
+ def parens?(token1, token2); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#88
+ def process_with_compact_style(tokens); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#81
+ def process_with_space_style(tokens); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#157
+ def right_parens?(token1, token2); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#63
+RuboCop::Cop::Layout::SpaceInsideParens::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#64
+RuboCop::Cop::Layout::SpaceInsideParens::MSG_SPACE = T.let(T.unsafe(nil), String)
+
+# Checks for unnecessary additional spaces inside the delimiters of
+# %i/%w/%x literals.
+#
+# @example
+#
+# # bad
+# %i( foo bar baz )
+#
+# # good
+# %i(foo bar baz)
+#
+# # bad
+# %w( foo bar baz )
+#
+# # good
+# %w(foo bar baz)
+#
+# # bad
+# %x( ls -l )
+#
+# # good
+# %x(ls -l)
+#
+# # bad
+# %w( )
+# %w(
+# )
+#
+# # good
+# %w()
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#36
+class RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::MatchRange
+ include ::RuboCop::Cop::PercentLiteral
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#45
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#53
+ def on_percent_literal(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#49
+ def on_xstr(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#60
+ def add_offenses_for_blank_spaces(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#69
+ def add_offenses_for_unnecessary_spaces(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#85
+ def body_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#79
+ def regex_matches(node, &blk); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#42
+RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters::BEGIN_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#43
+RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters::END_REGEX = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#41
+RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for spaces inside range literals.
+#
+# @example
+# # bad
+# 1 .. 3
+#
+# # good
+# 1..3
+#
+# # bad
+# 'a' .. 'z'
+#
+# # good
+# 'a'..'z'
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#20
+class RuboCop::Cop::Layout::SpaceInsideRangeLiteral < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#29
+ def on_erange(node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#25
+ def on_irange(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#35
+ def check(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#23
+RuboCop::Cop::Layout::SpaceInsideRangeLiteral::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that reference brackets have or don't have
+# surrounding space depending on configuration.
+#
+# @example EnforcedStyle: no_space (default)
+# # The `no_space` style enforces that reference brackets have
+# # no surrounding space.
+#
+# # bad
+# hash[ :key ]
+# array[ index ]
+#
+# # good
+# hash[:key]
+# array[index]
+# @example EnforcedStyle: space
+# # The `space` style enforces that reference brackets have
+# # surrounding space.
+#
+# # bad
+# hash[:key]
+# array[index]
+#
+# # good
+# hash[ :key ]
+# array[ index ]
+# @example EnforcedStyleForEmptyBrackets: no_space (default)
+# # The `no_space` EnforcedStyleForEmptyBrackets style enforces that
+# # empty reference brackets do not contain spaces.
+#
+# # bad
+# foo[ ]
+# foo[ ]
+# foo[
+# ]
+#
+# # good
+# foo[]
+# @example EnforcedStyleForEmptyBrackets: space
+# # The `space` EnforcedStyleForEmptyBrackets style enforces that
+# # empty reference brackets contain exactly one space.
+#
+# # bad
+# foo[]
+# foo[ ]
+# foo[
+# ]
+#
+# # good
+# foo[ ]
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#60
+class RuboCop::Cop::Layout::SpaceInsideReferenceBrackets < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SurroundingSpace
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#70
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#92
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#121
+ def closing_bracket(tokens, opening_bracket); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#137
+ def empty_config; end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#110
+ def left_ref_bracket(node, tokens); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#132
+ def previous_token(current_token); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#104
+ def reference_brackets(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#66
+RuboCop::Cop::Layout::SpaceInsideReferenceBrackets::EMPTY_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#65
+RuboCop::Cop::Layout::SpaceInsideReferenceBrackets::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#68
+RuboCop::Cop::Layout::SpaceInsideReferenceBrackets::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for whitespace within string interpolations.
+#
+# @example EnforcedStyle: no_space (default)
+# # bad
+# var = "This is the #{ space } example"
+#
+# # good
+# var = "This is the #{no_space} example"
+# @example EnforcedStyle: space
+# # bad
+# var = "This is the #{no_space} example"
+#
+# # good
+# var = "This is the #{ space } example"
+#
+# source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#21
+class RuboCop::Cop::Layout::SpaceInsideStringInterpolation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Interpolation
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SurroundingSpace
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#31
+ def on_interpolation(begin_node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#47
+ def autocorrect(corrector, begin_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#57
+ def delimiters(begin_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#28
+RuboCop::Cop::Layout::SpaceInsideStringInterpolation::NO_SPACE_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#29
+RuboCop::Cop::Layout::SpaceInsideStringInterpolation::SPACE_MSG = T.let(T.unsafe(nil), String)
+
+# Looks for trailing blank lines and a final newline in the
+# source code.
+#
+# @example EnforcedStyle: final_newline (default)
+# # `final_newline` looks for one newline at the end of files.
+#
+# # bad
+# class Foo; end
+#
+# # EOF
+#
+# # bad
+# class Foo; end # EOF
+#
+# # good
+# class Foo; end
+# # EOF
+# @example EnforcedStyle: final_blank_line
+# # `final_blank_line` looks for one blank line followed by a new line
+# # at the end of files.
+#
+# # bad
+# class Foo; end
+# # EOF
+#
+# # bad
+# class Foo; end # EOF
+#
+# # good
+# class Foo; end
+#
+# # EOF
+#
+# source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#40
+class RuboCop::Cop::Layout::TrailingEmptyLines < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#45
+ def on_new_investigation; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#90
+ def end_with_percent_blank_string?(processed_source); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#80
+ def ends_in_end?(processed_source); end
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#94
+ def message(wanted_blank_lines, blank_lines); end
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#67
+ def offense_detected(buffer, wanted_blank_lines, blank_lines, whitespace_at_end); end
+end
+
+# Looks for trailing whitespace in the source code.
+#
+# @example
+# # The line in this example contains spaces after the 0.
+# # bad
+# x = 0
+#
+# # The line in this example ends directly after the 0.
+# # good
+# x = 0
+# @example AllowInHeredoc: false (default)
+# # The line in this example contains spaces after the 0.
+# # bad
+# code = <<~RUBY
+# x = 0
+# RUBY
+#
+# # ok
+# code = <<~RUBY
+# x = 0 #{}
+# RUBY
+#
+# # good
+# trailing_whitespace = ' '
+# code = <<~RUBY
+# x = 0#{trailing_whitespace}
+# RUBY
+# @example AllowInHeredoc: true
+# # The line in this example contains spaces after the 0.
+# # good
+# code = <<~RUBY
+# x = 0
+# RUBY
+#
+# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#42
+class RuboCop::Cop::Layout::TrailingWhitespace < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::Heredoc
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#57
+ def on_heredoc(_node); end
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#49
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#112
+ def extract_heredocs(ast); end
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#103
+ def find_heredoc(line_number); end
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#108
+ def heredocs; end
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#125
+ def offense_range(lineno, line); end
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#61
+ def process_line(line, lineno); end
+
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#75
+ def process_line_in_heredoc(corrector, range, heredoc); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#99
+ def skip_heredoc?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#95
+ def static?(heredoc); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#86
+ def whitespace_is_indentation?(range, level); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#90
+ def whitespace_only?(range); end
+end
+
+# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#47
+RuboCop::Cop::Layout::TrailingWhitespace::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#5
+module RuboCop::Cop::Legacy; end
+
+# Legacy support for Corrector#corrections
+# See https://docs.rubocop.org/rubocop/v1_upgrade_notes.html
+#
+# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#8
+class RuboCop::Cop::Legacy::CorrectionsProxy
+ # @return [CorrectionsProxy] a new instance of CorrectionsProxy
+ #
+ # source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#9
+ def initialize(corrector); end
+
+ # source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#13
+ def <<(callable); end
+
+ # source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#21
+ def concat(corrections); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#17
+ def empty?; end
+
+ protected
+
+ # Returns the value of attribute corrector.
+ #
+ # source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#31
+ def corrector; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#35
+ def suppress_clobbering; end
+end
+
+# This class handles autocorrection for code that needs to be moved
+# to new lines.
+#
+# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#7
+class RuboCop::Cop::LineBreakCorrector
+ extend ::RuboCop::Cop::Alignment
+ extend ::RuboCop::Cop::TrailingBody
+ extend ::RuboCop::PathUtil
+ extend ::RuboCop::Cop::Util
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#27
+ def break_line_before(range:, node:, corrector:, configured_width:, indent_steps: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#15
+ def correct_trailing_body(configured_width:, corrector:, node:, processed_source:); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#35
+ def move_comment(eol_comment:, node:, corrector:); end
+
+ # Returns the value of attribute processed_source.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#13
+ def processed_source; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#45
+ def remove_semicolon(node, corrector); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#51
+ def semicolon(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#58
+ def trailing_class_definition?(token, body); end
+ end
+end
+
+# Help methods for determining if a line is too long.
+#
+# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#6
+module RuboCop::Cop::LineLengthHelp
+ include ::RuboCop::Cop::Alignment
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#24
+ def allow_uri?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#28
+ def allowed_uri_position?(line, uri_range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#15
+ def directive_on_source_line?(line_index); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#72
+ def extend_uri_end_position(line, end_position); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#36
+ def find_excessive_uri_range(line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#11
+ def ignore_cop_directives?; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#59
+ def indentation_difference(line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#32
+ def line_length(line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#105
+ def line_length_without_directive(line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#51
+ def match_uris(string); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#88
+ def tab_indentation_width; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#93
+ def uri_regexp; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#98
+ def valid_uri?(uri_ish_string); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/unused_argument.rb#5
+module RuboCop::Cop::Lint; end
+
+# Checks for mistyped shorthand assignments.
+#
+# @example
+# # bad
+# x =- y
+# x =+ y
+# x =* y
+# x =! y
+#
+# # good
+# x -= y # or x = -y
+# x += y # or x = +y
+# x *= y # or x = *y
+# x != y # or x = !y
+#
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#21
+class RuboCop::Cop::Lint::AmbiguousAssignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
+ def on_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
+ def on_casgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
+ def on_cvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
+ def on_gvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
+ def on_ivasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
+ def on_lvasgn(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#44
+ def rhs(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#28
+RuboCop::Cop::Lint::AmbiguousAssignment::MISTAKES = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#24
+RuboCop::Cop::Lint::AmbiguousAssignment::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#26
+RuboCop::Cop::Lint::AmbiguousAssignment::SIMPLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
+
+# Checks for ambiguous block association with method
+# when param passed without parentheses.
+#
+# This cop can customize allowed methods with `AllowedMethods`.
+# By default, there are no methods to allowed.
+#
+# @example
+#
+# # bad
+# some_method a { |val| puts val }
+# @example
+#
+# # good
+# # With parentheses, there's no ambiguity.
+# some_method(a { |val| puts val })
+# # or (different meaning)
+# some_method(a) { |val| puts val }
+#
+# # good
+# # Operator methods require no disambiguation
+# foo == bar { |b| b.baz }
+#
+# # good
+# # Lambda arguments require no disambiguation
+# foo = ->(bar) { bar.baz }
+# @example AllowedMethods: [] (default)
+#
+# # bad
+# expect { do_something }.to change { object.attribute }
+# @example AllowedMethods: [change]
+#
+# # good
+# expect { do_something }.to change { object.attribute }
+# @example AllowedPatterns: [] (default)
+#
+# # bad
+# expect { do_something }.to change { object.attribute }
+# @example AllowedPatterns: ['change']
+#
+# # good
+# expect { do_something }.to change { object.attribute }
+# expect { do_something }.to not_change { object.attribute }
+#
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#54
+class RuboCop::Cop::Lint::AmbiguousBlockAssociation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::AllowedPattern
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#64
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#64
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#85
+ def allowed_method_pattern?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#81
+ def ambiguous_block_association?(send_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#91
+ def message(send_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#97
+ def wrap_in_parentheses(corrector, node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#60
+RuboCop::Cop::Lint::AmbiguousBlockAssociation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for ambiguous operators in the first argument of a
+# method invocation without parentheses.
+#
+# @example
+#
+# # bad
+#
+# # The `*` is interpreted as a splat operator but it could possibly be
+# # a `*` method invocation (i.e. `do_something.*(some_array)`).
+# do_something *some_array
+# @example
+#
+# # good
+#
+# # With parentheses, there's no ambiguity.
+# do_something(*some_array)
+#
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#23
+class RuboCop::Cop::Lint::AmbiguousOperator < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#45
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#64
+ def find_offense_node_by(diagnostic); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#82
+ def message(diagnostic); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#92
+ def offense_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#88
+ def offense_position?(node, diagnostic); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#101
+ def unary_operator?(node, diagnostic); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#41
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#26
+RuboCop::Cop::Lint::AmbiguousOperator::AMBIGUITIES = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#36
+RuboCop::Cop::Lint::AmbiguousOperator::MSG_FORMAT = T.let(T.unsafe(nil), String)
+
+# Looks for expressions containing multiple binary operators
+# where precedence is ambiguous due to lack of parentheses. For example,
+# in `1 + 2 * 3`, the multiplication will happen before the addition, but
+# lexically it appears that the addition will happen first.
+#
+# The cop does not consider unary operators (ie. `!a` or `-b`) or comparison
+# operators (ie. `a =~ b`) because those are not ambiguous.
+#
+# NOTE: Ranges are handled by `Lint/AmbiguousRange`.
+#
+# @example
+# # bad
+# a + b * c
+# a || b && c
+# a ** b + c
+#
+# # good (different precedence)
+# a + (b * c)
+# a || (b && c)
+# (a ** b) + c
+#
+# # good (same precedence)
+# a + b + c
+# a * b / c % d
+#
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#30
+class RuboCop::Cop::Lint::AmbiguousOperatorPrecedence < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#54
+ def on_and(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#47
+ def on_new_investigation; end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#65
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#105
+ def autocorrect(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#89
+ def greater_precedence?(node1, node2); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#85
+ def operator?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#97
+ def operator_name(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#79
+ def precedence(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#45
+RuboCop::Cop::Lint::AmbiguousOperatorPrecedence::MSG = T.let(T.unsafe(nil), String)
+
+# See https://ruby-doc.org/core-3.0.2/doc/syntax/precedence_rdoc.html
+#
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#34
+RuboCop::Cop::Lint::AmbiguousOperatorPrecedence::PRECEDENCE = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#44
+RuboCop::Cop::Lint::AmbiguousOperatorPrecedence::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for ambiguous ranges.
+#
+# Ranges have quite low precedence, which leads to unexpected behavior when
+# using a range with other operators. This cop avoids that by making ranges
+# explicit by requiring parenthesis around complex range boundaries (anything
+# that is not a literal: numerics, strings, symbols, etc.).
+#
+# This cop can be configured with `RequireParenthesesForMethodChains` in order to
+# specify whether method chains (including `self.foo`) should be wrapped in parens
+# by this cop.
+#
+# NOTE: Regardless of this configuration, if a method receiver is a basic literal
+# value, it will be wrapped in order to prevent the ambiguity of `1..2.to_a`.
+#
+# @example
+# # bad
+# x || 1..2
+# (x || 1..2)
+# 1..2.to_a
+#
+# # good, unambiguous
+# 1..2
+# 'a'..'z'
+# :bar..:baz
+# MyClass::MIN..MyClass::MAX
+# @min..@max
+# a..b
+# -a..b
+#
+# # good, ambiguity removed
+# x || (1..2)
+# (x || 1)..2
+# (x || 1)..(y || 2)
+# (1..2).to_a
+# @example RequireParenthesesForMethodChains: false (default)
+# # good
+# a.foo..b.bar
+# (a.foo)..(b.bar)
+# @example RequireParenthesesForMethodChains: true
+# # bad
+# a.foo..b.bar
+#
+# # good
+# (a.foo)..(b.bar)
+#
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#59
+class RuboCop::Cop::Lint::AmbiguousRange < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#64
+ def on_erange(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#64
+ def on_irange(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#82
+ def acceptable?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#89
+ def acceptable_call?(node); end
+
+ # @yield [range.begin]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#77
+ def each_boundary(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#99
+ def require_parentheses_for_method_chain?; end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#62
+RuboCop::Cop::Lint::AmbiguousRange::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for ambiguous regexp literals in the first argument of
+# a method invocation without parentheses.
+#
+# @example
+#
+# # bad
+#
+# # This is interpreted as a method invocation with a regexp literal,
+# # but it could possibly be `/` method invocations.
+# # (i.e. `do_something./(pattern)./(i)`)
+# do_something /pattern/i
+# @example
+#
+# # good
+#
+# # With parentheses, there's no ambiguity.
+# do_something(/pattern/i)
+#
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#24
+class RuboCop::Cop::Lint::AmbiguousRegexpLiteral < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#31
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#56
+ def find_offense_node(node, regexp_receiver); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#49
+ def find_offense_node_by(diagnostic); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#67
+ def first_argument_is_regexp?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#71
+ def method_chain_to_regexp_receiver?(node, regexp_receiver); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#27
+RuboCop::Cop::Lint::AmbiguousRegexpLiteral::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for assignments in the conditions of
+# if/while/until.
+#
+# `AllowSafeAssignment` option for safe assignment.
+# By safe assignment we mean putting parentheses around
+# an assignment to indicate "I know I'm using an assignment
+# as a condition. It's not a mistake."
+#
+# @example
+# # bad
+# if some_var = true
+# do_something
+# end
+#
+# # good
+# if some_var == true
+# do_something
+# end
+# @example AllowSafeAssignment: true (default)
+# # good
+# if (some_var = true)
+# do_something
+# end
+# @example AllowSafeAssignment: false
+# # bad
+# if (some_var = true)
+# do_something
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#41
+class RuboCop::Cop::Lint::AssignmentInCondition < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::SafeAssignment
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#55
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#55
+ def on_until(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#55
+ def on_while(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#82
+ def allowed_construct?(asgn_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#86
+ def conditional_assignment?(asgn_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#74
+ def message(_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#90
+ def skip_children?(asgn_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#96
+ def traverse_node(node, &block); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#53
+RuboCop::Cop::Lint::AssignmentInCondition::ASGN_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#50
+RuboCop::Cop::Lint::AssignmentInCondition::MSG_WITHOUT_SAFE_ASSIGNMENT_ALLOWED = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#46
+RuboCop::Cop::Lint::AssignmentInCondition::MSG_WITH_SAFE_ASSIGNMENT_ALLOWED = T.let(T.unsafe(nil), String)
+
+# `BigDecimal.new()` is deprecated since BigDecimal 1.3.3.
+# This cop identifies places where `BigDecimal.new()`
+# can be replaced by `BigDecimal()`.
+#
+# @example
+# # bad
+# BigDecimal.new(123.456, 3)
+#
+# # good
+# BigDecimal(123.456, 3)
+#
+# source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#17
+class RuboCop::Cop::Lint::BigDecimalNew < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#25
+ def big_decimal_new(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#30
+ def on_send(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#20
+RuboCop::Cop::Lint::BigDecimalNew::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#22
+RuboCop::Cop::Lint::BigDecimalNew::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for places where binary operator has identical operands.
+#
+# It covers arithmetic operators: `-`, `/`, `%`;
+# comparison operators: `==`, `===`, `=~`, `>`, `>=`, `<`, `<=`;
+# bitwise operators: `|`, `^`, `&`;
+# boolean operators: `&&`, `||`
+# and "spaceship" operator - `<=>`.
+#
+# Simple arithmetic operations are allowed by this cop: `+`, `*`, `**`, `<<` and `>>`.
+# Although these can be rewritten in a different way, it should not be necessary to
+# do so. This does not include operations such as `-` or `/` where the result will
+# always be the same (`x - x` will always be 0; `x / x` will always be 1), and
+# thus are legitimate offenses.
+#
+# @example
+# # bad
+# x / x
+# x.top >= x.top
+#
+# if a.x != 0 && a.x != 0
+# do_something
+# end
+#
+# def child?
+# left_child || left_child
+# end
+#
+# # good
+# x + x
+# 1 << 1
+#
+# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#48
+class RuboCop::Cop::Lint::BinaryOperatorWithIdenticalOperands < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#61
+ def on_and(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#61
+ def on_or(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#52
+ def on_send(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#50
+RuboCop::Cop::Lint::BinaryOperatorWithIdenticalOperands::ALLOWED_MATH_OPERATORS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#49
+RuboCop::Cop::Lint::BinaryOperatorWithIdenticalOperands::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for `:true` and `:false` symbols.
+# In most cases it would be a typo.
+#
+# @example
+#
+# # bad
+# :true
+#
+# # good
+# true
+# @example
+#
+# # bad
+# :false
+#
+# # good
+# false
+#
+# source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#29
+class RuboCop::Cop::Lint::BooleanSymbol < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#35
+ def boolean_symbol?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#37
+ def on_sym(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#50
+ def autocorrect(corrector, node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#32
+RuboCop::Cop::Lint::BooleanSymbol::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for circular argument references in optional keyword
+# arguments and optional ordinal arguments.
+#
+# This cop mirrors a warning produced by MRI since 2.2.
+#
+# @example
+#
+# # bad
+#
+# def bake(pie: pie)
+# pie.heat_up
+# end
+# @example
+#
+# # good
+#
+# def bake(pie:)
+# pie.refrigerate
+# end
+# @example
+#
+# # good
+#
+# def bake(pie: self.pie)
+# pie.feed_to(user)
+# end
+# @example
+#
+# # bad
+#
+# def cook(dry_ingredients = dry_ingredients)
+# dry_ingredients.reduce(&:+)
+# end
+# @example
+#
+# # good
+#
+# def cook(dry_ingredients = self.dry_ingredients)
+# dry_ingredients.combine
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#50
+class RuboCop::Cop::Lint::CircularArgumentReference < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#53
+ def on_kwoptarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#57
+ def on_optarg(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#63
+ def check_for_circular_argument_references(arg_name, arg_value); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#51
+RuboCop::Cop::Lint::CircularArgumentReference::MSG = T.let(T.unsafe(nil), String)
+
+# Do not define constants within a block, since the block's scope does not
+# isolate or namespace the constant in any way.
+#
+# If you are trying to define that constant once, define it outside of
+# the block instead, or use a variable or method if defining the constant
+# in the outer scope would be problematic.
+#
+# For meta-programming, use `const_set`.
+#
+# @example
+# # bad
+# task :lint do
+# FILES_TO_LINT = Dir['lib/*.rb']
+# end
+#
+# # bad
+# describe 'making a request' do
+# class TestRequest; end
+# end
+#
+# # bad
+# module M
+# extend ActiveSupport::Concern
+# included do
+# LIST = []
+# end
+# end
+#
+# # good
+# task :lint do
+# files_to_lint = Dir['lib/*.rb']
+# end
+#
+# # good
+# describe 'making a request' do
+# let(:test_request) { Class.new }
+# # see also `stub_const` for RSpec
+# end
+#
+# # good
+# module M
+# extend ActiveSupport::Concern
+# included do
+# const_set(:LIST, [])
+# end
+# end
+# @example AllowedMethods: ['enums'] (default)
+# # good
+#
+# # `enums` for Typed Enums via `T::Enum` in Sorbet.
+# # https://sorbet.org/docs/tenum
+# class TestEnum < T::Enum
+# enums do
+# Foo = new("foo")
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#64
+class RuboCop::Cop::Lint::ConstantDefinitionInBlock < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#70
+ def constant_assigned_in_block?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#75
+ def module_defined_in_block?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#79
+ def on_casgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#85
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#85
+ def on_module(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#94
+ def method_name(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#67
+RuboCop::Cop::Lint::ConstantDefinitionInBlock::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for overwriting an exception with an exception result by use `rescue =>`.
+#
+# You intended to write as `rescue StandardError`.
+# However, you have written `rescue => StandardError`.
+# In that case, the result of `rescue` will overwrite `StandardError`.
+#
+# @example
+#
+# # bad
+# begin
+# something
+# rescue => StandardError
+# end
+#
+# # good
+# begin
+# something
+# rescue StandardError
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#26
+class RuboCop::Cop::Lint::ConstantOverwrittenInRescue < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#41
+ def on_resbody(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#33
+ def overwritten_constant(param0 = T.unsafe(nil)); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#37
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#30
+RuboCop::Cop::Lint::ConstantOverwrittenInRescue::MSG = T.let(T.unsafe(nil), String)
+
+# Check that certain constants are fully qualified.
+#
+# This is not enabled by default because it would mark a lot of offenses
+# unnecessarily.
+#
+# Generally, gems should fully qualify all constants to avoid conflicts with
+# the code that uses the gem. Enable this cop without using `Only`/`Ignore`
+#
+# Large projects will over time end up with one or two constant names that
+# are problematic because of a conflict with a library or just internally
+# using the same name a namespace and a class. To avoid too many unnecessary
+# offenses, Enable this cop with `Only: [The, Constant, Names, Causing, Issues]`
+#
+# NOTE: `Style/RedundantConstantBase` cop is disabled if this cop is enabled to prevent
+# conflicting rules. Because it respects user configurations that want to enable
+# this cop which is disabled by default.
+#
+# @example
+# # By default checks every constant
+#
+# # bad
+# User
+#
+# # bad
+# User::Login
+#
+# # good
+# ::User
+#
+# # good
+# ::User::Login
+# @example Only: ['Login']
+# # Restrict this cop to only being concerned about certain constants
+#
+# # bad
+# Login
+#
+# # good
+# ::Login
+#
+# # good
+# User::Login
+# @example Ignore: ['Login']
+# # Restrict this cop not being concerned about certain constants
+#
+# # bad
+# User
+#
+# # good
+# ::User::Login
+#
+# # good
+# Login
+#
+# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#62
+class RuboCop::Cop::Lint::ConstantResolution < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#70
+ def on_const(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#66
+ def unqualified_const?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#83
+ def allowed_names; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#78
+ def const_name?(name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#87
+ def ignored_names; end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#63
+RuboCop::Cop::Lint::ConstantResolution::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for debug calls (such as `debugger` or `binding.pry`) that should
+# not be kept for production code.
+#
+# The cop can be configured using `DebuggerMethods`. By default, a number of gems
+# debug entrypoints are configured (`Kernel`, `Byebug`, `Capybara`, `debug.rb`,
+# `Pry`, `Rails`, `RubyJard`, and `WebConsole`). Additional methods can be added.
+#
+# Specific default groups can be disabled if necessary:
+#
+# [source,yaml]
+# ----
+# Lint/Debugger:
+# DebuggerMethods:
+# WebConsole: ~
+# ----
+#
+# You can also add your own methods by adding a new category:
+#
+# [source,yaml]
+# ----
+# Lint/Debugger:
+# DebuggerMethods:
+# MyDebugger:
+# MyDebugger.debug_this
+# ----
+#
+# @example
+#
+# # bad (ok during development)
+#
+# # using pry
+# def some_method
+# binding.pry
+# do_something
+# end
+# @example
+#
+# # bad (ok during development)
+#
+# # using byebug
+# def some_method
+# byebug
+# do_something
+# end
+# @example
+#
+# # good
+#
+# def some_method
+# do_something
+# end
+# @example DebuggerMethods: [my_debugger]
+#
+# # bad (ok during development)
+#
+# def some_method
+# my_debugger
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/debugger.rb#67
+class RuboCop::Cop::Lint::Debugger < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/debugger.rb#70
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/debugger.rb#116
+ def assumed_argument?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/debugger.rb#95
+ def assumed_usage_context?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/debugger.rb#105
+ def chained_method_name(send_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/debugger.rb#89
+ def debugger_method?(send_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/debugger.rb#82
+ def debugger_methods; end
+
+ # source://rubocop//lib/rubocop/cop/lint/debugger.rb#78
+ def message(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/debugger.rb#68
+RuboCop::Cop::Lint::Debugger::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for uses of the deprecated class method usages.
+#
+# @example
+#
+# # bad
+# File.exists?(some_path)
+# Dir.exists?(some_path)
+# iterator?
+# attr :name, true
+# attr :name, false
+# ENV.freeze # Calling `Env.freeze` raises `TypeError` since Ruby 2.7.
+# ENV.clone
+# ENV.dup # Calling `Env.dup` raises `TypeError` since Ruby 3.1.
+# Socket.gethostbyname(host)
+# Socket.gethostbyaddr(host)
+#
+# # good
+# File.exist?(some_path)
+# Dir.exist?(some_path)
+# block_given?
+# attr_accessor :name
+# attr_reader :name
+# ENV # `ENV.freeze` cannot prohibit changes to environment variables.
+# ENV.to_h
+# ENV.to_h # `ENV.dup` cannot dup `ENV`, use `ENV.to_h` to get a copy of `ENV` as a hash.
+# Addrinfo.getaddrinfo(nodename, service)
+# Addrinfo.tcp(host, port).getnameinfo
+#
+# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#33
+class RuboCop::Cop::Lint::DeprecatedClassMethods < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#53
+ def deprecated_class_method?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#63
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#112
+ def dir_env_file_const?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#83
+ def offense_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#93
+ def preferred_method(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#108
+ def socket_const?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#50
+RuboCop::Cop::Lint::DeprecatedClassMethods::DIR_ENV_FILE_CONSTANTS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#36
+RuboCop::Cop::Lint::DeprecatedClassMethods::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#41
+RuboCop::Cop::Lint::DeprecatedClassMethods::PREFERRED_METHODS = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#37
+RuboCop::Cop::Lint::DeprecatedClassMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for deprecated constants.
+#
+# It has `DeprecatedConstants` config. If there is an alternative method, you can set
+# alternative value as `Alternative`. And you can set the deprecated version as
+# `DeprecatedVersion`. These options can be omitted if they are not needed.
+#
+# DeprecatedConstants:
+# 'DEPRECATED_CONSTANT':
+# Alternative: 'alternative_value'
+# DeprecatedVersion: 'deprecated_version'
+#
+# By default, `NIL`, `TRUE`, `FALSE`, `Net::HTTPServerException, `Random::DEFAULT`,
+# `Struct::Group`, and `Struct::Passwd` are configured.
+#
+# @example
+#
+# # bad
+# NIL
+# TRUE
+# FALSE
+# Net::HTTPServerException
+# Random::DEFAULT # Return value of Ruby 2 is `Random` instance, Ruby 3.0 is `Random` class.
+# Struct::Group
+# Struct::Passwd
+#
+# # good
+# nil
+# true
+# false
+# Net::HTTPClientException
+# Random.new # `::DEFAULT` has been deprecated in Ruby 3, `.new` is compatible with Ruby 2.
+# Etc::Group
+# Etc::Passwd
+#
+# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#40
+class RuboCop::Cop::Lint::DeprecatedConstants < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#46
+ def on_const(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#66
+ def constant_name(node, nested_constant_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#82
+ def deprecated_constants; end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#72
+ def message(good, bad, deprecated_version); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#44
+RuboCop::Cop::Lint::DeprecatedConstants::DO_NOT_USE_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#43
+RuboCop::Cop::Lint::DeprecatedConstants::SUGGEST_GOOD_MSG = T.let(T.unsafe(nil), String)
+
+# Algorithmic constants for `OpenSSL::Cipher` and `OpenSSL::Digest`
+# deprecated since OpenSSL version 2.2.0. Prefer passing a string
+# instead.
+#
+# @example
+#
+# # Example for OpenSSL::Cipher instantiation.
+#
+# # bad
+# OpenSSL::Cipher::AES.new(128, :GCM)
+#
+# # good
+# OpenSSL::Cipher.new('aes-128-gcm')
+# @example
+#
+# # Example for OpenSSL::Digest instantiation.
+#
+# # bad
+# OpenSSL::Digest::SHA256.new
+#
+# # good
+# OpenSSL::Digest.new('SHA256')
+# @example
+#
+# # Example for ::Digest inherited class methods.
+#
+# # bad
+# OpenSSL::Digest::SHA256.digest('foo')
+#
+# # good
+# OpenSSL::Digest.digest('SHA256', 'foo')
+#
+# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#40
+class RuboCop::Cop::Lint::DeprecatedOpenSSLConstant < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#49
+ def algorithm_const(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#59
+ def digest_const?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#63
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#110
+ def algorithm_name(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#75
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#139
+ def build_cipher_arguments(node, algorithm_name, no_arguments); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#102
+ def correction_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#87
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#106
+ def openssl_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#128
+ def replacement_args(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#120
+ def sanitize_arguments(arguments); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#44
+RuboCop::Cop::Lint::DeprecatedOpenSSLConstant::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#46
+RuboCop::Cop::Lint::DeprecatedOpenSSLConstant::NO_ARG_ALGORITHM = T.let(T.unsafe(nil), Array)
+
+# Checks constructors for disjunctive assignments (`||=`) that should
+# be plain assignments.
+#
+# So far, this cop is only concerned with disjunctive assignment of
+# instance variables.
+#
+# In ruby, an instance variable is nil until a value is assigned, so the
+# disjunction is unnecessary. A plain assignment has the same effect.
+#
+# @example
+# # bad
+# def initialize
+# @x ||= 1
+# end
+#
+# # good
+# def initialize
+# @x = 1
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#48
+class RuboCop::Cop::Lint::DisjunctiveAssignmentInConstructor < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#53
+ def on_def(node); end
+
+ private
+
+ # @param node [DefNode] a constructor definition
+ #
+ # source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#60
+ def check(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#66
+ def check_body(body); end
+
+ # @param lines [Array] the logical lines of the constructor
+ #
+ # source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#78
+ def check_body_lines(lines); end
+
+ # Add an offense if the LHS of the given disjunctive assignment is
+ # an instance variable.
+ #
+ # For now, we only care about assignments to instance variables.
+ #
+ # @param node [Node] a disjunctive assignment
+ #
+ # source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#99
+ def check_disjunctive_assignment(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#51
+RuboCop::Cop::Lint::DisjunctiveAssignmentInConstructor::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that there are no repeated bodies
+# within `if/unless`, `case-when`, `case-in` and `rescue` constructs.
+#
+# With `IgnoreLiteralBranches: true`, branches are not registered
+# as offenses if they return a basic literal value (string, symbol,
+# integer, float, rational, complex, `true`, `false`, or `nil`), or
+# return an array, hash, regexp or range that only contains one of
+# the above basic literal values.
+#
+# With `IgnoreConstantBranches: true`, branches are not registered
+# as offenses if they return a constant value.
+#
+# @example
+# # bad
+# if foo
+# do_foo
+# do_something_else
+# elsif bar
+# do_foo
+# do_something_else
+# end
+#
+# # good
+# if foo || bar
+# do_foo
+# do_something_else
+# end
+#
+# # bad
+# case x
+# when foo
+# do_foo
+# when bar
+# do_foo
+# else
+# do_something_else
+# end
+#
+# # good
+# case x
+# when foo, bar
+# do_foo
+# else
+# do_something_else
+# end
+#
+# # bad
+# begin
+# do_something
+# rescue FooError
+# handle_error
+# rescue BarError
+# handle_error
+# end
+#
+# # good
+# begin
+# do_something
+# rescue FooError, BarError
+# handle_error
+# end
+# @example IgnoreLiteralBranches: true
+# # good
+# case size
+# when "small" then 100
+# when "medium" then 250
+# when "large" then 1000
+# else 250
+# end
+# @example IgnoreConstantBranches: true
+# # good
+# case size
+# when "small" then SMALL_SIZE
+# when "medium" then MEDIUM_SIZE
+# when "large" then LARGE_SIZE
+# else MEDIUM_SIZE
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#86
+class RuboCop::Cop::Lint::DuplicateBranch < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#89
+ def on_branching_statement(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#89
+ def on_case(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#89
+ def on_case_match(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#89
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#89
+ def on_rescue(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#117
+ def branches(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#121
+ def consider_branch?(branch); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#147
+ def const_branch?(branch); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#132
+ def ignore_constant_branches?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#128
+ def ignore_literal_branches?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#136
+ def literal_branch?(branch); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#103
+ def offense_range(duplicate_branch); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#87
+RuboCop::Cop::Lint::DuplicateBranch::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that there are no repeated conditions
+# used in case 'when' expressions.
+#
+# @example
+#
+# # bad
+#
+# case x
+# when 'first'
+# do_something
+# when 'first'
+# do_something_else
+# end
+# @example
+#
+# # good
+#
+# case x
+# when 'first'
+# do_something
+# when 'second'
+# do_something_else
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_case_condition.rb#30
+class RuboCop::Cop::Lint::DuplicateCaseCondition < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_case_condition.rb#33
+ def on_case(case_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_case_condition.rb#31
+RuboCop::Cop::Lint::DuplicateCaseCondition::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that there are no repeated conditions used in if 'elsif'.
+#
+# @example
+# # bad
+# if x == 1
+# do_something
+# elsif x == 1
+# do_something_else
+# end
+#
+# # good
+# if x == 1
+# do_something
+# elsif x == 2
+# do_something_else
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_elsif_condition.rb#23
+class RuboCop::Cop::Lint::DuplicateElsifCondition < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_elsif_condition.rb#26
+ def on_if(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_elsif_condition.rb#24
+RuboCop::Cop::Lint::DuplicateElsifCondition::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for duplicated keys in hash literals.
+# This cop considers both primitive types and constants for the hash keys.
+#
+# This cop mirrors a warning in Ruby 2.2.
+#
+# @example
+#
+# # bad
+#
+# hash = { food: 'apple', food: 'orange' }
+# @example
+#
+# # good
+#
+# hash = { food: 'apple', other_food: 'orange' }
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_hash_key.rb#22
+class RuboCop::Cop::Lint::DuplicateHashKey < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Duplication
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_hash_key.rb#27
+ def on_hash(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_hash_key.rb#25
+RuboCop::Cop::Lint::DuplicateHashKey::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for duplicated magic comments.
+#
+# @example
+#
+# # bad
+#
+# # encoding: ascii
+# # encoding: ascii
+#
+# # good
+#
+# # encoding: ascii
+#
+# # bad
+#
+# # frozen_string_literal: true
+# # frozen_string_literal: true
+#
+# # good
+#
+# # frozen_string_literal: true
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#28
+class RuboCop::Cop::Lint::DuplicateMagicComment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::FrozenStringLiteral
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#35
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#51
+ def magic_comment_lines; end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#65
+ def register_offense(range); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#33
+RuboCop::Cop::Lint::DuplicateMagicComment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that there are no repeated patterns used in `in` keywords.
+#
+# @example
+#
+# # bad
+# case x
+# in 'first'
+# do_something
+# in 'first'
+# do_something_else
+# end
+#
+# # good
+# case x
+# in 'first'
+# do_something
+# in 'second'
+# do_something_else
+# end
+#
+# # bad - repeated alternate patterns with the same conditions don't depend on the order
+# case x
+# in foo | bar
+# first_method
+# in bar | foo
+# second_method
+# end
+#
+# # good
+# case x
+# in foo | bar
+# first_method
+# in bar | baz
+# second_method
+# end
+#
+# # bad - repeated hash patterns with the same conditions don't depend on the order
+# case x
+# in foo: a, bar: b
+# first_method
+# in bar: b, foo: a
+# second_method
+# end
+#
+# # good
+# case x
+# in foo: a, bar: b
+# first_method
+# in bar: b, baz: c
+# second_method
+# end
+#
+# # bad - repeated array patterns with elements in the same order
+# case x
+# in [foo, bar]
+# first_method
+# in [foo, bar]
+# second_method
+# end
+#
+# # good
+# case x
+# in [foo, bar]
+# first_method
+# in [bar, foo]
+# second_method
+# end
+#
+# # bad - repeated the same patterns and guard conditions
+# case x
+# in foo if bar
+# first_method
+# in foo if bar
+# second_method
+# end
+#
+# # good
+# case x
+# in foo if bar
+# first_method
+# in foo if baz
+# second_method
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_match_pattern.rb#90
+class RuboCop::Cop::Lint::DuplicateMatchPattern < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::TargetRubyVersion
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_match_pattern.rb#97
+ def on_case_match(case_node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_match_pattern.rb#108
+ def pattern_identity(pattern); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_match_pattern.rb#93
+RuboCop::Cop::Lint::DuplicateMatchPattern::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for duplicated instance (or singleton) method
+# definitions.
+#
+# @example
+#
+# # bad
+#
+# def foo
+# 1
+# end
+#
+# def foo
+# 2
+# end
+# @example
+#
+# # bad
+#
+# def foo
+# 1
+# end
+#
+# alias foo bar
+# @example
+#
+# # good
+#
+# def foo
+# 1
+# end
+#
+# def bar
+# 2
+# end
+# @example
+#
+# # good
+#
+# def foo
+# 1
+# end
+#
+# alias bar foo
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#52
+class RuboCop::Cop::Lint::DuplicateMethods < ::RuboCop::Cop::Base
+ # @return [DuplicateMethods] a new instance of DuplicateMethods
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#57
+ def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#98
+ def alias_method?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#85
+ def method_alias?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#89
+ def on_alias(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#63
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#72
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#104
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#103
+ def sym_name(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#117
+ def check_const_receiver(node, name, const_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#124
+ def check_self_receiver(node, name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#208
+ def found_attr(node, args, readable: T.unsafe(nil), writable: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#136
+ def found_instance_method(node, name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#159
+ def found_method(node, method_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#149
+ def found_sclass_method(node, name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#186
+ def location(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#218
+ def lookup_constant(node, const_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#131
+ def message_for_dup(node, method_name, key); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#178
+ def method_key(node, method_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#194
+ def on_attr(node, attr_name, args); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#250
+ def possible_dsl?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#236
+ def qualified_name(enclosing, namespace, mod_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#260
+ def source_location(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#55
+RuboCop::Cop::Lint::DuplicateMethods::DEF_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#53
+RuboCop::Cop::Lint::DuplicateMethods::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#54
+RuboCop::Cop::Lint::DuplicateMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for duplicate elements in Regexp character classes.
+#
+# @example
+#
+# # bad
+# r = /[xyx]/
+#
+# # bad
+# r = /[0-9x0-9]/
+#
+# # good
+# r = /[xy]/
+#
+# # good
+# r = /[0-9x]/
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#21
+class RuboCop::Cop::Lint::DuplicateRegexpCharacterClassElement < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#37
+ def each_repeated_character_class_element_loc(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#29
+ def on_regexp(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#102
+ def escaped_octal?(string); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#54
+ def group_expressions(node, expressions); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#110
+ def interpolation_locs(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#106
+ def octal?(char); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#71
+ def pop_octal_digits(current_child, expressions); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#89
+ def skip_expression?(expr); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#80
+ def source_range(children); end
+
+ # Since we blank interpolations with a space for every char of the interpolation, we would
+ # mark every space (except the first) as duplicate if we do not skip regexp_parser nodes
+ # that are within an interpolation.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#96
+ def within_interpolation?(node, child); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#25
+RuboCop::Cop::Lint::DuplicateRegexpCharacterClassElement::MSG_REPEATED_ELEMENT = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#27
+RuboCop::Cop::Lint::DuplicateRegexpCharacterClassElement::OCTAL_DIGITS_AFTER_ESCAPE = T.let(T.unsafe(nil), Integer)
+
+# Checks for duplicate ``require``s and ``require_relative``s.
+#
+# @example
+# # bad
+# require 'foo'
+# require 'bar'
+# require 'foo'
+#
+# # good
+# require 'foo'
+# require 'bar'
+#
+# # good
+# require 'foo'
+# require_relative 'foo'
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#26
+class RuboCop::Cop::Lint::DuplicateRequire < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#39
+ def on_new_investigation; end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#45
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#35
+ def require_call?(param0 = T.unsafe(nil)); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#30
+RuboCop::Cop::Lint::DuplicateRequire::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#31
+RuboCop::Cop::Lint::DuplicateRequire::REQUIRE_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#32
+RuboCop::Cop::Lint::DuplicateRequire::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
+
+# Checks that there are no repeated exceptions
+# used in 'rescue' expressions.
+#
+# @example
+# # bad
+# begin
+# something
+# rescue FirstException
+# handle_exception
+# rescue FirstException
+# handle_other_exception
+# end
+#
+# # good
+# begin
+# something
+# rescue FirstException
+# handle_exception
+# rescue SecondException
+# handle_other_exception
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/duplicate_rescue_exception.rb#28
+class RuboCop::Cop::Lint::DuplicateRescueException < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RescueNode
+
+ # source://rubocop//lib/rubocop/cop/lint/duplicate_rescue_exception.rb#33
+ def on_rescue(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/duplicate_rescue_exception.rb#31
+RuboCop::Cop::Lint::DuplicateRescueException::MSG = T.let(T.unsafe(nil), String)
+
+# Checks if each_with_object is called with an immutable
+# argument. Since the argument is the object that the given block shall
+# make calls on to build something based on the enumerable that
+# each_with_object iterates over, an immutable argument makes no sense.
+# It's definitely a bug.
+#
+# @example
+#
+# # bad
+#
+# sum = numbers.each_with_object(0) { |e, a| a += e }
+# @example
+#
+# # good
+#
+# num = 0
+# sum = numbers.each_with_object(num) { |e, a| a += e }
+#
+# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#24
+class RuboCop::Cop::Lint::EachWithObjectArgument < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#29
+ def each_with_object?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#33
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#33
+ def on_send(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#25
+RuboCop::Cop::Lint::EachWithObjectArgument::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#26
+RuboCop::Cop::Lint::EachWithObjectArgument::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for odd `else` block layout - like
+# having an expression on the same line as the `else` keyword,
+# which is usually a mistake.
+#
+# Its autocorrection tweaks layout to keep the syntax. So, this autocorrection
+# is compatible correction for bad case syntax, but if your code makes a mistake
+# with `elsif` and `else`, you will have to correct it manually.
+#
+# @example
+#
+# # bad
+#
+# if something
+# # ...
+# else do_this
+# do_that
+# end
+# @example
+#
+# # good
+#
+# # This code is compatible with the bad case. It will be autocorrected like this.
+# if something
+# # ...
+# else
+# do_this
+# do_that
+# end
+#
+# # This code is incompatible with the bad case.
+# # If `do_this` is a condition, `elsif` should be used instead of `else`.
+# if something
+# # ...
+# elsif do_this
+# do_that
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/else_layout.rb#43
+class RuboCop::Cop::Lint::ElseLayout < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Alignment
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/else_layout.rb#50
+ def on_if(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/else_layout.rb#81
+ def autocorrect(corrector, node, first_else); end
+
+ # source://rubocop//lib/rubocop/cop/lint/else_layout.rb#61
+ def check(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/else_layout.rb#71
+ def check_else(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/else_layout.rb#48
+RuboCop::Cop::Lint::ElseLayout::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for blocks without a body.
+# Such empty blocks are typically an oversight or we should provide a comment
+# to clarify what we're aiming for.
+#
+# Empty lambdas and procs are ignored by default.
+#
+# NOTE: For backwards compatibility, the configuration that allows/disallows
+# empty lambdas and procs is called `AllowEmptyLambdas`, even though it also
+# applies to procs.
+#
+# @example
+# # bad
+# items.each { |item| }
+#
+# # good
+# items.each { |item| puts item }
+# @example AllowComments: true (default)
+# # good
+# items.each do |item|
+# # TODO: implement later (inner comment)
+# end
+#
+# items.each { |item| } # TODO: implement later (inline comment)
+# @example AllowComments: false
+# # bad
+# items.each do |item|
+# # TODO: implement later (inner comment)
+# end
+#
+# items.each { |item| } # TODO: implement later (inline comment)
+# @example AllowEmptyLambdas: true (default)
+# # good
+# allow(subject).to receive(:callable).and_return(-> {})
+#
+# placeholder = lambda do
+# end
+# (callable || placeholder).call
+#
+# proc { }
+#
+# Proc.new { }
+# @example AllowEmptyLambdas: false
+# # bad
+# allow(subject).to receive(:callable).and_return(-> {})
+#
+# placeholder = lambda do
+# end
+# (callable || placeholder).call
+#
+# proc { }
+#
+# Proc.new { }
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_block.rb#63
+class RuboCop::Cop::Lint::EmptyBlock < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/empty_block.rb#66
+ def on_block(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_block.rb#76
+ def allow_comment?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_block.rb#83
+ def allow_empty_lambdas?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_block.rb#87
+ def comment_disables_cop?(comment); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_block.rb#64
+RuboCop::Cop::Lint::EmptyBlock::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for classes and metaclasses without a body.
+# Such empty classes and metaclasses are typically an oversight or we should provide a comment
+# to be clearer what we're aiming for.
+#
+# @example
+# # bad
+# class Foo
+# end
+#
+# class Bar
+# class << self
+# end
+# end
+#
+# class << obj
+# end
+#
+# # good
+# class Foo
+# def do_something
+# # ... code
+# end
+# end
+#
+# class Bar
+# class << self
+# attr_reader :bar
+# end
+# end
+#
+# class << obj
+# attr_reader :bar
+# end
+# @example AllowComments: false (default)
+# # bad
+# class Foo
+# # TODO: implement later
+# end
+#
+# class Bar
+# class << self
+# # TODO: implement later
+# end
+# end
+#
+# class << obj
+# # TODO: implement later
+# end
+# @example AllowComments: true
+# # good
+# class Foo
+# # TODO: implement later
+# end
+#
+# class Bar
+# class << self
+# # TODO: implement later
+# end
+# end
+#
+# class << obj
+# # TODO: implement later
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#72
+class RuboCop::Cop::Lint::EmptyClass < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/empty_class.rb#76
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_class.rb#81
+ def on_sclass(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_class.rb#87
+ def body_or_allowed_comment_lines?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#73
+RuboCop::Cop::Lint::EmptyClass::CLASS_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#74
+RuboCop::Cop::Lint::EmptyClass::METACLASS_MSG = T.let(T.unsafe(nil), String)
+
+# Checks for the presence of `if`, `elsif` and `unless` branches without a body.
+#
+# NOTE: empty `else` branches are handled by `Style/EmptyElse`.
+#
+# @example
+# # bad
+# if condition
+# end
+#
+# # bad
+# unless condition
+# end
+#
+# # bad
+# if condition
+# do_something
+# elsif other_condition
+# end
+#
+# # good
+# if condition
+# do_something
+# end
+#
+# # good
+# unless condition
+# do_something
+# end
+#
+# # good
+# if condition
+# do_something
+# elsif other_condition
+# do_something_else
+# end
+# @example AllowComments: true (default)
+# # good
+# if condition
+# do_something
+# elsif other_condition
+# # noop
+# end
+# @example AllowComments: false
+# # bad
+# if condition
+# do_something
+# elsif other_condition
+# # noop
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#63
+class RuboCop::Cop::Lint::EmptyConditionalBody < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CommentsHelp
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#70
+ def on_if(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#156
+ def all_branches_body_missing?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#83
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#142
+ def branch_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#104
+ def correct_other_branches(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#162
+ def deletion_range(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#137
+ def else_branch?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#131
+ def empty_elsif_branch?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#123
+ def empty_if_branch?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#89
+ def remove_comments(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#96
+ def remove_empty_branch(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#116
+ def require_other_branches_correction?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#68
+RuboCop::Cop::Lint::EmptyConditionalBody::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for empty `ensure` blocks
+#
+# @example
+#
+# # bad
+#
+# def some_method
+# do_something
+# ensure
+# end
+# @example
+#
+# # bad
+#
+# begin
+# do_something
+# ensure
+# end
+# @example
+#
+# # good
+#
+# def some_method
+# do_something
+# ensure
+# do_something_else
+# end
+# @example
+#
+# # good
+#
+# begin
+# do_something
+# ensure
+# do_something_else
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_ensure.rb#45
+class RuboCop::Cop::Lint::EmptyEnsure < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_ensure.rb#50
+ def on_ensure(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_ensure.rb#48
+RuboCop::Cop::Lint::EmptyEnsure::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for the presence of empty expressions.
+#
+# @example
+#
+# # bad
+#
+# foo = ()
+# if ()
+# bar
+# end
+# @example
+#
+# # good
+#
+# foo = (some_expression)
+# if (some_expression)
+# bar
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_expression.rb#25
+class RuboCop::Cop::Lint::EmptyExpression < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/empty_expression.rb#28
+ def on_begin(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_expression.rb#36
+ def empty_expression?(begin_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_expression.rb#26
+RuboCop::Cop::Lint::EmptyExpression::MSG = T.let(T.unsafe(nil), String)
+
+# Enforces that Ruby source files are not empty.
+#
+# @example
+# # bad
+# # Empty file
+#
+# # good
+# # File containing non commented source lines
+# @example AllowComments: true (default)
+# # good
+# # File consisting only of comments
+# @example AllowComments: false
+# # bad
+# # File consisting only of comments
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_file.rb#23
+class RuboCop::Cop::Lint::EmptyFile < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_file.rb#28
+ def on_new_investigation; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_file.rb#42
+ def contains_only_comments?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_file.rb#38
+ def empty_file?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/empty_file.rb#34
+ def offending?; end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_file.rb#26
+RuboCop::Cop::Lint::EmptyFile::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for the presence of `in` pattern branches without a body.
+#
+# @example
+#
+# # bad
+# case condition
+# in [a]
+# do_something
+# in [a, b]
+# end
+#
+# # good
+# case condition
+# in [a]
+# do_something
+# in [a, b]
+# nil
+# end
+# @example AllowComments: true (default)
+#
+# # good
+# case condition
+# in [a]
+# do_something
+# in [a, b]
+# # noop
+# end
+# @example AllowComments: false
+#
+# # bad
+# case condition
+# in [a]
+# do_something
+# in [a, b]
+# # noop
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_in_pattern.rb#45
+class RuboCop::Cop::Lint::EmptyInPattern < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CommentsHelp
+ extend ::RuboCop::Cop::TargetRubyVersion
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_in_pattern.rb#53
+ def on_case_match(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_in_pattern.rb#49
+RuboCop::Cop::Lint::EmptyInPattern::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for empty interpolation.
+#
+# @example
+#
+# # bad
+#
+# "result is #{}"
+# @example
+#
+# # good
+#
+# "result is #{some_result}"
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_interpolation.rb#19
+class RuboCop::Cop::Lint::EmptyInterpolation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Interpolation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_interpolation.rb#25
+ def on_interpolation(begin_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_interpolation.rb#23
+RuboCop::Cop::Lint::EmptyInterpolation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for the presence of `when` branches without a body.
+#
+# @example
+#
+# # bad
+# case foo
+# when bar
+# do_something
+# when baz
+# end
+# @example
+#
+# # good
+# case condition
+# when foo
+# do_something
+# when bar
+# nil
+# end
+# @example AllowComments: true (default)
+#
+# # good
+# case condition
+# when foo
+# do_something
+# when bar
+# # noop
+# end
+# @example AllowComments: false
+#
+# # bad
+# case condition
+# when foo
+# do_something
+# when bar
+# # do nothing
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/empty_when.rb#47
+class RuboCop::Cop::Lint::EmptyWhen < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CommentsHelp
+
+ # source://rubocop//lib/rubocop/cop/lint/empty_when.rb#52
+ def on_case(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/empty_when.rb#50
+RuboCop::Cop::Lint::EmptyWhen::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for `return` from an `ensure` block.
+# `return` from an ensure block is a dangerous code smell as it
+# will take precedence over any exception being raised,
+# and the exception will be silently thrown away as if it were rescued.
+#
+# If you want to rescue some (or all) exceptions, best to do it explicitly
+#
+# @example
+#
+# # bad
+#
+# def foo
+# do_something
+# ensure
+# cleanup
+# return self
+# end
+# @example
+#
+# # good
+#
+# def foo
+# do_something
+# self
+# ensure
+# cleanup
+# end
+#
+# # also good
+#
+# def foo
+# begin
+# do_something
+# rescue SomeException
+# # Let's ignore this exception
+# end
+# self
+# ensure
+# cleanup
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/ensure_return.rb#47
+class RuboCop::Cop::Lint::EnsureReturn < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/ensure_return.rb#53
+ def on_ensure(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ensure_return.rb#51
+RuboCop::Cop::Lint::EnsureReturn::MSG = T.let(T.unsafe(nil), String)
+
+# Emulates the following Ruby warnings in Ruby 2.6.
+#
+# [source,console]
+# ----
+# $ cat example.rb
+# ERB.new('hi', nil, '-', '@output_buffer')
+# $ ruby -rerb example.rb
+# example.rb:1: warning: Passing safe_level with the 2nd argument of ERB.new is
+# deprecated. Do not use it, and specify other arguments as keyword arguments.
+# example.rb:1: warning: Passing trim_mode with the 3rd argument of ERB.new is
+# deprecated. Use keyword argument like ERB.new(str, trim_mode:...) instead.
+# example.rb:1: warning: Passing eoutvar with the 4th argument of ERB.new is
+# deprecated. Use keyword argument like ERB.new(str, eoutvar: ...) instead.
+# ----
+#
+# Now non-keyword arguments other than first one are softly deprecated
+# and will be removed when Ruby 2.5 becomes EOL.
+# `ERB.new` with non-keyword arguments is deprecated since ERB 2.2.0.
+# Use `:trim_mode` and `:eoutvar` keyword arguments to `ERB.new`.
+# This cop identifies places where `ERB.new(str, trim_mode, eoutvar)` can
+# be replaced by `ERB.new(str, :trim_mode: trim_mode, eoutvar: eoutvar)`.
+#
+# @example
+# # Target codes supports Ruby 2.6 and higher only
+# # bad
+# ERB.new(str, nil, '-', '@output_buffer')
+#
+# # good
+# ERB.new(str, trim_mode: '-', eoutvar: '@output_buffer')
+#
+# # Target codes supports Ruby 2.5 and lower only
+# # good
+# ERB.new(str, nil, '-', '@output_buffer')
+#
+# # Target codes supports Ruby 2.6, 2.5 and lower
+# # bad
+# ERB.new(str, nil, '-', '@output_buffer')
+#
+# # good
+# # Ruby standard library style
+# # https://github.com/ruby/ruby/commit/3406c5d
+# if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
+# ERB.new(str, trim_mode: '-', eoutvar: '@output_buffer')
+# else
+# ERB.new(str, nil, '-', '@output_buffer')
+# end
+#
+# # good
+# # Use `RUBY_VERSION` style
+# if RUBY_VERSION >= '2.6'
+# ERB.new(str, trim_mode: '-', eoutvar: '@output_buffer')
+# else
+# ERB.new(str, nil, '-', '@output_buffer')
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#61
+class RuboCop::Cop::Lint::ErbNewArguments < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+ extend ::RuboCop::Cop::TargetRubyVersion
+
+ # source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#83
+ def erb_new_with_non_keyword_arguments(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#88
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#153
+ def arguments_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#108
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#123
+ def build_kwargs(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#119
+ def correct_arguments?(arguments); end
+
+ # source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#140
+ def override_by_legacy_args(kwargs, node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#68
+RuboCop::Cop::Lint::ErbNewArguments::MESSAGES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#80
+RuboCop::Cop::Lint::ErbNewArguments::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Looks for uses of flip-flop operator
+# based on the Ruby Style Guide.
+#
+# Here is the history of flip-flops in Ruby.
+# flip-flop operator is deprecated in Ruby 2.6.0 and
+# the deprecation has been reverted by Ruby 2.7.0 and
+# backported to Ruby 2.6.
+# See: https://bugs.ruby-lang.org/issues/5400
+#
+# @example
+# # bad
+# (1..20).each do |x|
+# puts x if (x == 5) .. (x == 10)
+# end
+#
+# # good
+# (1..20).each do |x|
+# puts x if (x >= 5) && (x <= 10)
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/flip_flop.rb#25
+class RuboCop::Cop::Lint::FlipFlop < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/flip_flop.rb#32
+ def on_eflipflop(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/flip_flop.rb#28
+ def on_iflipflop(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/flip_flop.rb#26
+RuboCop::Cop::Lint::FlipFlop::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for the presence of precise comparison of floating point numbers.
+#
+# Floating point values are inherently inaccurate, and comparing them for exact equality
+# is almost never the desired semantics. Comparison via the `==/!=` operators checks
+# floating-point value representation to be exactly the same, which is very unlikely
+# if you perform any arithmetic operations involving precision loss.
+#
+# @example
+# # bad
+# x == 0.1
+# x != 0.1
+#
+# # good - using BigDecimal
+# x.to_d == 0.1.to_d
+#
+# # good
+# (x - 0.1).abs < Float::EPSILON
+#
+# # good
+# tolerance = 0.0001
+# (x - 0.1).abs < tolerance
+#
+# # Or some other epsilon based type of comparison:
+# # https://www.embeddeduse.com/2019/08/26/qt-compare-two-floats/
+#
+# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#31
+class RuboCop::Cop::Lint::FloatComparison < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#40
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#79
+ def check_numeric_returning_method(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#63
+ def check_send(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#47
+ def float?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#34
+RuboCop::Cop::Lint::FloatComparison::EQUALITY_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#36
+RuboCop::Cop::Lint::FloatComparison::FLOAT_INSTANCE_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#35
+RuboCop::Cop::Lint::FloatComparison::FLOAT_RETURNING_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#32
+RuboCop::Cop::Lint::FloatComparison::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#38
+RuboCop::Cop::Lint::FloatComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Identifies Float literals which are, like, really really really
+# really really really really really big. Too big. No-one needs Floats
+# that big. If you need a float that big, something is wrong with you.
+#
+# @example
+#
+# # bad
+#
+# float = 3.0e400
+# @example
+#
+# # good
+#
+# float = 42.9
+#
+# source://rubocop//lib/rubocop/cop/lint/float_out_of_range.rb#21
+class RuboCop::Cop::Lint::FloatOutOfRange < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/float_out_of_range.rb#24
+ def on_float(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/float_out_of_range.rb#22
+RuboCop::Cop::Lint::FloatOutOfRange::MSG = T.let(T.unsafe(nil), String)
+
+# This lint sees if there is a mismatch between the number of
+# expected fields for format/sprintf/#% and what is actually
+# passed as arguments.
+#
+# In addition it checks whether different formats are used in the same
+# format string. Do not mix numbered, unnumbered, and named formats in
+# the same format string.
+#
+# @example
+#
+# # bad
+#
+# format('A value: %s and another: %i', a_value)
+# @example
+#
+# # good
+#
+# format('A value: %s and another: %i', a_value, another)
+# @example
+#
+# # bad
+#
+# format('Unnumbered format: %s and numbered: %2$s', a_value, another)
+# @example
+#
+# # good
+#
+# format('Numbered format: %1$s and numbered %2$s', a_value, another)
+#
+# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#37
+class RuboCop::Cop::Lint::FormatParameterMismatch < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#100
+ def called_on_string?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#49
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#137
+ def count_format_matches(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#119
+ def count_matches(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#141
+ def count_percent_matches(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#129
+ def countable_format?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#133
+ def countable_percent?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#153
+ def expected_fields_count(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#168
+ def format?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#146
+ def format_method?(name, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#64
+ def format_string?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#115
+ def heredoc?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#68
+ def invalid_format_string?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#91
+ def matched_arguments_count?(expected, passed); end
+
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#186
+ def message(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#105
+ def method_with_format_args?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#77
+ def offending_node?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#176
+ def percent?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#109
+ def splat_args?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#172
+ def sprintf?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#195
+ def string_type?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#44
+RuboCop::Cop::Lint::FormatParameterMismatch::KERNEL = T.let(T.unsafe(nil), String)
+
+# http://rubular.com/r/CvpbxkcTzy
+#
+# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#39
+RuboCop::Cop::Lint::FormatParameterMismatch::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#41
+RuboCop::Cop::Lint::FormatParameterMismatch::MSG_INVALID = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#47
+RuboCop::Cop::Lint::FormatParameterMismatch::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#45
+RuboCop::Cop::Lint::FormatParameterMismatch::SHOVEL = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#46
+RuboCop::Cop::Lint::FormatParameterMismatch::STRING_TYPES = T.let(T.unsafe(nil), Array)
+
+# Prefer using `Hash#compare_by_identity` rather than using `object_id`
+# for hash keys.
+#
+# This cop looks for hashes being keyed by objects' `object_id`, using
+# one of these methods: `key?`, `has_key?`, `fetch`, `[]` and `[]=`.
+#
+# @example
+# # bad
+# hash = {}
+# hash[foo.object_id] = :bar
+# hash.key?(baz.object_id)
+#
+# # good
+# hash = {}.compare_by_identity
+# hash[foo] = :bar
+# hash.key?(baz)
+#
+# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#31
+class RuboCop::Cop::Lint::HashCompareByIdentity < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#37
+ def id_as_hash_key?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#41
+ def on_send(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#34
+RuboCop::Cop::Lint::HashCompareByIdentity::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#32
+RuboCop::Cop::Lint::HashCompareByIdentity::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for the ordering of a method call where
+# the receiver of the call is a HEREDOC.
+#
+# @example
+# # bad
+# <<-SQL
+# bar
+# SQL
+# .strip_indent
+#
+# <<-SQL
+# bar
+# SQL
+# .strip_indent
+# .trim
+#
+# # good
+# <<~SQL
+# bar
+# SQL
+#
+# <<~SQL.trim
+# bar
+# SQL
+#
+# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#31
+class RuboCop::Cop::Lint::HeredocMethodCallPosition < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#37
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#37
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#97
+ def all_on_same_line?(nodes); end
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#50
+ def autocorrect(corrector, node, heredoc); end
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#77
+ def call_after_heredoc_range(heredoc); end
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#107
+ def call_end_pos(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#116
+ def call_line_range(node); end
+
+ # Returns nil if no range can be safely repositioned.
+ #
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#122
+ def call_range_to_safely_reposition(node, heredoc); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#86
+ def calls_on_multiple_lines?(node, _heredoc); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#82
+ def correctly_positioned?(node, heredoc); end
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#111
+ def heredoc_begin_line_range(heredoc); end
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#103
+ def heredoc_end_pos(heredoc); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#73
+ def heredoc_node?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#59
+ def heredoc_node_descendent_receiver(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#67
+ def send_node?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#146
+ def trailing_comma?(call_source, call_line_source); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#35
+RuboCop::Cop::Lint::HeredocMethodCallPosition::MSG = T.let(T.unsafe(nil), String)
+
+# Prefer `equal?` over `==` when comparing `object_id`.
+#
+# `Object#equal?` is provided to compare objects for identity, and in contrast
+# `Object#==` is provided for the purpose of doing value comparison.
+#
+# @example
+# # bad
+# foo.object_id == bar.object_id
+#
+# # good
+# foo.equal?(bar)
+#
+# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#18
+class RuboCop::Cop::Lint::IdentityComparison < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#24
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#40
+ def compare_between_object_id_by_double_equal?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#44
+ def object_id_method?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#21
+RuboCop::Cop::Lint::IdentityComparison::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#22
+RuboCop::Cop::Lint::IdentityComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for implicit string concatenation of string literals
+# which are on the same line.
+#
+# @example
+#
+# # bad
+#
+# array = ['Item 1' 'Item 2']
+# @example
+#
+# # good
+#
+# array = ['Item 1Item 2']
+# array = ['Item 1' + 'Item 2']
+# array = [
+# 'Item 1' \
+# 'Item 2'
+# ]
+#
+# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#25
+class RuboCop::Cop::Lint::ImplicitStringConcatenation < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#33
+ def on_dstr(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#83
+ def display_str(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#50
+ def each_bad_cons(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#65
+ def ending_delimiter(str); end
+
+ # source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#91
+ def str_content(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#75
+ def string_literal?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#79
+ def string_literals?(node1, node2); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#28
+RuboCop::Cop::Lint::ImplicitStringConcatenation::FOR_ARRAY = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#30
+RuboCop::Cop::Lint::ImplicitStringConcatenation::FOR_METHOD = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#26
+RuboCop::Cop::Lint::ImplicitStringConcatenation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for `IO.select` that is incompatible with Fiber Scheduler since Ruby 3.0.
+#
+# When an array of IO objects waiting for an exception (the third argument of `IO.select`)
+# is used as an argument, there is no alternative API, so offenses are not registered.
+#
+# NOTE: When the method is successful the return value of `IO.select` is `[[IO]]`,
+# and the return value of `io.wait_readable` and `io.wait_writable` are `self`.
+# They are not autocorrected when assigning a return value because these types are different.
+# It's up to user how to handle the return value.
+#
+# @example
+#
+# # bad
+# IO.select([io], [], [], timeout)
+#
+# # good
+# io.wait_readable(timeout)
+#
+# # bad
+# IO.select([], [io], [], timeout)
+#
+# # good
+# io.wait_writable(timeout)
+#
+# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#34
+class RuboCop::Cop::Lint::IncompatibleIoSelectWithFiberScheduler < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#41
+ def io_select(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#46
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#69
+ def preferred_method(read, write, timeout); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#63
+ def scheduler_compatible?(io1, io2); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#37
+RuboCop::Cop::Lint::IncompatibleIoSelectWithFiberScheduler::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#38
+RuboCop::Cop::Lint::IncompatibleIoSelectWithFiberScheduler::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for `private` or `protected` access modifiers which are
+# applied to a singleton method. These access modifiers do not make
+# singleton methods private/protected. `private_class_method` can be
+# used for that.
+#
+# @example
+#
+# # bad
+#
+# class C
+# private
+#
+# def self.method
+# puts 'hi'
+# end
+# end
+# @example
+#
+# # good
+#
+# class C
+# def self.method
+# puts 'hi'
+# end
+#
+# private_class_method :method
+# end
+# @example
+#
+# # good
+#
+# class C
+# class << self
+# private
+#
+# def method
+# puts 'hi'
+# end
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#48
+class RuboCop::Cop::Lint::IneffectiveAccessModifier < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#59
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#59
+ def on_module(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#55
+ def private_class_methods(param0); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#109
+ def access_modifier?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#66
+ def check_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#113
+ def correct_visibility?(node, modifier, ignored_methods); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#78
+ def format_message(modifier); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#91
+ def ineffective_modifier(node, ignored_methods = T.unsafe(nil), modifier = T.unsafe(nil), &block); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#74
+ def private_class_method_names(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#51
+RuboCop::Cop::Lint::IneffectiveAccessModifier::ALTERNATIVE_PRIVATE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#52
+RuboCop::Cop::Lint::IneffectiveAccessModifier::ALTERNATIVE_PROTECTED = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#49
+RuboCop::Cop::Lint::IneffectiveAccessModifier::MSG = T.let(T.unsafe(nil), String)
+
+# Looks for error classes inheriting from `Exception`.
+# It is configurable to suggest using either `StandardError` (default) or
+# `RuntimeError` instead.
+#
+# @example EnforcedStyle: standard_error (default)
+# # bad
+#
+# class C < Exception; end
+#
+# C = Class.new(Exception)
+#
+# # good
+#
+# class C < StandardError; end
+#
+# C = Class.new(StandardError)
+# @example EnforcedStyle: runtime_error
+# # bad
+#
+# class C < Exception; end
+#
+# C = Class.new(Exception)
+#
+# # good
+#
+# class C < RuntimeError; end
+#
+# C = Class.new(RuntimeError)
+#
+# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#40
+class RuboCop::Cop::Lint::InheritException < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#53
+ def class_new_call?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#59
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#70
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#87
+ def exception_class?(class_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#91
+ def inherit_exception_class_with_omitted_namespace?(class_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#83
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#99
+ def preferred_base_class; end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#44
+RuboCop::Cop::Lint::InheritException::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#45
+RuboCop::Cop::Lint::InheritException::PREFERRED_BASE_CLASS = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#50
+RuboCop::Cop::Lint::InheritException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for interpolation in a single quoted string.
+#
+# @example
+#
+# # bad
+#
+# foo = 'something with #{interpolation} inside'
+# @example
+#
+# # good
+#
+# foo = "something with #{interpolation} inside"
+#
+# source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#25
+class RuboCop::Cop::Lint::InterpolationCheck < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#31
+ def on_str(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#42
+ def autocorrect(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#53
+ def heredoc?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#28
+RuboCop::Cop::Lint::InterpolationCheck::MSG = T.let(T.unsafe(nil), String)
+
+# Checks uses of lambda without a literal block.
+# It emulates the following warning in Ruby 3.0:
+#
+# $ ruby -vwe 'lambda(&proc {})'
+# ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
+# -e:1: warning: lambda without a literal block is deprecated; use the proc without
+# lambda instead
+#
+# This way, proc object is never converted to lambda.
+# Autocorrection replaces with compatible proc argument.
+#
+# @example
+#
+# # bad
+# lambda(&proc { do_something })
+# lambda(&Proc.new { do_something })
+#
+# # good
+# proc { do_something }
+# Proc.new { do_something }
+# lambda { do_something } # If you use lambda.
+#
+# source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#28
+class RuboCop::Cop::Lint::LambdaWithoutLiteralBlock < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#35
+ def lambda_with_symbol_proc?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#39
+ def on_send(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#31
+RuboCop::Cop::Lint::LambdaWithoutLiteralBlock::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#32
+RuboCop::Cop::Lint::LambdaWithoutLiteralBlock::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for literals used as the conditions or as
+# operands in and/or expressions serving as the conditions of
+# if/while/until/case-when/case-in.
+#
+# NOTE: Literals in `case-in` condition where the match variable is used in
+# `in` are accepted as a pattern matching.
+#
+# @example
+#
+# # bad
+# if 20
+# do_something
+# end
+#
+# # bad
+# if some_var && true
+# do_something
+# end
+#
+# # good
+# if some_var && some_condition
+# do_something
+# end
+#
+# # good
+# # When using a boolean value for an infinite loop.
+# while true
+# break if condition
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#35
+class RuboCop::Cop::Lint::LiteralAsCondition < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#93
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#58
+ def on_case(case_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#73
+ def on_case_match(case_match_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#40
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#87
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#51
+ def on_until(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#51
+ def on_until_post(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#44
+ def on_while(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#44
+ def on_while_post(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#108
+ def basic_literal?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#138
+ def check_case(case_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#99
+ def check_for_literal(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#120
+ def check_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#147
+ def condition(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#130
+ def handle_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#116
+ def primitive_array?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#155
+ def when_conditions_range(when_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#38
+RuboCop::Cop::Lint::LiteralAsCondition::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for interpolated literals.
+#
+# @example
+#
+# # bad
+#
+# "result is #{10}"
+# @example
+#
+# # good
+#
+# "result is 10"
+#
+# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#19
+class RuboCop::Cop::Lint::LiteralInInterpolation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Interpolation
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::PercentLiteral
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#28
+ def on_interpolation(begin_node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#62
+ def autocorrected_value(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#108
+ def autocorrected_value_for_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#114
+ def autocorrected_value_for_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#84
+ def autocorrected_value_for_string(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#92
+ def autocorrected_value_for_symbol(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#125
+ def autocorrected_value_in_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#99
+ def autocorrected_value_in_hash_for_symbol(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#155
+ def ends_heredoc_line?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#163
+ def in_array_percent_literal?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#48
+ def offending?(node); end
+
+ # Does node print its own source when converted to a string?
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#146
+ def prints_as_self?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#151
+ def space_literal?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#56
+ def special_keyword?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#26
+RuboCop::Cop::Lint::LiteralInInterpolation::COMPOSITE = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#25
+RuboCop::Cop::Lint::LiteralInInterpolation::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for uses of `begin...end while/until something`.
+#
+# @example
+#
+# # bad
+#
+# # using while
+# begin
+# do_something
+# end while some_condition
+# @example
+#
+# # bad
+#
+# # using until
+# begin
+# do_something
+# end until some_condition
+# @example
+#
+# # good
+#
+# # while replacement
+# loop do
+# do_something
+# break unless some_condition
+# end
+# @example
+#
+# # good
+#
+# # until replacement
+# loop do
+# do_something
+# break if some_condition
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/loop.rb#50
+class RuboCop::Cop::Lint::Loop < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/loop.rb#59
+ def on_until_post(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/loop.rb#55
+ def on_while_post(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/loop.rb#79
+ def build_break_line(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/loop.rb#75
+ def keyword_and_condition_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/loop.rb#65
+ def register_offense(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/loop.rb#53
+RuboCop::Cop::Lint::Loop::MSG = T.let(T.unsafe(nil), String)
+
+# cop disables on wide ranges of code, that latter contributors to
+# a file wouldn't be aware of.
+#
+# @example
+# # Lint/MissingCopEnableDirective:
+# # MaximumRangeSize: .inf
+#
+# # good
+# # rubocop:disable Layout/SpaceAroundOperators
+# x= 0
+# # rubocop:enable Layout/SpaceAroundOperators
+# # y = 1
+# # EOF
+#
+# # bad
+# # rubocop:disable Layout/SpaceAroundOperators
+# x= 0
+# # EOF
+# @example
+# # Lint/MissingCopEnableDirective:
+# # MaximumRangeSize: 2
+#
+# # good
+# # rubocop:disable Layout/SpaceAroundOperators
+# x= 0
+# # With the previous, there are 2 lines on which cop is disabled.
+# # rubocop:enable Layout/SpaceAroundOperators
+#
+# # bad
+# # rubocop:disable Layout/SpaceAroundOperators
+# x= 0
+# x += 1
+# # Including this, that's 3 lines on which the cop is disabled.
+# # rubocop:enable Layout/SpaceAroundOperators
+#
+# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#45
+class RuboCop::Cop::Lint::MissingCopEnableDirective < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#51
+ def on_new_investigation; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#70
+ def acceptable_range?(cop, line_range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#104
+ def department_enabled?(cop, comment); end
+
+ # source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#64
+ def each_missing_enable; end
+
+ # source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#87
+ def max_range; end
+
+ # source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#91
+ def message(cop, comment, type = T.unsafe(nil)); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#48
+RuboCop::Cop::Lint::MissingCopEnableDirective::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#49
+RuboCop::Cop::Lint::MissingCopEnableDirective::MSG_BOUND = T.let(T.unsafe(nil), String)
+
+# Checks for the presence of constructors and lifecycle callbacks
+# without calls to `super`.
+#
+# This cop does not consider `method_missing` (and `respond_to_missing?`)
+# because in some cases it makes sense to overtake what is considered a
+# missing method. In other cases, the theoretical ideal handling could be
+# challenging or verbose for no actual gain.
+#
+# Autocorrection is not supported because the position of `super` cannot be
+# determined automatically.
+#
+# `Object` and `BasicObject` are allowed by this cop because of their
+# stateless nature. However, sometimes you might want to allow other parent
+# classes from this cop, for example in the case of an abstract class that is
+# not meant to be called with `super`. In those cases, you can use the
+# `AllowedParentClasses` option to specify which classes should be allowed
+# *in addition to* `Object` and `BasicObject`.
+#
+# @example
+# # bad
+# class Employee < Person
+# def initialize(name, salary)
+# @salary = salary
+# end
+# end
+#
+# # good
+# class Employee < Person
+# def initialize(name, salary)
+# super(name)
+# @salary = salary
+# end
+# end
+#
+# # bad
+# Employee = Class.new(Person) do
+# def initialize(name, salary)
+# @salary = salary
+# end
+# end
+#
+# # good
+# Employee = Class.new(Person) do
+# def initialize(name, salary)
+# super(name)
+# @salary = salary
+# end
+# end
+#
+# # bad
+# class Parent
+# def self.inherited(base)
+# do_something
+# end
+# end
+#
+# # good
+# class Parent
+# def self.inherited(base)
+# super
+# do_something
+# end
+# end
+#
+# # good
+# class ClassWithNoParent
+# def initialize
+# do_something
+# end
+# end
+# @example AllowedParentClasses: [MyAbstractClass]
+# # good
+# class MyConcreteClass < MyAbstractClass
+# def initialize
+# do_something
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#85
+class RuboCop::Cop::Lint::MissingSuper < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#99
+ def class_new_block(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#105
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#115
+ def on_defs(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#149
+ def allowed_class?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#153
+ def allowed_classes; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#127
+ def callback_method_def?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#133
+ def contains_super?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#137
+ def inside_class_with_stateful_parent?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/missing_super.rb#123
+ def offender?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#96
+RuboCop::Cop::Lint::MissingSuper::CALLBACKS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#87
+RuboCop::Cop::Lint::MissingSuper::CALLBACK_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#91
+RuboCop::Cop::Lint::MissingSuper::CLASS_LIFECYCLE_CALLBACKS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#86
+RuboCop::Cop::Lint::MissingSuper::CONSTRUCTOR_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#92
+RuboCop::Cop::Lint::MissingSuper::METHOD_LIFECYCLE_CALLBACKS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#89
+RuboCop::Cop::Lint::MissingSuper::STATELESS_CLASSES = T.let(T.unsafe(nil), Array)
+
+# Checks for mixed-case character ranges since they include likely unintended characters.
+#
+# Offenses are registered for regexp character classes like `/[A-z]/`
+# as well as range objects like `('A'..'z')`.
+#
+# NOTE: Range objects cannot be autocorrected.
+#
+# @example
+#
+# # bad
+# r = /[A-z]/
+#
+# # good
+# r = /[A-Za-z]/
+#
+# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#28
+class RuboCop::Cop::Lint::MixedCaseRange < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#56
+ def each_unsafe_regexp_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#37
+ def on_erange(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#37
+ def on_irange(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#48
+ def on_regexp(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#72
+ def build_source_range(range_start, range_end); end
+
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#76
+ def range_for(char); end
+
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#82
+ def range_pairs(expr); end
+
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#102
+ def rewrite_regexp_range(source); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#92
+ def skip_expression?(expr); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#96
+ def skip_range?(range_start, range_end); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#86
+ def unsafe_range?(range_start, range_end); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#32
+RuboCop::Cop::Lint::MixedCaseRange::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#35
+RuboCop::Cop::Lint::MixedCaseRange::RANGES = T.let(T.unsafe(nil), Array)
+
+# Do not mix named captures and numbered captures in a Regexp literal
+# because numbered capture is ignored if they're mixed.
+# Replace numbered captures with non-capturing groupings or
+# named captures.
+#
+# @example
+# # bad
+# /(?FOO)(BAR)/
+#
+# # good
+# /(?FOO)(?BAR)/
+#
+# # good
+# /(?FOO)(?:BAR)/
+#
+# # good
+# /(FOO)(BAR)/
+#
+# source://rubocop//lib/rubocop/cop/lint/mixed_regexp_capture_types.rb#24
+class RuboCop::Cop::Lint::MixedRegexpCaptureTypes < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/mixed_regexp_capture_types.rb#27
+ def on_regexp(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/mixed_regexp_capture_types.rb#25
+RuboCop::Cop::Lint::MixedRegexpCaptureTypes::MSG = T.let(T.unsafe(nil), String)
+
+# In math and Python, we can use `x < y < z` style comparison to compare
+# multiple value. However, we can't use the comparison in Ruby. However,
+# the comparison is not syntax error. This cop checks the bad usage of
+# comparison operators.
+#
+# @example
+#
+# # bad
+# x < y < z
+# 10 <= x <= 20
+#
+# # good
+# x < y && y < z
+# 10 <= x && x <= 20
+#
+# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#20
+class RuboCop::Cop::Lint::MultipleComparison < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#29
+ def multiple_compare?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#33
+ def on_send(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#24
+RuboCop::Cop::Lint::MultipleComparison::COMPARISON_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#23
+RuboCop::Cop::Lint::MultipleComparison::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#26
+RuboCop::Cop::Lint::MultipleComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#25
+RuboCop::Cop::Lint::MultipleComparison::SET_OPERATION_OPERATORS = T.let(T.unsafe(nil), Array)
+
+# Checks for nested method definitions.
+#
+# @example
+#
+# # bad
+#
+# # `bar` definition actually produces methods in the same scope
+# # as the outer `foo` method. Furthermore, the `bar` method
+# # will be redefined every time `foo` is invoked.
+# def foo
+# def bar
+# end
+# end
+# @example
+#
+# # good
+#
+# def foo
+# bar = -> { puts 'hello' }
+# bar.call
+# end
+# @example
+#
+# # good
+#
+# # `class_eval`, `instance_eval`, `module_eval`, `class_exec`, `instance_exec`, and
+# # `module_exec` blocks are allowed by default.
+#
+# def foo
+# self.class.class_eval do
+# def bar
+# end
+# end
+# end
+#
+# def foo
+# self.class.module_exec do
+# def bar
+# end
+# end
+# end
+# @example
+#
+# # good
+#
+# def foo
+# class << self
+# def bar
+# end
+# end
+# end
+# @example AllowedMethods: [] (default)
+# # bad
+# def do_something
+# has_many :articles do
+# def find_or_create_by_name(name)
+# end
+# end
+# end
+# @example AllowedMethods: ['has_many']
+# # bad
+# def do_something
+# has_many :articles do
+# def find_or_create_by_name(name)
+# end
+# end
+# end
+# @example AllowedPatterns: [] (default)
+# # bad
+# def foo(obj)
+# obj.do_baz do
+# def bar
+# end
+# end
+# end
+# @example AllowedPatterns: ['baz']
+# # good
+# def foo(obj)
+# obj.do_baz do
+# def bar
+# end
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#97
+class RuboCop::Cop::Lint::NestedMethodDefinition < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::AllowedPattern
+
+ # source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#133
+ def eval_call?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#138
+ def exec_call?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#103
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#103
+ def on_defs(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#126
+ def allowed_method_name?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#121
+ def scoping_method_call?(child); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#101
+RuboCop::Cop::Lint::NestedMethodDefinition::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for nested percent literals.
+#
+# @example
+#
+# # bad
+#
+# # The percent literal for nested_attributes is parsed as four tokens,
+# # yielding the array [:name, :content, :"%i[incorrectly", :"nested]"].
+# attributes = {
+# valid_attributes: %i[name content],
+# nested_attributes: %i[name content %i[incorrectly nested]]
+# }
+#
+# # good
+#
+# # Neither is incompatible with the bad case, but probably the intended code.
+# attributes = {
+# valid_attributes: %i[name content],
+# nested_attributes: [:name, :content, %i[incorrectly nested]]
+# }
+#
+# attributes = {
+# valid_attributes: %i[name content],
+# nested_attributes: [:name, :content, [:incorrectly, :nested]]
+# }
+#
+# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#32
+class RuboCop::Cop::Lint::NestedPercentLiteral < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::PercentLiteral
+
+ # source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#44
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#48
+ def on_percent_literal(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#54
+ def contains_percent_literals?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#35
+RuboCop::Cop::Lint::NestedPercentLiteral::MSG = T.let(T.unsafe(nil), String)
+
+# The array of regular expressions representing percent literals that,
+# if found within a percent literal expression, will cause a
+# NestedPercentLiteral violation to be emitted.
+#
+# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#41
+RuboCop::Cop::Lint::NestedPercentLiteral::PERCENT_LITERAL_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#42
+RuboCop::Cop::Lint::NestedPercentLiteral::REGEXES = T.let(T.unsafe(nil), Array)
+
+# Don't omit the accumulator when calling `next` in a `reduce` block.
+#
+# @example
+#
+# # bad
+#
+# result = (1..4).reduce(0) do |acc, i|
+# next if i.odd?
+# acc + i
+# end
+# @example
+#
+# # good
+#
+# result = (1..4).reduce(0) do |acc, i|
+# next acc if i.odd?
+# acc + i
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#25
+class RuboCop::Cop::Lint::NextWithoutAccumulator < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#28
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#51
+ def on_block_body_of_reduce(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#38
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#56
+ def on_numblock_body_of_reduce(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#60
+ def parent_block_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#64
+ def parent_numblock_node(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#26
+RuboCop::Cop::Lint::NextWithoutAccumulator::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for the presence of a `return` inside a `begin..end` block
+# in assignment contexts.
+# In this situation, the `return` will result in an exit from the current
+# method, possibly leading to unexpected behavior.
+#
+# @example
+#
+# # bad
+#
+# @some_variable ||= begin
+# return some_value if some_condition_is_met
+#
+# do_something
+# end
+# @example
+#
+# # good
+#
+# @some_variable ||= begin
+# if some_condition_is_met
+# some_value
+# else
+# do_something
+# end
+# end
+#
+# # good
+#
+# some_variable = if some_condition_is_met
+# return if another_condition_is_met
+#
+# some_value
+# else
+# do_something
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#43
+class RuboCop::Cop::Lint::NoReturnInBeginEndBlocks < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#46
+ def on_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#46
+ def on_op_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#46
+ def on_or_asgn(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#44
+RuboCop::Cop::Lint::NoReturnInBeginEndBlocks::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for non-atomic file operation.
+# And then replace it with a nearly equivalent and atomic method.
+#
+# These can cause problems that are difficult to reproduce,
+# especially in cases of frequent file operations in parallel,
+# such as test runs with parallel_rspec.
+#
+# For examples: creating a directory if there is none, has the following problems
+#
+# An exception occurs when the directory didn't exist at the time of `exist?`,
+# but someone else created it before `mkdir` was executed.
+#
+# Subsequent processes are executed without the directory that should be there
+# when the directory existed at the time of `exist?`,
+# but someone else deleted it shortly afterwards.
+#
+# @example
+# # bad - race condition with another process may result in an error in `mkdir`
+# unless Dir.exist?(path)
+# FileUtils.mkdir(path)
+# end
+#
+# # good - atomic and idempotent creation
+# FileUtils.mkdir_p(path)
+#
+# # bad - race condition with another process may result in an error in `remove`
+# if File.exist?(path)
+# FileUtils.remove(path)
+# end
+#
+# # good - atomic and idempotent removal
+# FileUtils.rm_f(path)
+#
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#44
+class RuboCop::Cop::Lint::NonAtomicFileOperation < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#76
+ def explicit_not_force?(param0); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#71
+ def force?(param0); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#80
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#66
+ def receiver_and_method_name(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#61
+ def send_exist_node(param0); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#97
+ def allowable_use_with_if?(if_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#121
+ def autocorrect(corrector, node, range); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#132
+ def autocorrect_replace_method(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#151
+ def force_method?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#159
+ def force_method_name?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#155
+ def force_option?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#91
+ def if_node_child?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#112
+ def message_change_force_method(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#116
+ def message_remove_file_exist_check(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#101
+ def register_offense(node, exist_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#139
+ def replacement_method(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#50
+RuboCop::Cop::Lint::NonAtomicFileOperation::MAKE_FORCE_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#51
+RuboCop::Cop::Lint::NonAtomicFileOperation::MAKE_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#49
+RuboCop::Cop::Lint::NonAtomicFileOperation::MSG_CHANGE_FORCE_METHOD = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#47
+RuboCop::Cop::Lint::NonAtomicFileOperation::MSG_REMOVE_FILE_EXIST_CHECK = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#54
+RuboCop::Cop::Lint::NonAtomicFileOperation::RECURSIVE_REMOVE_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#52
+RuboCop::Cop::Lint::NonAtomicFileOperation::REMOVE_FORCE_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#53
+RuboCop::Cop::Lint::NonAtomicFileOperation::REMOVE_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#55
+RuboCop::Cop::Lint::NonAtomicFileOperation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# `Dir[...]` and `Dir.glob(...)` do not make any guarantees about
+# the order in which files are returned. The final order is
+# determined by the operating system and file system.
+# This means that using them in cases where the order matters,
+# such as requiring files, can lead to intermittent failures
+# that are hard to debug. To ensure this doesn't happen,
+# always sort the list.
+#
+# `Dir.glob` and `Dir[]` sort globbed results by default in Ruby 3.0.
+# So all bad cases are acceptable when Ruby 3.0 or higher are used.
+#
+# NOTE: This cop will be deprecated and removed when supporting only Ruby 3.0 and higher.
+#
+# @example
+#
+# # bad
+# Dir["./lib/**/*.rb"].each do |file|
+# require file
+# end
+#
+# # good
+# Dir["./lib/**/*.rb"].sort.each do |file|
+# require file
+# end
+#
+# # bad
+# Dir.glob(Rails.root.join(__dir__, 'test', '*.rb')) do |file|
+# require file
+# end
+#
+# # good
+# Dir.glob(Rails.root.join(__dir__, 'test', '*.rb')).sort.each do |file|
+# require file
+# end
+#
+# # bad
+# Dir['./lib/**/*.rb'].each(&method(:require))
+#
+# # good
+# Dir['./lib/**/*.rb'].sort.each(&method(:require))
+#
+# # bad
+# Dir.glob(Rails.root.join('test', '*.rb'), &method(:require))
+#
+# # good
+# Dir.glob(Rails.root.join('test', '*.rb')).sort.each(&method(:require))
+#
+# # good - Respect intent if `sort` keyword option is specified in Ruby 3.0 or higher.
+# Dir.glob(Rails.root.join(__dir__, 'test', '*.rb'), sort: false).each(&method(:require))
+#
+# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#60
+class RuboCop::Cop::Lint::NonDeterministicRequireOrder < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#174
+ def loop_variable(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#157
+ def method_require?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#65
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#89
+ def on_block_pass(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#77
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#147
+ def unsorted_dir_block?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#152
+ def unsorted_dir_each?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#168
+ def unsorted_dir_each_pass?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#162
+ def unsorted_dir_glob_pass?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#179
+ def var_is_required?(param0, param1); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#107
+ def correct_block(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#117
+ def correct_block_pass(corrector, node); end
+
+ # Returns range of last argument including comma and whitespace.
+ #
+ # @return [Parser::Source::Range]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#132
+ def last_arg_range(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#138
+ def unsorted_dir_loop?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#142
+ def unsorted_dir_pass?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#63
+RuboCop::Cop::Lint::NonDeterministicRequireOrder::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for non-local exits from iterators without a return
+# value. It registers an offense under these conditions:
+#
+# * No value is returned,
+# * the block is preceded by a method chain,
+# * the block has arguments,
+# * the method which receives the block is not `define_method`
+# or `define_singleton_method`,
+# * the return is not contained in an inner scope, e.g. a lambda or a
+# method definition.
+#
+# @example
+#
+# class ItemApi
+# rescue_from ValidationError do |e| # non-iteration block with arg
+# return { message: 'validation error' } unless e.errors # allowed
+# error_array = e.errors.map do |error| # block with method chain
+# return if error.suppress? # warned
+# return "#{error.param}: invalid" unless error.message # allowed
+# "#{error.param}: #{error.message}"
+# end
+# { message: 'validation error', errors: error_array }
+# end
+#
+# def update_items
+# transaction do # block without arguments
+# return unless update_necessary? # allowed
+# find_each do |item| # block without method chain
+# return if item.stock == 0 # false-negative...
+# item.update!(foobar: true)
+# end
+# end
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#41
+class RuboCop::Cop::Lint::NonLocalExitFromIterator < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#77
+ def chained_send?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#80
+ def define_method?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#46
+ def on_return(return_node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#72
+ def return_value?(return_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#68
+ def scoped_node?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#42
+RuboCop::Cop::Lint::NonLocalExitFromIterator::MSG = T.let(T.unsafe(nil), String)
+
+# Warns the usage of unsafe number conversions. Unsafe
+# number conversion can cause unexpected error if auto type conversion
+# fails. Cop prefer parsing with number class instead.
+#
+# Conversion with `Integer`, `Float`, etc. will raise an `ArgumentError`
+# if given input that is not numeric (eg. an empty string), whereas
+# `to_i`, etc. will try to convert regardless of input (`''.to_i => 0`).
+# As such, this cop is disabled by default because it's not necessarily
+# always correct to raise if a value is not numeric.
+#
+# NOTE: Some values cannot be converted properly using one of the `Kernel`
+# method (for instance, `Time` and `DateTime` values are allowed by this
+# cop by default). Similarly, Rails' duration methods do not work well
+# with `Integer()` and can be allowed with `AllowedMethods`. By default,
+# there are no methods to allowed.
+#
+# @example
+#
+# # bad
+#
+# '10'.to_i
+# '10.2'.to_f
+# '10'.to_c
+# '1/3'.to_r
+# ['1', '2', '3'].map(&:to_i)
+# foo.try(:to_f)
+# bar.send(:to_c)
+#
+# # good
+#
+# Integer('10', 10)
+# Float('10.2')
+# Complex('10')
+# Rational('1/3')
+# ['1', '2', '3'].map { |i| Integer(i, 10) }
+# foo.try { |i| Float(i) }
+# bar.send { |i| Complex(i) }
+# @example AllowedMethods: [] (default)
+#
+# # bad
+# 10.minutes.to_i
+# @example AllowedMethods: [minutes]
+#
+# # good
+# 10.minutes.to_i
+# @example AllowedPatterns: [] (default)
+#
+# # bad
+# 10.minutes.to_i
+# @example AllowedPatterns: ['min*']
+#
+# # good
+# 10.minutes.to_i
+# @example IgnoredClasses: [Time, DateTime] (default)
+#
+# # good
+# Time.now.to_datetime.to_i
+#
+# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#73
+class RuboCop::Cop::Lint::NumberConversion < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::AllowedPattern
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#103
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#93
+ def to_method(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#98
+ def to_method_symbol(param0 = T.unsafe(nil)); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#160
+ def allow_receiver?(receiver); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#172
+ def allowed_method_name?(name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#182
+ def conversion_method?(method_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#146
+ def correct_method(node, receiver); end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#150
+ def correct_sym_method(to_method); end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#129
+ def handle_as_symbol(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#110
+ def handle_conversion_method(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#190
+ def ignored_class?(name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#186
+ def ignored_classes; end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#155
+ def remove_parentheses(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#176
+ def top_receiver(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#89
+RuboCop::Cop::Lint::NumberConversion::CONVERSION_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#79
+RuboCop::Cop::Lint::NumberConversion::CONVERSION_METHOD_CLASS_MAPPING = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#90
+RuboCop::Cop::Lint::NumberConversion::METHODS = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#85
+RuboCop::Cop::Lint::NumberConversion::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for uses of numbered parameter assignment.
+# It emulates the following warning in Ruby 2.7:
+#
+# $ ruby -ve '_1 = :value'
+# ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
+# -e:1: warning: `_1' is reserved for numbered parameter; consider another name
+#
+# Assigning to a numbered parameter (from `_1` to `_9`) causes an error in Ruby 3.0.
+#
+# $ ruby -ve '_1 = :value'
+# ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
+# -e:1: _1 is reserved for numbered parameter
+#
+# NOTE: The parametered parameters are from `_1` to `_9`. This cop checks `_0`, and over `_10`
+# as well to prevent confusion.
+#
+# @example
+#
+# # bad
+# _1 = :value
+#
+# # good
+# non_numbered_parameter_name = :value
+#
+# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#30
+class RuboCop::Cop::Lint::NumberedParameterAssignment < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#35
+ def on_lvasgn(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#32
+RuboCop::Cop::Lint::NumberedParameterAssignment::LVAR_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#33
+RuboCop::Cop::Lint::NumberedParameterAssignment::NUMBERED_PARAMETER_RANGE = T.let(T.unsafe(nil), Range)
+
+# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#31
+RuboCop::Cop::Lint::NumberedParameterAssignment::NUM_PARAM_MSG = T.let(T.unsafe(nil), String)
+
+# Checks for unintended or-assignment to a constant.
+#
+# Constants should always be assigned in the same location. And its value
+# should always be the same. If constants are assigned in multiple
+# locations, the result may vary depending on the order of `require`.
+#
+# @example
+#
+# # bad
+# CONST ||= 1
+#
+# # good
+# CONST = 1
+#
+# source://rubocop//lib/rubocop/cop/lint/or_assignment_to_constant.rb#24
+class RuboCop::Cop::Lint::OrAssignmentToConstant < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/or_assignment_to_constant.rb#29
+ def on_or_asgn(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/or_assignment_to_constant.rb#27
+RuboCop::Cop::Lint::OrAssignmentToConstant::MSG = T.let(T.unsafe(nil), String)
+
+# Checks the proper ordering of magic comments and whether
+# a magic comment is not placed before a shebang.
+#
+# @example
+# # bad
+#
+# # frozen_string_literal: true
+# # encoding: ascii
+# p [''.frozen?, ''.encoding] #=> [true, #]
+#
+# # good
+#
+# # encoding: ascii
+# # frozen_string_literal: true
+# p [''.frozen?, ''.encoding] #=> [true, #]
+#
+# # good
+#
+# #!/usr/bin/env ruby
+# # encoding: ascii
+# # frozen_string_literal: true
+# p [''.frozen?, ''.encoding] #=> [true, #]
+#
+# source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#32
+class RuboCop::Cop::Lint::OrderedMagicComments < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::FrozenStringLiteral
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#38
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#55
+ def autocorrect(corrector, encoding_line, frozen_string_literal_line); end
+
+ # source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#63
+ def magic_comment_lines; end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#36
+RuboCop::Cop::Lint::OrderedMagicComments::MSG = T.let(T.unsafe(nil), String)
+
+# Looks for references of Regexp captures that are out of range
+# and thus always returns nil.
+#
+# @example
+#
+# /(foo)bar/ =~ 'foobar'
+#
+# # bad - always returns nil
+#
+# puts $2 # => nil
+#
+# # good
+#
+# puts $1 # => foo
+#
+# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#38
+class RuboCop::Cop::Lint::OutOfRangeRegexpRef < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#55
+ def after_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#71
+ def on_in_pattern(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#51
+ def on_match_with_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#47
+ def on_new_investigation; end
+
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#77
+ def on_nth_ref(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#65
+ def on_when(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#102
+ def check_regexp(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#122
+ def nth_ref_receiver?(send_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#113
+ def regexp_first_argument?(send_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#93
+ def regexp_patterns(in_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#118
+ def regexp_receiver?(send_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#39
+RuboCop::Cop::Lint::OutOfRangeRegexpRef::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#42
+RuboCop::Cop::Lint::OutOfRangeRegexpRef::REGEXP_ARGUMENT_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#44
+RuboCop::Cop::Lint::OutOfRangeRegexpRef::REGEXP_CAPTURE_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#41
+RuboCop::Cop::Lint::OutOfRangeRegexpRef::REGEXP_RECEIVER_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#45
+RuboCop::Cop::Lint::OutOfRangeRegexpRef::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
+
+# Checks for space between the name of a called method and a left
+# parenthesis.
+#
+# @example
+#
+# # bad
+# do_something (foo)
+#
+# # good
+# do_something(foo)
+# do_something (2 + 3) * 4
+# do_something (foo * bar).baz
+#
+# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#18
+class RuboCop::Cop::Lint::ParenthesesAsGroupedExpression < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#24
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#24
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#61
+ def chained_calls?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#49
+ def first_argument_block_type?(first_arg); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#57
+ def first_argument_starts_with_left_parenthesis?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#86
+ def space_range(expr, space_length); end
+
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#70
+ def spaces_before_left_parenthesis(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#66
+ def ternary_expression?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#39
+ def valid_context?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#53
+ def valid_first_argument?(first_arg); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#22
+RuboCop::Cop::Lint::ParenthesesAsGroupedExpression::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for quotes and commas in %w, e.g. `%w('foo', "bar")`
+#
+# It is more likely that the additional characters are unintended (for
+# example, mistranslating an array of literals to percent string notation)
+# rather than meant to be part of the resulting strings.
+#
+# @example
+#
+# # bad
+#
+# %w('foo', "bar")
+# @example
+#
+# # good
+#
+# %w(foo bar)
+#
+# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#33
+class RuboCop::Cop::Lint::PercentStringArray < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::PercentLiteral
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#44
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#48
+ def on_percent_literal(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#65
+ def contains_quotes_or_commas?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#38
+RuboCop::Cop::Lint::PercentStringArray::LEADING_QUOTE = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#41
+RuboCop::Cop::Lint::PercentStringArray::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#37
+RuboCop::Cop::Lint::PercentStringArray::QUOTES_AND_COMMAS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#39
+RuboCop::Cop::Lint::PercentStringArray::TRAILING_QUOTE = T.let(T.unsafe(nil), Regexp)
+
+# Checks for colons and commas in %i, e.g. `%i(:foo, :bar)`
+#
+# It is more likely that the additional characters are unintended (for
+# example, mistranslating an array of literals to percent string notation)
+# rather than meant to be part of the resulting symbols.
+#
+# @example
+#
+# # bad
+#
+# %i(:foo, :bar)
+# @example
+#
+# # good
+#
+# %i(foo bar)
+#
+# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#23
+class RuboCop::Cop::Lint::PercentSymbolArray < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::PercentLiteral
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#30
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#34
+ def on_percent_literal(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#42
+ def autocorrect(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#52
+ def contains_colons_or_commas?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#62
+ def non_alphanumeric_literal?(literal); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#27
+RuboCop::Cop::Lint::PercentSymbolArray::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for `raise` or `fail` statements which are
+# raising `Exception` class.
+#
+# You can specify a module name that will be an implicit namespace
+# using `AllowedImplicitNamespaces` option. The cop cause a false positive
+# for namespaced `Exception` when a namespace is omitted. This option can
+# prevent the false positive by specifying a namespace to be omitted for
+# `Exception`. Alternatively, make `Exception` a fully qualified class
+# name with an explicit namespace.
+#
+# @example
+# # bad
+# raise Exception, 'Error message here'
+#
+# # good
+# raise StandardError, 'Error message here'
+# @example AllowedImplicitNamespaces: ['Gem']
+# # good
+# module Gem
+# def self.foo
+# raise Exception # This exception means `Gem::Exception`.
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#34
+class RuboCop::Cop::Lint::RaiseException < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#41
+ def exception?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#46
+ def exception_new_with_message?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#51
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#85
+ def allow_implicit_namespaces; end
+
+ # source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#57
+ def check(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#73
+ def implicit_namespace?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#37
+RuboCop::Cop::Lint::RaiseException::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#38
+RuboCop::Cop::Lint::RaiseException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for `rand(1)` calls.
+# Such calls always return `0`.
+#
+# @example
+#
+# # bad
+#
+# rand 1
+# Kernel.rand(-1)
+# rand 1.0
+# rand(-1.0)
+# @example
+#
+# # good
+#
+# 0 # just use 0 instead
+#
+# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#23
+class RuboCop::Cop::Lint::RandOne < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/rand_one.rb#32
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/rand_one.rb#28
+ def rand_one?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/rand_one.rb#40
+ def message(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#24
+RuboCop::Cop::Lint::RandOne::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#25
+RuboCop::Cop::Lint::RandOne::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# removed without causing any offenses to be reported. It's implemented
+# as a cop in that it inherits from the Cop base class and calls
+# add_offense. The unusual part of its implementation is that it doesn't
+# have any on_* methods or an investigate method. This means that it
+# doesn't take part in the investigation phase when the other cops do
+# their work. Instead, it waits until it's called in a later stage of the
+# execution. The reason it can't be implemented as a normal cop is that
+# it depends on the results of all other cops to do its work.
+#
+# @example
+# # bad
+# # rubocop:disable Layout/LineLength
+# x += 1
+# # rubocop:enable Layout/LineLength
+#
+# # good
+# x += 1
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#28
+class RuboCop::Cop::Lint::RedundantCopDisableDirective < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # @return [RedundantCopDisableDirective] a new instance of RedundantCopDisableDirective
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#37
+ def initialize(config = T.unsafe(nil), options = T.unsafe(nil), offenses = T.unsafe(nil)); end
+
+ # Returns the value of attribute offenses_to_check.
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#35
+ def offenses_to_check; end
+
+ # Sets the attribute offenses_to_check
+ #
+ # @param value the value to set the attribute offenses_to_check to.
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#35
+ def offenses_to_check=(_arg0); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#42
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#323
+ def add_department_marker(department); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#229
+ def add_offense_for_entire_comment(comment, cops); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#244
+ def add_offense_for_some_cops(comment, cops); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#219
+ def add_offenses(redundant_cops); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#306
+ def all_cop_names; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#190
+ def all_disabled?(comment); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#69
+ def comment_range_with_surrounding_space(directive_comment_range, line_comment_range); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#57
+ def cop_disabled_line_ranges; end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#264
+ def cop_range(comment, cop); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#210
+ def department_disabled?(cop, comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#315
+ def department_marker?(department); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#293
+ def describe(cop); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#215
+ def directive_count(comment); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#92
+ def directive_range_in_list(range, ranges); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#61
+ def disabled_ranges; end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#132
+ def each_already_disabled(cop, line_ranges); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#113
+ def each_line_range(cop, line_ranges); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#106
+ def each_redundant_disable(&block); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#310
+ def ends_its_line?(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#202
+ def expected_final_disable?(cop, line_range); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#166
+ def find_redundant_all(range, next_range); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#161
+ def find_redundant_cop(cop, range); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#176
+ def find_redundant_department(cop, range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#182
+ def followed_ranges?(range, next_range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#194
+ def ignore_offense?(line_range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#258
+ def leave_free_comment?(comment, range); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#271
+ def matching_range(haystack, needle); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#302
+ def message(cop_names); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#65
+ def previous_line_blank?(range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#186
+ def range_with_offense?(range, offenses = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#319
+ def remove_department_marker(department); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#279
+ def trailing_range?(ranges, range); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#32
+RuboCop::Cop::Lint::RedundantCopDisableDirective::COP_NAME = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#33
+RuboCop::Cop::Lint::RedundantCopDisableDirective::DEPARTMENT_MARKER = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#287
+RuboCop::Cop::Lint::RedundantCopDisableDirective::SIMILAR_COP_NAMES_CACHE = T.let(T.unsafe(nil), Hash)
+
+# removed.
+#
+# that cop checks whether any cop was actually enabled.
+#
+# @example
+# # bad
+# foo = 1
+# # rubocop:enable Layout/LineLength
+#
+# # good
+# foo = 1
+# @example
+# # bad
+# # rubocop:disable Style/StringLiterals
+# foo = "1"
+# # rubocop:enable Style/StringLiterals
+# baz
+# # rubocop:enable all
+#
+# # good
+# # rubocop:disable Style/StringLiterals
+# foo = "1"
+# # rubocop:enable all
+# baz
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#37
+class RuboCop::Cop::Lint::RedundantCopEnableDirective < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ include ::RuboCop::Cop::SurroundingSpace
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#44
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#120
+ def all_or_name(name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#76
+ def comment_start(comment); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#80
+ def cop_name_indention(comment, name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#124
+ def department?(directive, name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#71
+ def range_of_offense(comment, name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#95
+ def range_to_remove(begin_pos, end_pos, comment); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#84
+ def range_with_comma(comment, name); end
+
+ # If the list of cops is comma-separated, but without a empty space after the comma,
+ # we should **not** remove the prepending empty space, thus begin_pos += 1
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#114
+ def range_with_comma_after(comment, start, begin_pos, end_pos); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#108
+ def range_with_comma_before(start, begin_pos, end_pos); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#53
+ def register_offense(comment, cop_names); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#42
+RuboCop::Cop::Lint::RedundantCopEnableDirective::MSG = T.let(T.unsafe(nil), String)
+
+# Sort globbed results by default in Ruby 3.0.
+# This cop checks for redundant `sort` method to `Dir.glob` and `Dir[]`.
+#
+# @example
+#
+# # bad
+# Dir.glob('./lib/**/*.rb').sort.each do |file|
+# end
+#
+# Dir['./lib/**/*.rb'].sort.each do |file|
+# end
+#
+# # good
+# Dir.glob('./lib/**/*.rb').each do |file|
+# end
+#
+# Dir['./lib/**/*.rb'].each do |file|
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#30
+class RuboCop::Cop::Lint::RedundantDirGlobSort < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+ extend ::RuboCop::Cop::TargetRubyVersion
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#40
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#56
+ def multiple_argument?(glob_method); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#38
+RuboCop::Cop::Lint::RedundantDirGlobSort::GLOB_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#36
+RuboCop::Cop::Lint::RedundantDirGlobSort::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#37
+RuboCop::Cop::Lint::RedundantDirGlobSort::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for redundant quantifiers inside Regexp literals.
+#
+# It is always allowed when interpolation is used in a regexp literal,
+# because it's unknown what kind of string will be expanded as a result:
+#
+# [source,ruby]
+# ----
+# /(?:a*#{interpolation})?/x
+# ----
+#
+# @example
+# # bad
+# /(?:x+)+/
+#
+# # good
+# /(?:x)+/
+#
+# # good
+# /(?:x+)/
+#
+# # bad
+# /(?:x+)?/
+#
+# # good
+# /(?:x)*/
+#
+# # good
+# /(?:x*)/
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#34
+class RuboCop::Cop::Lint::RedundantRegexpQuantifiers < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#42
+ def on_regexp(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#83
+ def character_set?(expr); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#61
+ def each_redundantly_quantified_pair(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#87
+ def mergeable_quantifier(expr); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#103
+ def merged_quantifier(exp1, exp2); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#119
+ def message(group, child, replacement); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#115
+ def quantifier_range(group, child); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#75
+ def redundant_group?(expr); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#79
+ def redundantly_quantifiable?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#38
+RuboCop::Cop::Lint::RedundantRegexpQuantifiers::MSG_REDUNDANT_QUANTIFIER = T.let(T.unsafe(nil), String)
+
+# Checks for unnecessary `require` statement.
+#
+# The following features are unnecessary `require` statement because
+# they are already loaded. e.g. Ruby 2.2:
+#
+# ruby -ve 'p $LOADED_FEATURES.reject { |feature| %r|/| =~ feature }'
+# ruby 2.2.8p477 (2017-09-14 revision 59906) [x86_64-darwin13]
+# ["enumerator.so", "rational.so", "complex.so", "thread.rb"]
+#
+# Below are the features that each `TargetRubyVersion` targets.
+#
+# * 2.0+ ... `enumerator`
+# * 2.1+ ... `thread`
+# * 2.2+ ... Add `rational` and `complex` above
+# * 2.5+ ... Add `pp` above
+# * 2.7+ ... Add `ruby2_keywords` above
+# * 3.1+ ... Add `fiber` above
+# * 3.2+ ... `set`
+#
+# This cop target those features.
+#
+# @example
+# # bad
+# require 'unloaded_feature'
+# require 'thread'
+#
+# # good
+# require 'unloaded_feature'
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#38
+class RuboCop::Cop::Lint::RedundantRequireStatement < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#61
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#57
+ def pp_const?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#51
+ def redundant_require_statement?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#91
+ def need_to_require_pp?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#80
+ def redundant_feature?(feature_name); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#42
+RuboCop::Cop::Lint::RedundantRequireStatement::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#45
+RuboCop::Cop::Lint::RedundantRequireStatement::PRETTY_PRINT_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#43
+RuboCop::Cop::Lint::RedundantRequireStatement::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#44
+RuboCop::Cop::Lint::RedundantRequireStatement::RUBY_22_LOADED_FEATURES = T.let(T.unsafe(nil), Array)
+
+# Checks for redundant safe navigation calls.
+# Use cases where a constant, named in camel case for classes and modules is `nil` are rare,
+# and an offense is not detected when the receiver is a snake case constant.
+#
+# For all receivers, the `instance_of?`, `kind_of?`, `is_a?`, `eql?`, `respond_to?`,
+# and `equal?` methods are checked by default.
+# These are customizable with `AllowedMethods` option.
+#
+# The `AllowedMethods` option specifies nil-safe methods,
+# in other words, it is a method that is allowed to skip safe navigation.
+# Note that the `AllowedMethod` option is not an option that specifies methods
+# for which to suppress (allow) this cop's check.
+#
+# In the example below, the safe navigation operator (`&.`) is unnecessary
+# because `NilClass` has methods like `respond_to?` and `is_a?`.
+#
+# @example
+# # bad
+# CamelCaseConst&.do_something
+#
+# # bad
+# do_something if attrs&.respond_to?(:[])
+#
+# # good
+# do_something if attrs.respond_to?(:[])
+#
+# # bad
+# while node&.is_a?(BeginNode)
+# node = node.parent
+# end
+#
+# # good
+# CamelCaseConst.do_something
+#
+# # good
+# while node.is_a?(BeginNode)
+# node = node.parent
+# end
+#
+# # good - without `&.` this will always return `true`
+# foo&.respond_to?(:to_a)
+# @example AllowedMethods: [nil_safe_method]
+# # bad
+# do_something if attrs&.nil_safe_method(:[])
+#
+# # good
+# do_something if attrs.nil_safe_method(:[])
+# do_something if attrs&.not_nil_safe_method(:[])
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#61
+class RuboCop::Cop::Lint::RedundantSafeNavigation < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#78
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#73
+ def respond_to_nil_specific_method?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#91
+ def check?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#101
+ def condition?(parent, node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#66
+RuboCop::Cop::Lint::RedundantSafeNavigation::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#68
+RuboCop::Cop::Lint::RedundantSafeNavigation::NIL_SPECIFIC_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#70
+RuboCop::Cop::Lint::RedundantSafeNavigation::SNAKE_CASE = T.let(T.unsafe(nil), Regexp)
+
+# Checks for unneeded usages of splat expansion
+#
+# @example
+#
+# # bad
+# a = *[1, 2, 3]
+# a = *'a'
+# a = *1
+# ['a', 'b', *%w(c d e), 'f', 'g']
+#
+# # good
+# c = [1, 2, 3]
+# a = *c
+# a, b = *c
+# a, *b = *c
+# a = *1..10
+# a = ['a']
+# ['a', 'b', 'c', 'd', 'e', 'f', 'g']
+#
+# # bad
+# do_something(*['foo', 'bar', 'baz'])
+#
+# # good
+# do_something('foo', 'bar', 'baz')
+#
+# # bad
+# begin
+# foo
+# rescue *[StandardError, ApplicationError]
+# bar
+# end
+#
+# # good
+# begin
+# foo
+# rescue StandardError, ApplicationError
+# bar
+# end
+#
+# # bad
+# case foo
+# when *[1, 2, 3]
+# bar
+# else
+# baz
+# end
+#
+# # good
+# case foo
+# when 1, 2, 3
+# bar
+# else
+# baz
+# end
+# @example AllowPercentLiteralArrayArgument: true (default)
+#
+# # good
+# do_something(*%w[foo bar baz])
+# @example AllowPercentLiteralArrayArgument: false
+#
+# # bad
+# do_something(*%w[foo bar baz])
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#71
+class RuboCop::Cop::Lint::RedundantSplatExpansion < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#83
+ def array_new?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#91
+ def literal_expansion(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#95
+ def on_splat(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#203
+ def allow_percent_literal_array_argument?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#131
+ def array_new_inside_array_literal?(array_new_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#155
+ def array_splat?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#112
+ def autocorrect(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#159
+ def method_argument?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#163
+ def part_of_an_array?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#170
+ def redundant_brackets?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#118
+ def redundant_splat_expansion(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#178
+ def remove_brackets(array); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#138
+ def replacement_range_and_content(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#196
+ def use_percent_literal_array_argument?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#75
+RuboCop::Cop::Lint::RedundantSplatExpansion::ARRAY_PARAM_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#80
+RuboCop::Cop::Lint::RedundantSplatExpansion::ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#74
+RuboCop::Cop::Lint::RedundantSplatExpansion::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#79
+RuboCop::Cop::Lint::RedundantSplatExpansion::PERCENT_CAPITAL_I = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#77
+RuboCop::Cop::Lint::RedundantSplatExpansion::PERCENT_CAPITAL_W = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#78
+RuboCop::Cop::Lint::RedundantSplatExpansion::PERCENT_I = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#76
+RuboCop::Cop::Lint::RedundantSplatExpansion::PERCENT_W = T.let(T.unsafe(nil), String)
+
+# Checks for string conversion in string interpolation, `print`, `puts`, and `warn` arguments,
+# which is redundant.
+#
+# @example
+#
+# # bad
+#
+# "result is #{something.to_s}"
+# print something.to_s
+# puts something.to_s
+# warn something.to_s
+# @example
+#
+# # good
+#
+# "result is #{something}"
+# print something
+# puts something
+# warn something
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#27
+class RuboCop::Cop::Lint::RedundantStringCoercion < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Interpolation
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#38
+ def on_interpolation(begin_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#46
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#36
+ def to_s_without_args?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#58
+ def register_offense(node, context); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#31
+RuboCop::Cop::Lint::RedundantStringCoercion::MSG_DEFAULT = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#32
+RuboCop::Cop::Lint::RedundantStringCoercion::MSG_SELF = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#33
+RuboCop::Cop::Lint::RedundantStringCoercion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for redundant `with_index`.
+#
+# @example
+# # bad
+# ary.each_with_index do |v|
+# v
+# end
+#
+# # good
+# ary.each do |v|
+# v
+# end
+#
+# # bad
+# ary.each.with_index do |v|
+# v
+# end
+#
+# # good
+# ary.each do |v|
+# v
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#29
+class RuboCop::Cop::Lint::RedundantWithIndex < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#36
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#36
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#56
+ def redundant_with_index?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#66
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#74
+ def with_index_range(send); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#33
+RuboCop::Cop::Lint::RedundantWithIndex::MSG_EACH_WITH_INDEX = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#34
+RuboCop::Cop::Lint::RedundantWithIndex::MSG_WITH_INDEX = T.let(T.unsafe(nil), String)
+
+# Checks for redundant `with_object`.
+#
+# @example
+# # bad
+# ary.each_with_object([]) do |v|
+# v
+# end
+#
+# # good
+# ary.each do |v|
+# v
+# end
+#
+# # bad
+# ary.each.with_object([]) do |v|
+# v
+# end
+#
+# # good
+# ary.each do |v|
+# v
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#29
+class RuboCop::Cop::Lint::RedundantWithObject < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#36
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#36
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#56
+ def redundant_with_object?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#65
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#73
+ def with_object_range(send); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#33
+RuboCop::Cop::Lint::RedundantWithObject::MSG_EACH_WITH_OBJECT = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#34
+RuboCop::Cop::Lint::RedundantWithObject::MSG_WITH_OBJECT = T.let(T.unsafe(nil), String)
+
+# Checks if `include` or `prepend` is called in `refine` block.
+# These methods are deprecated and should be replaced with `Refinement#import_methods`.
+#
+# It emulates deprecation warnings in Ruby 3.1.
+#
+# @example
+#
+# # bad
+# refine Foo do
+# include Bar
+# end
+#
+# # bad
+# refine Foo do
+# prepend Bar
+# end
+#
+# # good
+# refine Foo do
+# import_methods Bar
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/refinement_import_methods.rb#34
+class RuboCop::Cop::Lint::RefinementImportMethods < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::TargetRubyVersion
+
+ # source://rubocop//lib/rubocop/cop/lint/refinement_import_methods.rb#42
+ def on_send(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/refinement_import_methods.rb#37
+RuboCop::Cop::Lint::RefinementImportMethods::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/refinement_import_methods.rb#38
+RuboCop::Cop::Lint::RefinementImportMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for regexp literals used as `match-current-line`.
+# If a regexp literal is in condition, the regexp matches `$_` implicitly.
+#
+# @example
+# # bad
+# if /foo/
+# do_something
+# end
+#
+# # good
+# if /foo/ =~ $_
+# do_something
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/regexp_as_condition.rb#19
+class RuboCop::Cop::Lint::RegexpAsCondition < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/regexp_as_condition.rb#26
+ def on_match_current_line(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/regexp_as_condition.rb#23
+RuboCop::Cop::Lint::RegexpAsCondition::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for expressions where there is a call to a predicate
+# method with at least one argument, where no parentheses are used around
+# the parameter list, and a boolean operator, && or ||, is used in the
+# last argument.
+#
+# The idea behind warning for these constructs is that the user might
+# be under the impression that the return value from the method call is
+# an operand of &&/||.
+#
+# @example
+#
+# # bad
+#
+# if day.is? :tuesday && month == :jan
+# # ...
+# end
+# @example
+#
+# # good
+#
+# if day.is?(:tuesday) && month == :jan
+# # ...
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#30
+class RuboCop::Cop::Lint::RequireParentheses < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#35
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#35
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#58
+ def check_predicate(predicate, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#48
+ def check_ternary(ternary, node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#33
+RuboCop::Cop::Lint::RequireParentheses::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that a range literal is enclosed in parentheses when the end of the range is
+# at a line break.
+#
+# NOTE: The following is maybe intended for `(42..)`. But, compatible is `42..do_something`.
+# So, this cop does not provide autocorrection because it is left to user.
+#
+# [source,ruby]
+# ----
+# case condition
+# when 42..
+# do_something
+# end
+# ----
+#
+# @example
+#
+# # bad - Represents `(1..42)`, not endless range.
+# 1..
+# 42
+#
+# # good - It's incompatible, but your intentions when using endless range may be:
+# (1..)
+# 42
+#
+# # good
+# 1..42
+#
+# # good
+# (1..42)
+#
+# # good
+# (1..
+# 42)
+#
+# source://rubocop//lib/rubocop/cop/lint/require_range_parentheses.rb#40
+class RuboCop::Cop::Lint::RequireRangeParentheses < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/require_range_parentheses.rb#43
+ def on_erange(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/require_range_parentheses.rb#43
+ def on_irange(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/require_range_parentheses.rb#41
+RuboCop::Cop::Lint::RequireRangeParentheses::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for uses a file requiring itself with `require_relative`.
+#
+# @example
+#
+# # bad
+#
+# # foo.rb
+# require_relative 'foo'
+# require_relative 'bar'
+#
+# # good
+#
+# # foo.rb
+# require_relative 'bar'
+#
+# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#21
+class RuboCop::Cop::Lint::RequireRelativeSelfPath < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#28
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#44
+ def remove_ext(file_path); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#40
+ def same_file?(file_path, required_feature); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#25
+RuboCop::Cop::Lint::RequireRelativeSelfPath::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#26
+RuboCop::Cop::Lint::RequireRelativeSelfPath::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for `rescue` blocks targeting the Exception class.
+#
+# @example
+#
+# # bad
+#
+# begin
+# do_something
+# rescue Exception
+# handle_exception
+# end
+# @example
+#
+# # good
+#
+# begin
+# do_something
+# rescue ArgumentError
+# handle_exception
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/rescue_exception.rb#27
+class RuboCop::Cop::Lint::RescueException < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/rescue_exception.rb#30
+ def on_resbody(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/rescue_exception.rb#39
+ def targets_exception?(rescue_arg_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/rescue_exception.rb#28
+RuboCop::Cop::Lint::RescueException::MSG = T.let(T.unsafe(nil), String)
+
+# Check for arguments to `rescue` that will result in a `TypeError`
+# if an exception is raised.
+#
+# @example
+# # bad
+# begin
+# bar
+# rescue nil
+# baz
+# end
+#
+# # bad
+# def foo
+# bar
+# rescue 1, 'a', "#{b}", 0.0, [], {}
+# baz
+# end
+#
+# # good
+# begin
+# bar
+# rescue
+# baz
+# end
+#
+# # good
+# def foo
+# bar
+# rescue NameError
+# baz
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#37
+class RuboCop::Cop::Lint::RescueType < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#60
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#44
+ def on_resbody(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#71
+ def correction(*exceptions); end
+
+ # source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#82
+ def invalid_exceptions(exceptions); end
+
+ # source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#78
+ def valid_exceptions(exceptions); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#42
+RuboCop::Cop::Lint::RescueType::INVALID_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#40
+RuboCop::Cop::Lint::RescueType::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for the use of a return with a value in a context
+# where the value will be ignored. (initialize and setter methods)
+#
+# @example
+#
+# # bad
+# def initialize
+# foo
+# return :qux if bar?
+# baz
+# end
+#
+# def foo=(bar)
+# return 42
+# end
+# @example
+#
+# # good
+# def initialize
+# foo
+# return if bar?
+# baz
+# end
+#
+# def foo=(bar)
+# return
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/return_in_void_context.rb#34
+class RuboCop::Cop::Lint::ReturnInVoidContext < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/return_in_void_context.rb#37
+ def on_return(return_node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/return_in_void_context.rb#53
+ def non_void_context(return_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/return_in_void_context.rb#35
+RuboCop::Cop::Lint::ReturnInVoidContext::MSG = T.let(T.unsafe(nil), String)
+
+# The safe navigation operator returns nil if the receiver is
+# nil. If you chain an ordinary method call after a safe
+# navigation operator, it raises NoMethodError. We should use a
+# safe navigation operator after a safe navigation operator.
+# This cop checks for the problem outlined above.
+#
+# @example
+#
+# # bad
+#
+# x&.foo.bar
+# x&.foo + bar
+# x&.foo[bar]
+# @example
+#
+# # good
+#
+# x&.foo&.bar
+# x&.foo || bar
+#
+# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#26
+class RuboCop::Cop::Lint::SafeNavigationChain < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::NilMethods
+ extend ::RuboCop::Cop::AutoCorrector
+ extend ::RuboCop::Cop::TargetRubyVersion
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#37
+ def bad_method?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#44
+ def on_send(node); end
+
+ private
+
+ # @param offense_range [Parser::Source::Range]
+ # @param send_node [RuboCop::AST::SendNode]
+ # @return [String]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#63
+ def add_safe_navigation_operator(offense_range:, send_node:); end
+
+ # @param corrector [RuboCop::Cop::Corrector]
+ # @param offense_range [Parser::Source::Range]
+ # @param send_node [RuboCop::AST::SendNode]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#82
+ def autocorrect(corrector, offense_range:, send_node:); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#91
+ def brackets?(send_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#95
+ def require_parentheses?(send_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#33
+RuboCop::Cop::Lint::SafeNavigationChain::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#34
+RuboCop::Cop::Lint::SafeNavigationChain::PLUS_MINUS_METHODS = T.let(T.unsafe(nil), Array)
+
+# Check to make sure that if safe navigation is used for a method
+# call in an `&&` or `||` condition that safe navigation is used for all
+# method calls on that same object.
+#
+# @example
+# # bad
+# foo&.bar && foo.baz
+#
+# # bad
+# foo.bar || foo&.baz
+#
+# # bad
+# foo&.bar && (foobar.baz || foo.baz)
+#
+# # good
+# foo.bar && foo.baz
+#
+# # good
+# foo&.bar || foo&.baz
+#
+# # good
+# foo&.bar && (foobar.baz || foo&.baz)
+#
+# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#29
+class RuboCop::Cop::Lint::SafeNavigationConsistency < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::NilMethods
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#42
+ def check(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#36
+ def on_csend(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#61
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#67
+ def location(node, unsafe_method_call); end
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#71
+ def top_conditional_ancestor(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#82
+ def unsafe_method_calls(method_calls, safe_nav_receiver); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#34
+RuboCop::Cop::Lint::SafeNavigationConsistency::MSG = T.let(T.unsafe(nil), String)
+
+# Checks to make sure safe navigation isn't used with `empty?` in
+# a conditional.
+#
+# While the safe navigation operator is generally a good idea, when
+# checking `foo&.empty?` in a conditional, `foo` being `nil` will actually
+# do the opposite of what the author intends.
+#
+# @example
+# # bad
+# return if foo&.empty?
+# return unless foo&.empty?
+#
+# # good
+# return if foo && foo.empty?
+# return unless foo && foo.empty?
+#
+# source://rubocop//lib/rubocop/cop/lint/safe_navigation_with_empty.rb#22
+class RuboCop::Cop::Lint::SafeNavigationWithEmpty < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_with_empty.rb#32
+ def on_if(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/safe_navigation_with_empty.rb#28
+ def safe_navigation_empty_in_conditional?(param0 = T.unsafe(nil)); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/safe_navigation_with_empty.rb#25
+RuboCop::Cop::Lint::SafeNavigationWithEmpty::MSG = T.let(T.unsafe(nil), String)
+
+# Checks if a file which has a shebang line as
+# its first line is granted execute permission.
+#
+# @example
+# # bad
+#
+# # A file which has a shebang line as its first line is not
+# # granted execute permission.
+#
+# #!/usr/bin/env ruby
+# puts 'hello, world'
+#
+# # good
+#
+# # A file which has a shebang line as its first line is
+# # granted execute permission.
+#
+# #!/usr/bin/env ruby
+# puts 'hello, world'
+#
+# # good
+#
+# # A file which has not a shebang line as its first line is not
+# # granted execute permission.
+#
+# puts 'hello, world'
+#
+# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#33
+class RuboCop::Cop::Lint::ScriptPermission < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/script_permission.rb#39
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/script_permission.rb#55
+ def autocorrect(comment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/script_permission.rb#59
+ def executable?(processed_source); end
+
+ # source://rubocop//lib/rubocop/cop/lint/script_permission.rb#66
+ def format_message_from(processed_source); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#36
+RuboCop::Cop::Lint::ScriptPermission::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#37
+RuboCop::Cop::Lint::ScriptPermission::SHEBANG = T.let(T.unsafe(nil), String)
+
+# Checks for self-assignments.
+#
+# @example
+# # bad
+# foo = foo
+# foo, bar = foo, bar
+# Foo = Foo
+#
+# # good
+# foo = bar
+# foo, bar = bar, foo
+# Foo = Bar
+#
+# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#19
+class RuboCop::Cop::Lint::SelfAssignment < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#53
+ def on_and_asgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#41
+ def on_casgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#29
+ def on_cvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#29
+ def on_gvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#29
+ def on_ivasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#29
+ def on_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#49
+ def on_masgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#53
+ def on_or_asgn(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#61
+ def multiple_self_assignment?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#71
+ def rhs_matches_lhs?(rhs, lhs); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#22
+RuboCop::Cop::Lint::SelfAssignment::ASSIGNMENT_TYPE_TO_RHS_TYPE = T.let(T.unsafe(nil), Hash)
+
+# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#20
+RuboCop::Cop::Lint::SelfAssignment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for `send`, `public_send`, and `__send__` methods
+# when using mix-in.
+#
+# `include` and `prepend` methods were private methods until Ruby 2.0,
+# they were mixed-in via `send` method. This cop uses Ruby 2.1 or
+# higher style that can be called by public methods.
+# And `extend` method that was originally a public method is also targeted
+# for style unification.
+#
+# @example
+# # bad
+# Foo.send(:include, Bar)
+# Foo.send(:prepend, Bar)
+# Foo.send(:extend, Bar)
+#
+# # bad
+# Foo.public_send(:include, Bar)
+# Foo.public_send(:prepend, Bar)
+# Foo.public_send(:extend, Bar)
+#
+# # bad
+# Foo.__send__(:include, Bar)
+# Foo.__send__(:prepend, Bar)
+# Foo.__send__(:extend, Bar)
+#
+# # good
+# Foo.include Bar
+# Foo.prepend Bar
+# Foo.extend Bar
+#
+# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#36
+class RuboCop::Cop::Lint::SendWithMixinArgument < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#53
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#46
+ def send_with_mixin_argument?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#67
+ def bad_location(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#73
+ def message(method, module_name, bad_method); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#77
+ def mixin_method?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#41
+RuboCop::Cop::Lint::SendWithMixinArgument::MIXIN_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#40
+RuboCop::Cop::Lint::SendWithMixinArgument::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#43
+RuboCop::Cop::Lint::SendWithMixinArgument::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#42
+RuboCop::Cop::Lint::SendWithMixinArgument::SEND_METHODS = T.let(T.unsafe(nil), Array)
+
+# Checks for shadowed arguments.
+#
+# This cop has `IgnoreImplicitReferences` configuration option.
+# It means argument shadowing is used in order to pass parameters
+# to zero arity `super` when `IgnoreImplicitReferences` is `true`.
+#
+# @example
+#
+# # bad
+# do_something do |foo|
+# foo = 42
+# puts foo
+# end
+#
+# def do_something(foo)
+# foo = 42
+# puts foo
+# end
+#
+# # good
+# do_something do |foo|
+# foo = foo + 42
+# puts foo
+# end
+#
+# def do_something(foo)
+# foo = foo + 42
+# puts foo
+# end
+#
+# def do_something(foo)
+# puts foo
+# end
+# @example IgnoreImplicitReferences: false (default)
+#
+# # bad
+# def do_something(foo)
+# foo = 42
+# super
+# end
+#
+# def do_something(foo)
+# foo = super
+# bar
+# end
+# @example IgnoreImplicitReferences: true
+#
+# # good
+# def do_something(foo)
+# foo = 42
+# super
+# end
+#
+# def do_something(foo)
+# foo = super
+# bar
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#66
+class RuboCop::Cop::Lint::ShadowedArgument < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#76
+ def after_leaving_scope(scope, _variable_table); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#70
+ def uses_var?(param0, param1); end
+
+ private
+
+ # Get argument references without assignments' references
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#160
+ def argument_references(argument); end
+
+ # Find the first argument assignment, which doesn't reference the
+ # argument at the rhs. If the assignment occurs inside a branch or
+ # block, it is impossible to tell whether it's executed, so precise
+ # shadowing location is not known.
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#120
+ def assignment_without_argument_usage(argument); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#82
+ def check_argument(argument); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#170
+ def ignore_implicit_references?; end
+
+ # Check whether the given node is nested into block or conditional.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#151
+ def node_within_block_or_conditional?(node, stop_search_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#143
+ def reference_pos(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#95
+ def shadowing_assignment(argument); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#72
+ def joining_forces; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#67
+RuboCop::Cop::Lint::ShadowedArgument::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for a rescued exception that get shadowed by a
+# less specific exception being rescued before a more specific
+# exception is rescued.
+#
+# An exception is considered shadowed if it is rescued after its
+# ancestor is, or if it and its ancestor are both rescued in the
+# same `rescue` statement. In both cases, the more specific rescue is
+# unnecessary because it is covered by rescuing the less specific
+# exception. (ie. `rescue Exception, StandardError` has the same behavior
+# whether `StandardError` is included or not, because all ``StandardError``s
+# are rescued by `rescue Exception`).
+#
+# @example
+#
+# # bad
+#
+# begin
+# something
+# rescue Exception
+# handle_exception
+# rescue StandardError
+# handle_standard_error
+# end
+#
+# # bad
+# begin
+# something
+# rescue Exception, StandardError
+# handle_error
+# end
+#
+# # good
+#
+# begin
+# something
+# rescue StandardError
+# handle_standard_error
+# rescue Exception
+# handle_exception
+# end
+#
+# # good, however depending on runtime environment.
+# #
+# # This is a special case for system call errors.
+# # System dependent error code depends on runtime environment.
+# # For example, whether `Errno::EAGAIN` and `Errno::EWOULDBLOCK` are
+# # the same error code or different error code depends on environment.
+# # This good case is for `Errno::EAGAIN` and `Errno::EWOULDBLOCK` with
+# # the same error code.
+# begin
+# something
+# rescue Errno::EAGAIN, Errno::EWOULDBLOCK
+# handle_standard_error
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#61
+class RuboCop::Cop::Lint::ShadowedException < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RescueNode
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#67
+ def on_rescue(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#101
+ def compare_exceptions(exception, other_exception); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#94
+ def contains_multiple_levels_of_exceptions?(group); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#119
+ def evaluate_exceptions(group); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#152
+ def find_shadowing_rescue(rescues); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#84
+ def offense_range(rescues); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#90
+ def rescued_groups_for(rescues); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#137
+ def sorted?(rescued_groups); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#115
+ def system_call_err?(error); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#65
+RuboCop::Cop::Lint::ShadowedException::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for the use of local variable names from an outer scope
+# in block arguments or block-local variables. This mirrors the warning
+# given by `ruby -cw` prior to Ruby 2.6:
+# "shadowing outer local variable - foo".
+#
+# NOTE: Shadowing of variables in block passed to `Ractor.new` is allowed
+# because `Ractor` should not access outer variables.
+# eg. following style is encouraged:
+#
+# [source,ruby]
+# ----
+# worker_id, pipe = env
+# Ractor.new(worker_id, pipe) do |worker_id, pipe|
+# end
+# ----
+#
+# @example
+#
+# # bad
+#
+# def some_method
+# foo = 1
+#
+# 2.times do |foo| # shadowing outer `foo`
+# do_something(foo)
+# end
+# end
+# @example
+#
+# # good
+#
+# def some_method
+# foo = 1
+#
+# 2.times do |bar|
+# do_something(bar)
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#45
+class RuboCop::Cop::Lint::ShadowingOuterLocalVariable < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#57
+ def before_declaring_variable(variable, variable_table); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#93
+ def find_conditional_node_from_ascendant(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#100
+ def node_or_its_ascendant_conditional?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#49
+ def ractor_block?(param0 = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#69
+ def same_conditions_node_different_branch?(variable, outer_local_variable); end
+
+ # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#83
+ def variable_node(variable); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#53
+ def joining_forces; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#46
+RuboCop::Cop::Lint::ShadowingOuterLocalVariable::MSG = T.let(T.unsafe(nil), String)
+
+# Checks unexpected overrides of the `Struct` built-in methods
+# via `Struct.new`.
+#
+# @example
+# # bad
+# Bad = Struct.new(:members, :clone, :count)
+# b = Bad.new([], true, 1)
+# b.members #=> [] (overriding `Struct#members`)
+# b.clone #=> true (overriding `Object#clone`)
+# b.count #=> 1 (overriding `Enumerable#count`)
+#
+# # good
+# Good = Struct.new(:id, :name)
+# g = Good.new(1, "foo")
+# g.members #=> [:id, :name]
+# g.clone #=> #
+# g.count #=> 2
+#
+# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#24
+class RuboCop::Cop::Lint::StructNewOverride < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#38
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#33
+ def struct_new(param0 = T.unsafe(nil)); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#25
+RuboCop::Cop::Lint::StructNewOverride::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#27
+RuboCop::Cop::Lint::StructNewOverride::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#30
+RuboCop::Cop::Lint::StructNewOverride::STRUCT_MEMBER_NAME_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#29
+RuboCop::Cop::Lint::StructNewOverride::STRUCT_METHOD_NAMES = T.let(T.unsafe(nil), Array)
+
+# Checks for `rescue` blocks with no body.
+#
+# @example
+#
+# # bad
+# def some_method
+# do_something
+# rescue
+# end
+#
+# # bad
+# begin
+# do_something
+# rescue
+# end
+#
+# # good
+# def some_method
+# do_something
+# rescue
+# handle_exception
+# end
+#
+# # good
+# begin
+# do_something
+# rescue
+# handle_exception
+# end
+# @example AllowComments: true (default)
+#
+# # good
+# def some_method
+# do_something
+# rescue
+# # do nothing
+# end
+#
+# # good
+# begin
+# do_something
+# rescue
+# # do nothing
+# end
+# @example AllowComments: false
+#
+# # bad
+# def some_method
+# do_something
+# rescue
+# # do nothing
+# end
+#
+# # bad
+# begin
+# do_something
+# rescue
+# # do nothing
+# end
+# @example AllowNil: true (default)
+#
+# # good
+# def some_method
+# do_something
+# rescue
+# nil
+# end
+#
+# # good
+# begin
+# do_something
+# rescue
+# # do nothing
+# end
+#
+# # good
+# do_something rescue nil
+# @example AllowNil: false
+#
+# # bad
+# def some_method
+# do_something
+# rescue
+# nil
+# end
+#
+# # bad
+# begin
+# do_something
+# rescue
+# nil
+# end
+#
+# # bad
+# do_something rescue nil
+#
+# source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#105
+class RuboCop::Cop::Lint::SuppressedException < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#108
+ def on_resbody(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#118
+ def comment_between_rescue_and_end?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#126
+ def nil_body?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#106
+RuboCop::Cop::Lint::SuppressedException::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for uses of literal strings converted to
+# a symbol where a literal symbol could be used instead.
+#
+# There are two possible styles for this cop.
+# `strict` (default) will register an offense for any incorrect usage.
+# `consistent` additionally requires hashes to use the same style for
+# every symbol key (ie. if any symbol key needs to be quoted it requires
+# all keys to be quoted).
+#
+# @example
+# # bad
+# 'string'.to_sym
+# :symbol.to_sym
+# 'underscored_string'.to_sym
+# :'underscored_symbol'
+# 'hyphenated-string'.to_sym
+#
+# # good
+# :string
+# :symbol
+# :underscored_string
+# :underscored_symbol
+# :'hyphenated-string'
+# @example EnforcedStyle: strict (default)
+#
+# # bad
+# {
+# 'a': 1,
+# "b": 2,
+# 'c-d': 3
+# }
+#
+# # good (don't quote keys that don't require quoting)
+# {
+# a: 1,
+# b: 2,
+# 'c-d': 3
+# }
+# @example EnforcedStyle: consistent
+#
+# # bad
+# {
+# a: 1,
+# 'b-c': 2
+# }
+#
+# # good (quote all keys if any need quoting)
+# {
+# 'a': 1,
+# 'b-c': 2
+# }
+#
+# # good (no quoting required)
+# {
+# a: 1,
+# b: 2
+# }
+#
+# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#66
+class RuboCop::Cop::Lint::SymbolConversion < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::SymbolHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#100
+ def on_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#76
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#83
+ def on_sym(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#142
+ def correct_hash_key(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#161
+ def correct_inconsistent_hash_keys(keys); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#134
+ def in_alias?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#138
+ def in_percent_literal_array?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#121
+ def properly_quoted?(source, value); end
+
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#117
+ def register_offense(node, correction:, message: T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#130
+ def requires_quotes?(sym_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#71
+RuboCop::Cop::Lint::SymbolConversion::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#72
+RuboCop::Cop::Lint::SymbolConversion::MSG_CONSISTENCY = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#74
+RuboCop::Cop::Lint::SymbolConversion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Repacks Parser's diagnostics/errors
+# into RuboCop's offenses.
+#
+# source://rubocop//lib/rubocop/cop/lint/syntax.rb#8
+class RuboCop::Cop::Lint::Syntax < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/syntax.rb#9
+ def on_other_file; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/syntax.rb#19
+ def add_offense_from_diagnostic(diagnostic, ruby_version); end
+
+ # source://rubocop//lib/rubocop/cop/lint/syntax.rb#26
+ def add_offense_from_error(error); end
+
+ # source://rubocop//lib/rubocop/cop/lint/syntax.rb#31
+ def beautify_message(message); end
+
+ # source://rubocop//lib/rubocop/cop/lint/syntax.rb#37
+ def find_severity(_range, _severity); end
+end
+
+# Ensures that `to_enum`/`enum_for`, called for the current method,
+# has correct arguments.
+#
+# @example
+# # bad
+# def foo(x, y = 1)
+# return to_enum(__callee__, x) # `y` is missing
+# end
+#
+# # good
+# def foo(x, y = 1)
+# # Alternatives to `__callee__` are `__method__` and `:foo`.
+# return to_enum(__callee__, x, y)
+# end
+#
+# # good
+# def foo(x, y = 1)
+# # It is also allowed if it is wrapped in some method like Sorbet.
+# return to_enum(T.must(__callee__), x, y)
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#27
+class RuboCop::Cop::Lint::ToEnumArguments < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#33
+ def enum_conversion_call?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#38
+ def method_name?(param0 = T.unsafe(nil), param1); end
+
+ # source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#47
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#43
+ def passing_keyword_arg?(param0 = T.unsafe(nil), param1); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#78
+ def argument_match?(send_arg, def_arg); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#63
+ def arguments_match?(arguments, def_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#28
+RuboCop::Cop::Lint::ToEnumArguments::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#30
+RuboCop::Cop::Lint::ToEnumArguments::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks to make sure `#to_json` includes an optional argument.
+# When overriding `#to_json`, callers may invoke JSON
+# generation via `JSON.generate(your_obj)`. Since `JSON#generate` allows
+# for an optional argument, your method should too.
+#
+# @example
+# class Point
+# attr_reader :x, :y
+#
+# # bad, incorrect arity
+# def to_json
+# JSON.generate([x, y])
+# end
+#
+# # good, preserving args
+# def to_json(*args)
+# JSON.generate([x, y], *args)
+# end
+#
+# # good, discarding args
+# def to_json(*_args)
+# JSON.generate([x, y])
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/to_json.rb#31
+class RuboCop::Cop::Lint::ToJSON < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/to_json.rb#36
+ def on_def(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/to_json.rb#34
+RuboCop::Cop::Lint::ToJSON::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for top level return with arguments. If there is a
+# top-level return statement with an argument, then the argument is
+# always ignored. This is detected automatically since Ruby 2.7.
+#
+# @example
+# # bad
+# return 1
+#
+# # good
+# return
+#
+# source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#16
+class RuboCop::Cop::Lint::TopLevelReturnWithArgument < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#21
+ def on_return(return_node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#35
+ def remove_arguments(corrector, return_node); end
+
+ # This cop works by validating the ancestors of the return node. A
+ # top-level return node's ancestors should not be of block, def, or
+ # defs type.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#42
+ def top_level_return?(return_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#31
+ def top_level_return_with_any_argument?(return_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#19
+RuboCop::Cop::Lint::TopLevelReturnWithArgument::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for trailing commas in attribute declarations, such as
+# `#attr_reader`. Leaving a trailing comma will nullify the next method
+# definition by overriding it with a getter method.
+#
+# @example
+#
+# # bad
+# class Foo
+# attr_reader :foo,
+#
+# def bar
+# puts "Unreachable."
+# end
+# end
+#
+# # good
+# class Foo
+# attr_reader :foo
+#
+# def bar
+# puts "No problem!"
+# end
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb#30
+class RuboCop::Cop::Lint::TrailingCommaInAttributeDeclaration < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb#36
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb#46
+ def trailing_comma_range(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb#34
+RuboCop::Cop::Lint::TrailingCommaInAttributeDeclaration::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for "triple quotes" (strings delimited by any odd number
+# of quotes greater than 1).
+#
+# Ruby allows multiple strings to be implicitly concatenated by just
+# being adjacent in a statement (ie. `"foo""bar" == "foobar"`). This sometimes
+# gives the impression that there is something special about triple quotes, but
+# in fact it is just extra unnecessary quotes and produces the same string. Each
+# pair of quotes produces an additional concatenated empty string, so the result
+# is still only the "actual" string within the delimiters.
+#
+# NOTE: Although this cop is called triple quotes, the same behavior is present
+# for strings delimited by 5, 7, etc. quotation marks.
+#
+# @example
+# # bad
+# """
+# A string
+# """
+#
+# # bad
+# '''
+# A string
+# '''
+#
+# # good
+# "
+# A string
+# "
+#
+# # good
+# < b }
+# values.sort { |*x| x[0] <=> x[1] }
+#
+# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#41
+class RuboCop::Cop::Lint::UnexpectedBlockArity < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#44
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#44
+ def on_numblock(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#63
+ def acceptable?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#75
+ def arg_count(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#71
+ def expected_arity(method); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#67
+ def included_method?(name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#59
+ def methods; end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#42
+RuboCop::Cop::Lint::UnexpectedBlockArity::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for using Fixnum or Bignum constant.
+#
+# @example
+#
+# # bad
+#
+# 1.is_a?(Fixnum)
+# 1.is_a?(Bignum)
+# @example
+#
+# # good
+#
+# 1.is_a?(Integer)
+#
+# source://rubocop//lib/rubocop/cop/lint/unified_integer.rb#20
+class RuboCop::Cop::Lint::UnifiedInteger < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/unified_integer.rb#26
+ def fixnum_or_bignum_const(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unified_integer.rb#30
+ def on_const(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/unified_integer.rb#23
+RuboCop::Cop::Lint::UnifiedInteger::MSG = T.let(T.unsafe(nil), String)
+
+# Looks for `reduce` or `inject` blocks where the value returned (implicitly or
+# explicitly) does not include the accumulator. A block is considered valid as
+# long as at least one return value includes the accumulator.
+#
+# If the accumulator is not included in the return value, then the entire
+# block will just return a transformation of the last element value, and
+# could be rewritten as such without a loop.
+#
+# Also catches instances where an index of the accumulator is returned, as
+# this may change the type of object being retained.
+#
+# NOTE: For the purpose of reducing false positives, this cop only flags
+# returns in `reduce` blocks where the element is the only variable in
+# the expression (since we will not be able to tell what other variables
+# relate to via static analysis).
+#
+# @example
+#
+# # bad
+# (1..4).reduce(0) do |acc, el|
+# el * 2
+# end
+#
+# # bad, may raise a NoMethodError after the first iteration
+# %w(a b c).reduce({}) do |acc, letter|
+# acc[letter] = true
+# end
+#
+# # good
+# (1..4).reduce(0) do |acc, el|
+# acc + el * 2
+# end
+#
+# # good, element is returned but modified using the accumulator
+# values.reduce do |acc, el|
+# el << acc
+# el
+# end
+#
+# # good, returns the accumulator instead of the index
+# %w(a b c).reduce({}) do |acc, letter|
+# acc[letter] = true
+# acc
+# end
+#
+# # good, at least one branch returns the accumulator
+# values.reduce(nil) do |result, value|
+# break result if something?
+# value
+# end
+#
+# # good, recursive
+# keys.reduce(self) { |result, key| result[key] }
+#
+# # ignored as the return value cannot be determined
+# enum.reduce do |acc, el|
+# x = foo(acc, el)
+# bar(x)
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#65
+class RuboCop::Cop::Lint::UnmodifiedReduceAccumulator < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#78
+ def accumulator_index?(param0 = T.unsafe(nil), param1); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#83
+ def element_modified?(param0, param1); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#104
+ def expression_values(param0); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#93
+ def lvar_used?(param0 = T.unsafe(nil), param1); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#115
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#115
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#70
+ def reduce_with_block?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # Determine if a return value is acceptable for the purposes of this cop
+ # If it is an expression containing the accumulator, it is acceptable
+ # Otherwise, it is only unacceptable if it contains the iterated element, since we
+ # otherwise do not have enough information to prevent false positives.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#190
+ def acceptable_return?(return_val, element_name); end
+
+ # Exclude `begin` nodes inside a `dstr` from being collected by `return_values`
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#198
+ def allowed_type?(parent_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#158
+ def block_arg_name(node, index); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#141
+ def check_return_values(block_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#175
+ def potential_offense?(return_values, block_body, element_name, accumulator_name); end
+
+ # Return values in a block are either the value given to next,
+ # the last line of a multiline block, or the only line of the block
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#127
+ def return_values(block_body_node); end
+
+ # Look for an index of the accumulator being returned, except where the index
+ # is the element.
+ # This is always an offense, in order to try to catch potential exceptions
+ # due to type mismatches
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#166
+ def returned_accumulator_index(return_values, accumulator_name, element_name); end
+
+ # If the accumulator is used in any return value, the node is acceptable since
+ # the accumulator has a chance to change each iteration
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#182
+ def returns_accumulator_anywhere?(return_values, accumulator_name); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#66
+RuboCop::Cop::Lint::UnmodifiedReduceAccumulator::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#67
+RuboCop::Cop::Lint::UnmodifiedReduceAccumulator::MSG_INDEX = T.let(T.unsafe(nil), String)
+
+# Checks for unreachable code.
+# The check are based on the presence of flow of control
+# statement in non-final position in `begin` (implicit) blocks.
+#
+# @example
+#
+# # bad
+#
+# def some_method
+# return
+# do_something
+# end
+#
+# # bad
+#
+# def some_method
+# if cond
+# return
+# else
+# return
+# end
+# do_something
+# end
+# @example
+#
+# # good
+#
+# def some_method
+# do_something
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#37
+class RuboCop::Cop::Lint::UnreachableCode < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#55
+ def flow_command?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#40
+ def on_begin(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#40
+ def on_kwbegin(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#87
+ def check_case(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#81
+ def check_if(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#65
+ def flow_expression?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#38
+RuboCop::Cop::Lint::UnreachableCode::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for loops that will have at most one iteration.
+#
+# A loop that can never reach the second iteration is a possible error in the code.
+# In rare cases where only one iteration (or at most one iteration) is intended behavior,
+# the code should be refactored to use `if` conditionals.
+#
+# NOTE: Block methods that are used with ``Enumerable``s are considered to be loops.
+#
+# `AllowedPatterns` can be used to match against the block receiver in order to allow
+# code that would otherwise be registered as an offense (eg. `times` used not in an
+# `Enumerable` context).
+#
+# @example
+# # bad
+# while node
+# do_something(node)
+# node = node.parent
+# break
+# end
+#
+# # good
+# while node
+# do_something(node)
+# node = node.parent
+# end
+#
+# # bad
+# def verify_list(head)
+# item = head
+# begin
+# if verify(item)
+# return true
+# else
+# return false
+# end
+# end while(item)
+# end
+#
+# # good
+# def verify_list(head)
+# item = head
+# begin
+# if verify(item)
+# item = item.next
+# else
+# return false
+# end
+# end while(item)
+#
+# true
+# end
+#
+# # bad
+# def find_something(items)
+# items.each do |item|
+# if something?(item)
+# return item
+# else
+# raise NotFoundError
+# end
+# end
+# end
+#
+# # good
+# def find_something(items)
+# items.each do |item|
+# if something?(item)
+# return item
+# end
+# end
+# raise NotFoundError
+# end
+#
+# # bad
+# 2.times { raise ArgumentError }
+# @example AllowedPatterns: ['(exactly|at_least|at_most)\(\d+\)\.times'] (default)
+#
+# # good
+# exactly(2).times { raise StandardError }
+#
+# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#86
+class RuboCop::Cop::Lint::UnreachableLoop < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedPattern
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#143
+ def break_command?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#100
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
+ def on_for(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#104
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
+ def on_until(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
+ def on_until_post(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
+ def on_while(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
+ def on_while_post(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#153
+ def break_statement?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#119
+ def check(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#176
+ def check_case(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#170
+ def check_if(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#194
+ def conditional_continue_keyword?(break_statement); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#110
+ def loop_method?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#184
+ def preceded_by_continue_statement?(break_statement); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#130
+ def statements(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#90
+RuboCop::Cop::Lint::UnreachableLoop::CONTINUE_KEYWORDS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#89
+RuboCop::Cop::Lint::UnreachableLoop::MSG = T.let(T.unsafe(nil), String)
+
+# Common functionality for cops handling unused arguments.
+#
+# source://rubocop//lib/rubocop/cop/mixin/unused_argument.rb#7
+module RuboCop::Cop::Lint::UnusedArgument
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/unused_argument.rb#10
+ def after_leaving_scope(scope, _variable_table); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/unused_argument.rb#16
+ def check_argument(variable); end
+end
+
+# Checks for unused block arguments.
+#
+# @example
+# # bad
+# do_something do |used, unused|
+# puts used
+# end
+#
+# do_something do |bar|
+# puts :foo
+# end
+#
+# define_method(:foo) do |bar|
+# puts :baz
+# end
+#
+# # good
+# do_something do |used, _unused|
+# puts used
+# end
+#
+# do_something do
+# puts :foo
+# end
+#
+# define_method(:foo) do |_bar|
+# puts :baz
+# end
+# @example IgnoreEmptyBlocks: true (default)
+# # good
+# do_something { |unused| }
+# @example IgnoreEmptyBlocks: false
+# # bad
+# do_something { |unused| }
+# @example AllowUnusedKeywordArguments: false (default)
+# # bad
+# do_something do |unused: 42|
+# foo
+# end
+# @example AllowUnusedKeywordArguments: true
+# # good
+# do_something do |unused: 42|
+# foo
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#55
+class RuboCop::Cop::Lint::UnusedBlockArgument < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Lint::UnusedArgument
+ extend ::RuboCop::Cop::AutoCorrector
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#162
+ def allow_unused_keyword_arguments?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#81
+ def allowed_block?(variable); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#85
+ def allowed_keyword_argument?(variable); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#99
+ def augment_message(message, variable); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#65
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#69
+ def check_argument(variable); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#149
+ def define_method_call?(variable); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#156
+ def empty_block?(variable); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#166
+ def ignore_empty_blocks?; end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#89
+ def message(variable); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#132
+ def message_for_lambda(variable, all_arguments); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#120
+ def message_for_normal_block(variable, all_arguments); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#144
+ def message_for_underscore_prefix(variable); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#77
+ def used_block_local?(variable); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#112
+ def variable_type(variable); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#59
+ def joining_forces; end
+ end
+end
+
+# Checks for unused method arguments.
+#
+# @example
+# # bad
+# def some_method(used, unused, _unused_but_allowed)
+# puts used
+# end
+#
+# # good
+# def some_method(used, _unused, _unused_but_allowed)
+# puts used
+# end
+# @example AllowUnusedKeywordArguments: false (default)
+# # bad
+# def do_something(used, unused: 42)
+# used
+# end
+# @example AllowUnusedKeywordArguments: true
+# # good
+# def do_something(used, unused: 42)
+# used
+# end
+# @example IgnoreEmptyMethods: true (default)
+# # good
+# def do_something(unused)
+# end
+# @example IgnoreEmptyMethods: false
+# # bad
+# def do_something(unused)
+# end
+# @example IgnoreNotImplementedMethods: true (default)
+# # good
+# def do_something(unused)
+# raise NotImplementedError
+# end
+#
+# def do_something_else(unused)
+# fail "TODO"
+# end
+# @example IgnoreNotImplementedMethods: false
+# # bad
+# def do_something(unused)
+# raise NotImplementedError
+# end
+#
+# def do_something_else(unused)
+# fail "TODO"
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#61
+class RuboCop::Cop::Lint::UnusedMethodArgument < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Lint::UnusedArgument
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#66
+ def not_implemented?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#81
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#85
+ def check_argument(variable); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#93
+ def ignored_method?(body); end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#98
+ def message(variable); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#71
+ def autocorrect_incompatible_with; end
+
+ # source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#75
+ def joining_forces; end
+ end
+end
+
+# Identifies places where `URI.escape` can be replaced by
+# `CGI.escape`, `URI.encode_www_form`, or `URI.encode_www_form_component`
+# depending on your specific use case.
+# Also this cop identifies places where `URI.unescape` can be replaced by
+# `CGI.unescape`, `URI.decode_www_form`,
+# or `URI.decode_www_form_component` depending on your specific use case.
+#
+# @example
+# # bad
+# URI.escape('http://example.com')
+# URI.encode('http://example.com')
+#
+# # good
+# CGI.escape('http://example.com')
+# URI.encode_www_form([['example', 'param'], ['lang', 'en']])
+# URI.encode_www_form(page: 10, locale: 'en')
+# URI.encode_www_form_component('http://example.com')
+#
+# # bad
+# URI.unescape(enc_uri)
+# URI.decode(enc_uri)
+#
+# # good
+# CGI.unescape(enc_uri)
+# URI.decode_www_form(enc_uri)
+# URI.decode_www_form_component(enc_uri)
+#
+# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#32
+class RuboCop::Cop::Lint::UriEscapeUnescape < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#57
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#51
+ def uri_escape_unescape?(param0 = T.unsafe(nil)); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#33
+RuboCop::Cop::Lint::UriEscapeUnescape::ALTERNATE_METHODS_OF_URI_ESCAPE = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#38
+RuboCop::Cop::Lint::UriEscapeUnescape::ALTERNATE_METHODS_OF_URI_UNESCAPE = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#47
+RuboCop::Cop::Lint::UriEscapeUnescape::METHOD_NAMES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#44
+RuboCop::Cop::Lint::UriEscapeUnescape::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#48
+RuboCop::Cop::Lint::UriEscapeUnescape::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Identifies places where `URI.regexp` is obsolete and should
+# not be used. Instead, use `URI::DEFAULT_PARSER.make_regexp`.
+#
+# @example
+# # bad
+# URI.regexp('http://example.com')
+#
+# # good
+# URI::DEFAULT_PARSER.make_regexp('http://example.com')
+#
+# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#16
+class RuboCop::Cop::Lint::UriRegexp < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#23
+ def on_send(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#19
+RuboCop::Cop::Lint::UriRegexp::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#21
+RuboCop::Cop::Lint::UriRegexp::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#20
+RuboCop::Cop::Lint::UriRegexp::URI_CONSTANTS = T.let(T.unsafe(nil), Array)
+
+# Checks for redundant access modifiers, including those with no
+# code, those which are repeated, and leading `public` modifiers in a
+# class or module body. Conditionally-defined methods are considered as
+# always being defined, and thus access modifiers guarding such methods
+# are not redundant.
+#
+# This cop has `ContextCreatingMethods` option. The default setting value
+# is an empty array that means no method is specified.
+# This setting is an array of methods which, when called, are known to
+# create its own context in the module's current access context.
+#
+# It also has `MethodCreatingMethods` option. The default setting value
+# is an empty array that means no method is specified.
+# This setting is an array of methods which, when called, are known to
+# create other methods in the module's current access context.
+#
+# @example
+# # bad
+# class Foo
+# public # this is redundant (default access is public)
+#
+# def method
+# end
+# end
+#
+# # bad
+# class Foo
+# # The following is redundant (methods defined on the class'
+# # singleton class are not affected by the private modifier)
+# private
+#
+# def self.method3
+# end
+# end
+#
+# # bad
+# class Foo
+# protected
+#
+# define_method(:method2) do
+# end
+#
+# protected # this is redundant (repeated from previous modifier)
+#
+# [1,2,3].each do |i|
+# define_method("foo#{i}") do
+# end
+# end
+# end
+#
+# # bad
+# class Foo
+# private # this is redundant (no following methods are defined)
+# end
+#
+# # good
+# class Foo
+# private # this is not redundant (a method is defined)
+#
+# def method2
+# end
+# end
+#
+# # good
+# class Foo
+# # The following is not redundant (conditionally defined methods are
+# # considered as always defining a method)
+# private
+#
+# if condition?
+# def method
+# end
+# end
+# end
+#
+# # good
+# class Foo
+# protected # this is not redundant (a method is defined)
+#
+# define_method(:method2) do
+# end
+# end
+# @example ContextCreatingMethods: concerning
+# # Lint/UselessAccessModifier:
+# # ContextCreatingMethods:
+# # - concerning
+#
+# # good
+# require 'active_support/concern'
+# class Foo
+# concerning :Bar do
+# def some_public_method
+# end
+#
+# private
+#
+# def some_private_method
+# end
+# end
+#
+# # this is not redundant because `concerning` created its own context
+# private
+#
+# def some_other_private_method
+# end
+# end
+# @example MethodCreatingMethods: delegate
+# # Lint/UselessAccessModifier:
+# # MethodCreatingMethods:
+# # - delegate
+#
+# # good
+# require 'active_support/core_ext/module/delegation'
+# class Foo
+# # this is not redundant because `delegate` creates methods
+# private
+#
+# delegate :method_a, to: :method_b
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#127
+class RuboCop::Cop::Lint::UselessAccessModifier < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#166
+ def class_or_instance_eval?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#161
+ def dynamic_method_definition?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#139
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#133
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#133
+ def on_module(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#139
+ def on_numblock(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#133
+ def on_sclass(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#156
+ def static_method_definition?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#182
+ def access_modifier?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#280
+ def any_context_creating_methods?(child); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#257
+ def any_method_definition?(child); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#149
+ def autocorrect(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#196
+ def check_child_nodes(node, unused, cur_vis); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#226
+ def check_new_visibility(node, unused, new_vis, cur_vis); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#170
+ def check_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#186
+ def check_scope(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#215
+ def check_send_node(node, cur_vis, unused); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#274
+ def eval_call?(child); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#247
+ def included_block?(block_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#251
+ def method_definition?(child); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#270
+ def start_of_new_scope?(child); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#131
+RuboCop::Cop::Lint::UselessAccessModifier::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for every useless assignment to local variable in every
+# scope.
+# The basic idea for this cop was from the warning of `ruby -cw`:
+#
+# [source,console]
+# ----
+# assigned but unused variable - foo
+# ----
+#
+# Currently this cop has advanced logic that detects unreferenced
+# reassignments and properly handles varied cases such as branch, loop,
+# rescue, ensure, etc.
+#
+# NOTE: Given the assignment `foo = 1, bar = 2`, removing unused variables
+# can lead to a syntax error, so this case is not autocorrected.
+#
+# @example
+#
+# # bad
+#
+# def some_method
+# some_var = 1
+# do_something
+# end
+# @example
+#
+# # good
+#
+# def some_method
+# some_var = 1
+# do_something(some_var)
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#45
+class RuboCop::Cop::Lint::UselessAssignment < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#56
+ def after_leaving_scope(scope, _variable_table); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#162
+ def autocorrect(corrector, assignment); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#103
+ def chained_assignment?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#61
+ def check_for_unused_assignments(variable); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#146
+ def collect_variable_like_names(scope); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#79
+ def message_for_useless_assignment(assignment); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#107
+ def message_specification(assignment, variable); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#117
+ def multiple_assignment_message(variable_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#85
+ def offense_range(assignment); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#122
+ def operator_assignment_message(scope, assignment); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#179
+ def remove_exception_assignment_part(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#203
+ def remove_local_variable_assignment_part(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#192
+ def remove_trailing_character_from_operator(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#188
+ def rename_variable_with_underscore(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#196
+ def replace_named_capture_group_with_non_capturing_group(corrector, node, variable_name); end
+
+ # TODO: More precise handling (rescue, ensure, nested begin, etc.)
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#136
+ def return_value_node_of_scope(scope); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#93
+ def sequential_assignment?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#129
+ def similar_name_message(variable); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#155
+ def variable_like_method_invocation?(node); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#52
+ def joining_forces; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#50
+RuboCop::Cop::Lint::UselessAssignment::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for useless `else` in `begin..end` without `rescue`.
+#
+# NOTE: This syntax is no longer valid on Ruby 2.6 or higher.
+#
+# @example
+#
+# # bad
+#
+# begin
+# do_something
+# else
+# do_something_else # This will never be run.
+# end
+# @example
+#
+# # good
+#
+# begin
+# do_something
+# rescue
+# handle_errors
+# else
+# do_something_else
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_else_without_rescue.rb#31
+class RuboCop::Cop::Lint::UselessElseWithoutRescue < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/useless_else_without_rescue.rb#34
+ def on_new_investigation; end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/useless_else_without_rescue.rb#32
+RuboCop::Cop::Lint::UselessElseWithoutRescue::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for useless method definitions, specifically: empty constructors
+# and methods just delegating to `super`.
+#
+# @example
+# # bad
+# def initialize
+# super
+# end
+#
+# def method
+# super
+# end
+#
+# # good - with default arguments
+# def initialize(x = Object.new)
+# super
+# end
+#
+# # good
+# def initialize
+# super
+# initialize_internals
+# end
+#
+# def method(*args)
+# super(:extra_arg, *args)
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#38
+class RuboCop::Cop::Lint::UselessMethodDefinition < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#43
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#43
+ def on_defs(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#65
+ def delegating?(node, def_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#57
+ def method_definition_with_modifier?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#61
+ def use_rest_or_optional_args?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#41
+RuboCop::Cop::Lint::UselessMethodDefinition::MSG = T.let(T.unsafe(nil), String)
+
+# Checks for useless `rescue`s, which only reraise rescued exceptions.
+#
+# @example
+# # bad
+# def foo
+# do_something
+# rescue
+# raise
+# end
+#
+# # bad
+# def foo
+# do_something
+# rescue => e
+# raise # or 'raise e', or 'raise $!', or 'raise $ERROR_INFO'
+# end
+#
+# # good
+# def foo
+# do_something
+# rescue
+# do_cleanup
+# raise
+# end
+#
+# # bad (latest rescue)
+# def foo
+# do_something
+# rescue ArgumentError
+# # noop
+# rescue
+# raise
+# end
+#
+# # good (not the latest rescue)
+# def foo
+# do_something
+# rescue ArgumentError
+# raise
+# rescue
+# # noop
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#49
+class RuboCop::Cop::Lint::UselessRescue < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#52
+ def on_rescue(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#83
+ def exception_objects(resbody_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#60
+ def only_reraising?(resbody_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#75
+ def use_exception_variable_in_ensure?(resbody_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#50
+RuboCop::Cop::Lint::UselessRescue::MSG = T.let(T.unsafe(nil), String)
+
+# Looks for `ruby2_keywords` calls for methods that do not need it.
+#
+# `ruby2_keywords` should only be called on methods that accept an argument splat
+# (`\*args`) but do not explicit keyword arguments (`k:` or `k: true`) or
+# a keyword splat (`**kwargs`).
+#
+# @example
+# # good (splat argument without keyword arguments)
+# ruby2_keywords def foo(*args); end
+#
+# # bad (no arguments)
+# ruby2_keywords def foo; end
+#
+# # good
+# def foo; end
+#
+# # bad (positional argument)
+# ruby2_keywords def foo(arg); end
+#
+# # good
+# def foo(arg); end
+#
+# # bad (double splatted argument)
+# ruby2_keywords def foo(**args); end
+#
+# # good
+# def foo(**args); end
+#
+# # bad (keyword arguments)
+# ruby2_keywords def foo(i:, j:); end
+#
+# # good
+# def foo(i:, j:); end
+#
+# # bad (splat argument with keyword arguments)
+# ruby2_keywords def foo(*args, i:, j:); end
+#
+# # good
+# def foo(*args, i:, j:); end
+#
+# # bad (splat argument with double splat)
+# ruby2_keywords def foo(*args, **kwargs); end
+#
+# # good
+# def foo(*args, **kwargs); end
+#
+# # bad (ruby2_keywords given a symbol)
+# def foo; end
+# ruby2_keywords :foo
+#
+# # good
+# def foo; end
+#
+# # bad (ruby2_keywords with dynamic method)
+# define_method(:foo) { |arg| }
+# ruby2_keywords :foo
+#
+# # good
+# define_method(:foo) { |arg| }
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#66
+class RuboCop::Cop::Lint::UselessRuby2Keywords < ::RuboCop::Cop::Base
+ # Looks for statically or dynamically defined methods with a given name
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#72
+ def method_definition(param0 = T.unsafe(nil), param1); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#79
+ def on_send(node); end
+
+ private
+
+ # `ruby2_keywords` is only allowed if there's a `restarg` and no keyword arguments
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#118
+ def allowed_arguments(arguments); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#109
+ def find_method_definition(node, method_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#91
+ def inspect_def(node, def_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#97
+ def inspect_sym(node, sym_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#67
+RuboCop::Cop::Lint::UselessRuby2Keywords::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#68
+RuboCop::Cop::Lint::UselessRuby2Keywords::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for setter call to local variable as the final
+# expression of a function definition.
+#
+# @example
+#
+# # bad
+#
+# def something
+# x = Something.new
+# x.attr = 5
+# end
+# @example
+#
+# # good
+#
+# def something
+# x = Something.new
+# x.attr = 5
+# x
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#35
+class RuboCop::Cop::Lint::UselessSetterCall < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#41
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#41
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#63
+ def setter_call_to_local_variable?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#67
+ def last_expression(body); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#39
+RuboCop::Cop::Lint::UselessSetterCall::ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#38
+RuboCop::Cop::Lint::UselessSetterCall::MSG = T.let(T.unsafe(nil), String)
+
+# This class tracks variable assignments in a method body
+# and if a variable contains object passed as argument at the end of
+# the method.
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#76
+class RuboCop::Cop::Lint::UselessSetterCall::MethodVariableTracker
+ # @return [MethodVariableTracker] a new instance of MethodVariableTracker
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#77
+ def initialize(body_node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#163
+ def constructor?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#82
+ def contain_local_object?(variable_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#152
+ def process_assignment(asgn_node, rhs_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#100
+ def process_assignment_node(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#142
+ def process_binary_operator_assignment(op_asgn_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#133
+ def process_logical_operator_assignment(asgn_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#114
+ def process_multiple_assignment(masgn_node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#92
+ def scan(node, &block); end
+end
+
+# Checks for uses of `Integer#times` that will never yield
+# (when the integer <= 0) or that will only ever yield once
+# (`1.times`).
+#
+# @example
+# # bad
+# -5.times { do_something }
+# 0.times { do_something }
+# 1.times { do_something }
+# 1.times { |i| do_something(i) }
+#
+# # good
+# do_something
+# do_something(1)
+#
+# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#24
+class RuboCop::Cop::Lint::UselessTimes < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#37
+ def block_arg(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#42
+ def block_reassigns_arg?(param0, param1); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#46
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#32
+ def times_call?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#62
+ def autocorrect(corrector, count, node, proc_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#84
+ def autocorrect_block(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#80
+ def autocorrect_block_pass(corrector, node, proc_name); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#94
+ def fix_indentation(source, range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#72
+ def never_process?(count, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#106
+ def own_line?(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/useless_times.rb#76
+ def remove_node(corrector, node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#28
+RuboCop::Cop::Lint::UselessTimes::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#29
+RuboCop::Cop::Lint::UselessTimes::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks for operators, variables, literals, lambda, proc and nonmutating
+# methods used in void context.
+#
+# @example CheckForMethodsWithNoSideEffects: false (default)
+# # bad
+# def some_method
+# some_num * 10
+# do_something
+# end
+#
+# def some_method(some_var)
+# some_var
+# do_something
+# end
+# @example CheckForMethodsWithNoSideEffects: true
+# # bad
+# def some_method(some_array)
+# some_array.sort
+# do_something(some_array)
+# end
+#
+# # good
+# def some_method
+# do_something
+# some_num * 10
+# end
+#
+# def some_method(some_var)
+# do_something
+# some_var
+# end
+#
+# def some_method(some_array)
+# some_array.sort!
+# do_something(some_array)
+# end
+#
+# source://rubocop//lib/rubocop/cop/lint/void.rb#43
+class RuboCop::Cop::Lint::Void < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#80
+ def on_begin(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#71
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#80
+ def on_kwbegin(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#71
+ def on_numblock(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#194
+ def autocorrect_nonmutating_send(corrector, node, suggestion); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#190
+ def autocorrect_void_expression(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#178
+ def autocorrect_void_op(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#87
+ def check_begin(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#93
+ def check_expression(expr); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#128
+ def check_literal(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#152
+ def check_nonmutating(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#136
+ def check_self(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#113
+ def check_var(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#144
+ def check_void_expression(node); end
+
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#104
+ def check_void_op(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/lint/void.rb#170
+ def in_void_context?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#55
+RuboCop::Cop::Lint::Void::BINARY_OPERATORS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#52
+RuboCop::Cop::Lint::Void::EXPRESSION_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#50
+RuboCop::Cop::Lint::Void::LIT_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#66
+RuboCop::Cop::Lint::Void::METHODS_REPLACEABLE_BY_EACH = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#68
+RuboCop::Cop::Lint::Void::NONMUTATING_METHODS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#59
+RuboCop::Cop::Lint::Void::NONMUTATING_METHODS_WITH_BANG_VERSION = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#53
+RuboCop::Cop::Lint::Void::NONMUTATING_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#57
+RuboCop::Cop::Lint::Void::OPERATORS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#48
+RuboCop::Cop::Lint::Void::OP_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#51
+RuboCop::Cop::Lint::Void::SELF_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#56
+RuboCop::Cop::Lint::Void::UNARY_OPERATORS = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#49
+RuboCop::Cop::Lint::Void::VAR_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/lint/void.rb#58
+RuboCop::Cop::Lint::Void::VOID_CONTEXT_TYPES = T.let(T.unsafe(nil), Array)
+
+# Common functionality for obtaining source ranges from regexp matches
+#
+# source://rubocop//lib/rubocop/cop/mixin/match_range.rb#6
+module RuboCop::Cop::MatchRange
+ include ::RuboCop::Cop::RangeHelp
+
+ private
+
+ # Return a new `Range` covering the first matching group number for each
+ # match of `regex` inside `range`
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/match_range.rb#13
+ def each_match_range(range, regex); end
+
+ # For a `match` inside `range`, return a new `Range` covering the match
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/match_range.rb#18
+ def match_range(range, match); end
+end
+
+# Message Annotator class annotates a basic offense message
+# based on params passed into initializer.
+#
+# #=> 'Cop/CopName: message (http://example.org/styleguide)'
+#
+# @example
+# RuboCop::Cop::MessageAnnotator.new(
+# config, cop_name, cop_config, @options
+# ).annotate('message')
+# @see #initialize
+#
+# source://rubocop//lib/rubocop/cop/message_annotator.rb#15
+class RuboCop::Cop::MessageAnnotator
+ # @option cop_config
+ # @option cop_config
+ # @option cop_config
+ # @option options
+ # @option options
+ # @option options
+ # @option options
+ # @param config [RuboCop::Config] Check configs for all cops
+ # @note Message Annotator specifically checks the
+ # following config options for_all_cops
+ # :StyleGuideBaseURL [String] URL for styleguide
+ # :DisplayStyleGuide [Boolean] Include styleguide and reference URLs
+ # :ExtraDetails [Boolean] Include cop details
+ # :DisplayCopNames [Boolean] Include cop name
+ # @param cop_name [String] for specific cop name
+ # @param cop_config [Hash] configs for specific cop, from config#for_cop
+ # @param options [Hash, nil] optional
+ # @return [MessageAnnotator] a new instance of MessageAnnotator
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#47
+ def initialize(config, cop_name, cop_config, options); end
+
+ # Returns the annotated message,
+ # based on params passed into initializer
+ #
+ # @return [String] annotated message
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#58
+ def annotate(message); end
+
+ # Returns the value of attribute config.
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#16
+ def config; end
+
+ # Returns the value of attribute cop_config.
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#16
+ def cop_config; end
+
+ # Returns the value of attribute cop_name.
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#16
+ def cop_name; end
+
+ # Returns the value of attribute options.
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#16
+ def options; end
+
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#68
+ def urls; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#111
+ def debug?; end
+
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#124
+ def details; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#115
+ def display_cop_names?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#98
+ def display_style_guide?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#107
+ def extra_details?; end
+
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#102
+ def reference_urls; end
+
+ # Returns the base style guide URL from AllCops or the specific department
+ #
+ # @return [String] style guide URL
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#91
+ def style_guide_base_url; end
+
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#74
+ def style_guide_url; end
+
+ class << self
+ # Returns the value of attribute style_guide_urls.
+ #
+ # source://rubocop//lib/rubocop/cop/message_annotator.rb#21
+ def style_guide_urls; end
+ end
+end
+
+# This module handles measurement and reporting of complexity in methods.
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#8
+module RuboCop::Cop::MethodComplexity
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::AllowedPattern
+ include ::RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
+ extend ::RuboCop::AST::NodePattern::Macros
+ extend ::RuboCop::ExcludeLimit
+
+ # source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#37
+ def define_method?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
+ def max=(value); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#24
+ def on_block(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#17
+ def on_def(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#17
+ def on_defs(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#24
+ def on_numblock(node); end
+
+ private
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#42
+ def check_complexity(node, method_name); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#61
+ def complexity(body); end
+end
+
+# Common code for cops that deal with preferred methods.
+#
+# source://rubocop//lib/rubocop/cop/mixin/method_preference.rb#6
+module RuboCop::Cop::MethodPreference
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/method_preference.rb#25
+ def default_cop_config; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/method_preference.rb#9
+ def preferred_method(method); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/method_preference.rb#13
+ def preferred_methods; end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#5
+module RuboCop::Cop::Metrics; end
+
+# Checks that the ABC size of methods is not higher than the
+# configured maximum. The ABC size is based on assignments, branches
+# (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric
+# and https://en.wikipedia.org/wiki/ABC_Software_Metric.
+#
+# Interpreting ABC size:
+#
+# * <= 17 satisfactory
+# * 18..30 unsatisfactory
+# * > 30 dangerous
+#
+# You can have repeated "attributes" calls count as a single "branch".
+# For this purpose, attributes are any method with no argument; no attempt
+# is meant to distinguish actual `attr_reader` from other methods.
+#
+# This cop also takes into account `AllowedMethods` (defaults to `[]`)
+# And `AllowedPatterns` (defaults to `[]`)
+#
+# @example CountRepeatedAttributes: false (default is true)
+#
+# # `model` and `current_user`, referenced 3 times each,
+# # are each counted as only 1 branch each if
+# # `CountRepeatedAttributes` is set to 'false'
+#
+# def search
+# @posts = model.active.visible_by(current_user)
+# .search(params[:q])
+# @posts = model.some_process(@posts, current_user)
+# @posts = model.another_process(@posts, current_user)
+#
+# render 'pages/search/page'
+# end
+#
+# source://rubocop//lib/rubocop/cop/metrics/abc_size.rb#39
+class RuboCop::Cop::Metrics::AbcSize < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::AllowedPattern
+ include ::RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
+ include ::RuboCop::Cop::MethodComplexity
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/abc_size.rb#47
+ def complexity(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/abc_size.rb#42
+RuboCop::Cop::Metrics::AbcSize::MSG = T.let(T.unsafe(nil), String)
+
+# Checks if the length of a block exceeds some maximum value.
+# Comment lines can optionally be ignored.
+# The maximum allowed length is configurable.
+# The cop can be configured to ignore blocks passed to certain methods.
+#
+# You can set constructs you want to fold with `CountAsOne`.
+# Available are: 'array', 'hash', 'heredoc', and 'method_call'. Each construct
+# will be counted as one line regardless of its actual size.
+#
+# NOTE: This cop does not apply for `Struct` definitions.
+#
+# NOTE: The `ExcludedMethods` configuration is deprecated and only kept
+# for backwards compatibility. Please use `AllowedMethods` and `AllowedPatterns`
+# instead. By default, there are no methods to allowed.
+#
+# @example CountAsOne: ['array', 'heredoc', 'method_call']
+#
+# something do
+# array = [ # +1
+# 1,
+# 2
+# ]
+#
+# hash = { # +3
+# key: 'value'
+# }
+#
+# msg = <<~HEREDOC # +1
+# Heredoc
+# content.
+# HEREDOC
+#
+# foo( # +1
+# 1,
+# 2
+# )
+# end # 6 points
+#
+# source://rubocop//lib/rubocop/cop/metrics/block_length.rb#44
+class RuboCop::Cop::Metrics::BlockLength < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CodeLength
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::AllowedPattern
+
+ # source://rubocop//lib/rubocop/cop/metrics/block_length.rb#51
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/block_length.rb#51
+ def on_numblock(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/block_length.rb#80
+ def cop_label; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/block_length.rb#62
+ def method_receiver_excluded?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/block_length.rb#49
+RuboCop::Cop::Metrics::BlockLength::LABEL = T.let(T.unsafe(nil), String)
+
+# Checks for excessive nesting of conditional and looping
+# constructs.
+#
+# You can configure if blocks are considered using the `CountBlocks`
+# option. When set to `false` (the default) blocks are not counted
+# towards the nesting level. Set to `true` to count blocks as well.
+#
+# The maximum level of nesting allowed is configurable.
+#
+# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#14
+class RuboCop::Cop::Metrics::BlockNesting < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
+ def max=(value); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#19
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#28
+ def check_nesting_level(node, max, current_level); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#44
+ def consider_node?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#54
+ def count_blocks?; end
+
+ # source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#50
+ def message(max); end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#15
+RuboCop::Cop::Metrics::BlockNesting::NESTING_BLOCKS = T.let(T.unsafe(nil), Array)
+
+# Checks if the length of a class exceeds some maximum value.
+# Comment lines can optionally be ignored.
+# The maximum allowed length is configurable.
+#
+# You can set constructs you want to fold with `CountAsOne`.
+# Available are: 'array', 'hash', 'heredoc', and 'method_call'. Each construct
+# will be counted as one line regardless of its actual size.
+#
+# NOTE: This cop also applies for `Struct` definitions.
+#
+# @example CountAsOne: ['array', 'heredoc', 'method_call']
+#
+# class Foo
+# ARRAY = [ # +1
+# 1,
+# 2
+# ]
+#
+# HASH = { # +3
+# key: 'value'
+# }
+#
+# MSG = <<~HEREDOC # +1
+# Heredoc
+# content.
+# HEREDOC
+#
+# foo( # +1
+# 1,
+# 2
+# )
+# end # 6 points
+#
+# source://rubocop//lib/rubocop/cop/metrics/class_length.rb#39
+class RuboCop::Cop::Metrics::ClassLength < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CodeLength
+
+ # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#47
+ def on_casgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#42
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#42
+ def on_sclass(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#65
+ def message(length, max_length); end
+end
+
+# Checks for literals with extremely many entries. This is indicative of
+# configuration or data that may be better extracted somewhere else, like
+# a database, fetched from an API, or read from a non-code file (CSV,
+# JSON, YAML, etc.).
+#
+# @example
+# # bad
+# # Huge Array literal
+# [1, 2, '...', 999_999_999]
+#
+# # bad
+# # Huge Hash literal
+# { 1 => 1, 2 => 2, '...' => '...', 999_999_999 => 999_999_999}
+#
+# # bad
+# # Huge Set "literal"
+# Set[1, 2, '...', 999_999_999]
+#
+# # good
+# # Reasonably sized Array literal
+# [1, 2, '...', 10]
+#
+# # good
+# # Reading huge Array from external data source
+# # File.readlines('numbers.txt', chomp: true).map!(&:to_i)
+#
+# # good
+# # Reasonably sized Hash literal
+# { 1 => 1, 2 => 2, '...' => '...', 10 => 10}
+#
+# # good
+# # Reading huge Hash from external data source
+# CSV.foreach('numbers.csv', headers: true).each_with_object({}) do |row, hash|
+# hash[row["key"].to_i] = row["value"].to_i
+# end
+#
+# # good
+# # Reasonably sized Set "literal"
+# Set[1, 2, '...', 10]
+#
+# # good
+# # Reading huge Set from external data source
+# SomeFramework.config_for(:something)[:numbers].to_set
+#
+# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#50
+class RuboCop::Cop::Metrics::CollectionLiteralLength < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#55
+ def on_array(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#55
+ def on_hash(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#60
+ def on_index(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#64
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#70
+ def collection_threshold; end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#51
+RuboCop::Cop::Metrics::CollectionLiteralLength::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#53
+RuboCop::Cop::Metrics::CollectionLiteralLength::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
+
+# Checks that the cyclomatic complexity of methods is not higher
+# than the configured maximum. The cyclomatic complexity is the number of
+# linearly independent paths through a method. The algorithm counts
+# decision points and adds one.
+#
+# An if statement (or unless or ?:) increases the complexity by one. An
+# else branch does not, since it doesn't add a decision point. The &&
+# operator (or keyword and) can be converted to a nested if statement,
+# and ||/or is shorthand for a sequence of ifs, so they also add one.
+# Loops can be said to have an exit condition, so they add one.
+# Blocks that are calls to builtin iteration methods
+# (e.g. `ary.map{...}) also add one, others are ignored.
+#
+# def each_child_node(*types) # count begins: 1
+# unless block_given? # unless: +1
+# return to_enum(__method__, *types)
+#
+# children.each do |child| # each{}: +1
+# next unless child.is_a?(Node) # unless: +1
+#
+# yield child if types.empty? || # if: +1, ||: +1
+# types.include?(child.type)
+# end
+#
+# self
+# end # total: 6
+#
+# source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#32
+class RuboCop::Cop::Metrics::CyclomaticComplexity < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::AllowedPattern
+ include ::RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
+ include ::RuboCop::Cop::MethodComplexity
+ include ::RuboCop::Cop::Metrics::Utils::IteratingBlock
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#42
+ def complexity_score_for(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#49
+ def count_block?(block); end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#37
+RuboCop::Cop::Metrics::CyclomaticComplexity::COUNTED_NODES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#36
+RuboCop::Cop::Metrics::CyclomaticComplexity::MSG = T.let(T.unsafe(nil), String)
+
+# Checks if the length of a method exceeds some maximum value.
+# Comment lines can optionally be allowed.
+# The maximum allowed length is configurable.
+#
+# You can set constructs you want to fold with `CountAsOne`.
+# Available are: 'array', 'hash', 'heredoc', and 'method_call'. Each construct
+# will be counted as one line regardless of its actual size.
+#
+# NOTE: The `ExcludedMethods` and `IgnoredMethods` configuration is
+# deprecated and only kept for backwards compatibility.
+# Please use `AllowedMethods` and `AllowedPatterns` instead.
+# By default, there are no methods to allowed.
+#
+# @example CountAsOne: ['array', 'heredoc', 'method_call']
+#
+# def m
+# array = [ # +1
+# 1,
+# 2
+# ]
+#
+# hash = { # +3
+# key: 'value'
+# }
+#
+# <<~HEREDOC # +1
+# Heredoc
+# content.
+# HEREDOC
+#
+# foo( # +1
+# 1,
+# 2
+# )
+# end # 6 points
+#
+# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#42
+class RuboCop::Cop::Metrics::MethodLength < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CodeLength
+ include ::RuboCop::Cop::AllowedMethods
+ include ::RuboCop::Cop::AllowedPattern
+
+ # source://rubocop//lib/rubocop/cop/metrics/method_length.rb#56
+ def on_block(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/method_length.rb#49
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/method_length.rb#49
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/method_length.rb#56
+ def on_numblock(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/method_length.rb#65
+ def cop_label; end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#47
+RuboCop::Cop::Metrics::MethodLength::LABEL = T.let(T.unsafe(nil), String)
+
+# Checks if the length of a module exceeds some maximum value.
+# Comment lines can optionally be ignored.
+# The maximum allowed length is configurable.
+#
+# You can set constructs you want to fold with `CountAsOne`.
+# Available are: 'array', 'hash', 'heredoc', and 'method_call'. Each construct
+# will be counted as one line regardless of its actual size.
+#
+# @example CountAsOne: ['array', 'heredoc', 'method_call']
+#
+# module M
+# ARRAY = [ # +1
+# 1,
+# 2
+# ]
+#
+# HASH = { # +3
+# key: 'value'
+# }
+#
+# MSG = <<~HEREDOC # +1
+# Heredoc
+# content.
+# HEREDOC
+#
+# foo( # +1
+# 1,
+# 2
+# )
+# end # 6 points
+#
+# source://rubocop//lib/rubocop/cop/metrics/module_length.rb#37
+class RuboCop::Cop::Metrics::ModuleLength < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::CodeLength
+
+ # source://rubocop//lib/rubocop/cop/metrics/module_length.rb#51
+ def module_definition?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/module_length.rb#44
+ def on_casgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/module_length.rb#40
+ def on_module(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/module_length.rb#55
+ def message(length, max_length); end
+end
+
+# Checks for methods with too many parameters.
+#
+# The maximum number of parameters is configurable.
+# Keyword arguments can optionally be excluded from the total count,
+# as they add less complexity than positional or optional parameters.
+#
+# Any number of arguments for `initialize` method inside a block of
+# `Struct.new` and `Data.define` like this is always allowed:
+#
+# [source,ruby]
+# ----
+# Struct.new(:one, :two, :three, :four, :five, keyword_init: true) do
+# def initialize(one:, two:, three:, four:, five:)
+# end
+# end
+# ----
+#
+# This is because checking the number of arguments of the `initialize` method
+# does not make sense.
+#
+# NOTE: Explicit block argument `&block` is not counted to prevent
+# erroneous change that is avoided by making block argument implicit.
+#
+# This cop also checks for the maximum number of optional parameters.
+# This can be configured using the `MaxOptionalParameters` config option.
+#
+# @example Max: 3
+# # good
+# def foo(a, b, c = 1)
+# end
+# @example Max: 2
+# # bad
+# def foo(a, b, c = 1)
+# end
+# @example CountKeywordArgs: true (default)
+# # counts keyword args towards the maximum
+#
+# # bad (assuming Max is 3)
+# def foo(a, b, c, d: 1)
+# end
+#
+# # good (assuming Max is 3)
+# def foo(a, b, c: 1)
+# end
+# @example CountKeywordArgs: false
+# # don't count keyword args towards the maximum
+#
+# # good (assuming Max is 3)
+# def foo(a, b, c, d: 1)
+# end
+# @example MaxOptionalParameters: 3 (default)
+# # good
+# def foo(a = 1, b = 2, c = 3)
+# end
+# @example MaxOptionalParameters: 2
+# # bad
+# def foo(a = 1, b = 2, c = 3)
+# end
+#
+# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#70
+class RuboCop::Cop::Metrics::ParameterLists < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#121
+ def argument_to_lambda_or_proc?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
+ def max=(value); end
+
+ # source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
+ def max_optional_parameters=(value); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#104
+ def on_args(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#90
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#90
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#81
+ def struct_new_or_data_define_block?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#125
+ def args_count(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#141
+ def count_keyword_args?; end
+
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#137
+ def max_optional_parameters; end
+
+ # source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#133
+ def max_params; end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#74
+RuboCop::Cop::Metrics::ParameterLists::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#77
+RuboCop::Cop::Metrics::ParameterLists::NAMED_KEYWORD_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#75
+RuboCop::Cop::Metrics::ParameterLists::OPTIONAL_PARAMETERS_MSG = T.let(T.unsafe(nil), String)
+
+# Tries to produce a complexity score that's a measure of the
+# complexity the reader experiences when looking at a method. For that
+# reason it considers `when` nodes as something that doesn't add as much
+# complexity as an `if` or a `&&`. Except if it's one of those special
+# `case`/`when` constructs where there's no expression after `case`. Then
+# the cop treats it as an `if`/`elsif`/`elsif`... and lets all the `when`
+# nodes count. In contrast to the CyclomaticComplexity cop, this cop
+# considers `else` nodes as adding complexity.
+#
+# @example
+#
+# def my_method # 1
+# if cond # 1
+# case var # 2 (0.8 + 4 * 0.2, rounded)
+# when 1 then func_one
+# when 2 then func_two
+# when 3 then func_three
+# when 4..10 then func_other
+# end
+# else # 1
+# do_something until a && b # 2
+# end # ===
+# end # 7 complexity points
+#
+# source://rubocop//lib/rubocop/cop/metrics/perceived_complexity.rb#29
+class RuboCop::Cop::Metrics::PerceivedComplexity < ::RuboCop::Cop::Metrics::CyclomaticComplexity
+ private
+
+ # source://rubocop//lib/rubocop/cop/metrics/perceived_complexity.rb#36
+ def complexity_score_for(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/perceived_complexity.rb#32
+RuboCop::Cop::Metrics::PerceivedComplexity::COUNTED_NODES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/metrics/perceived_complexity.rb#30
+RuboCop::Cop::Metrics::PerceivedComplexity::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#6
+module RuboCop::Cop::Metrics::Utils; end
+
+# > ABC is .. a software size metric .. computed by counting the number
+# > of assignments, branches and conditions for a section of code.
+# > http://c2.com/cgi/wiki?AbcMetric
+#
+# We separate the *calculator* from the *cop* so that the calculation,
+# the formula itself, is easier to test.
+#
+# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#13
+class RuboCop::Cop::Metrics::Utils::AbcSizeCalculator
+ include ::RuboCop::AST::Sexp
+ include ::RuboCop::Cop::Metrics::Utils::RepeatedAttributeDiscount
+ include ::RuboCop::Cop::Metrics::Utils::IteratingBlock
+ include ::RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
+
+ # @return [AbcSizeCalculator] a new instance of AbcSizeCalculator
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#30
+ def initialize(node, discount_repeated_attributes: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#42
+ def calculate; end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#53
+ def calculate_node(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#65
+ def else_branch?(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#47
+ def evaluate_branch_nodes(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#60
+ def evaluate_condition_node(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#127
+ def argument?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#86
+ def assignment?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#123
+ def branch?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#119
+ def capturing_variable?(name); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#95
+ def compound_assignment(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#131
+ def condition?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#108
+ def simple_assignment?(node); end
+
+ # @yield [node]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#71
+ def visit_depth_last(node, &block); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#30
+ def calculate(node, discount_repeated_attributes: T.unsafe(nil)); end
+ end
+end
+
+# > Branch -- an explicit forward program branch out of scope -- a
+# > function call, class method call ..
+# > http://c2.com/cgi/wiki?AbcMetric
+#
+# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#21
+RuboCop::Cop::Metrics::Utils::AbcSizeCalculator::BRANCH_NODES = T.let(T.unsafe(nil), Array)
+
+# > Condition -- a logical/Boolean test, == != <= >= < > else case
+# > default try catch ? and unary conditionals.
+# > http://c2.com/cgi/wiki?AbcMetric
+#
+# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#26
+RuboCop::Cop::Metrics::Utils::AbcSizeCalculator::CONDITION_NODES = T.let(T.unsafe(nil), Array)
+
+# Helps to calculate code length for the provided node.
+#
+# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#8
+class RuboCop::Cop::Metrics::Utils::CodeLengthCalculator
+ include ::RuboCop::PathUtil
+ include ::RuboCop::Cop::Util
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # @return [CodeLengthCalculator] a new instance of CodeLengthCalculator
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#16
+ def initialize(node, processed_source, count_comments: T.unsafe(nil), foldable_types: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#24
+ def calculate; end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#182
+ def another_args?(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#42
+ def build_foldable_checks(types); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#90
+ def classlike_code_length(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#138
+ def classlike_node?(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#66
+ def code_length(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#163
+ def count_comments?; end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#126
+ def each_top_level_descendant(node, types, &block); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#146
+ def extract_body(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#142
+ def foldable_node?(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#121
+ def heredoc_length(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#86
+ def heredoc_node?(node); end
+
+ # Returns true for lines that shall not be included in the count.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#159
+ def irrelevant_line?(source_line); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#110
+ def line_numbers_of_inner_nodes(node, *types); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#106
+ def namespace_module?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#186
+ def node_with_heredoc?(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#60
+ def normalize_foldable_types(types); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#167
+ def omit_length(descendant); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#178
+ def parenthesized?(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#190
+ def source_from_node_with_heredoc(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#13
+RuboCop::Cop::Metrics::Utils::CodeLengthCalculator::CLASSLIKE_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#12
+RuboCop::Cop::Metrics::Utils::CodeLengthCalculator::FOLDABLE_TYPES = T.let(T.unsafe(nil), Array)
+
+# Used to identify iterating blocks like `.map{}` and `.map(&:...)`
+#
+# source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#8
+module RuboCop::Cop::Metrics::Utils::IteratingBlock
+ # Returns the name of the method called with a block
+ # if node is a block node, or a block-pass node.
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#37
+ def block_method_name(node); end
+
+ # Returns nil if node is neither a block node or a block-pass node.
+ # Otherwise returns true/false if method call is a known iterating call
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#53
+ def iterating_block?(node); end
+
+ # Returns true iff name is a known iterating type (e.g. :each, :transform_values)
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#47
+ def iterating_method?(name); end
+end
+
+# source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#33
+RuboCop::Cop::Metrics::Utils::IteratingBlock::KNOWN_ITERATING_METHODS = T.let(T.unsafe(nil), Set)
+
+# Identifies repetitions `{c}send` calls with no arguments:
+#
+# foo.bar
+# foo.bar # => repeated
+# foo.bar.baz.qux # => inner send repeated
+# foo.bar.baz.other # => both inner send repeated
+# foo.bar(2) # => not repeated
+#
+# It also invalidates sequences if a receiver is reassigned:
+#
+# xx.foo.bar
+# xx.foo.baz # => inner send repeated
+# self.xx = any # => invalidates everything so far
+# xx.foo.baz # => no repetition
+# self.xx.foo.baz # => all repeated
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#25
+module RuboCop::Cop::Metrics::Utils::RepeatedAttributeDiscount
+ include ::RuboCop::AST::Sexp
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # Plug into the calculator
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#30
+ def initialize(node, discount_repeated_attributes: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#61
+ def attribute_call?(param0 = T.unsafe(nil)); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#53
+ def calculate_node(node); end
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#43
+ def discount_repeated_attributes?; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#47
+ def evaluate_branch_nodes(node); end
+
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#92
+ def root_node?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#66
+ def discount_repeated_attribute?(send_node); end
+
+ # Returns the "known_attributes" for the `node` by walking the receiver tree
+ # If at any step the subdirectory does not exist, it is yielded with the
+ # associated key (method_name)
+ # If the node is not a series of `(c)send` calls with no arguments,
+ # then `nil` is yielded
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#103
+ def find_attributes(node, &block); end
+
+ # or `nil` if it is not a setter.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#126
+ def setter_to_getter(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#80
+ def update_repeated_attribute(node); end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#117
+RuboCop::Cop::Metrics::Utils::RepeatedAttributeDiscount::VAR_SETTER_TO_GETTER = T.let(T.unsafe(nil), Hash)
+
+# Identifies repetitions `&.` on the same variable:
+#
+# my_var&.foo
+# my_var&.bar # => repeated
+# my_var = baz # => reset
+# my_var&.qux # => not repeated
+#
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#15
+module RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
+ # @api private
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#20
+ def discount_for_repeated_csend?(csend_node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#34
+ def reset_on_lvasgn(node); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#16
+ def reset_repeated_csend; end
+end
+
+# source://rubocop//lib/rubocop/cop/migration/department_name.rb#5
+module RuboCop::Cop::Migration; end
+
+# department name.
+#
+# source://rubocop//lib/rubocop/cop/migration/department_name.rb#8
+class RuboCop::Cop::Migration::DepartmentName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/migration/department_name.rb#21
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/migration/department_name.rb#47
+ def check_cop_name(name, comment, offset); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/migration/department_name.rb#69
+ def contain_unexpected_character_for_department_name?(name); end
+
+ # source://rubocop//lib/rubocop/cop/migration/department_name.rb#43
+ def disable_comment_offset; end
+
+ # source://rubocop//lib/rubocop/cop/migration/department_name.rb#73
+ def qualified_legacy_cop_name(cop_name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/migration/department_name.rb#63
+ def valid_content_token?(content_token); end
+end
+
+# source://rubocop//lib/rubocop/cop/migration/department_name.rb#14
+RuboCop::Cop::Migration::DepartmentName::DISABLE_COMMENT_FORMAT = T.let(T.unsafe(nil), Regexp)
+
+# The token that makes up a disable comment.
+# `DepartmentName/CopName` or` all`.
+#
+# source://rubocop//lib/rubocop/cop/migration/department_name.rb#19
+RuboCop::Cop::Migration::DepartmentName::DISABLING_COPS_CONTENT_TOKEN = T.let(T.unsafe(nil), Regexp)
+
+# source://rubocop//lib/rubocop/cop/migration/department_name.rb#12
+RuboCop::Cop::Migration::DepartmentName::MSG = T.let(T.unsafe(nil), String)
+
+# Common functionality for checking minimum body length.
+#
+# source://rubocop//lib/rubocop/cop/mixin/min_body_length.rb#6
+module RuboCop::Cop::MinBodyLength
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/min_body_length.rb#13
+ def min_body_length; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/min_body_length.rb#9
+ def min_body_length?(node); end
+end
+
+# Common functionality for checking minimum branches count.
+#
+# source://rubocop//lib/rubocop/cop/mixin/min_branches_count.rb#6
+module RuboCop::Cop::MinBranchesCount
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/min_branches_count.rb#29
+ def if_conditional_branches(node, branches = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/min_branches_count.rb#22
+ def min_branches_count; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/min_branches_count.rb#9
+ def min_branches_count?(node); end
+end
+
+# Common code for indenting the first elements in multiline
+# array literals, hash literals, and method definitions.
+#
+# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#7
+module RuboCop::Cop::MultilineElementIndentation
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#42
+ def check_expected_style(styles); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#26
+ def check_first(first, left_brace, left_parenthesis, offset); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#80
+ def detected_styles(actual_column, offset, left_parenthesis, left_brace); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#85
+ def detected_styles_for_column(column, left_parenthesis, left_brace); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#10
+ def each_argument_node(node, type); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#66
+ def hash_pair_where_value_beginning_with(left_brace, first); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#98
+ def incorrect_style_detected(styles, first, base_column_type); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#50
+ def indent_base(left_brace, first, left_parenthesis); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#72
+ def key_and_value_begin_on_same_line?(pair); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#76
+ def right_sibling_begins_on_subsequent_line?(pair); end
+end
+
+# Common functionality for checking for a line break before each
+# element in a multi-line collection.
+#
+# source://rubocop//lib/rubocop/cop/mixin/multiline_element_line_breaks.rb#7
+module RuboCop::Cop::MultilineElementLineBreaks
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_line_breaks.rb#23
+ def all_on_same_line?(nodes, ignore_last: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_element_line_breaks.rb#10
+ def check_line_breaks(_node, children, ignore_last: T.unsafe(nil)); end
+end
+
+# Common functionality for checking multiline method calls and binary
+# operations.
+#
+# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#7
+module RuboCop::Cop::MultilineExpressionIndentation
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#14
+ def on_csend(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#14
+ def on_send(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#132
+ def argument_in_method_call(node, kind); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#188
+ def assignment_rhs(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#65
+ def check(range, node, lhs, rhs); end
+
+ # The correct indentation of `node` is usually `IndentationWidth`, with
+ # one exception: prefix keywords.
+ #
+ # ```
+ # while foo && # Here, `while` is called a "prefix keyword"
+ # bar # This is called "special indentation"
+ # baz
+ # end
+ # ```
+ #
+ # Note that *postfix conditionals* do *not* get "special indentation".
+ #
+ # ```
+ # next if foo &&
+ # bar # normal indentation, not special
+ # ```
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#55
+ def correct_indentation(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#160
+ def disqualified_rhs?(candidate, ancestor); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#204
+ def grouped_expression?(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#73
+ def incorrect_style_detected(range, node, lhs, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#85
+ def indentation(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#122
+ def indented_keyword_expression(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#208
+ def inside_arg_list_parentheses?(node, ancestor); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#99
+ def keyword_message_tail(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#107
+ def kw_node_with_special_indentation(node); end
+
+ # In a chain of method calls, we regard the top call node as the base
+ # for indentation of all lines following the first. For example:
+ # a.
+ # b c { block }. <-- b is indented relative to a
+ # d <-- d is indented relative to a
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#32
+ def left_hand_side(lhs); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#198
+ def not_for_this_cop?(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#89
+ def operation_description(node, rhs); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#146
+ def part_of_assignment_rhs(node, candidate); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#184
+ def part_of_block_body?(candidate, block_node); end
+
+ # Returns true if `node` is a conditional whose `body` and `condition`
+ # begin on the same line.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#217
+ def postfix_conditional?(node); end
+
+ # The []= operator and setters (a.b = c) are parsed as :send nodes.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#176
+ def valid_method_rhs_candidate?(candidate, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#165
+ def valid_rhs?(candidate, ancestor); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#180
+ def valid_rhs_candidate?(candidate, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#221
+ def within_node?(inner, outer); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#11
+RuboCop::Cop::MultilineExpressionIndentation::ASSIGNMENT_MESSAGE_TAIL = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#10
+RuboCop::Cop::MultilineExpressionIndentation::DEFAULT_MESSAGE_TAIL = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#8
+RuboCop::Cop::MultilineExpressionIndentation::KEYWORD_ANCESTOR_TYPES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#12
+RuboCop::Cop::MultilineExpressionIndentation::KEYWORD_MESSAGE_TAIL = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#9
+RuboCop::Cop::MultilineExpressionIndentation::UNALIGNED_RHS_TYPES = T.let(T.unsafe(nil), Array)
+
+# Autocorrection logic for the closing brace of a literal either
+# on the same line as the last contained elements, or a new line.
+#
+# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#7
+class RuboCop::Cop::MultilineLiteralBraceCorrector
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::MultilineLiteralBraceLayout
+ include ::RuboCop::Cop::RangeHelp
+
+ # @return [MultilineLiteralBraceCorrector] a new instance of MultilineLiteralBraceCorrector
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#15
+ def initialize(corrector, node, processed_source); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#21
+ def call; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#61
+ def content_if_comment_present(corrector, node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#51
+ def correct_heredoc_argument_method_chain(corrector, end_range); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#46
+ def correct_next_line_brace(corrector, end_range); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#42
+ def correct_same_line_brace(corrector); end
+
+ # Returns the value of attribute corrector.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#40
+ def corrector; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#94
+ def last_element_range_with_trailing_comma(node); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#103
+ def last_element_trailing_comma_range(node); end
+
+ # Returns the value of attribute node.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#40
+ def node; end
+
+ # Returns the value of attribute processed_source.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#40
+ def processed_source; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#90
+ def remove_trailing_content_of_comment(corrector, range); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#80
+ def select_content_to_be_inserted_after_last_element(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#73
+ def use_heredoc_argument_method_chain?(parent); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#11
+ def correct(corrector, node, processed_source); end
+ end
+end
+
+# Common functionality for checking the closing brace of a literal is
+# either on the same line as the last contained elements or a new line.
+#
+# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#7
+module RuboCop::Cop::MultilineLiteralBraceLayout
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#34
+ def check(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#12
+ def check_brace_layout(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#42
+ def check_new_line(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#50
+ def check_same_line(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#58
+ def check_symmetrical(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#86
+ def children(node); end
+
+ # This method depends on the fact that we have guarded
+ # against implicit and empty literals.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#98
+ def closing_brace_on_same_line?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#74
+ def empty_literal?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#82
+ def ignored_literal?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#78
+ def implicit_literal?(node); end
+
+ # Starting with the parent node and recursively for the parent node's
+ # children, check if the node is a HEREDOC and if the HEREDOC ends below
+ # or on the last line of the parent node.
+ #
+ # Example:
+ #
+ # # node is `b: ...` parameter
+ # # last_line_heredoc?(node) => false
+ # foo(a,
+ # b: {
+ # a: 1,
+ # c: <<-EOM
+ # baz
+ # EOM
+ # }
+ # )
+ #
+ # # node is `b: ...` parameter
+ # # last_line_heredoc?(node) => true
+ # foo(a,
+ # b: <<-EOM
+ # baz
+ # EOM
+ # )
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#126
+ def last_line_heredoc?(node, parent = T.unsafe(nil)); end
+
+ # Returns true for the case
+ # [a,
+ # b # comment
+ # ].some_method
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#26
+ def new_line_needed_before_closing_brace?(node); end
+
+ # This method depends on the fact that we have guarded
+ # against implicit and empty literals.
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#92
+ def opening_brace_on_same_line?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#5
+module RuboCop::Cop::Naming; end
+
+# Makes sure that accessor methods are named properly. Applies
+# to both instance and class methods.
+#
+# NOTE: Offenses are only registered for methods with the expected
+# arity. Getters (`get_attribute`) must have no arguments to be
+# registered, and setters (`set_attribute(value)`) must have exactly
+# one.
+#
+# @example
+# # bad
+# def set_attribute(value)
+# end
+#
+# # good
+# def attribute=(value)
+# end
+#
+# # bad
+# def get_attribute
+# end
+#
+# # good
+# def attribute
+# end
+#
+# # accepted, incorrect arity for getter
+# def get_value(attr)
+# end
+#
+# # accepted, incorrect arity for setter
+# def set_value
+# end
+#
+# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#38
+class RuboCop::Cop::Naming::AccessorMethodName < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#42
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#42
+ def on_defs(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#61
+ def bad_reader_name?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#65
+ def bad_writer_name?(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#53
+ def message(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#39
+RuboCop::Cop::Naming::AccessorMethodName::MSG_READER = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#40
+RuboCop::Cop::Naming::AccessorMethodName::MSG_WRITER = T.let(T.unsafe(nil), String)
+
+# Checks for non-ascii characters in identifier and constant names.
+# Identifiers are always checked and whether constants are checked
+# can be controlled using AsciiConstants config.
+#
+# @example
+# # bad
+# def καλημερα # Greek alphabet (non-ascii)
+# end
+#
+# # bad
+# def こんにちはと言う # Japanese character (non-ascii)
+# end
+#
+# # bad
+# def hello_🍣 # Emoji (non-ascii)
+# end
+#
+# # good
+# def say_hello
+# end
+#
+# # bad
+# 신장 = 10 # Hangul character (non-ascii)
+#
+# # good
+# height = 10
+#
+# # bad
+# params[:عرض_gteq] # Arabic character (non-ascii)
+#
+# # good
+# params[:width_gteq]
+# @example AsciiConstants: true (default)
+# # bad
+# class Foö
+# end
+#
+# FOÖ = "foo"
+# @example AsciiConstants: false
+# # good
+# class Foö
+# end
+#
+# FOÖ = "foo"
+#
+# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#53
+class RuboCop::Cop::Naming::AsciiIdentifiers < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#59
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#84
+ def first_non_ascii_chars(string); end
+
+ # source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#74
+ def first_offense_range(identifier); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#70
+ def should_check?(token); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#57
+RuboCop::Cop::Naming::AsciiIdentifiers::CONSTANT_MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#56
+RuboCop::Cop::Naming::AsciiIdentifiers::IDENTIFIER_MSG = T.let(T.unsafe(nil), String)
+
+# Makes sure that certain binary operator methods have their
+# sole parameter named `other`.
+#
+# @example
+#
+# # bad
+# def +(amount); end
+#
+# # good
+# def +(other); end
+#
+# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#16
+class RuboCop::Cop::Naming::BinaryOperatorParameterName < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#29
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#25
+ def op_method_candidate?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#45
+ def op_method?(name); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#22
+RuboCop::Cop::Naming::BinaryOperatorParameterName::EXCLUDED = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#19
+RuboCop::Cop::Naming::BinaryOperatorParameterName::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#21
+RuboCop::Cop::Naming::BinaryOperatorParameterName::OP_LIKE_METHODS = T.let(T.unsafe(nil), Array)
+
+# In Ruby 3.1, anonymous block forwarding has been added.
+#
+# This cop identifies places where `do_something(&block)` can be replaced
+# by `do_something(&)`.
+#
+# It also supports the opposite style by alternative `explicit` option.
+# You can specify the block variable name for autocorrection with `BlockForwardingName`.
+# The default variable name is `block`. If the name is already in use, it will not be
+# autocorrected.
+#
+# @example EnforcedStyle: anonymous (default)
+#
+# # bad
+# def foo(&block)
+# bar(&block)
+# end
+#
+# # good
+# def foo(&)
+# bar(&)
+# end
+# @example EnforcedStyle: explicit
+#
+# # bad
+# def foo(&)
+# bar(&)
+# end
+#
+# # good
+# def foo(&block)
+# bar(&block)
+# end
+#
+# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#40
+class RuboCop::Cop::Naming::BlockForwarding < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+ extend ::RuboCop::Cop::TargetRubyVersion
+
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#54
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#54
+ def on_defs(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#87
+ def anonymous_block_argument?(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#119
+ def block_forwarding_name; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#73
+ def expected_block_forwarding_style?(node, last_argument); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#91
+ def explicit_block_argument?(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#95
+ def register_offense(block_argument, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#111
+ def use_block_argument_as_local_variable?(node, last_argument); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#83
+ def use_kwarg_in_method_definition?(node); end
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#50
+ def autocorrect_incompatible_with; end
+ end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#48
+RuboCop::Cop::Naming::BlockForwarding::MSG = T.let(T.unsafe(nil), String)
+
+# Checks block parameter names for how descriptive they
+# are. It is highly configurable.
+#
+# The `MinNameLength` config option takes an integer. It represents
+# the minimum amount of characters the name must be. Its default is 1.
+# The `AllowNamesEndingInNumbers` config option takes a boolean. When
+# set to false, this cop will register offenses for names ending with
+# numbers. Its default is false. The `AllowedNames` config option
+# takes an array of permitted names that will never register an
+# offense. The `ForbiddenNames` config option takes an array of
+# restricted names that will always register an offense.
+#
+# @example
+# # bad
+# bar do |varOne, varTwo|
+# varOne + varTwo
+# end
+#
+# # With `AllowNamesEndingInNumbers` set to false
+# foo { |num1, num2| num1 * num2 }
+#
+# # With `MinNameLength` set to number greater than 1
+# baz { |a, b, c| do_stuff(a, b, c) }
+#
+# # good
+# bar do |thud, fred|
+# thud + fred
+# end
+#
+# foo { |speed, distance| speed * distance }
+#
+# baz { |age, height, gender| do_stuff(age, height, gender) }
+#
+# source://rubocop//lib/rubocop/cop/naming/block_parameter_name.rb#38
+class RuboCop::Cop::Naming::BlockParameterName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::UncommunicativeName
+
+ # source://rubocop//lib/rubocop/cop/naming/block_parameter_name.rb#41
+ def on_block(node); end
+end
+
+# Checks for class and module names with
+# an underscore in them.
+#
+# `AllowedNames` config takes an array of permitted names.
+# Its default value is `['module_parent']`.
+# These names can be full class/module names or part of the name.
+# eg. Adding `my_class` to the `AllowedNames` config will allow names like
+# `my_class`, `my_class::User`, `App::my_class`, `App::my_class::User`, etc.
+#
+# @example
+# # bad
+# class My_Class
+# end
+# module My_Module
+# end
+#
+# # good
+# class MyClass
+# end
+# module MyModule
+# end
+# class module_parent::MyModule
+# end
+#
+# source://rubocop//lib/rubocop/cop/naming/class_and_module_camel_case.rb#29
+class RuboCop::Cop::Naming::ClassAndModuleCamelCase < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/naming/class_and_module_camel_case.rb#32
+ def on_class(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/class_and_module_camel_case.rb#32
+ def on_module(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/class_and_module_camel_case.rb#30
+RuboCop::Cop::Naming::ClassAndModuleCamelCase::MSG = T.let(T.unsafe(nil), String)
+
+# Checks whether constant names are written using
+# SCREAMING_SNAKE_CASE.
+#
+# To avoid false positives, it ignores cases in which we cannot know
+# for certain the type of value that would be assigned to a constant.
+#
+# @example
+# # bad
+# InchInCm = 2.54
+# INCHinCM = 2.54
+# Inch_In_Cm = 2.54
+#
+# # good
+# INCH_IN_CM = 2.54
+#
+# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#20
+class RuboCop::Cop::Naming::ConstantName < ::RuboCop::Cop::Base
+ # source://rubocop//lib/rubocop/cop/naming/constant_name.rb#27
+ def class_or_struct_return_method?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/naming/constant_name.rb#69
+ def literal_receiver?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/naming/constant_name.rb#33
+ def on_casgn(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/constant_name.rb#56
+ def allowed_assignment?(value); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/constant_name.rb#74
+ def allowed_conditional_expression_on_rhs?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/constant_name.rb#63
+ def allowed_method_call_on_rhs?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/constant_name.rb#78
+ def contains_constant?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#21
+RuboCop::Cop::Naming::ConstantName::MSG = T.let(T.unsafe(nil), String)
+
+# Use POSIX character classes, so we allow accented characters rather
+# than just standard ASCII characters
+#
+# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#24
+RuboCop::Cop::Naming::ConstantName::SNAKE_CASE = T.let(T.unsafe(nil), Regexp)
+
+# Makes sure that Ruby source files have snake_case
+# names. Ruby scripts (i.e. source files with a shebang in the
+# first line) are ignored.
+#
+# The cop also ignores `.gemspec` files, because Bundler
+# recommends using dashes to separate namespaces in nested gems
+# (i.e. `bundler-console` becomes `Bundler::Console`). As such, the
+# gemspec is supposed to be named `bundler-console.gemspec`.
+#
+# When `ExpectMatchingDefinition` (default: `false`) is `true`, the cop requires
+# each file to have a class, module or `Struct` defined in it that matches
+# the filename. This can be further configured using
+# `CheckDefinitionPathHierarchy` (default: `true`) to determine whether the
+# path should match the namespace of the above definition.
+#
+# When `IgnoreExecutableScripts` (default: `true`) is `true`, files that start
+# with a shebang line are not considered by the cop.
+#
+# When `Regex` is set, the cop will flag any filename that does not match
+# the regular expression.
+#
+# @example
+# # bad
+# lib/layoutManager.rb
+#
+# anything/usingCamelCase
+#
+# # good
+# lib/layout_manager.rb
+#
+# anything/using_snake_case.rake
+#
+# source://rubocop//lib/rubocop/cop/naming/file_name.rb#39
+class RuboCop::Cop::Naming::FileName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#56
+ def on_new_investigation; end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#49
+ def struct_definition(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#134
+ def allowed_acronyms; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#96
+ def bad_filename_allowed?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#122
+ def check_definition_path_hierarchy?; end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#169
+ def defined_struct(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#126
+ def definition_path_hierarchy_roots; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#118
+ def expect_matching_definition?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#138
+ def filename_good?(basename); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#147
+ def find_class_or_module(node, namespace); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#165
+ def find_definition(node); end
+
+ # @yield [source_range(processed_source.buffer, 1, 0), msg]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#65
+ def for_bad_filename(file_path); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#114
+ def ignore_executable_scripts?; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#202
+ def match?(expected); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#206
+ def match_acronym?(expected, name); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#174
+ def match_namespace(node, namespace, expected); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#92
+ def matching_class?(file_name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#88
+ def matching_definition?(file_path); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#100
+ def no_definition_message(basename, file_path); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#106
+ def other_message(basename); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#188
+ def partial_matcher!(expected); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#77
+ def perform_class_and_module_naming_checks(file_path, basename); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#130
+ def regex; end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#240
+ def to_module_name(basename); end
+
+ # source://rubocop//lib/rubocop/cop/naming/file_name.rb#213
+ def to_namespace(path); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/file_name.rb#43
+RuboCop::Cop::Naming::FileName::MSG_NO_DEFINITION = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/file_name.rb#44
+RuboCop::Cop::Naming::FileName::MSG_REGEX = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/file_name.rb#42
+RuboCop::Cop::Naming::FileName::MSG_SNAKE_CASE = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/file_name.rb#46
+RuboCop::Cop::Naming::FileName::SNAKE_CASE = T.let(T.unsafe(nil), Regexp)
+
+# Checks that your heredocs are using the configured case.
+# By default it is configured to enforce uppercase heredocs.
+#
+# @example EnforcedStyle: uppercase (default)
+# # bad
+# <<-sql
+# SELECT * FROM foo
+# sql
+#
+# # good
+# <<-SQL
+# SELECT * FROM foo
+# SQL
+# @example EnforcedStyle: lowercase
+# # bad
+# <<-SQL
+# SELECT * FROM foo
+# SQL
+#
+# # good
+# <<-sql
+# SELECT * FROM foo
+# sql
+#
+# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#30
+class RuboCop::Cop::Naming::HeredocDelimiterCase < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Heredoc
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#37
+ def on_heredoc(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#54
+ def correct_case_delimiters?(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#58
+ def correct_delimiters(source); end
+
+ # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#50
+ def message(_node); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#35
+RuboCop::Cop::Naming::HeredocDelimiterCase::MSG = T.let(T.unsafe(nil), String)
+
+# Checks that your heredocs are using meaningful delimiters.
+# By default it disallows `END` and `EO*`, and can be configured through
+# forbidden listing additional delimiters.
+#
+# @example
+#
+# # good
+# <<-SQL
+# SELECT * FROM foo
+# SQL
+#
+# # bad
+# <<-END
+# SELECT * FROM foo
+# END
+#
+# # bad
+# <<-EOS
+# SELECT * FROM foo
+# EOS
+#
+# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#26
+class RuboCop::Cop::Naming::HeredocDelimiterNaming < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::Heredoc
+
+ # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#31
+ def on_heredoc(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#51
+ def forbidden_delimiters; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#41
+ def meaningful_delimiters?(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#29
+RuboCop::Cop::Naming::HeredocDelimiterNaming::MSG = T.let(T.unsafe(nil), String)
+
+# Recommends the use of inclusive language instead of problematic terms.
+# The cop can check the following locations for offenses:
+#
+# - identifiers
+# - constants
+# - variables
+# - strings
+# - symbols
+# - comments
+# - file paths
+#
+# Each of these locations can be individually enabled/disabled via configuration,
+# for example CheckIdentifiers = true/false.
+#
+# Flagged terms are configurable for the cop. For each flagged term an optional
+# Regex can be specified to identify offenses. Suggestions for replacing a flagged term can
+# be configured and will be displayed as part of the offense message.
+# An AllowedRegex can be specified for a flagged term to exempt allowed uses of the term.
+# `WholeWord: true` can be set on a flagged term to indicate the cop should only match when
+# a term matches the whole word (partial matches will not be offenses).
+#
+# The cop supports autocorrection when there is only one suggestion. When there are multiple
+# suggestions, the best suggestion cannot be identified and will not be autocorrected.
+#
+# @example FlaggedTerms: { whitelist: { Suggestions: ['allowlist'] } }
+# # Suggest replacing identifier whitelist with allowlist
+#
+# # bad
+# whitelist_users = %w(user1 user1)
+#
+# # good
+# allowlist_users = %w(user1 user2)
+# @example FlaggedTerms: { master: { Suggestions: ['main', 'primary', 'leader'] } }
+# # Suggest replacing master in an instance variable name with main, primary, or leader
+#
+# # bad
+# @master_node = 'node1.example.com'
+#
+# # good
+# @primary_node = 'node1.example.com'
+# @example FlaggedTerms: { whitelist: { Regex: !ruby/regexp '/white[-_\s]?list' } }
+# # Identify problematic terms using a Regexp
+#
+# # bad
+# white_list = %w(user1 user2)
+#
+# # good
+# allow_list = %w(user1 user2)
+# @example FlaggedTerms: { master: { AllowedRegex: 'master\'?s degree' } }
+# # Specify allowed uses of the flagged term as a string or regexp.
+#
+# # bad
+# # They had a masters
+#
+# # good
+# # They had a master's degree
+# @example FlaggedTerms: { slave: { WholeWord: true } }
+# # Specify that only terms that are full matches will be flagged.
+#
+# # bad
+# Slave
+#
+# # good (won't be flagged despite containing `slave`)
+# TeslaVehicle
+#
+# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#74
+class RuboCop::Cop::Naming::InclusiveLanguage < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::RangeHelp
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # @return [InclusiveLanguage] a new instance of InclusiveLanguage
+ #
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#84
+ def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#93
+ def on_new_investigation; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#111
+ def add_offenses_for_token(token, word_locations); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#167
+ def add_to_flagged_term_hash(regex_string, term, term_definition); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#193
+ def array_to_ignorecase_regex(strings); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#126
+ def check_token?(type); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#244
+ def create_message(word, message = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#218
+ def create_multiple_word_message_for_file(words); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#214
+ def create_single_word_message_for_file(word); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#189
+ def ensure_regex_string(regex); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#160
+ def extract_regexp(term, term_definition); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#252
+ def find_flagged_term(word); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#266
+ def format_suggestions(suggestions); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#197
+ def investigate_filepath; end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#100
+ def investigate_tokens; end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#232
+ def mask_input(str); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#281
+ def offense_range(token, word); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#130
+ def preprocess_check_config; end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#144
+ def preprocess_flagged_terms; end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#259
+ def preprocess_suggestions(suggestions); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#179
+ def process_allowed_regex(allowed); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#222
+ def scan_for_words(input); end
+
+ # source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#174
+ def set_regexes(flagged_term_strings, allowed_strings); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#78
+RuboCop::Cop::Naming::InclusiveLanguage::EMPTY_ARRAY = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#79
+RuboCop::Cop::Naming::InclusiveLanguage::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#80
+RuboCop::Cop::Naming::InclusiveLanguage::MSG_FOR_FILE_PATH = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#82
+class RuboCop::Cop::Naming::InclusiveLanguage::WordLocation < ::Struct
+ # Returns the value of attribute position
+ #
+ # @return [Object] the current value of position
+ def position; end
+
+ # Sets the attribute position
+ #
+ # @param value [Object] the value to set the attribute position to.
+ # @return [Object] the newly set value
+ def position=(_); end
+
+ # Returns the value of attribute word
+ #
+ # @return [Object] the current value of word
+ def word; end
+
+ # Sets the attribute word
+ #
+ # @param value [Object] the value to set the attribute word to.
+ # @return [Object] the newly set value
+ def word=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# Checks for memoized methods whose instance variable name
+# does not match the method name. Applies to both regular methods
+# (defined with `def`) and dynamic methods (defined with
+# `define_method` or `define_singleton_method`).
+#
+# This cop can be configured with the EnforcedStyleForLeadingUnderscores
+# directive. It can be configured to allow for memoized instance variables
+# prefixed with an underscore. Prefixing ivars with an underscore is a
+# convention that is used to implicitly indicate that an ivar should not
+# be set or referenced outside of the memoization method.
+#
+# @example EnforcedStyleForLeadingUnderscores: disallowed (default)
+# # bad
+# # Method foo is memoized using an instance variable that is
+# # not `@foo`. This can cause confusion and bugs.
+# def foo
+# @something ||= calculate_expensive_thing
+# end
+#
+# def foo
+# return @something if defined?(@something)
+# @something = calculate_expensive_thing
+# end
+#
+# # good
+# def _foo
+# @foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# def foo
+# @foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# def foo
+# @foo ||= begin
+# calculate_expensive_thing
+# end
+# end
+#
+# # good
+# def foo
+# helper_variable = something_we_need_to_calculate_foo
+# @foo ||= calculate_expensive_thing(helper_variable)
+# end
+#
+# # good
+# define_method(:foo) do
+# @foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# define_method(:foo) do
+# return @foo if defined?(@foo)
+# @foo = calculate_expensive_thing
+# end
+# @example EnforcedStyleForLeadingUnderscores: required
+# # bad
+# def foo
+# @something ||= calculate_expensive_thing
+# end
+#
+# # bad
+# def foo
+# @foo ||= calculate_expensive_thing
+# end
+#
+# def foo
+# return @foo if defined?(@foo)
+# @foo = calculate_expensive_thing
+# end
+#
+# # good
+# def foo
+# @_foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# def _foo
+# @_foo ||= calculate_expensive_thing
+# end
+#
+# def foo
+# return @_foo if defined?(@_foo)
+# @_foo = calculate_expensive_thing
+# end
+#
+# # good
+# define_method(:foo) do
+# @_foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# define_method(:foo) do
+# return @_foo if defined?(@_foo)
+# @_foo = calculate_expensive_thing
+# end
+# @example EnforcedStyleForLeadingUnderscores :optional
+# # bad
+# def foo
+# @something ||= calculate_expensive_thing
+# end
+#
+# # good
+# def foo
+# @foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# def foo
+# @_foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# def _foo
+# @_foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# def foo
+# return @_foo if defined?(@_foo)
+# @_foo = calculate_expensive_thing
+# end
+#
+# # good
+# define_method(:foo) do
+# @foo ||= calculate_expensive_thing
+# end
+#
+# # good
+# define_method(:foo) do
+# @_foo ||= calculate_expensive_thing
+# end
+#
+# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#148
+class RuboCop::Cop::Naming::MemoizedInstanceVariableName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#197
+ def defined_memoized?(param0 = T.unsafe(nil), param1); end
+
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#160
+ def method_definition?(param0 = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#205
+ def on_defined?(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#170
+ def on_or_asgn(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#242
+ def find_definition(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#253
+ def matches?(method_name, ivar_assign); end
+
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#263
+ def message(variable); end
+
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#238
+ def style_parameter_name; end
+
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#271
+ def suggested_var(method_name); end
+
+ # source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#277
+ def variable_name_candidates(method_name); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#157
+RuboCop::Cop::Naming::MemoizedInstanceVariableName::DYNAMIC_DEFINE_METHODS = T.let(T.unsafe(nil), Set)
+
+# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#153
+RuboCop::Cop::Naming::MemoizedInstanceVariableName::MSG = T.let(T.unsafe(nil), String)
+
+# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#155
+RuboCop::Cop::Naming::MemoizedInstanceVariableName::UNDERSCORE_REQUIRED = T.let(T.unsafe(nil), String)
+
+# Makes sure that all methods use the configured style,
+# snake_case or camelCase, for their names.
+#
+# This cop has `AllowedPatterns` configuration option.
+#
+# Naming/MethodName:
+# AllowedPatterns:
+# - '\AonSelectionBulkChange\z'
+# - '\AonSelectionCleared\z'
+#
+# Method names matching patterns are always allowed.
+#
+# @example EnforcedStyle: snake_case (default)
+# # bad
+# def fooBar; end
+#
+# # good
+# def foo_bar; end
+# @example EnforcedStyle: camelCase
+# # bad
+# def foo_bar; end
+#
+# # good
+# def fooBar; end
+#
+# source://rubocop//lib/rubocop/cop/naming/method_name.rb#31
+class RuboCop::Cop::Naming::MethodName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::ConfigurableFormatting
+ include ::RuboCop::Cop::ConfigurableNaming
+ include ::RuboCop::Cop::AllowedPattern
+ include ::RuboCop::Cop::RangeHelp
+
+ # source://rubocop//lib/rubocop/cop/naming/method_name.rb#55
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/method_name.rb#55
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/method_name.rb#44
+ def on_send(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/method_name.rb#42
+ def str_name(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/naming/method_name.rb#39
+ def sym_name(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/method_name.rb#64
+ def attr_name(name_item); end
+
+ # source://rubocop//lib/rubocop/cop/naming/method_name.rb#75
+ def message(style); end
+
+ # source://rubocop//lib/rubocop/cop/naming/method_name.rb#68
+ def range_position(node); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/method_name.rb#36
+RuboCop::Cop::Naming::MethodName::MSG = T.let(T.unsafe(nil), String)
+
+# Checks method parameter names for how descriptive they
+# are. It is highly configurable.
+#
+# The `MinNameLength` config option takes an integer. It represents
+# the minimum amount of characters the name must be. Its default is 3.
+# The `AllowNamesEndingInNumbers` config option takes a boolean. When
+# set to false, this cop will register offenses for names ending with
+# numbers. Its default is false. The `AllowedNames` config option
+# takes an array of permitted names that will never register an
+# offense. The `ForbiddenNames` config option takes an array of
+# restricted names that will always register an offense.
+#
+# @example
+# # bad
+# def bar(varOne, varTwo)
+# varOne + varTwo
+# end
+#
+# # With `AllowNamesEndingInNumbers` set to false
+# def foo(num1, num2)
+# num1 * num2
+# end
+#
+# # With `MinNameLength` set to number greater than 1
+# def baz(a, b, c)
+# do_stuff(a, b, c)
+# end
+#
+# # good
+# def bar(thud, fred)
+# thud + fred
+# end
+#
+# def foo(speed, distance)
+# speed * distance
+# end
+#
+# def baz(age_a, height_b, gender_c)
+# do_stuff(age_a, height_b, gender_c)
+# end
+#
+# source://rubocop//lib/rubocop/cop/naming/method_parameter_name.rb#46
+class RuboCop::Cop::Naming::MethodParameterName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::UncommunicativeName
+
+ # source://rubocop//lib/rubocop/cop/naming/method_parameter_name.rb#49
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/method_parameter_name.rb#49
+ def on_defs(node); end
+end
+
+# Checks that predicate methods names end with a question mark and
+# do not start with a forbidden prefix.
+#
+# A method is determined to be a predicate method if its name starts
+# with one of the prefixes defined in the `NamePrefix` configuration.
+# You can change what prefixes are considered by changing this option.
+# Any method name that starts with one of these prefixes is required by
+# the cop to end with a `?`. Other methods can be allowed by adding to
+# the `AllowedMethods` configuration.
+#
+# NOTE: The `is_a?` method is allowed by default.
+#
+# If `ForbiddenPrefixes` is set, methods that start with the configured
+# prefixes will not be allowed and will be removed by autocorrection.
+#
+# In other words, if `ForbiddenPrefixes` is empty, a method named `is_foo`
+# will register an offense only due to the lack of question mark (and will be
+# autocorrected to `is_foo?`). If `ForbiddenPrefixes` contains `is_`,
+# `is_foo` will register an offense both because the ? is missing and because of
+# the `is_` prefix, and will be corrected to `foo?`.
+#
+# NOTE: `ForbiddenPrefixes` is only applied to prefixes in `NamePrefix`;
+# a prefix in the former but not the latter will not be considered by
+# this cop.
+#
+# @example
+# # bad
+# def is_even(value)
+# end
+#
+# def is_even?(value)
+# end
+#
+# # good
+# def even?(value)
+# end
+#
+# # bad
+# def has_value
+# end
+#
+# def has_value?
+# end
+#
+# # good
+# def value?
+# end
+# @example AllowedMethods: ['is_a?'] (default)
+# # good
+# def is_a?(value)
+# end
+#
+# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#59
+class RuboCop::Cop::Naming::PredicateName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedMethods
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#63
+ def dynamic_method_define(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#82
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#82
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#69
+ def on_send(node); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#98
+ def allowed_method_name?(method_name, prefix); end
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#106
+ def expected_name(method_name, prefix); end
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#120
+ def forbidden_prefixes; end
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#116
+ def message(method_name, new_name); end
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#128
+ def method_definition_macros(macro_name); end
+
+ # source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#124
+ def predicate_prefixes; end
+end
+
+# Makes sure that rescued exceptions variables are named as
+# expected.
+#
+# The `PreferredName` config option takes a `String`. It represents
+# the required name of the variable. Its default is `e`.
+#
+# NOTE: This cop does not consider nested rescues because it cannot
+# guarantee that the variable from the outer rescue is not used within
+# the inner rescue (in which case, changing the inner variable would
+# shadow the outer variable).
+#
+# @example PreferredName: e (default)
+# # bad
+# begin
+# # do something
+# rescue MyException => exception
+# # do something
+# end
+#
+# # good
+# begin
+# # do something
+# rescue MyException => e
+# # do something
+# end
+#
+# # good
+# begin
+# # do something
+# rescue MyException => _e
+# # do something
+# end
+# @example PreferredName: exception
+# # bad
+# begin
+# # do something
+# rescue MyException => e
+# # do something
+# end
+#
+# # good
+# begin
+# # do something
+# rescue MyException => exception
+# # do something
+# end
+#
+# # good
+# begin
+# # do something
+# rescue MyException => _exception
+# # do something
+# end
+#
+# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#61
+class RuboCop::Cop::Naming::RescuedExceptionsVariableName < ::RuboCop::Cop::Base
+ extend ::RuboCop::Cop::AutoCorrector
+
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#66
+ def on_resbody(node); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#96
+ def autocorrect(corrector, node, range, offending_name, preferred_name); end
+
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#116
+ def correct_node(corrector, node, offending_name, preferred_name); end
+
+ # If the exception variable is reassigned, that assignment needs to be corrected.
+ # Further `lvar` nodes will not be corrected though since they now refer to a
+ # different variable.
+ #
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#134
+ def correct_reassignment(corrector, node, offending_name, preferred_name); end
+
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#159
+ def message(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#91
+ def offense_range(resbody); end
+
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#143
+ def preferred_name(variable_name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#165
+ def shadowed_variable_name?(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#152
+ def variable_name(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#106
+ def variable_name_matches?(node, name); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#64
+RuboCop::Cop::Naming::RescuedExceptionsVariableName::MSG = T.let(T.unsafe(nil), String)
+
+# Makes sure that all variables use the configured style,
+# snake_case or camelCase, for their names.
+#
+# @example EnforcedStyle: snake_case (default)
+# # bad
+# fooBar = 1
+#
+# # good
+# foo_bar = 1
+# @example EnforcedStyle: camelCase
+# # bad
+# foo_bar = 1
+#
+# # good
+# fooBar = 1
+# @example AllowedIdentifiers: ['fooBar']
+# # good (with EnforcedStyle: snake_case)
+# fooBar = 1
+# @example AllowedPatterns: ['_v\d+\z']
+# # good (with EnforcedStyle: camelCase)
+# :release_v1
+#
+# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#31
+class RuboCop::Cop::Naming::VariableName < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedIdentifiers
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::ConfigurableFormatting
+ include ::RuboCop::Cop::ConfigurableNaming
+ include ::RuboCop::Cop::AllowedPattern
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_arg(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_blockarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_cvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_ivasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_kwarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_kwoptarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_kwrestarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_lvar(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_optarg(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
+ def on_restarg(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#38
+ def valid_name?(node, name, given_style = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_name.rb#62
+ def message(style); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#36
+RuboCop::Cop::Naming::VariableName::MSG = T.let(T.unsafe(nil), String)
+
+# Makes sure that all numbered variables use the
+# configured style, snake_case, normalcase, or non_integer,
+# for their numbering.
+#
+# Additionally, `CheckMethodNames` and `CheckSymbols` configuration options
+# can be used to specify whether method names and symbols should be checked.
+# Both are enabled by default.
+#
+# @example EnforcedStyle: normalcase (default)
+# # bad
+# :some_sym_1
+# variable_1 = 1
+#
+# def some_method_1; end
+#
+# def some_method1(arg_1); end
+#
+# # good
+# :some_sym1
+# variable1 = 1
+#
+# def some_method1; end
+#
+# def some_method1(arg1); end
+# @example EnforcedStyle: snake_case
+# # bad
+# :some_sym1
+# variable1 = 1
+#
+# def some_method1; end
+#
+# def some_method_1(arg1); end
+#
+# # good
+# :some_sym_1
+# variable_1 = 1
+#
+# def some_method_1; end
+#
+# def some_method_1(arg_1); end
+# @example EnforcedStyle: non_integer
+# # bad
+# :some_sym1
+# :some_sym_1
+#
+# variable1 = 1
+# variable_1 = 1
+#
+# def some_method1; end
+#
+# def some_method_1; end
+#
+# def some_methodone(arg1); end
+# def some_methodone(arg_1); end
+#
+# # good
+# :some_symone
+# :some_sym_one
+#
+# variableone = 1
+# variable_one = 1
+#
+# def some_methodone; end
+#
+# def some_method_one; end
+#
+# def some_methodone(argone); end
+# def some_methodone(arg_one); end
+#
+# # In the following examples, we assume `EnforcedStyle: normalcase` (default).
+# @example CheckMethodNames: true (default)
+# # bad
+# def some_method_1; end
+# @example CheckMethodNames: false
+# # good
+# def some_method_1; end
+# @example CheckSymbols: true (default)
+# # bad
+# :some_sym_1
+# @example CheckSymbols: false
+# # good
+# :some_sym_1
+# @example AllowedIdentifiers: [capture3]
+# # good
+# expect(Open3).to receive(:capture3)
+# @example AllowedPatterns: ['_v\d+\z']
+# # good
+# :some_sym_v1
+#
+# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#103
+class RuboCop::Cop::Naming::VariableNumber < ::RuboCop::Cop::Base
+ include ::RuboCop::Cop::AllowedIdentifiers
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
+ include ::RuboCop::Cop::ConfigurableFormatting
+ include ::RuboCop::Cop::ConfigurableNumbering
+ include ::RuboCop::Cop::AllowedPattern
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
+ def on_arg(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
+ def on_cvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#126
+ def on_def(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#126
+ def on_defs(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
+ def on_gvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
+ def on_ivasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
+ def on_lvasgn(node); end
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#134
+ def on_sym(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#110
+ def valid_name?(node, name, given_style = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/naming/variable_number.rb#143
+ def message(style); end
+end
+
+# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#108
+RuboCop::Cop::Naming::VariableNumber::MSG = T.let(T.unsafe(nil), String)
+
+# Some common code shared between `NegatedIf` and
+# `NegatedWhile` cops.
+#
+# source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#7
+module RuboCop::Cop::NegativeConditional
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#18
+ def empty_condition?(param0 = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#15
+ def single_negative?(param0 = T.unsafe(nil)); end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#20
+ def check_negative_conditional(node, message:, &block); end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#10
+RuboCop::Cop::NegativeConditional::MSG = T.let(T.unsafe(nil), String)
+
+# This module provides a list of methods that are:
+# 1. In the NilClass by default
+# 2. Added to NilClass by explicitly requiring any standard libraries
+# 3. Cop's configuration parameter AllowedMethods.
+#
+# source://rubocop//lib/rubocop/cop/mixin/nil_methods.rb#9
+module RuboCop::Cop::NilMethods
+ include ::RuboCop::Cop::AllowedMethods
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/nil_methods.rb#14
+ def nil_methods; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/nil_methods.rb#18
+ def other_stdlib_methods; end
+end
+
+# An offense represents a style violation detected by RuboCop.
+#
+# source://rubocop//lib/rubocop/cop/offense.rb#6
+class RuboCop::Cop::Offense
+ include ::Comparable
+
+ # @api private
+ # @return [Offense] a new instance of Offense
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#84
+ def initialize(severity, location, message, cop_name, status = T.unsafe(nil), corrector = T.unsafe(nil)); end
+
+ # Returns `-1`, `0`, or `+1`
+ # if this offense is less than, equal to, or greater than `other`.
+ #
+ # @api public
+ # @return [Integer] comparison result
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#230
+ def <=>(other); end
+
+ # @api public
+ # @return [Boolean] returns `true` if two offenses contain same attributes
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#211
+ def ==(other); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#160
+ def column; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#170
+ def column_length; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#194
+ def column_range; end
+
+ # @api public
+ # @example
+ # 'LineLength'
+ # @return [String] a cop class name without department.
+ # i.e. type of the violation.
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#51
+ def cop_name; end
+
+ # @api public
+ # @return [Boolean] whether this offense can be automatically corrected via
+ # autocorrect or a todo.
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#102
+ def correctable?; end
+
+ # @api public
+ # @return [Boolean] whether this offense is automatically corrected via
+ # autocorrect or a todo.
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#113
+ def corrected?; end
+
+ # @api public
+ # @return [Boolean] whether this offense is automatically disabled via a todo.
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#123
+ def corrected_with_todo?; end
+
+ # @api public
+ # @return [Corrector | nil] the autocorrection for this offense, or `nil` when not available
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#62
+ def corrector; end
+
+ # @api public
+ # @return [Boolean] whether this offense was locally disabled with a
+ # disable or todo where it occurred.
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#134
+ def disabled?; end
+
+ # @api public
+ # @return [Boolean] returns `true` if two offenses contain same attributes
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#211
+ def eql?(other); end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#179
+ def first_line; end
+
+ # source://rubocop//lib/rubocop/cop/offense.rb#219
+ def hash; end
+
+ # @api public
+ # @return [Parser::Source::Range] the range of the code that is highlighted
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#142
+ def highlighted_area; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#189
+ def last_column; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#184
+ def last_line; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#155
+ def line; end
+
+ # @api public
+ # @return [Parser::Source::Range] the location where the violation is detected.
+ # @see https://www.rubydoc.info/gems/parser/Parser/Source/Range Parser::Source::Range
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#28
+ def location; end
+
+ # @api public
+ # @example
+ # 'Line is too long. [90/80]'
+ # @return [String] human-readable message
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#39
+ def message; end
+
+ # Internally we use column number that start at 0, but when
+ # outputting column numbers, we want them to start at 1. One
+ # reason is that editors, such as Emacs, expect this.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#203
+ def real_column; end
+
+ # @api public
+ # @return [RuboCop::Cop::Severity]
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#17
+ def severity; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#165
+ def source_line; end
+
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#54
+ def status; end
+
+ # This is just for debugging purpose.
+ #
+ # @api private
+ #
+ # source://rubocop//lib/rubocop/cop/offense.rb#148
+ def to_s; end
+end
+
+# @api private
+#
+# source://rubocop//lib/rubocop/cop/offense.rb#10
+RuboCop::Cop::Offense::COMPARISON_ATTRIBUTES = T.let(T.unsafe(nil), Array)
+
+# source://rubocop//lib/rubocop/cop/offense.rb#81
+RuboCop::Cop::Offense::NO_LOCATION = T.let(T.unsafe(nil), RuboCop::Cop::Offense::PseudoSourceRange)
+
+# source://rubocop//lib/rubocop/cop/offense.rb#64
+class RuboCop::Cop::Offense::PseudoSourceRange < ::Struct
+ # Returns the value of attribute begin_pos
+ #
+ # @return [Object] the current value of begin_pos
+ def begin_pos; end
+
+ # Sets the attribute begin_pos
+ #
+ # @param value [Object] the value to set the attribute begin_pos to.
+ # @return [Object] the newly set value
+ def begin_pos=(_); end
+
+ # Returns the value of attribute column
+ #
+ # @return [Object] the current value of column
+ def column; end
+
+ # Sets the attribute column
+ #
+ # @param value [Object] the value to set the attribute column to.
+ # @return [Object] the newly set value
+ def column=(_); end
+
+ # source://rubocop//lib/rubocop/cop/offense.rb#70
+ def column_range; end
+
+ # Returns the value of attribute end_pos
+ #
+ # @return [Object] the current value of end_pos
+ def end_pos; end
+
+ # Sets the attribute end_pos
+ #
+ # @param value [Object] the value to set the attribute end_pos to.
+ # @return [Object] the newly set value
+ def end_pos=(_); end
+
+ # Returns the value of attribute line
+ #
+ # @return [Object] the current value of line
+ def first_line; end
+
+ # Returns the value of attribute column
+ #
+ # @return [Object] the current value of column
+ def last_column; end
+
+ # Returns the value of attribute line
+ #
+ # @return [Object] the current value of line
+ def last_line; end
+
+ # source://rubocop//lib/rubocop/cop/offense.rb#74
+ def length; end
+
+ # Returns the value of attribute line
+ #
+ # @return [Object] the current value of line
+ def line; end
+
+ # Sets the attribute line
+ #
+ # @param value [Object] the value to set the attribute line to.
+ # @return [Object] the newly set value
+ def line=(_); end
+
+ # source://rubocop//lib/rubocop/cop/offense.rb#74
+ def size; end
+
+ # Returns the value of attribute source_line
+ #
+ # @return [Object] the current value of source_line
+ def source_line; end
+
+ # Sets the attribute source_line
+ #
+ # @param value [Object] the value to set the attribute source_line to.
+ # @return [Object] the newly set value
+ def source_line=(_); end
+
+ class << self
+ def [](*_arg0); end
+ def inspect; end
+ def keyword_init?; end
+ def members; end
+ def new(*_arg0); end
+ end
+end
+
+# Common functionality for cops checking if and unless expressions.
+#
+# source://rubocop//lib/rubocop/cop/mixin/on_normal_if_unless.rb#6
+module RuboCop::Cop::OnNormalIfUnless
+ # source://rubocop//lib/rubocop/cop/mixin/on_normal_if_unless.rb#7
+ def on_if(node); end
+end
+
+# This autocorrects gem dependency order
+#
+# source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#6
+class RuboCop::Cop::OrderedGemCorrector
+ extend ::RuboCop::Cop::OrderedGemNode
+ extend ::RuboCop::Cop::RangeHelp
+
+ class << self
+ # Returns the value of attribute comments_as_separators.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#11
+ def comments_as_separators; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#13
+ def correct(processed_source, node, previous_declaration, comments_as_separators); end
+
+ # Returns the value of attribute processed_source.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#11
+ def processed_source; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#26
+ def declaration_with_comment(node); end
+ end
+end
+
+# Common functionality for Bundler/OrderedGems and
+# Gemspec/OrderedDependencies.
+#
+# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#7
+module RuboCop::Cop::OrderedGemNode
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#23
+ def case_insensitive_out_of_order?(string_a, string_b); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#27
+ def consecutive_lines(previous, current); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#55
+ def find_gem_name(gem_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#18
+ def gem_canonical_name(name); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#49
+ def gem_name(declaration_node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#10
+ def get_source_range(node, comments_as_separators); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#32
+ def register_offense(previous, current); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#61
+ def treat_comments_as_separators; end
+end
+
+# Common functionality for handling parentheses.
+#
+# source://rubocop//lib/rubocop/cop/mixin/parentheses.rb#6
+module RuboCop::Cop::Parentheses
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/parentheses.rb#9
+ def parens_required?(node); end
+end
+
+# This autocorrects parentheses
+#
+# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#6
+class RuboCop::Cop::ParenthesesCorrector
+ extend ::RuboCop::Cop::RangeHelp
+
+ class << self
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#12
+ def correct(corrector, node); end
+
+ private
+
+ # Add a comma back after the heredoc identifier
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#74
+ def add_heredoc_comma(corrector, node); end
+
+ # If the node contains a heredoc, remove the comma too
+ # It'll be added back in the right place later
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#64
+ def extend_range_for_heredoc(node, range); end
+
+ # If removing parentheses leaves a comma on its own line, remove all the whitespace
+ # preceding it to prevent a syntax error.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#41
+ def handle_orphaned_comma(corrector, node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#80
+ def heredoc?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#28
+ def next_char_is_question_mark?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#32
+ def only_closing_paren_before_comma?(node); end
+
+ # Get a range for the closing parenthesis and all whitespace to the left of it
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#51
+ def parens_range(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#24
+ def ternary_condition?(node); end
+ end
+end
+
+# Common functionality for handling percent arrays.
+#
+# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#6
+module RuboCop::Cop::PercentArray
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#26
+ def allowed_bracket_array?(node); end
+
+ # @param node [RuboCop::AST::ArrayNode]
+ # @param elements [Array]
+ # @return [String]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#83
+ def build_bracketed_array_with_appropriate_whitespace(elements:, node:); end
+
+ # @param preferred_array_code [String]
+ # @return [String]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#56
+ def build_message_for_bracketed_array(preferred_array_code); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#67
+ def check_bracketed_array(node, literal_prefix); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#36
+ def check_percent_array(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#31
+ def comments_in_array?(node); end
+
+ # Override to determine values that are invalid in a percent array
+ #
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#22
+ def invalid_percent_array_contents?(_node); end
+
+ # Ruby does not allow percent arrays in an ambiguous block context.
+ #
+ # @example
+ #
+ # foo %i[bar baz] { qux }
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#14
+ def invalid_percent_array_context?(node); end
+
+ # Provides whitespace between elements for building a bracketed array.
+ # %w[ a b c ]
+ # ^^^
+ #
+ # @param node [RuboCop::AST::ArrayNode]
+ # @return [String]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#98
+ def whitespace_between(node); end
+
+ # Provides leading whitespace for building a bracketed array.
+ # %w[ a b c ]
+ # ^^
+ #
+ # @param node [RuboCop::AST::ArrayNode]
+ # @return [String]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#111
+ def whitespace_leading(node); end
+
+ # Provides trailing whitespace for building a bracketed array.
+ # %w[ a b c ]
+ # ^^^^
+ #
+ # @param node [RuboCop::AST::ArrayNode]
+ # @return [String]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#120
+ def whitespace_trailing(node); end
+end
+
+# Common functionality for handling percent literals.
+#
+# source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#6
+module RuboCop::Cop::PercentLiteral
+ include ::RuboCop::Cop::RangeHelp
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#23
+ def begin_source(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#11
+ def percent_literal?(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#17
+ def process(node, *types); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#27
+ def type(node); end
+end
+
+# This autocorrects percent literals
+#
+# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#6
+class RuboCop::Cop::PercentLiteralCorrector
+ include ::RuboCop::PathUtil
+ include ::RuboCop::Cop::Util
+
+ # @return [PercentLiteralCorrector] a new instance of PercentLiteralCorrector
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#11
+ def initialize(config, preferred_delimiters); end
+
+ # Returns the value of attribute config.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#9
+ def config; end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#16
+ def correct(corrector, node, char); end
+
+ # Returns the value of attribute preferred_delimiters.
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#9
+ def preferred_delimiters; end
+
+ private
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#46
+ def autocorrect_multiline_words(node, escape, delimiters); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#52
+ def autocorrect_words(node, escape, delimiters); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#34
+ def delimiters_for(type); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#100
+ def end_content(source); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#30
+ def escape_words?(node); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#78
+ def first_line?(node, previous_line_num); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#89
+ def fix_escaped_content(word_node, escape, delimiters); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#69
+ def line_breaks(node, source, previous_line_num, base_line_num, node_index); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#38
+ def new_contents(node, escape, delimiters); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#82
+ def process_lines(node, previous_line_num, base_line_num, source_in_lines); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#58
+ def process_multiline_words(node, escape, delimiters); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#96
+ def substitute_escaped_delimiters(content, delimiters); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#26
+ def wrap_contents(corrector, node, contents, char, delimiters); end
+end
+
+# Common functionality for checking whether an AST node/token is aligned
+# with something on a preceding or following line
+#
+# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#7
+module RuboCop::Cop::PrecedingFollowingAlignment
+ private
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#93
+ def aligned_assignment?(range, line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#70
+ def aligned_comment_lines; end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#105
+ def aligned_identical?(range, line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#81
+ def aligned_operator?(range, line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#77
+ def aligned_token?(range, line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#34
+ def aligned_with_adjacent_line?(range, predicate); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#52
+ def aligned_with_any_line?(line_ranges, range, indent = T.unsafe(nil), &predicate); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#42
+ def aligned_with_any_line_range?(line_ranges, range, &predicate); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#98
+ def aligned_with_append_operator?(range, line); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#109
+ def aligned_with_assignment(token, line_range); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#56
+ def aligned_with_line?(line_nos, range, indent = T.unsafe(nil)); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#18
+ def aligned_with_operator?(range); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#22
+ def aligned_with_preceding_assignment(token); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#14
+ def aligned_with_something?(range); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#28
+ def aligned_with_subsequent_assignment(token); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#85
+ def aligned_words?(range, line); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#10
+ def allow_for_alignment?; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#127
+ def assignment_lines; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#131
+ def assignment_tokens; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#147
+ def relevant_assignment_lines(line_range); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#174
+ def remove_optarg_equals(asgn_tokens, processed_source); end
+end
+
+# Common functionality for handling percent literal delimiters.
+#
+# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#6
+class RuboCop::Cop::PreferredDelimiters
+ # @return [PreferredDelimiters] a new instance of PreferredDelimiters
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#11
+ def initialize(type, config, preferred_delimiters); end
+
+ # Returns the value of attribute config.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#7
+ def config; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#17
+ def delimiters; end
+
+ # Returns the value of attribute type.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#7
+ def type; end
+
+ private
+
+ # @raise [ArgumentError]
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#23
+ def ensure_valid_preferred_delimiters; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#30
+ def preferred_delimiters; end
+
+ # source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#45
+ def preferred_delimiters_config; end
+end
+
+# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#9
+RuboCop::Cop::PreferredDelimiters::PERCENT_LITERAL_TYPES = T.let(T.unsafe(nil), Array)
+
+# This autocorrects punctuation
+#
+# source://rubocop//lib/rubocop/cop/correctors/punctuation_corrector.rb#6
+class RuboCop::Cop::PunctuationCorrector
+ class << self
+ # source://rubocop//lib/rubocop/cop/correctors/punctuation_corrector.rb#12
+ def add_space(corrector, token); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/punctuation_corrector.rb#8
+ def remove_space(corrector, space_before); end
+
+ # source://rubocop//lib/rubocop/cop/correctors/punctuation_corrector.rb#16
+ def swap_comma(corrector, range); end
+ end
+end
+
+# Methods that calculate and return Parser::Source::Ranges
+#
+# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#6
+module RuboCop::Cop::RangeHelp
+ private
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#141
+ def add_range(range1, range2); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#82
+ def column_offset_between(base_range, range); end
+
+ # A range containing only the contents of a literal with delimiters (e.g. in
+ # `%i{1 2 3}` this will be the range covering `1 2 3` only).
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#32
+ def contents_range(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#100
+ def directions(side); end
+
+ # Returns the column attribute of the range, except if the range is on
+ # the first line and there's a byte order mark at the beginning of that
+ # line, in which case 1 is subtracted from the column value. This gives
+ # the column as it appears when viewing the file in an editor.
+ #
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#92
+ def effective_column(range); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#109
+ def final_pos(src, pos, increment, continuations, newlines, whitespace); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#117
+ def move_pos(src, pos, step, condition, regexp); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#123
+ def move_pos_str(src, pos, step, condition, needle); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#36
+ def range_between(start_pos, end_pos); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#73
+ def range_by_whole_lines(range, include_final_newline: T.unsafe(nil), buffer: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#134
+ def range_with_comments(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#130
+ def range_with_comments_and_lines(node); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#40
+ def range_with_surrounding_comma(range, side = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#55
+ def range_with_surrounding_space(range_positional = T.unsafe(nil), range: T.unsafe(nil), side: T.unsafe(nil), newlines: T.unsafe(nil), whitespace: T.unsafe(nil), continuations: T.unsafe(nil), buffer: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/mixin/range_help.rb#11
+ def source_range(source_buffer, line_number, column, length = T.unsafe(nil)); end
+end
+
+# The Unicode codepoint
+#
+# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#9
+RuboCop::Cop::RangeHelp::BYTE_ORDER_MARK = T.let(T.unsafe(nil), Integer)
+
+# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#54
+module RuboCop::Cop::RangeHelp::NOT_GIVEN; end
+
+# Common functionality for handling Rational literals.
+#
+# source://rubocop//lib/rubocop/cop/mixin/rational_literal.rb#6
+module RuboCop::Cop::RationalLiteral
+ extend ::RuboCop::AST::NodePattern::Macros
+
+ # source://rubocop//lib/rubocop/cop/mixin/rational_literal.rb#12
+ def rational_literal?(param0 = T.unsafe(nil)); end
+end
+
+# Registry that tracks all cops by their badge and department.
+#
+# source://rubocop//lib/rubocop/cop/registry.rb#19
+class RuboCop::Cop::Registry
+ include ::Enumerable
+
+ # @return [Registry] a new instance of Registry
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#51
+ def initialize(cops = T.unsafe(nil), options = T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#232
+ def ==(other); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#97
+ def contains_cop_matching?(names); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#179
+ def cops; end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#224
+ def cops_for_department(department); end
+
+ # @return [Boolean] Checks if given name is department
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#93
+ def department?(name); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#147
+ def department_missing?(badge, name); end
+
+ # @return [Array] list of departments for current cops.
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#72
+ def departments; end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#193
+ def disabled(config); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#67
+ def dismiss(cop); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#247
+ def each(&block); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#189
+ def enabled(config); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#197
+ def enabled?(cop, config); end
+
+ # @return [Boolean]
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#213
+ def enabled_pending_cop?(cop_cfg, config); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#63
+ def enlist(cop); end
+
+ # @param cop_name [String]
+ # @return [Class, nil]
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#253
+ def find_by_cop_name(cop_name); end
+
+ # When a cop name is given returns a single-element array with the cop class.
+ # When a department name is given returns an array with all the cop classes
+ # for that department.
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#260
+ def find_cops_by_directive(directive); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#265
+ def freeze; end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#184
+ def length; end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#220
+ def names; end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#228
+ def names_for_department(department); end
+
+ # Returns the value of attribute options.
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#49
+ def options; end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#151
+ def print_warning(name, path); end
+
+ # Convert a user provided cop name into a properly namespaced name
+ #
+ # @example gives back a correctly qualified cop name
+ #
+ # registry = RuboCop::Cop::Registry
+ # registry.qualified_cop_name('Layout/EndOfLine', '') # => 'Layout/EndOfLine'
+ # @example fixes incorrect namespaces
+ #
+ # registry = RuboCop::Cop::Registry
+ # registry.qualified_cop_name('Lint/EndOfLine', '') # => 'Layout/EndOfLine'
+ # @example namespaces bare cop identifiers
+ #
+ # registry = RuboCop::Cop::Registry
+ # registry.qualified_cop_name('EndOfLine', '') # => 'Layout/EndOfLine'
+ # @example passes back unrecognized cop names
+ #
+ # registry = RuboCop::Cop::Registry
+ # registry.qualified_cop_name('NotACop', '') # => 'NotACop'
+ # @note Emits a warning if the provided name has an incorrect namespace
+ # @param name [String] Cop name extracted from config
+ # @param path [String, nil] Path of file that `name` was extracted from
+ # @param warn [Boolean] Print a warning if no department given for `name`
+ # @raise [AmbiguousCopName] if a bare identifier with two possible namespaces is provided
+ # @return [String] Qualified cop name
+ #
+ # source://rubocop//lib/rubocop/cop/registry.rb#133
+ def qualified_cop_name(name, path, warn: T.unsafe(nil)); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#166
+ def qualify_badge(badge); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#243
+ def select(&block); end
+
+ # source://rubocop//lib/rubocop/cop/registry.rb#236
+ def sort!; end
+
+ # @return [Hash{String => Array