diff --git a/.github/maintainers_guide.md b/.github/maintainers_guide.md
index 7a98ce331..7a94d78d9 100644
--- a/.github/maintainers_guide.md
+++ b/.github/maintainers_guide.md
@@ -26,16 +26,11 @@ We have included `launch.json` files that store configuration for `vscode` debug
Also, for verifying the behavior with the real Slack server-side and developer experience with installed packages, you can run the tests amd scripts under `prod-server-integration-tests`. Refer to the README file in the directory for details. These tests are supposed to be run in the project maintainers' manual execution. They are not part of CI builds for now.
-### 📄 Generating Documentation
-The documentation is built using [Jekyll](https://jekyllrb.com/) and hosted with GitHub Pages. The source files are contained in the `docs` directory. Reading the Jekyll configuration in `docs/_config.yml` is helpful to understand how the documentation is organized and built.
+### 📄 Managing Documentation
-To build the docs locally, navigate to the `docs` directory. First ensure you have Ruby ~2.5.3 and install the dependencies by running `bundle install`. Then, run the command `bundle exec jekyll serve`. You will then be provided with a local URL that you can use to view the build.
+See the [Docs README](https://github.com/slackapi/node-slack-sdk/blob/main/docs/README.md) for information on how the docs site work.
-To build reference documentation, in the root of this repo, run `npm run ref-docs`. This will generate reference docs and put them in the `docs/_reference` directory. Currently, reference docs need to be built manually running this command and checked into GitHub.
-
-**TODO**: Update this doc once building of reference docs is automated to happen on each commit to the repo
-
-Reference docs are built by using various open source tools and formats. This includes [API-Extractor](https://api-extractor.com/), [mdast](https://github.com/syntax-tree/mdast), and [Remark](https://github.com/remarkjs/remark). [Read more about the reference docs pipeline](https://github.com/slackapi/node-slack-sdk/pull/831#issue-299509206).
+The reference docs are generated on every site build, pulling from this repo's files. The site is built automatically on every release via `docs-deploy.yml`.
### 🚀 Releases
_For beta releases, see [**Beta Releases**](https://github.com/slackapi/node-slack-sdk/blob/main/.github/maintainers_guide.md#-beta-releases) section below_
diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml
new file mode 100644
index 000000000..87bfa2aa5
--- /dev/null
+++ b/.github/workflows/docs-deploy.yml
@@ -0,0 +1,63 @@
+name: Deploy to GitHub Pages
+
+on:
+ pull_request:
+ branches:
+ - main
+ paths:
+ - 'docs/**'
+ push:
+ branches:
+ - main
+ paths:
+ - 'docs/**'
+ workflow_dispatch:
+ release:
+
+jobs:
+ build:
+ name: Build Docusaurus
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ cache: npm
+ cache-dependency-path: docs/package-lock.json
+
+ - name: Install dependencies
+ run: npm ci
+ working-directory: ./docs
+
+ - name: Build website
+ run: npm run build
+ working-directory: ./docs
+
+ - name: Upload Build Artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: ./docs/build
+
+ deploy:
+ name: Deploy to GitHub Pages
+ if: github.event_name != 'pull_request'
+ needs: build
+
+ # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
+ permissions:
+ pages: write # to deploy to Pages
+ id-token: write # verifies deployment is from an appropriate source
+
+ # Deploy to the github-pages environment
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+
+ runs-on: ubuntu-latest
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
\ No newline at end of file
diff --git a/docs/.env.sample b/docs/.env.sample
deleted file mode 100644
index 23e2e6d36..000000000
--- a/docs/.env.sample
+++ /dev/null
@@ -1,4 +0,0 @@
-# In order to fetch repository metadata during local development, put a GitHub Personal Access Token in the
-# following variable, and make sure it has `public_repo` access.
-
-JEKYLL_GITHUB_TOKEN=
diff --git a/docs/.gitignore b/docs/.gitignore
index ff17a4494..49ba8fa7c 100644
--- a/docs/.gitignore
+++ b/docs/.gitignore
@@ -1,6 +1,5 @@
-_site
-Gemfile.lock
-.env
-
-# Built reference docs need to be committed currently
-# /_reference/*.md
+node_modules/
+.docusaurus
+.DS_Store
+build/
+.stylelintrc.json
\ No newline at end of file
diff --git a/docs/.ruby-version b/docs/.ruby-version
deleted file mode 100644
index aedc15bb0..000000000
--- a/docs/.ruby-version
+++ /dev/null
@@ -1 +0,0 @@
-2.5.3
diff --git a/docs/Gemfile b/docs/Gemfile
deleted file mode 100644
index bcdec967b..000000000
--- a/docs/Gemfile
+++ /dev/null
@@ -1,3 +0,0 @@
-source 'https://rubygems.org'
-gem 'github-pages', group: :jekyll_plugins
-gem 'dotenv'
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 000000000..7b63722e4
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,120 @@
+# slack.dev
+
+This website is built using [Docusaurus](https://docusaurus.io/). 'Tis cool.
+
+Each Bolt/SDK has its own Docusaurus website, with matching CSS and nav/footer. There is also be a Docusaurus website of just the homepage and community tools.
+
+```
+docs/
+├── content/ (the good stuff. md and mdx files supported)
+│ ├── getting-started.md
+│ ├── packages/ (written .md files)
+│ │ └── oauth.md
+│ └── reference/
+│ └── logger/ (generated reference files)
+├── static/
+│ ├── css/
+│ │ └── custom.css (the css for everything!)
+│ └── img/ (the pictures for the site)
+│ ├── rory.png
+│ └── oslo.svg
+├── src/
+│ └── theme (only contains the 404 page)
+├── docusaurus.config.js (main config file. also where to set navbar/footer)
+├── sidebar.js (manually set where the content docs are in the sidebar.)
+└── typedoc.json (typedoc parameters for generating reference from src)
+```
+
+A cheat-sheet:
+* _I want to edit a doc._ `content/*/*.md`
+* _I want to make the reference up-to-date_. It should be! But if it isn't, run the **Deploy to Github Pages** workflow.
+* _I want to change the docs sidebar._ `sidebar.js`
+* _I want to change the css._ Don't use this repo, use the home repo and the changes will propagate here.
+* _I want to change anything else._ `docusaurus.config.js`
+
+----
+
+## Adding a doc
+
+1. Make a markdown file. Add a `# Title` or use [front matter](https://docusaurus.io/docs/next/create-doc) with `title:`.
+2. Save it in `content/folder/title.md` or `content/title.md`, depending on if it's in a sidebar category. The nuance is just for internal organization.
+4. Add the doc's path to the sidebar within `docusaurus.config.js`. Where ever makes most sense for you.
+5. Test the changes ↓
+
+---
+
+## Running locally
+
+You'll want to be using at least Node 20. You can update Node however you want. `nvm` is one way.
+
+Install `nvm` if you don't have it:
+
+```
+curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
+```
+
+Then grab the latest version of Node.
+
+```
+nvm install node
+```
+
+
+If you are running this project locally for the first time, you'll need to install the packages with the following command:
+
+```
+npm install
+```
+
+The following command starts a local development server and opens up a browser window.
+
+```
+npm run start
+```
+
+Edits to pages are reflected live — no restarting the server or reloading the page. (I'd say... 95% of the time, and 100% time if you're just editing a markdown file)
+
+Remember — you're only viewing the Node Slack SDK docs right now.
+
+---
+
+## Deploying
+
+The following command generates static content into the `build` directory.
+
+```
+$ npm run build
+```
+
+Then you can test out with the following command:
+
+```
+npm run serve
+```
+
+If it looks good, make a PR request!
+
+### Deployment to GitHub pages
+
+There is a GitHub action workflow set up in each repo.
+
+* On PR, it tests a site build.
+* On Merge, it builds the site and deploys it. Site should update in a minute or two.
+
+---
+
+## Generating reference docs
+
+The reference docs are autogenerated using the [`docusaurus-plugin-typedoc`](https://typedoc-plugin-markdown.org/plugins/docusaurus) plugin. It "integrates TypeDoc into the Docusaurus lifecycle and generates static TypeDoc pages in Markdown."
+
+In the `docusaurus.config.js` file, there's a plugin entry for each package you want to generate a reference for. On any `npm run` or `npm run build` command, it creates reference pages in the specified locations (`/docs/content/reference/{package-name}`). It also creates a custom sidebar nav for that reference, which is then loaded in `sidebars.js`.
+
+You can add additional generation parameters in `typedoc.json`.
+
+The reference docs are generated on every site build, pulling from this repo's files. The site is built automatically on every release via `docs-deploy.yml`.
+
+---
+
+## Something's broken
+
+Luke goofed. Open an issue please! `:bufo-appreciates-the-insight:`
\ No newline at end of file
diff --git a/docs/_config.yml b/docs/_config.yml
deleted file mode 100644
index 8e78d02b0..000000000
--- a/docs/_config.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-# Welcome to the documentation site. You can build it locally use `bundle exec jekyll serve`.
-# See: https://help.github.com/en/articles/setting-up-your-github-pages-site-locally-with-jekyll
-
-# This file contains site settings and metadata. It is used to both configure how Jekyll will build the site, and also
-# the metadata is made available in the templates, layouts, and pages.
-# See: https://jekyllrb.com/docs/configuration/options/, https://help.github.com/en/articles/configuring-jekyll, and
-# https://help.github.com/en/articles/configuring-jekyll-plugins
-
-title: Node Slack SDK
-description: >-
- This SDK is a collection of single-purpose packages. The packages are aimed at making building Slack apps
- easy, performant, secure, and scalable. They can help with just about anything in the Slack platform, from dropping
- notifications in channels to fully interactive bots.
-
-# Site content
-collections:
- main:
- output: true
- packages:
- output: true
- tutorials:
- output: true
- permalink: /tutorials/:slug
- reference:
- output: true
- permalink: /reference/:slug
-
-defaults:
- -
- scope:
- path: ""
- type: main
- values:
- layout: default
- -
- scope:
- path: ""
- type: packages
- values:
- layout: contained
- -
- scope:
- path: ""
- type: tutorials
- values:
- layout: contained
- -
- scope:
- path: ""
- type: reference
- values:
- layout: contained
-
-baseurl: /node-slack-sdk
-url: https://slack.dev
-
-# Metadata
-repo_name: node-slack-sdk
-github_username: SlackAPI
-
-code_of_conduct_url: https://slackhq.github.io/code-of-conduct
-cla_url: https://cla-assistant.io/slackapi/node-slack-sdk
-
-google_analytics: UA-56978219-13
-google_tag_manager: GTM-KFZ5MK7
-
-# Plugin settings
-markdown: kramdown
-kramdown:
- parse_block_html: true
-plugins:
- - jemoji
- - jekyll-redirect-from
-
-# Obtain github metadata when building locally
-# You will need to copy the `.env.sample` file to `.env` and fill in your token for this to work.
-repository: slackapi/node-slack-sdk
-
-# Avoid inheriting assets (and pages) from GitHub Pages' default Jekyll theme (primer).
-theme: false
diff --git a/docs/_includes/analytics.html b/docs/_includes/analytics.html
deleted file mode 100644
index a24f8d2cc..000000000
--- a/docs/_includes/analytics.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
diff --git a/docs/_includes/focused_nav.html b/docs/_includes/focused_nav.html
deleted file mode 100644
index 878b82b3c..000000000
--- a/docs/_includes/focused_nav.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
diff --git a/docs/_includes/head.html b/docs/_includes/head.html
deleted file mode 100644
index c2f639395..000000000
--- a/docs/_includes/head.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
- Slack | {{ page.title | default: site.title | escape }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/_includes/main_nav.html b/docs/_includes/main_nav.html
deleted file mode 100644
index 9fd290f0f..000000000
--- a/docs/_includes/main_nav.html
+++ /dev/null
@@ -1,30 +0,0 @@
-{% assign main_documents = site.main | sort: 'order' | where_exp:"item", "item.hidden != true" %}
-
-
-{% assign packages = site.packages | sort: 'order' %}
-
-
-{% assign tutorials = site.tutorials | sort: 'order' %}
-
diff --git a/docs/_includes/page_header.html b/docs/_includes/page_header.html
deleted file mode 100644
index 49cccf49e..000000000
--- a/docs/_includes/page_header.html
+++ /dev/null
@@ -1,17 +0,0 @@
-{% include tag_manager.html %}
-
-
diff --git a/docs/_includes/tag_manager.html b/docs/_includes/tag_manager.html
deleted file mode 100644
index 4a6cc98b9..000000000
--- a/docs/_includes/tag_manager.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/docs/_layouts/contained.html b/docs/_layouts/contained.html
deleted file mode 100644
index f12ba92ee..000000000
--- a/docs/_layouts/contained.html
+++ /dev/null
@@ -1,6 +0,0 @@
----
-layout: default
-sidebar_style: focused
----
-
-{{ content }}
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
deleted file mode 100644
index b3b16fe8a..000000000
--- a/docs/_layouts/default.html
+++ /dev/null
@@ -1,60 +0,0 @@
----
-sidebar_style: main
----
-
-
-
-{% include head.html %}
-
-
-
-{% include page_header.html %}
-
-
-
-
-
-
- {% case layout.sidebar_style %}
- {% when 'main' %}
- {% include main_nav.html %}
- {% when 'focused' %}
- {% include focused_nav.html %}
- {% endcase %}
-
-
-
-
-
-
- {% if page.title != "" %}
-
{{ page.title }}
- {% endif %}
-
-
- {{ content }}
-
-
-
-
-
-
-
-
-{% include analytics.html %}
-
-
diff --git a/docs/_main/about.md b/docs/_main/about.md
deleted file mode 100644
index 76c08d967..000000000
--- a/docs/_main/about.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: About
-permalink: /about
-hidden: true
----
-# {{ site.title }}
-
-{{ site.title }} is proudly maintained with :sparkling_heart: by the Slack Platform team
-
- * [Code of Conduct]({{ site.code_of_conduct_url }})
- * [Contributing](https://github.com/{{ site.github_username }}/{{ site.repo_name }}/blob/main/.github/contributing.md)
- * [Contributor License Agreement]({{ site.cla_url }})
diff --git a/docs/_main/auth.md b/docs/_main/auth.md
deleted file mode 100644
index 098d2a225..000000000
--- a/docs/_main/auth.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-permalink: /auth
-redirect_to: https://slack.dev/node-slack-sdk/getting-started#getting-a-token-to-use-the-web-api
-hidden: true
----
diff --git a/docs/_main/changelog.md b/docs/_main/changelog.md
deleted file mode 100644
index f9e03ff88..000000000
--- a/docs/_main/changelog.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: Changelog
-permalink: /changelog
-order: 10
----
-
-{% for release in site.github.releases %}
-
-
-
{{ release.name }}
-
{{ release.published_at | date: "%b %-d, %Y" }}
-
-
-{{ release.body | markdownify }}
-
-
-
-
-{% endfor %}
-
-For previous releases, see [the legacy changelog](https://github.com/slackapi/node-slack-sdk/blob/1.x/CHANGELOG.md).
-
-
diff --git a/docs/_main/index.md b/docs/_main/index.md
deleted file mode 100644
index 7863a344f..000000000
--- a/docs/_main/index.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: Node Slack SDK
-permalink: /
-redirect_from: /faq
-hidden: true
-headings:
- - title: Packages
- - title: Installation
- - title: Requirements
- - title: Getting Help
----
-
-### **Deprecation Notice**
-
-_`@slack/events-api` and `@slack/interactive-messages` officially reached EOL on May 31st, 2021. Development has fully stopped for these packages and all remaining open issues and pull requests have been closed._
-
-_At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more). To help with that process, we've provided some [migration samples](https://slack.dev/node-slack-sdk/tutorials/migrating-to-v6) for those looking to convert their existing apps._
-
----
-
-The Slack platform offers several APIs to build apps. Each Slack API delivers part of the capabilities from the
-platform, so that you can pick just those that fit for your needs. This SDK offers a corresponding package for each of
-Slack's APIs. They are small and powerful when used independently, and work seamlessly when used together, too.
-
-**Just starting out?** The [Getting Started tutorial](https://slackapi.github.io/node-slack-sdk/getting-started) will
-walk you through building your first Slack app using Node.js.
-
-| Slack API | What its for | NPM Package |
-|--------------|--------------|-------------------|
-| Web API | Send data to or query data from Slack using any of [over 130 methods](https://api.slack.com/methods). | [`@slack/web-api`](https://slack.dev/node-slack-sdk/web-api) |
-| Events API | Listen for incoming messages and [many other events](https://api.slack.com/events) happening in Slack, using a URL. | [`@slack/events-api`](https://slack.dev/node-slack-sdk/events-api) |
-| Interactive Messages | Respond to button clicks, dialogs, and other interactions with messages. | [`@slack/interactive-messages`](https://slack.dev/node-slack-sdk/interactive-messages) |
-| OAuth | Setup the authentication flow using V2 OAuth for Slack apps as well as V1 OAuth for classic Slack apps. | [`@slack/oauth`](https://slack.dev/node-slack-sdk/oauth) |
-| RTM API | Listen for incoming messages and a limited set of events happening in Slack, using websockets. | [`@slack/rtm-api`](https://slack.dev/node-slack-sdk/rtm-api) |
-| Incoming Webhooks | Send notifications to a single channel which the user picks on installation. | [`@slack/webhook`](https://slack.dev/node-slack-sdk/webhook) |
-
-**Not sure about which APIs are right for your app?** Read our [blog
-post](https://medium.com/slack-developer-blog/getting-started-with-slacks-apis-f930c73fc889) that explains the options.
-If you're still not sure, [reach out for help](#getting-help) and our community can guide you.
-
-If you're looking for an all-in-one solution that hides the underlying Slack APIs, but simplifies building a bot-style
-app inside Slack, try the [Hubot Slack adapter](https://slackapi.github.io/hubot-slack/). Hubot is a popular framework
-for internal apps that automate workflows, perform ChatOps, or just generate silly memes.
-
-## Installation
-
-Use your favorite package manager to install any of the packages and save to your `package.json`:
-
-```shell
-$ npm install @slack/web-api @slack/events-api
-
-# Or, if you prefer yarn
-$ yarn add @slack/web-api @slack/events-api
-```
-
-## Requirements
-
-This package supports Node v14 and higher. It's highly recommended to use [the latest LTS version of
-node](https://github.com/nodejs/Release#release-schedule), and the documentation is written using syntax and features
-from that version.
-
-## Getting Help
-
-If you get stuck, we're here to help. The following are the best ways to get assistance working through your issue:
-
- * [Issue Tracker](http://github.com/slackapi/{{ site.repo_name }}/issues) for questions, feature
- requests, bug reports and general discussion related to this package.
- * [Email us](mailto:developers@slack.com) in Slack developer support: `developers@slack.com`
- * [Bot Developers Hangout](https://community.botkit.ai/): a Slack community for developers
- building all types of bots. You can find the maintainers and users of this package in **#sdk-node-slack-sdk**.
diff --git a/docs/_reference/events-api.md b/docs/_reference/events-api.md
deleted file mode 100644
index a160b20a6..000000000
--- a/docs/_reference/events-api.md
+++ /dev/null
@@ -1,308 +0,0 @@
----
-title: "@slack/events-api"
-slug: events-api
----
-
-Classes
-SlackEventAdapter
-An adapter for Slack's Events API.
-new SlackEventAdapter(signingSecret, opts)
-Constructs a new instance of the SlackEventAdapter
class
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-signingSecret
-string
-✓
-The token used to authenticate signed requests from Slack's Events API.
-
-
-opts
-EventAdapterOptions
-✗
-See options.
-
-
-
-Options:
-
-
-
-Name
-Type
-
-
-
-
-
-includeBody
-boolean
-
-
-
-includeHeaders
-boolean
-
-
-
-waitForResponse
-boolean
-
-
-
-
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-includeBody
-boolean
-Whether to include the API event bodies in adapter event listeners.
-
-
-includeHeaders
-boolean
-Whether to include request headers in adapter event listeners.
-
-
-signingSecret
-string
-The token used to authenticate signed requests from Slack's Events API.
-
-
-waitForResponse
-boolean
-When true
prevents the adapter from responding by itself and leaves that up to listeners.
-
-
-
-Methods
-createServer()
-Creates an HTTP server to listen for event payloads.
-Returns Promise<http.Server>
-expressMiddleware()
-Returns a middleware-compatible adapter.
-Returns RequestHandler
-requestListener()
-Creates a request listener.
-Returns RequestListener
-start(port)
-Starts a server on the specified port.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-port
-number
-✓
-The port number to listen on.
-
-
-
-Returns Promise<http.Server>
-stop()
-Stops the server started by SlackEventAdapter
.
-Returns Promise<void>
-Functions
-createEventAdapter(signingSecret, options)
-Creates a new SlackEventAdapter
.
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-signingSecret
-string
-✓
-
-
-
-options
-EventAdapterOptions
-✗
-
-
-
-
-Returns SlackEventAdapter
-verifyRequestSignature(opts)
-Verifies the signature of a request. Throws a CodedError
if the signature is invalid.
-Remarks
-See [Verifying requests from Slack](https://api.slack.com/docs/verifying-requests-from-slack#sdk_support) for more information.
-Parameters:
-
-Options:
-
-
-
-Name
-Type
-Description
-
-
-
-
-body
-string
-Full, raw body string.
-
-
-requestSignature
-string
-Signature from the X-Slack-Signature
header.
-
-
-requestTimestamp
-number
-Timestamp from the X-Slack-Request-Timestamp
header.
-
-
-signingSecret
-string
-The signing secret used to verify request signature.
-
-
-
-Returns true
:
-
-true
when the signature is valid.
-Enums
-ErrorCode
-A dictionary of codes for errors produced by this package.
-Members
-
-BodyParserNotPermitted
-RequestTimeFailure
-SignatureVerificationFailure
-
-Interfaces
-CodedError
-All errors produced by this package are regular Error objects with an extra CodedError
field.
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-code
-ErrorCode
-What kind of error occurred.
-
-
-
-EventAdapterOptions
-Options when constructing SlackEventAdapter
. See SlackEventAdapter
's fields for more information on what each option does.
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-includeBody
-boolean
-
-
-
-includeHeaders
-boolean
-
-
-
-waitForResponse
-boolean
-
-
-
-
-VerifyRequestSignatureParams
-Parameters for calling verifyRequestSignature
.
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-body
-string
-Full, raw body string.
-
-
-requestSignature
-string
-Signature from the X-Slack-Signature
header.
-
-
-requestTimestamp
-number
-Timestamp from the X-Slack-Request-Timestamp
header.
-
-
-signingSecret
-string
-The signing secret used to verify request signature.
-
-
-
\ No newline at end of file
diff --git a/docs/_reference/index.md b/docs/_reference/index.md
deleted file mode 100644
index 7378d9ca0..000000000
--- a/docs/_reference/index.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Reference Documentation
-parmalink: /reference/
----
-
-Packages:
-
\ No newline at end of file
diff --git a/docs/_reference/interactive-messages.md b/docs/_reference/interactive-messages.md
deleted file mode 100644
index 1fc59dc6e..000000000
--- a/docs/_reference/interactive-messages.md
+++ /dev/null
@@ -1,524 +0,0 @@
----
-title: "@slack/interactive-messages"
-slug: interactive-messages
----
-
-Classes
-SlackMessageAdapter
-An adapter for Slack's interactive message components such as buttons, menus, and dialogs.
-new SlackMessageAdapter(signingSecret, opts)
-Create a message adapter.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-signingSecret
-string
-✓
-Slack app signing secret used to authenticate request
-
-
-opts
-MessageAdapterOptions
-✗
-See options.
-
-
-
-Options:
-
-
-
-Name
-Type
-
-
-
-
-
-agent
-Agent
-
-
-
-lateResponseFallbackEnabled
-boolean
-
-
-
-syncResponseTimeout
-number
-
-
-
-
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-lateResponseFallbackEnabled
-boolean
-Whether or not promises that resolve after the syncResponseTimeout can fallback to a request for the response_url. This only works in cases where the semantic meaning of the response and the response_url are the same.
-
-
-signingSecret
-string
-Slack app signing secret used to authenticate request
-
-
-syncResponseTimeout
-number
-The number of milliseconds to wait before flushing a synchronous response to an incoming request and falling back to an asynchronous response.
-
-
-
-Methods
-action(matchingConstraints, callback)
-Add a handler for an interactive message action.
-Usually there's no need to be concerned with _how_ a message is sent to Slack, but the following table describes it fully.
-**Action**|**Return object
**|**Return Promise<object>
**|**Return undefined
**|**Call respond(message)
**|**Notes** :-----:|:-----:|:-----:|:-----:|:-----:|:-----: **Button Press**| Message in response | When resolved before syncResponseTimeout
or lateResponseFallbackEnabled: false
, message in response When resolved after syncResponseTimeout
and lateResponseFallbackEnabled: true
, message in request to response_url
| Empty response | Message in request to response_url
| Create a new message instead of replacing using replace_original: false
**Menu Selection**| Message in response | When resolved before syncResponseTimeout
or lateResponseFallbackEnabled: false
, message in response When resolved after syncResponseTimeout
and lateResponseFallbackEnabled: true
, message in request to response_url
| Empty response | Message in request to response_url
| Create a new message instead of replacing using replace_original: false
**Message Action** | Message in response | When resolved before syncResponseTimeout
or lateResponseFallbackEnabled: false
, message in response When resolved after syncResponseTimeout
and lateResponseFallbackEnabled: true
, message in request to response_url
| Empty response | Message in request to response_url
| **Dialog Submission**| Error list in response | Error list in response | Empty response | Message in request to response_url
| Returning a Promise that takes longer than 3 seconds to resolve can result in the user seeing an error. Warning logged if a promise isn't completed before syncResponseTimeout
.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-matchingConstraints
-string | RegExp | ActionConstraints
-✓
-the callback ID (as a string or RegExp) or an object describing the constraints to match actions for the handler.
-
-
-callback
-ActionHandler
-✓
-the function to run when an action is matched
-
-
-
-Returns this
-createServer()
-Create a server that dispatches Slack's interactive message actions and menu requests to this message adapter instance. Use this method if your application will handle starting the server.
-Returns Promise<http.Server>
-expressMiddleware()
-Create a middleware function that can be used to integrate with the express
web framework in order for incoming requests to be dispatched to this message adapter instance.
-Returns RequestHandler
-options(matchingConstraints, callback)
-Add a handler for an options request
-Usually there's no need to be concerned with _how_ a message is sent to Slack, but the following table describes it fully
- |**Return options
**|**Return Promise<options>
**|**Return undefined
**|**Notes** :-----:|:-----:|:-----:|:-----:|:-----: **Options Request**| Options in response | Options in response | Empty response | Returning a Promise that takes longer than 3 seconds to resolve can result in the user seeing an error. If the request is from within a dialog, the text
field is called label
.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-matchingConstraints
-string | RegExp | OptionsConstraints
-✓
-the callback ID (as a string or RegExp) or an object describing the constraints to select options requests for the handler.
-
-
-callback
-OptionsHandler
-✓
-the function to run when an options request is matched
-
-
-
-Returns this
-requestListener()
-Create a request listener function that handles HTTP requests, verifies requests and dispatches responses
-Returns RequestListener
-shortcut(matchingConstraints, callback)
-Parameters:
-
-Returns this
-start(port)
-Start a built-in server that dispatches Slack's interactive message actions and menu requests to this message adapter interface.
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-port
-number
-✓
-
-
-
-
-Returns Promise<http.Server>
-stop()
-Stop the previously started built-in server.
-Returns Promise<void>
-viewClosed(matchingConstraints, callback)
-Add a handler for view closed interaction. The handler should not return a value.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-matchingConstraints
-string | RegExp | ViewConstraints
-✓
-the callback ID (as a string or RegExp) or an object describing the constraints to match view closed interactions for the handler.
-
-
-callback
-ViewClosedHandler
-✓
-the function to run when an view closed interaction is matched
-
-
-
-Returns this
-viewSubmission(matchingConstraints, callback)
-Add a handler for view submission.
-The value returned from the callback
determines the response sent back to Slack. The handler can return a plain object with a response_action
property to dismiss the modal, push a view into the modal, display validation errors, or update the view. Alternatively, the handler can return a Promise for this kind of object, which resolves before syncResponseTimeout
or lateResponseFallbackEnabled: false
, to perform the same response actions. If the Promise resolves afterwards or lateResponseFallbackEnabled: true
then the modal will be dismissed. If the handler returns undefined
the modal will be dismissed.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-matchingConstraints
-string | RegExp | ViewConstraints
-✓
-the callback ID (as a string or RegExp) or an object describing the constraints to match view submissions for the handler.
-
-
-callback
-ViewSubmissionHandler
-✓
-the function to run when an view submission is matched
-
-
-
-Returns this
-Functions
-createMessageAdapter(signingSecret, options)
-Factory method to create an instance of SlackMessageAdapter
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-signingSecret
-string
-✓
-
-
-
-options
-MessageAdapterOptions
-✗
-
-
-
-
-Returns SlackMessageAdapter
-Enums
-ErrorCode
-A dictionary of codes for errors produced by this package.
-Members
-
-BodyParserNotPermitted
-PromiseTimeout
-RequestTimeFailure
-SignatureVerificationFailure
-
-ResponseStatus
-Some HTTP response statuses.
-Members
-
-Interfaces
-ActionConstraints
-Constraints on when to call an action handler.
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-actionId
-string | RegExp
-A string or RegExp to match against the action_id
-
-
-blockId
-string | RegExp
-A string or RegExp to match against the block_id
-
-
-callbackId
-string | RegExp
-A string or RegExp to match against the callback_id
-
-
-type
-string
-Valid types include all [actions block elements](https://api.slack.com/reference/messaging/interactive-components), select
only for menu selections, or dialog_submission
only for dialog submissions
-
-
-unfurl
-boolean
-When true
only match actions from an unfurl
-
-
-
-DispatchResult
-The result of a call to dispatch
.
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-content
-any
-
-
-
-status
-ResponseStatus
-
-
-
-
-MessageAdapterOptions
-Options for constructing SlackMessageAdapter
.
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-agent
-Agent
-
-
-
-lateResponseFallbackEnabled
-boolean
-
-
-
-syncResponseTimeout
-number
-
-
-
-
-OptionsConstraints
-Constraints on when to call an options handler.
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-actionId
-string | RegExp
-A string or RegExp to match against the action_id
-
-
-blockId
-string | RegExp
-A string or RegExp to match against the block_id
-
-
-callbackId
-string | RegExp
-A string or RegExp to match against the callback_id
-
-
-within
-'block_actions' | 'interactive_message' | 'dialog'
-The source of options request.
-
-
-
-ShortcutConstraints
-Constraints on when to call an shortcut handler.
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-callbackId
-string | RegExp
-A string or RegExp to match against the callback_id
-
-
-type
-'shortcut'
-Valid type includes shortcut
-
-
-
-ViewConstraints
-Constraints on when to call a view submission or view closed handler.
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-callbackId
-string | RegExp
-A string or RegExp to match against the callback_id
-
-
-externalId
-string | RegExp
-A string to match against the external_id
-
-
-viewId
-string
-A string to match against the view_id
-
-
-
-Type Aliases
-ActionHandler
-A handler function for action requests (block actions, button presses, menu selections, and dialog submissions).
-) => any | Promise<any> | undefined
-
-OptionsHandler
-A handler function for menu options requests.
-<any> | undefined
-
-Respond
-A function used to send message updates after an action is handled. This function can be used up to 5 times in 30 minutes.
-<unknown>
-
-ShortcutHandler
-A handler function for global shortcuts.
-TODO: describe the payload and return values more specifically?
-<any> | undefined
-
-ViewClosedHandler
-A handler function for view closed requests.
-TODO: describe the payload and return values more specifically?
-
-One of:
-
-ViewSubmissionHandler
-A handler function for view submission requests.
-TODO: describe the payload and return values more specifically?
-<any> | undefined
-
\ No newline at end of file
diff --git a/docs/_reference/logger.md b/docs/_reference/logger.md
deleted file mode 100644
index 75219e0ab..000000000
--- a/docs/_reference/logger.md
+++ /dev/null
@@ -1,294 +0,0 @@
----
-title: "@slack/logger"
-slug: logger
----
-
-Classes
-ConsoleLogger
-Default logger which logs to stdout and stderr
-new ConsoleLogger()
-Constructs a new instance of the ConsoleLogger
class
-Methods
-debug(msg)
-Log a debug message
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-msg
-any[]
-✓
-
-
-
-
-Returns void
-error(msg)
-Log an error message
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-msg
-any[]
-✓
-
-
-
-
-Returns void
-getLevel()
-Returns LogLevel
-info(msg)
-Log an info message
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-msg
-any[]
-✓
-
-
-
-
-Returns void
-setLevel(level)
-Sets the instance's log level so that only messages which are equal or more severe are output to the console.
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-level
-LogLevel
-✓
-
-
-
-
-Returns void
-setName(name)
-Set the instance's name, which will appear on each log line before the message.
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-name
-string
-✓
-
-
-
-
-Returns void
-warn(msg)
-Log a warning message
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-msg
-any[]
-✓
-
-
-
-
-Returns void
-Enums
-LogLevel
-Severity levels for log entries
-Members
-
-DEBUG
-ERROR
-INFO
-WARN
-
-Interfaces
-Logger
-Interface for objects where objects in this package's logs can be sent (can be used as logger
option).
-Methods
-debug(msg)
-Output debug message
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-msg
-any[]
-✓
-any data to log
-
-
-
-Returns void
-error(msg)
-Output error message
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-msg
-any[]
-✓
-any data to log
-
-
-
-Returns void
-getLevel()
-Return the current LogLevel.
-Returns LogLevel
-info(msg)
-Output info message
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-msg
-any[]
-✓
-any data to log
-
-
-
-Returns void
-setLevel(level)
-This disables all logging below the given level, so that after a log.setLevel("warn") call log.warn("something") or log.error("something") will output messages, but log.info("something") will not.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-level
-LogLevel
-✓
-as a string, like 'error' (case-insensitive)
-
-
-
-Returns void
-setName(name)
-This allows the instance to be named so that they can easily be filtered when many loggers are sending output to the same destination.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-name
-string
-✓
-as a string, will be output with every log after the level
-
-
-
-Returns void
-warn(msg)
-Output warn message
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-msg
-any[]
-✓
-any data to log
-
-
-
-Returns void
\ No newline at end of file
diff --git a/docs/_reference/oauth.md b/docs/_reference/oauth.md
deleted file mode 100644
index d2e47e604..000000000
--- a/docs/_reference/oauth.md
+++ /dev/null
@@ -1,681 +0,0 @@
----
-title: "@slack/oauth"
-slug: oauth
----
-
-Classes
-InstallProvider
-InstallProvider
provides a way to manage configuration and functionality for adding an OAuth flow to Slack apps. It contains capabilities for OAuth URL generation, state verification, authorization code exchange, as well as interfaces for storing installation details like user and bot tokens.
-new InstallProvider(opts)
-Constructs a new instance of the InstallProvider
class
-Parameters:
-
-Fields
-
-Methods
-handleInstallPath(req, res, options, installOptions)
-This method handles HTTP requests to the application's installation page. It can be used to automatically render a typical installation page with an "Add to Slack" button.
-Parameters:
-
-Returns Promise<void>
-generateInstallUrl(options)
-Returns a URL that is suitable for including in an Add to Slack button. Uses the instance's stateStore to generate a value for the state
OAuth parameter. Can disable state generation by setting stateVerification
to false
. Can prescribe a specific state
OAuth parameter value by setting the state
argument to this function explicitly.
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-options
-InstallURLOptions
-✓
-
-
-
-stateVerification
-boolean
-✗ (defaults to true
)
-
-
-
-state
-string
-✗
-
-
-
-
-
-Returns Promise<string>
-handleCallback(req, res, options, installOptions)
-This method handles the incoming callback request to the application after a redirection from slack.com following a successful user authorization. It can be used as a RequestListener in almost any HTTP server framework.
-Verifies the state using the instance's stateStore , exchanges the grant in the query parameters for an access token, and stores token and associated installation data in the instance's installationStore .
-Parameters:
-
-Returns Promise<void>
-authorize(source)
-Fetches installation data from the instance's installationStore .
-Parameters:
-
-Returns Promise<AuthorizeResult >
-Interfaces
-AuthorizeResult
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-botId
-string
-
-
-
-botRefreshToken
-string
-
-
-
-botToken
-string
-
-
-
-botTokenExpiresAt
-number
(UTC, seconds)
-
-
-
-botUserId
-string
-
-
-
-enterpriseId
-string
-
-
-
-teamId
-string
-
-
-
-userRefreshToken
-string
-
-
-
-userToken
-string
-
-
-
-userTokenExpiresAt
-number
(UTC, seconds)
-
-
-
-
-CallbackOptions
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-
-beforeInstallation
-(options: InstallURLOptions , callbackReq: IncomingMessage, callbackRes: ServerResponse) => Promise<boolean>
-Additional logic to run right before executing the Slack app installation with the given OAuth code parameter. When this method returns false
, the InstallProvider
skips the installation. A common use for returning false
in this method is if the visiting user is not eligible to proceed with the Slack app installation flow. When returning false
, this method is responsible for calling the callbackRes#end()
method to build a complete HTTP response for the end-user.
-
-
-
-afterInstallation
-(installation: Installation | OrgInstallation , options: InstallURLOptions , callbackReq: IncomingMessage, callbackRes: ServerResponse) => Promise<boolean>
-Additional logic to run right after executing the Slack app installation with the given OAuth code parameter. When this method returns false
, the InstallProvider
skips storing the installation in the database (or whatever implementation your InstallationStore
uses). A common use for returning false
in this method is if your app needs to cancel the installation and display an error page to the installing user. When returning false
, this method is responsible for calling the callbackRes#end()
method to build a complete HTTP response for the end-user.
-
-
-
-failure
-(error: CodedError, options: InstallURLOptions , callbackReq: IncomingMessage, callbackRes: ServerResponse) => void
-failure
is invoked if handleCallback
fails at any point. When provided, this function must complete sending the HTTP response to the end-user by calling callbackRes#end()
.
-
-
-
-failureAsync
-(error: CodedError, options: InstallURLOptions , callbackReq: IncomingMessage, callbackRes: ServerResponse) => Promise<void>
-An asynchronous version of failure
. If both are defined, both will be executed.
-
-
-
-success
-(installation: Installation , options: InstallURLOptions , callbackReq: IncomingMessage, callbackRes: ServerResponse) => void
-success
is invoked after handleCallback
completes and has stored the installation data. When provided, this function must complete sending the HTTP response to the end-user by calling callbackRes#end()
.
-
-
-
-successAsync
-(installation: Installation , options: InstallURLOptions , callbackReq: IncomingMessage, callbackRes: ServerResponse) => Promise<void>
-An asynchronous version of success
. If both are defined, both will be executed.
-
-
-
-
-Installation
-An individual installation of the Slack app.
-This interface creates a representation for installations that normalizes the responses from OAuth grant exchanges across auth versions (responses from the Web API methods [`oauth.v2.access`](https://api.slack.com/methods/oauth.v2.access) and [`oauth.access`](https://api.slack.com/methods/oauth.access)). It describes some of these differences using the `AuthVersion` generic placeholder type.
-This interface also represents both installations which occur on individual Slack workspaces and on Slack enterprise organizations. The `IsEnterpriseInstall` generic placeholder type is used to describe some of those differences.
-This representation is designed to be used both when producing data that should be stored by an [`InstallationStore`](#installationstore), and when consuming data that is fetched from an [`InstallationStore`](#installationstore). Most often, [`InstallationStore`](#installationstore) implementations are a database. If you are going to implement an [`InstallationStore`](#installationstore), it's advised that you **store as much of the data in these objects as possible so that you can return as much as possible inside `fetchInstallation()`**.
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-appId
-string | undefined
-
-
-
-authVersion
-'v1' | 'v2'
-
-
-
-bot
-object
-
-
-
-enterprise
-object
-
-
-
-enterpriseUrl
-string | undefined
-
-
-
-incomingWebhook
-object
-
-
-
-isEnterpriseInstall
-boolean
-
-
-
-metadata
-string
-
-
-
-team
-object
-
-
-
-tokenType
-string
-
-
-
-user
-object
-
-
-
-
-InstallationQuery
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-conversationId
-string
-
-
-
-enterpriseId
-string
-
-
-
-isEnterpriseInstall
-boolean
-
-
-
-teamId
-string
-
-
-
-userId
-string
-
-
-
-
-InstallationStore
-Fields
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-deleteInstallation
-(query: InstallationQuery , logger?: Logger) => Promise<void>
-✗
-
-
-
-fetchInstallation
-(query: InstallationQuery , logger?: Logger) => Promise<Installation >
-✓
-
-
-
-storeInstallation
-(installation: Installation , logger?: Logger) => Promise<void>
-✓
-
-
-
-
-InstallPathOptions
-Customize the response headers and body data for additional user-specific data handling such as account mapping and activity tracking.
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-
-beforeRedirection
-(request: IncomingMessage, response: ServerResopnse, options: InstallURLOptions ) => Promise<boolean>
-When this method returns false
, the InstallProvider
skips state
OAuth parameter generation, setting the state
in HTTP cookies, generating an install URL and redirecting to the slack.com authorization URL. Common use cases for returning false
include when the visiting user is not eligible to proceed with the Slack application installation flow. When returning false
, this method is responsible for calling response#end()
to build a complete HTTP response for the end-user.
-
-
-
-
-InstallProviderOptions
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-
-authorizationUrl
-string
-The slack.com authorization URL. This defaults to https://slack.com/oauth/v2/authorize
when OAuth v2 is used, otherwise it will be set to https://slack.com/oauth/authorize
.
-
-
-
-authVersion
-'v1' | 'v2'
-The OAuth version to employ. Defaults to v2
.
-
-
-
-clientId
-string
-Required . Your application client ID can be found under the Basic Information section of your application on api.slack.com/apps .
-
-
-
-clientOptions
-Omit<WebClientOptions, 'logLevel' | 'logger'>
-An object adhering to the @slack/web-api WebClientOptions
interface, which can be used to customize the API client interacting with Slack's APIs under the hood in this package.
-
-
-
-clientSecret
-string
-Required . Your application client secret can be found under the Basic Information section of your application on api.slack.com/apps .
-
-
-
-directInstall
-boolean
-If true
, the install path web page rendering will be skipped and instead the user will be immediately redirected to the slack.com entry point for the OAuth process. Defaults to false
.
-
-
-
-installationStore
-InstallationStore
-An object adhering to the InstallationStore
interface. Used to specify how application installation details like access token should be stored. Defaults to an instance of MemoryInstallationStore
.
-
-
-
-installUrlOptions
-InstallURLOptions
-An object adhering to the InstallURLOptions
interface. Used to specify what permissions (scopes) the application should ask for, metadata to pass during the OAuth flow and override redirect URIs.
-
-
-
-legacyStateVerification
-boolean
-Whether to skip checking browser cookies for state
OAuth parameter verification. Defaults to false
. Enabling this option is not recommended! This is intended to be used only for backwards-compatibility with versions 2.4 and older.
-
-
-
-logger
-Logger
-An object adhering to the Logger
interface. Used to specify how the application will log events.
-
-
-
-logLevel
-LogLevel
-An object adhering to the LogLevel
enum. Used to specify how verbosely the application should log. Defaults to INFO
.
-
-
-
-stateCookieExpirationSeconds
-number
-The expiration time in seconds for the state
parameter used during the OAuth process. It defines an expiration time for the cookie used to store the state. Defaults to 600
.
-
-
-
-stateCookieName
-string
-The cookie name used to house the state
parameter during the OAuth process. Defaults to slack-app-oauth-state
.
-
-
-
-stateSecret
-string
-A secret value used for generating the state
parameter used during the OAuth process (to prevent CSRF).
-
-
-
-stateStore
-StateStore
-An object adhering to the StateStore
interface. Stores state issued to the authorization server and verified the value returned at redirection during the OAuth flow (to prevent CSRF). Defaults to ClearStateStore
.
-
-
-
-stateVerification
-boolean
-Whether to enable verifying the state
OAuth parameter. Defaults to true
.
-
-
-
-
-InstallURLOptions
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-metadata
-string
-
-
-
-redirectUri
-string
-
-
-
-scopes
-string | string[]
-
-
-
-teamId
-string
-
-
-
-userScopes
-string | string[]
-
-
-
-
-OrgInstallation
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-appId
-string | undefined
-
-
-
-bot
-object
-
-
-
-enterprise
-object
-
-
-
-incomingWebhook
-object
-
-
-
-tokenType
-string
-
-
-
-user
-object
-
-
-
-
-StateStore
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-generateStateParam
-(installOptions: InstallURLOptions , now: Date) => Promise<string>
-
-
-
-verifyStateParam
-(now: Date, state: string) => Promise<InstallURLOptions >
-
-
-
-
diff --git a/docs/_reference/rtm-api.md b/docs/_reference/rtm-api.md
deleted file mode 100644
index 980069cc4..000000000
--- a/docs/_reference/rtm-api.md
+++ /dev/null
@@ -1,585 +0,0 @@
----
-title: "@slack/rtm-api"
-slug: rtm-api
----
-
-Classes
-RTMClient
-An RTMClient allows programs to communicate with the Slack Platform's RTM API . This object uses the EventEmitter pattern to dispatch incoming events and has several methods for sending outgoing messages.
-new RTMClient(token, opts)
-Constructs a new instance of the RTMClient
class
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-
-token
-string
-✓
-
-
-
-opts
-RTMClientOptions
-✗
-
-
-
-webClient
-WebClient
-✗
-An optional parameter to provide a customized WebClient . Any desired options for the custom client must be set in this parameter (webClient
) as they will take precedence over other arguments passed into RTMClient
.
-
-
-
-
-Options:
-
-
-
-Name
-Type
-
-
-
-
-
-agent
-Agent
-
-
-
-autoReconnect
-boolean
-
-
-
-clientPingTimeout
-number
-
-
-
-logger
-Logger
-
-
-
-logLevel
-LogLevel
-
-
-
-replyAckOnReconnectTimeout
-number
-
-
-
-retryConfig
-RetryOptions
-
-
-
-serverPongTimeout
-number
-
-
-
-slackApiUrl
-string
-
-
-
-tls
-TLSOptions
-
-
-
-useRtmConnect
-boolean
-
-
-
-
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-activeTeamId
-string
-The team ID for the workspace the client is connected to.
-
-
-activeUserId
-string
-The user ID for the connected client.
-
-
-authenticated
-boolean
-Whether or not the client has authenticated to the RTM API. This occurs when the connect method completes, and a WebSocket URL is available for the client's connection.
-
-
-connected
-boolean
-Whether or not the client is currently connected to the RTM API
-
-
-
-Methods
-addOutgoingEvent(awaitReply, type, body)
-Generic method for sending an outgoing message of an arbitrary type. This method guards the higher-level methods from concern of which state the client is in, because it places all messages into a queue. The tasks on the queue will buffer until the client is in a state where they can be sent.
-If the awaitReply parameter is set to true, then the returned Promise is resolved with the platform's acknowledgement response. Not all message types will result in an acknowledgement response, so use this carefully. This promise may be rejected with an error containing code=RTMNoReplyReceivedError if the client disconnects or reconnects before receiving the acknowledgement response.
-If the awaitReply parameter is set to false, then the returned Promise is resolved as soon as the message is sent from the websocket.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-awaitReply
-true
-✓
-whether to wait for an acknowledgement response from the platform before resolving the returned Promise.
-
-
-type
-string
-✓
-the message type
-
-
-body
-object
-✗
-the message body
-
-
-
-Returns Promise<RTMCallResult >
-addOutgoingEvent(awaitReply, type, body)
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-awaitReply
-false
-✓
-
-
-
-type
-string
-✓
-
-
-
-body
-object
-✗
-
-
-
-
-Returns Promise<void>
-disconnect()
-End an RTM session. After this method is called no messages will be sent or received unless you call start() again later.
-Returns Promise<void>
-send(type, body)
-Generic method for sending an outgoing message of an arbitrary type. The main difference between this method and addOutgoingEvent() is that this method does not use a queue so it can only be used while the client is ready to send messages (in the 'ready' substate of the 'connected' state). It returns a Promise for the message ID of the sent message. This is an internal ID and generally shouldn't be used as an identifier for messages (for that, there is ts
on messages once the server acknowledges it).
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-type
-string
-✓
-the message type
-
-
-body
-object
-✗
-the message body
-
-
-
-Returns Promise<number>
-sendMessage(text, conversationId)
-Send a simple message to a public channel, private channel, DM, or MPDM.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-text
-string
-✓
-The message text.
-
-
-conversationId
-string
-✓
-A conversation ID for the destination of this message.
-
-
-
-Returns Promise<RTMCallResult >
-sendTyping(conversationId)
-Sends a typing indicator to indicate that the user with activeUserId
is typing.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-conversationId
-string
-✓
-The destination for where the typing indicator should be shown.
-
-
-
-Returns Promise<void>
-start(options)
-Begin an RTM session using the provided options. This method must be called before any messages can be sent or received.
-Parameters:
-
-Returns Promise<WebAPICallResult>
-subscribePresence(userIds)
-Subscribes this client to presence changes for only the given userIds
.
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-userIds
-string[]
-✓
-An array of user IDs whose presence you are interested in. This list will replace the list from any previous calls to this method.
-
-
-
-Returns Promise<void>
-Enums
-ErrorCode
-A dictionary of codes for errors produced by this package
-Members
-
-KeepAliveClientNotConnected
-KeepAliveConfigError
-KeepAliveInconsistentState
-NoReplyReceivedError
-SendMessagePlatformError
-SendWhileDisconnectedError
-SendWhileNotReadyError
-WebsocketError
-
-Interfaces
-CodedError
-All errors produced by this package adhere to this interface
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode
-
-
-
-
-RTMCallResult
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-error
-object
-
-
-
-reply_to
-number
-
-
-
-ts
-string
-
-
-
-
-RTMClientOptions
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-agent
-Agent
-
-
-
-autoReconnect
-boolean
-
-
-
-clientPingTimeout
-number
-
-
-
-logger
-Logger
-
-
-
-logLevel
-LogLevel
-
-
-
-replyAckOnReconnectTimeout
-number
-
-
-
-retryConfig
-RetryOptions
-
-
-
-serverPongTimeout
-number
-
-
-
-slackApiUrl
-string
-
-
-
-tls
-TLSOptions
-
-
-
-useRtmConnect
-boolean
-
-
-
-
-RTMNoReplyReceivedError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.NoReplyReceivedError
-
-
-
-
-
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.SendMessagePlatformError
-
-
-
-data
-RTMCallResult
-
-
-
-
-RTMSendWhileDisconnectedError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.SendWhileDisconnectedError
-
-
-
-
-RTMSendWhileNotReadyError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.SendWhileNotReadyError
-
-
-
-
-RTMWebsocketError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.WebsocketError
-
-
-
-original
-Error
-
-
-
-
-Type Aliases
-RTMCallError
-RTMWebsocketError | RTMNoReplyReceivedError | RTMSendWhileDisconnectedError | RTMSendWhileNotReadyError
-
-One of:
-
-RTMStartOptions
-RTMStartArguments
-
-One of:
-
\ No newline at end of file
diff --git a/docs/_reference/types.md b/docs/_reference/types.md
deleted file mode 100644
index 7d124c6b0..000000000
--- a/docs/_reference/types.md
+++ /dev/null
@@ -1,1518 +0,0 @@
----
-title: "@slack/types"
-slug: types
----
-
-Interfaces
-Action
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-action_id
-string
-
-
-
-type
-string
-
-
-
-
-ActionsBlock
-Fields
-
-AttachmentAction
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirmation
-
-
-
-data_source
-'static' | 'channels' | 'conversations' | 'users' | 'external'
-
-
-
-id
-string
-
-
-
-min_query_length
-number
-
-
-
-name
-string
-
-
-
-option_groups
-object
-
-
-
-options
-OptionField []
-
-
-
-selected_options
-OptionField []
-
-
-
-style
-'default' | 'primary' | 'danger'
-
-
-
-text
-string
-
-
-
-type
-'button' | 'select'
-
-
-
-url
-string
-
-
-
-value
-string
-
-
-
-
-Block
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-block_id
-string
-
-
-
-type
-string
-
-
-
-
-
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-style
-'danger' | 'primary'
-
-
-
-text
-PlainTextElement
-
-
-
-type
-'button'
-
-
-
-url
-string
-
-
-
-value
-string
-
-
-
-
-CallUserExternal
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-avatar_url
-string
-
-
-
-display_name
-string
-
-
-
-external_id
-string
-
-
-
-
-CallUserSlack
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-slack_id
-string
-
-
-
-
-ChannelsSelect
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_channel
-string
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'channels_select'
-
-
-
-
-Checkboxes
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_options
-Option[]
-
-
-
-options
-Option[]
-
-
-
-type
-'checkboxes'
-
-
-
-
-Confirm
-Fields
-
-Confirmation
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-dismiss_text
-string
-
-
-
-ok_text
-string
-
-
-
-text
-string
-
-
-
-title
-string
-
-
-
-
-ContextBlock
-Fields
-
-ConversationsSelect
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-default_to_current_conversation
-boolean
-
-
-
-filter
-object
-
-
-
-initial_conversation
-string
-
-
-
-placeholder
-PlainTextElement
-
-
-
-response_url_enabled
-boolean
-
-
-
-type
-'conversations_select'
-
-
-
-
-Datepicker
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_date
-string
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'datepicker'
-
-
-
-
-Dialog
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-callback_id
-string
-
-
-
-elements
-object
-
-
-
-notify_on_cancel
-boolean
-
-
-
-state
-string
-
-
-
-submit_label
-string
-
-
-
-title
-string
-
-
-
-
-DividerBlock
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-type
-'divider'
-
-
-
-
-ExternalSelect
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_option
-Option
-
-
-
-min_query_length
-number
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'external_select'
-
-
-
-
-FileBlock
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-external_id
-string
-
-
-
-source
-string
-
-
-
-type
-'file'
-
-
-
-
-
-Fields
-
-ImageBlock
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-alt_text
-string
-
-
-
-image_url
-string
-
-
-
-title
-PlainTextElement
-
-
-
-type
-'image'
-
-
-
-
-ImageElement
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-alt_text
-string
-
-
-
-image_url
-string
-
-
-
-type
-'image'
-
-
-
-
-
-Fields
-
-LinkUnfurls
-MessageAttachment
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-actions
-AttachmentAction []
-
-
-
-author_icon
-string
-
-
-
-author_link
-string
-
-
-
-author_name
-string
-
-
-
-blocks
-(KnownBlock | Block )[]
-
-
-
-callback_id
-string
-
-
-
-color
-'good' | 'warning' | 'danger' | string
-
-
-
-fallback
-string
-
-
-
-fields
-object
-
-
-
-footer_icon
-string
-
-
-
-footer
-string
-
-
-
-image_url
-string
-
-
-
-mrkdwn_in
-('pretext' | 'text' | 'fields')[]
-
-
-
-pretext
-string
-
-
-
-text
-string
-
-
-
-thumb_url
-string
-
-
-
-title_link
-string
-
-
-
-title
-string
-
-
-
-ts
-string
-
-
-
-
-MrkdwnElement
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-text
-string
-
-
-
-type
-'mrkdwn'
-
-
-
-verbatim
-boolean
-
-
-
-
-MultiChannelsSelect
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_channels
-string[]
-
-
-
-max_selected_items
-number
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'multi_channels_select'
-
-
-
-
-MultiConversationsSelect
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-default_to_current_conversation
-boolean
-
-
-
-filter
-object
-
-
-
-initial_conversations
-string[]
-
-
-
-max_selected_items
-number
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'multi_conversations_select'
-
-
-
-
-MultiExternalSelect
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_options
-Option[]
-
-
-
-max_selected_items
-number
-
-
-
-min_query_length
-number
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'multi_external_select'
-
-
-
-
-MultiStaticSelect
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_options
-Option[]
-
-
-
-max_selected_items
-number
-
-
-
-option_groups
-object
-
-
-
-options
-Option[]
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'multi_static_select'
-
-
-
-
-
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_users
-string[]
-
-
-
-max_selected_items
-number
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'multi_users_select'
-
-
-
-
-Option_2
-Fields
-
-OptionField
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-description
-string
-
-
-
-text
-string
-
-
-
-value
-string
-
-
-
-
-Overflow
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-options
-Option[]
-
-
-
-type
-'overflow'
-
-
-
-
-PlainTextElement
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-emoji
-boolean
-
-
-
-text
-string
-
-
-
-type
-'plain_text'
-
-
-
-
-PlainTextInput
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-initial_value
-string
-
-
-
-max_length
-number
-
-
-
-min_length
-number
-
-
-
-multiline
-boolean
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'plain_text_input'
-
-
-
-
-
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_option
-Option
-
-
-
-options
-Option[]
-
-
-
-type
-'radio_buttons'
-
-
-
-
-SectionBlock
-Fields
-
-SelectOption
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-label
-string
-
-
-
-value
-string
-
-
-
-
-StaticSelect
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_option
-Option
-
-
-
-option_groups
-object
-
-
-
-options
-Option[]
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'static_select'
-
-
-
-
-
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-confirm
-Confirm
-
-
-
-initial_user
-string
-
-
-
-placeholder
-PlainTextElement
-
-
-
-type
-'users_select'
-
-
-
-
-View
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-blocks
-(KnownBlock | Block )[]
-
-
-
-callback_id
-string
-
-
-
-clear_on_close
-boolean
-
-
-
-close
-PlainTextElement
-
-
-
-external_id
-string
-
-
-
-notify_on_close
-boolean
-
-
-
-private_metadata
-string
-
-
-
-submit_disabled
-boolean
-
-
-
-submit
-PlainTextElement
-
-
-
-title
-PlainTextElement
-
-
-
-type
-'home' | 'modal' | 'workflow_step'
-
-
-
-
-Type Aliases
-CallUser
-CallUserExternal
-
-One of:
-
-KnownBlock
-ContextBlock | ActionsBlock | DividerBlock | SectionBlock | InputBlock | FileBlock | HeaderBlock
-
-One of:
-
-MultiSelect
-MultiStaticSelect | MultiConversationsSelect | MultiChannelsSelect | MultiExternalSelect
-
-One of:
-
-Select
-StaticSelect | ConversationsSelect | ChannelsSelect | ExternalSelect
-
-One of:
-
\ No newline at end of file
diff --git a/docs/_reference/web-api.md b/docs/_reference/web-api.md
deleted file mode 100644
index dc3571c3a..000000000
--- a/docs/_reference/web-api.md
+++ /dev/null
@@ -1,664 +0,0 @@
----
-title: "@slack/web-api"
-slug: web-api
----
-
-Classes
-WebClient
-A client for Slack's Web API
-This client provides an alias for each Web API method . Each method is a convenience wrapper for calling the apiCall
method using the method name as the first parameter.
-new WebClient(token, opts)
-Constructs a new instance of the WebClient
class
-Parameters:
-
-Options:
-
-
-
-Name
-Type
-
-
-
-
-
-agent
-Agent
-
-
-
-headers
-object
-
-
-
-logger
-Logger
-
-
-
-logLevel
-LogLevel
-
-
-
-maxRequestConcurrency
-number
-
-
-
-rejectRateLimitedCalls
-boolean
-
-
-
-retryConfig
-RetryOptions
-
-
-
-slackApiUrl
-string
-
-
-
-tls
-TLSOptions
-
-
-
-
-Fields
-
-
-
-Name
-Type
-Description
-
-
-
-
-slackApiUrl
-string
-The base URL for reaching Slack's Web API. Consider changing this value for testing purposes.
-
-
-token
-string
-An API token to authenticate/authorize with Slack (usually start with xoxp
, xoxb
). To learn how to get an access token, check out our Authentication Basics documentation , and in particular the Getting your access token section .
-
-
-
-Methods
-apiCall(method, options)
-Generic method for calling a Web API method
-Parameters:
-
-Returns Promise<WebAPICallResult >
-paginate(method, options)
-Iterate over the result pages of a cursor-paginated Web API method. This method can return two types of values, depending on which arguments are used. When up to two parameters are used, the return value is an async iterator which can be used as the iterable in a for-await-of loop. When three or four parameters are used, the return value is a promise that resolves at the end of iteration. The third parameter, shouldStop
, is a function that is called with each page
and can end iteration by returning true
. The fourth parameter, reduce
, is a function that is called with three arguments: accumulator
, page
, and index
. The accumulator
is a value of any type you choose, but it will contain undefined
when reduce
is called for the first time. The page
argument and index
arguments are exactly what they say they are. The reduce
function's return value will be passed in as accumulator
the next time its called, and the returned promise will resolve to the last value of accumulator
.
-The for-await-of syntax is part of ES2018. It is available natively in Node starting with v10.0.0. You may be able to use it in earlier JavaScript runtimes by transpiling your source with a tool like Babel. However, the transpiled code will likely sacrifice performance.
-Parameters:
-
-Returns AsyncIterable<WebAPICallResult >
-paginate(method, options, shouldStop)
-Parameters:
-
-Returns Promise<void>
-paginate(method, options, shouldStop, reduce)
-Parameters:
-
-Returns Promise<A>
-Functions
-
-Appends the app metadata into the User-Agent value
-Parameters:
-
-
-
-Name
-Type
-Required
-
-
-
-
-
-{ name, version }
-object
-✓
-
-
-
-
-Returns void
-Enums
-ErrorCode
-A dictionary of codes for errors produced by this package
-Members
-
-HTTPError
-PlatformError
-RateLimitedError
-RequestError
-
-WebClientEvent
-Members
-
-Interfaces
-CodedError
-All errors produced by this package adhere to this interface
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode
-
-
-
-
-
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-cursor
-string
-
-
-
-limit
-number
-
-
-
-
-LocaleAware
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-include_locale
-boolean
-
-
-
-
-Method
-Generic method definition
-
-PaginatePredicate
-RetryOptions
-Options to create retry policies. Extends from https://github.com/tim-kos/node-retry.
-Searchable
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-highlight
-boolean
-
-
-
-query
-string
-
-
-
-sort_dir
-'asc' | 'desc'
-
-
-
-sort
-'score' | 'timestamp'
-
-
-
-
-
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-inclusive
-boolean
-
-
-
-latest
-string
-
-
-
-oldest
-string
-
-
-
-
-TokenOverridable
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-token
-string
-
-
-
-
-TraditionalPagingEnabled
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-count
-number
-
-
-
-page
-number
-
-
-
-
-WebAPICallOptions
-WebAPICallResult
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-error
-string
-
-
-
-ok
-boolean
-
-
-
-response_metadata
-object
-
-
-
-
-WebAPIHTTPError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-body
-any
-
-
-
-code
-ErrorCode.HTTPError
-
-
-
-headers
-IncomingHttpHeaders
-
-
-
-statusCode
-number
-
-
-
-statusMessage
-string
-
-
-
-
-
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.PlatformError
-
-
-
-data
-WebAPICallResult & {
-error: string;
-}
-
-
-
-
-WebAPIRateLimitedError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.RateLimitedError
-
-
-
-retryAfter
-number
-
-
-
-
-WebAPIRequestError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.RequestError
-
-
-
-original
-Error
-
-
-
-
-WebClientOptions
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-agent
-Agent
-
-
-
-headers
-object
-
-
-
-logger
-Logger
-
-
-
-logLevel
-LogLevel
-
-
-
-maxRequestConcurrency
-number
-
-
-
-rejectRateLimitedCalls
-boolean
-
-
-
-retryConfig
-RetryOptions
-
-
-
-slackApiUrl
-string
-
-
-
-tls
-TLSOptions
-
-
-
-
-Type Aliases
-PageAccumulator
-R extends (accumulator: (infer A) | undefined, page: WebAPICallResult, index: number) => infer A ? A : never
-
-TLSOptions
-SecureContextOptions, 'pfx' | 'key' | 'passphrase' | 'cert' | 'ca'>
-
-WebAPICallError
-WebAPIRequestError | WebAPIHTTPError | WebAPIRateLimitedError
-
-One of:
-
diff --git a/docs/_reference/webhook.md b/docs/_reference/webhook.md
deleted file mode 100644
index 2693aaac2..000000000
--- a/docs/_reference/webhook.md
+++ /dev/null
@@ -1,239 +0,0 @@
----
-title: "@slack/webhook"
-slug: webhook
----
-
-Classes
-IncomingWebhook
-A client for Slack's Incoming Webhooks
-new IncomingWebhook(url, defaults)
-Constructs a new instance of the IncomingWebhook
class
-Parameters:
-
-Methods
-send(message)
-Send a notification to a conversation
-Parameters:
-
-
-
-Name
-Type
-Required
-Description
-
-
-
-
-message
-string | IncomingWebhookSendArguments
-✓
-the message (a simple string, or an object describing the message)
-
-
-
-Returns Promise<IncomingWebhookResult >
-Enums
-ErrorCode
-A dictionary of codes for errors produced by this package
-Members
-
-HTTPError
-RequestError
-
-Interfaces
-CodedError
-All errors produced by this package adhere to this interface
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode
-
-
-
-
-IncomingWebhookDefaultArguments
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-agent
-Agent
-
-
-
-channel
-string
-
-
-
-icon_emoji
-string
-
-
-
-icon_url
-string
-
-
-
-link_names
-boolean
-
-
-
-text
-string
-
-
-
-username
-string
-
-
-
-
-IncomingWebhookHTTPError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.HTTPError
-
-
-
-original
-Error
-
-
-
-
-IncomingWebhookRequestError
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-code
-ErrorCode.RequestError
-
-
-
-original
-Error
-
-
-
-
-IncomingWebhookResult
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-text
-string
-
-
-
-
-IncomingWebhookSendArguments
-Fields
-
-
-
-Name
-Type
-
-
-
-
-
-attachments
-MessageAttachment[]
-
-
-
-blocks
-(KnownBlock | Block)[]
-
-
-
-unfurl_links
-boolean
-
-
-
-unfurl_media
-boolean
-
-
-
-
-Type Aliases
-IncomingWebhookSendError
-IncomingWebhookHTTPError
-
-One of:
-
\ No newline at end of file
diff --git a/docs/babel.config.js b/docs/babel.config.js
new file mode 100644
index 000000000..e00595dae
--- /dev/null
+++ b/docs/babel.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
+};
diff --git a/docs/_main/getting_started.md b/docs/content/getting-started.md
similarity index 82%
rename from docs/_main/getting_started.md
rename to docs/content/getting-started.md
index 0017e6cbf..f8f1a3e9e 100644
--- a/docs/_main/getting_started.md
+++ b/docs/content/getting-started.md
@@ -1,8 +1,5 @@
---
title: Getting Started
-permalink: /getting-started
-redirect_from: /getting_started
-order: 1
---
This tutorial will show you how to use the packages in this Node Slack SDK to get a simple Slack app running. If you've
@@ -12,14 +9,14 @@ never used the Slack APIs before, you're in the right place. Welcome, and let's
The first step is to [create a new app](https://api.slack.com/apps?new_granular_bot_app=1) with Slack at the API website. Give your app a
fun name and choose a Development Slack Workspace. We recommend using a workspace where you aren't going to disrupt real
-work getting done -- you can create a new one for free. After you create an app, you'll be greeted with some basic information.
+work getting done — you can create a new one for free. After you create an app, you'll be greeted with some basic information.
In this guide we'll be **calling a method of Web API** to post a message to a channel. The Web API is the foundation of
the Slack Platform, and almost every Slack app uses it. Aside from posting messages, the Web API allows your app to call
[methods](https://api.slack.com/methods) that can be used for everything from creating a channel to updating a user's
status. Before we can call any methods, we need to configure our new app with the proper permissions.
-## Getting a token to use the Web API
+## Get a token to use the Web API
Navigate to **OAuth & Permissions** and scroll down to the section for scopes. Slack describes the various permissions
your app could obtain from an installing bot as **scopes**. There are [over 80 scopes](https://api.slack.com/scopes)!
@@ -73,7 +70,7 @@ Getting started with Node Slack SDK
If you see the same output as above, we're ready to start.
-## Sending a message with the Web API
+## Send a message with the Web API
In this guide we'll post a simple message that contains the current time. We'll also follow the best practice of keeping
secrets outside of your code (do not hardcode sensitive data).
@@ -130,23 +127,14 @@ Look inside Slack to verify a message was sent to `#general`.
## Next Steps
-You just built your first Slack app with Node.js! 🎉💃🌮
+You just built your first Slack app with Node.js! 🎉
-There's plenty more to learn and explore about this SDK and the Slack platform. Here are some ideas about where to
-look next:
+There's plenty more to learn and explore about the Node Slack SDK and the Slack platform. Here are some ideas about where to look next:
-* Dive into the [`@slack/events-api`](https://slack.dev/node-slack-sdk/events-api) package to learn how your app can
- listen for events happening inside Slack. You'll need a URL where your app can receive events, and the [local
- development tutorial](https://slack.dev/node-slack-sdk/tutorials/local-development) can help you set one up.
-
-* This tutorial only used two of **over 130 Web API methods** available. [Look through
+* This tutorial only used two of **over 200 Web API methods** available. [Look through
them](https://api.slack.com/methods) to get ideas about what to build next!
-* Tokens are an important part of using the Slack platform. New apps are recommended to start with a Bot User, which
- allows the app to use a bot token. Learn about the [different types of
- tokens](https://api.slack.com/docs/token-types).
-
-* You now know how to build a Slack app for a single workspace, [learn how to implement Slack"
- OAuth](https://api.slack.com/authentication/oauth-v2) to make your app installable in many workspaces. If you are using
+* You now know how to build a Slack app for a single workspace, [learn how to implement Slack
+OAuth](https://api.slack.com/authentication/oauth-v2) to make your app installable in many workspaces. If you are using
[Passport](http://www.passportjs.org/) to handle authentication, you may find the
[`@aoberoi/passport-slack`](https://github.com/aoberoi/passport-slack) strategy package helpful.
diff --git a/docs/content/index.md b/docs/content/index.md
new file mode 100644
index 000000000..26b51e900
--- /dev/null
+++ b/docs/content/index.md
@@ -0,0 +1,62 @@
+---
+title: Node Slack SDK
+slug: /
+---
+
+The Node Slack SDK is a collection of single-purpose packages aimed at making building Slack apps performant, secure, and scalable.
+
+**Just starting out?** The [Getting Started tutorial](/getting-started) will walk you through building your first Slack app using Node.js.
+
+## Slack APIs
+
+The Node Slack SDK has corresponding packages for Slack APIs. They are small and powerful when used independently, and work seamlessly when used together, too.
+
+| Slack API | Use | NPM package |
+|--------------|--------------|-------------------|
+| Web API | Send data to or query data from Slack using any of [over 200 methods](https://api.slack.com/methods). | [`@slack/web-api`](https://slack.dev/node-slack-sdk/web-api) |
+| OAuth | Set up the authentication flow using V2 OAuth for Slack apps as well as V1 OAuth for classic Slack apps. | [`@slack/oauth`](https://slack.dev/node-slack-sdk/oauth) |
+| Incoming Webhooks | Send notifications to a single channel which the user picks on installation. | [`@slack/webhook`](https://slack.dev/node-slack-sdk/webhook) |
+| Socket Mode | Listen for incoming messages and a limited set of events happening in Slack, using WebSocket. | [`@slack/socket-mode`](https://slack.dev/node-slack-sdk/socket-mode) |
+
+:::warning[Deprecation Notice]
+
+`@slack/events-api` and `@slack/interactive-messages` officially reached EOL on May 31st, 2021. Development has fully stopped for these packages and all remaining open issues and pull requests have been closed.
+
+At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more). To help with that process, we've provided some [migration samples](/tutorials/migrating-to-v6) for those looking to convert their existing apps.
+
+:::
+
+## Installation
+
+This package supports Node v14 and higher. It's highly recommended to use [the latest LTS version of
+node](https://github.com/nodejs/Release#release-schedule), and the documentation is written using syntax and features from that version.
+
+Use your favorite package manager to install any of the packages and save to your `package.json`:
+
+You can use `npm`:
+
+```shell
+$ npm install @slack/web-api @slack/oauth
+```
+
+Or you can use `yarn`:
+
+```shell
+$ yarn add @slack/web-api @slack/oauth
+```
+
+## Getting help
+
+These docs have lots of information on the Node Slack SDK. There's also an in-depth Reference section. Please explore!
+
+If you otherwise get stuck, we're here to help. The following are the best ways to get assistance working through your issue:
+
+* [Issue Tracker](http://github.com/slackapi/node-slack-sdk/issues) for questions, bug reports, feature requests, and general discussion related to the Node Slack SDK. Try searching for an existing issue before creating a new one.
+* [Email](mailto:support@slack.com) our developer support team: `support@slack.com`.
+
+## Contributing
+
+These docs live within the [Node Slack SDK](https://github.com/slackapi/node-slack-sdk) repository and are open source.
+
+We welcome contributions from everyone! Please check out our
+[Contributor's Guide](https://github.com/slackapi/node-slack-sdk/blob/main/.github/contributing.md) for how to contribute in a helpful and collaborative way.
diff --git a/docs/_packages/events_api.md b/docs/content/packages/events-api.md
similarity index 96%
rename from docs/_packages/events_api.md
rename to docs/content/packages/events-api.md
index dd5fe5040..28e226d91 100644
--- a/docs/_packages/events_api.md
+++ b/docs/content/packages/events-api.md
@@ -1,19 +1,19 @@
---
title: Events API
-permalink: /events-api
-order: 2
-anchor_links_header: Usage
+slug: /events-api
---
-The `@slack/events-api` package helps your app respond to events from Slack's [Events API](https://api.slack.com/events-api)
-such as new messages, emoji reactions, files, and much more. This package will help you start with convenient and secure
-defaults.
-
-### **Deprecation Notice**
+:::warning[Deprecation Notice]
_`@slack/events-api` officially reached EOL on May 31st, 2021. Development has fully stopped for this package and all remaining open issues and pull requests have been closed._
-_At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more). To help with that process, we've provided some [migration samples](https://slack.dev/node-slack-sdk/tutorials/migrating-to-v6) for those looking to convert their existing apps._
+_At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more). To help with that process, we've provided some [migration samples](/tutorials/migrating-to-v6) for those looking to convert their existing apps._
+
+:::
+
+The `@slack/events-api` package helps your app respond to events from Slack's [Events API](https://api.slack.com/events-api)
+such as new messages, emoji reactions, and files. This package will help you start with convenient and secure
+defaults.
## Installation
@@ -26,7 +26,7 @@ development workspace. You'll also **need a public URL** where the app can begin
to find the **request signing secret** given to you by Slack under the "Basic Information" of your app configuration.
It may be helpful to read the tutorial on [developing Slack apps
-locally](https://slack.dev/node-slack-sdk/tutorials/local-development). After you have a URL for development, see the
+locally](/tutorials/local-development). After you have a URL for development, see the
section on [verifying a request URL for development](#verify-tool) so you can save it as the Request URL in your app
configuration. Now you can begin adding event subscriptions, just be sure to install the app in your development
workspace again each time you add new scopes (typically whenever you add new event subscriptions).
@@ -84,8 +84,8 @@ const port = process.env.PORT || 3000;
when the server is no longer listening.
-
-Using an existing HTTP server
+
+Using an existing HTTP server
The event adapter can receive requests from an existing Node HTTP server. You still need to specify a port, but this
@@ -113,8 +113,8 @@ server.listen(port, () => {
-
-Using an Express app
+
+Using an Express app
The event adapter can receive requests from an [Express](http://expressjs.com/) application. Instead of plugging the
diff --git a/docs/_packages/interactive_messages.md b/docs/content/packages/interactive-messages.md
similarity index 98%
rename from docs/_packages/interactive_messages.md
rename to docs/content/packages/interactive-messages.md
index e90be4da0..538c7b150 100644
--- a/docs/_packages/interactive_messages.md
+++ b/docs/content/packages/interactive-messages.md
@@ -1,19 +1,20 @@
---
title: Interactive Messages
-permalink: /interactive-messages
-order: 3
+slug: /interactive-messages
---
# Slack Interactive Messages for Node
-The `@slack/interactive-messages` helps your app respond to interactions from Slack's
-[interactive messages](https://api.slack.com/messaging/interactivity), [actions](https://api.slack.com/actions), and [dialogs](https://api.slack.com/dialogs). This package will help you start with convenient and secure defaults.
-
-### **Deprecation Notice**
+:::warning[Deprecation notice]
_`@slack/interactive-messages` officially reached EOL on May 31st, 2021. Development has fully stopped for this package and all remaining open issues and pull requests have been closed._
-_At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more). To help with that process, we've provided some [migration samples](https://slack.dev/node-slack-sdk/tutorials/migrating-to-v6) for those looking to convert their existing apps._
+_At this time, we recommend migrating to [Bolt for JavaScript](https://github.com/slackapi/bolt-js), a framework that offers all of the functionality available in those packages (and more). To help with that process, we've provided some [migration samples](/tutorials/migrating-to-v6) for those looking to convert their existing apps._
+
+:::
+
+The `@slack/interactive-messages` helps your app respond to interactions from Slack's
+[interactive messages](https://api.slack.com/messaging/interactivity), [actions](https://api.slack.com/actions), and [dialogs](https://api.slack.com/dialogs). This package will help you start with convenient and secure defaults.
## Installation
@@ -26,7 +27,7 @@ development workspace. You'll also **need a public URL** where the app can begin
to find the **request signing secret** given to you by Slack under the "Basic Information" of your app configuration.
It may be helpful to read the tutorial on [developing Slack apps
-locally](https://slack.dev/node-slack-sdk/tutorials/local-development).
+locally](/tutorials/local-development).
---
@@ -81,8 +82,8 @@ const port = process.env.PORT || 3000;
when the server is no longer listening.
-
-Using an existing HTTP server
+
+Using an existing HTTP server
The message adapter can receive requests from an existing Node HTTP server. You still need to specify a port, but this
@@ -110,8 +111,8 @@ server.listen(port, () => {
-
-Using an Express app
+
+Using an Express app
The message adapter can receive requests from an [Express](http://expressjs.com/) application. Instead of plugging the
@@ -714,4 +715,4 @@ const slackInteractions = createMessageAdapter(slackSigningSecret, {
const server = await slackInteractions.start(port);
console.log(`Listening for events on ${server.address().port}`);
})();
-```
+```
\ No newline at end of file
diff --git a/docs/_packages/oauth.md b/docs/content/packages/oauth.md
similarity index 94%
rename from docs/_packages/oauth.md
rename to docs/content/packages/oauth.md
index 64b44817e..7358b4aee 100644
--- a/docs/_packages/oauth.md
+++ b/docs/content/packages/oauth.md
@@ -1,8 +1,6 @@
---
title: OAuth
-permalink: /oauth
-order: 4
-anchor_links_header: Usage
+slug: /oauth
---
# Slack OAuth
@@ -23,7 +21,7 @@ $ npm install @slack/oauth
Before building an app, you'll need to [create a Slack app](https://api.slack.com/apps/new) and install it to your development workspace. You'll also need to copy the **Client ID** and **Client Secret** given to you by Slack under the **Basic Information** of your app configuration.
-It may be helpful to read the tutorials on [getting started](https://slack.dev/node-slack-sdk/getting-started) and [getting a public URL that can be used for development](https://slack.dev/node-slack-sdk/tutorials/local-development).
+It may be helpful to read the tutorials on [getting started](/getting-started) and [getting a public URL that can be used for development](/tutorials/local-development).
---
@@ -43,8 +41,8 @@ const installer = new InstallProvider({
```
-
-Using a classic Slack app
+
+Using a classic Slack app
```javascript
@@ -100,8 +98,8 @@ const installer = new InstallProvider({
```
-
-Manually generating installation page URL and contents
+
+Manually generating installation page URL and contents
If you want to customize the installation page users will be shown, you may generate an installation URL dynamically and use the generated URL as part of the installation page displayed to the user.
@@ -155,8 +153,8 @@ server.listen(3000);
```
-
-Using an Express app
+
+Using an Express app
You can easily use `installer.handleCallback` within an Express app by setting up a route for the OAuth redirect.
@@ -222,8 +220,8 @@ server.listen(3000);
```
-
-Using custom success or failure handlers
+
+Using custom success or failure handlers
If you decide you need custom success or failure behaviors (ex: wanting to show a page on your site with instructions on how to use the app), you can pass in your own success/failure functions.
@@ -337,8 +335,8 @@ result = {
```
-
-Reading extended installation data
+
+Reading extended installation data
The `installer.authorize()` method only returns a subset of the installation data returned by the installation store. To fetch the entire saved installation, use the `installer.installationStore.fetchInstallation()` method.
@@ -427,8 +425,8 @@ const installer = new InstallProvider({
All the log levels, in order of most to least information are: `DEBUG`, `INFO`, `WARN`, and `ERROR`.
-
-Sending log output somewhere besides the console
+
+Sending log output somewhere besides the console
You can also choose to have logs sent to a custom logger using the `logger` option. A custom logger needs to implement
@@ -479,14 +477,4 @@ const installer = new InstallProvider({
This package supports Node v14 and higher. It's highly recommended to use [the latest LTS version of
node](https://github.com/nodejs/Release#release-schedule), and the documentation is written using syntax and features
-from that version.
-
-## Getting Help
-
-If you get stuck, we're here to help. The following are the best ways to get assistance working through your issue:
-
- * [Issue Tracker](http://github.com/slackapi/node-slack-sdk/issues) for questions, feature requests, bug reports and
- general discussion related to these packages. Try searching before you create a new issue.
- * [Email us](mailto:developers@slack.com) in Slack developer support: `developers@slack.com`
- * [Bot Developers Hangout](https://community.botkit.ai/): a Slack community for developers
- building all types of bots. You can find the maintainers and users of these packages in **#sdk-node-slack-sdk**.
+from that version.
\ No newline at end of file
diff --git a/docs/_packages/rtm_api.md b/docs/content/packages/rtm-api.md
similarity index 94%
rename from docs/_packages/rtm_api.md
rename to docs/content/packages/rtm-api.md
index 63c254dc9..ffc5e869a 100644
--- a/docs/_packages/rtm_api.md
+++ b/docs/content/packages/rtm-api.md
@@ -1,18 +1,18 @@
---
title: Real Time Messaging API
-permalink: /rtm-api
-redirect_from:
- - /bots
- - /rtm_api
-order: 5
+slug: /rtm-api
---
# Slack Real Time Messaging API
-The `@slack/rtm-api` package contains a simple, convenient, and configurable client for receiving events and sending simple messages to Slack's [Real Time Messaging API](https://api.slack.com/rtm). Use it in your
+The `@slack/rtm-api` package contains a configurable client for receiving events and sending simple messages to the Slack [Real Time Messaging API](https://api.slack.com/rtm). Use it in your
app to stay connected to the Slack platform over a persistent Websocket connection.
-**Note**: RTM isn't available for modern scoped apps anymore. We recommend using the [Events API](https://slack.dev/node-slack-sdk/events-api) and [Web API](https://slack.dev/node-slack-sdk/web-api) instead. If you need to use RTM (possibly due to corporate firewall limitations), you can do so by creating a [legacy scoped app](https://api.slack.com/apps?new_classic_app=1). If you have an existing RTM app, do not update its scopes as it will be updated to a modern scoped app and stop working with RTM.
+:::danger
+
+The RTM API isn't available for modern granular-permissions apps, and you can no longer create new legacy apps. We recommend using [Bolt for JavaScript](https://slack.dev/bolt-js). If you have an existing RTM app, do not update its scopes as it will be updated to a granular-permissions app and stop working with the RTM API.
+
+:::
## Installation
@@ -66,13 +66,13 @@ user ID and team ID, you can look those up any time the client is connected as t
`rtm.connected` property.
-
-Additional connection options
+
+Additional connection options
Options passed to the `.start()` method are passed through as arguments to the [`rtm.connect` Web API
method](https://api.slack.com/methods/rtm.connect). These arguments deal with presence, which is discussed in more
-detail [on the documentation website](https://slack.dev/node-slack-sdk/rtm-api#presence).
+detail [on the documentation website](/rtm-api#presence).
@@ -103,8 +103,8 @@ rtm.on('message', (event) => {
```
-
-Listen for message subtypes
+
+Listen for message subtypes
The `message` event type has a special property called `subtype` to help organize all the messages inside Slack. The
@@ -163,8 +163,8 @@ rtm.on('member_joined_channel', async (event) => {
```
-
-Send rich messages using the WebClient
+
+Send rich messages using the WebClient
The Web API's [`chat.postMessage` method](https://api.slack.com/methods/chat.postMessage) is capable of sending [rich
@@ -221,11 +221,11 @@ rtm.on('member_joined_channel', async (event) => {
-
-Send a typing indicator
+
+Send a typing indicator
-Over the RTM API, your bot user can appear to be typing in Slack before it sends a message ("{Bot Display Name} is
+Over the RTM API, your bot user can appear to be typing in Slack before it sends a message ("`{Bot Display Name}` is
typing" is shown near the text input). The client has a `.sendTyping(conversationId)` method to allow your bot to
trigger the typing indicator. The method returns a `Promise` that resolves when Slack has acknowledged the message. The
`Promise` doesn't have a resolved value.
@@ -333,8 +333,8 @@ rtm.on('member_joined_channel', async (event) => {
```
-
-More error types
+
+More error types
There are a few more types of errors that you might encounter, each with one of these `code`s:
@@ -375,8 +375,8 @@ const rtm = new RTMClient(token, {
All the log levels, in order of most to least information are: `DEBUG`, `INFO`, `WARN`, and `ERROR`.
-
-Sending log output somewhere besides the console
+
+Sending log output somewhere besides the console
You can also choose to have logs sent to a custom logger using the `logger` option. A custom logger needs to implement
@@ -430,7 +430,7 @@ previously, and you're trying to add subscriptions for new users, you should inc
to `.subscribePresence(userIds)` in the next call.
If instead of being informed when a user's presence changes (reactively), your app needs to know what the user's status
-is currently (proactively), then your app should use the [`WebClient`](https://slack.dev/node-slack-sdk/web-api)'s
+is currently (proactively), then your app should use the [`WebClient`](/web-api)'s
`users.getPresence` method. In general, its easier to deal with user presence proactively than to keep track of all the
changes to understand the current presence of a user.
@@ -480,8 +480,8 @@ rtm.on('presence_change', (event) => {
```
-
-Batch presence updates
+
+Batch presence updates
Your app can receive even more efficient presence updates, by batching many users' updates into the same event. The
@@ -673,7 +673,7 @@ const rtm = new RTMClient(token, { webClient });
The client can receive a snapshot of a portion of the workspace's state while its connecting. This can be useful if your
app needs to keep track of some data as it changes while the app runs, but it needs the initial start to get started.
However, **this can also cause the client to fail to connect on large teams**. Our recommendation is to call the [Web
-API](https://slack.dev/node-slack-sdk/web-api) to retrieve workspace state while your app is connecting, instead of
+API](/web-api) to retrieve workspace state while your app is connecting, instead of
relying on the cache. See [sending rich messages](#send-messages) for an example of using the `WebClient` class inside
your app, and use [some of the other methods](https://api.slack.com/methods) to get data.
@@ -696,4 +696,4 @@ rtm.on('authenticated', (snapshot) => {
(async () => {
await rtm.start();
})();
-```
+```
\ No newline at end of file
diff --git a/docs/_packages/socket_mode.md b/docs/content/packages/socket-mode.md
similarity index 89%
rename from docs/_packages/socket_mode.md
rename to docs/content/packages/socket-mode.md
index 2b1f19751..a7a3b31ff 100644
--- a/docs/_packages/socket_mode.md
+++ b/docs/content/packages/socket-mode.md
@@ -1,8 +1,6 @@
---
title: Socket Mode
-permalink: /socket-mode
-order: 7
-anchor_links_header: Usage
+slug: /socket-mode
---
# Slack Socket Mode
@@ -13,7 +11,7 @@ The following contain additional examples that may be useful for consumers.
## Listen for Interactivity Events
-To receive interactivity events such as shorcut invocations, button clicks, and modal data submission, your listener can subscribe to "interactive" events.
+To receive interactivity events such as shortcut invocations, button clicks, and modal data submission, your listener can subscribe to "interactive" events.
```javascript
const { WebClient } = require('@slack/web-api');
diff --git a/docs/_packages/web_api.md b/docs/content/packages/web-api.md
similarity index 97%
rename from docs/_packages/web_api.md
rename to docs/content/packages/web-api.md
index 271e182da..1e00d4a22 100644
--- a/docs/_packages/web_api.md
+++ b/docs/content/packages/web-api.md
@@ -1,11 +1,6 @@
---
title: Web API
-permalink: /web-api
-redirect_from:
- - /basic_usage
- - /web_api
-order: 1
-anchor_links_header: Usage
+slug: /web-api
---
@@ -57,8 +52,8 @@ const web = new WebClient(token);
```
-
-Initializing without a token
+
+Initializing without a token
Alternatively, you can create a client without a token, and use it with multiple workspaces as long as you supply a
@@ -111,14 +106,14 @@ const conversationId = '...';
**Hint**: If you're using an editor that supports TypeScript, even if you're not using TypeScript to write your code,
you'll get hints for all the arguments each method supports. This helps you save time by reducing the number of
times you need to pop out to a webpage to check the reference. There's more information about [using
-TypeScript](https://slack.dev/node-slack-sdk/typescript) with this package in the documentation website.
+TypeScript](/typescript) with this package in the documentation website.
**Note**: Use the [Block Kit Builder](https://api.slack.com/tools/block-kit-builder) for a playground
where you can prototype your message's look and feel.
-
-Using a dynamic method name
+
+Using a dynamic method name
If you want to provide the method name as a string, so that you can decide which method to call dynamically, or to call
@@ -173,8 +168,8 @@ const { WebClient, ErrorCode } = require('@slack/web-api');
```
-
-More error types
+
+More error types
There are a few more types of errors that you might encounter, each with one of these `code`s:
@@ -184,7 +179,7 @@ There are a few more types of errors that you might encounter, each with one of
* `ErrorCode.RateLimitedError`: The Web API cannot fulfill the API method call because your app has made too many
requests too quickly. This error has a `retryAfter` property with the number of seconds you should wait before trying
- again. See [the documentation on rate limit handling](https://slack.dev/node-slack-sdk/web-api#rate-limits) to
+ again. See [the documentation on rate limit handling](/web-api#rate-limits) to
understand how the client will automatically deal with these problems for you.
* `ErrorCode.HTTPError`: The HTTP response contained an unfamiliar status code. The Web API only responds with `200`
@@ -228,8 +223,8 @@ The `for await...of` syntax is available in Node v10.0.0 and above. If you're us
functional iteration below.
-
-Using functional iteration
+
+Using functional iteration
The `.paginate()` method can accept up to two additional parameters. The third parameter, `stopFn`, is a function that
@@ -312,8 +307,8 @@ const trigger = 'VALID_TRIGGER_ID';
```
-
-Dynamically updating a modal
+
+Dynamically updating a modal
After the modal is opened, you can update it dynamically by calling `views.update` with the view ID returned in the `views.open` result.
@@ -374,8 +369,8 @@ const web = new WebClient(token, {
All the log levels, in order of most to least information are: `DEBUG`, `INFO`, `WARN`, and `ERROR`.
-
-Sending log output somewhere besides the console
+
+Sending log output somewhere besides the console
You can also choose to have logs sent to a custom logger using the `logger` option. A custom logger needs to implement
@@ -842,6 +837,10 @@ The `@slack/web-api` package supports the following API methods which you can us
Here's a fully-functioning [sample application implementation](https://github.com/slackapi/node-slack-sdk/blob/main/examples/openid-connect) for your perusal!
-💡 To read more about how **Sign in with Slack** works, and to access helpful resources like a Sign in With Slack
+:::tip
+
+To read more about how **Sign in with Slack** works, and to access helpful resources like a Sign in With Slack
button generator and other design assets, check out: [Authentication: Sign in with Slack](https://api.slack.com/authentication/sign-in-with-slack)
documentation page.
+
+:::
diff --git a/docs/_packages/webhook.md b/docs/content/packages/webhook.md
similarity index 97%
rename from docs/_packages/webhook.md
rename to docs/content/packages/webhook.md
index ed612dc81..195570186 100644
--- a/docs/_packages/webhook.md
+++ b/docs/content/packages/webhook.md
@@ -1,9 +1,6 @@
---
title: Incoming Webhooks
permalink: /webhook
-redirect_from:
- - /incoming_webhook
-order: 6
---
# Slack Incoming Webhooks
@@ -43,8 +40,8 @@ const webhook = new IncomingWebhook(url);
```
-
-Setting default arguments
+
+Setting default arguments
The webhook can be initialized with default arguments that are reused each time a notification is sent. Use the second
diff --git a/docs/content/reference/events-api/classes/SlackEventAdapter.md b/docs/content/reference/events-api/classes/SlackEventAdapter.md
new file mode 100644
index 000000000..875f04cf0
--- /dev/null
+++ b/docs/content/reference/events-api/classes/SlackEventAdapter.md
@@ -0,0 +1,189 @@
+# Class: SlackEventAdapter
+
+An adapter for Slack's Events API.
+
+## Extends
+
+- `unknown`
+
+## Constructors
+
+### new SlackEventAdapter()
+
+```ts
+new SlackEventAdapter(signingSecret, __namedParameters): SlackEventAdapter
+```
+
+#### Parameters
+
+• **signingSecret**: `string`
+
+The token used to authenticate signed requests from Slack's Events API.
+
+• **\_\_namedParameters**: [`EventAdapterOptions`](../interfaces/EventAdapterOptions.md) = `{}`
+
+#### Returns
+
+[`SlackEventAdapter`](SlackEventAdapter.md)
+
+#### Overrides
+
+`EventEmitter.constructor`
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:47](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L47)
+
+## Properties
+
+### includeBody
+
+```ts
+includeBody: boolean;
+```
+
+Whether to include the API event bodies in adapter event listeners.
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:23](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L23)
+
+***
+
+### includeHeaders
+
+```ts
+includeHeaders: boolean;
+```
+
+Whether to include request headers in adapter event listeners.
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:28](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L28)
+
+***
+
+### signingSecret
+
+```ts
+readonly signingSecret: string;
+```
+
+The token used to authenticate signed requests from Slack's Events API.
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:18](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L18)
+
+***
+
+### waitForResponse
+
+```ts
+waitForResponse: boolean;
+```
+
+When `true` prevents the adapter from responding by itself and leaves that up to listeners.
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L33)
+
+## Methods
+
+### createServer()
+
+```ts
+createServer(): Promise
+```
+
+Creates an HTTP server to listen for event payloads.
+
+#### Returns
+
+`Promise`\<`Server`\>
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:76](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L76)
+
+***
+
+### expressMiddleware()
+
+```ts
+expressMiddleware(): RequestHandler
+```
+
+Returns a middleware-compatible adapter.
+
+#### Returns
+
+`RequestHandler`
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:120](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L120)
+
+***
+
+### requestListener()
+
+```ts
+requestListener(): RequestListener
+```
+
+Creates a request listener.
+
+#### Returns
+
+`RequestListener`
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:130](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L130)
+
+***
+
+### start()
+
+```ts
+start(port): Promise
+```
+
+Starts a server on the specified port.
+
+#### Parameters
+
+• **port**: `number`
+
+The port number to listen on.
+
+#### Returns
+
+`Promise`\<`Server`\>
+
+The server from the built-in `http` module.
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:87](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L87)
+
+***
+
+### stop()
+
+```ts
+stop(): Promise
+```
+
+Stops the server started by [SlackEventAdapter.start](SlackEventAdapter.md#start).
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:100](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L100)
diff --git a/docs/content/reference/events-api/enumerations/ErrorCode.md b/docs/content/reference/events-api/enumerations/ErrorCode.md
new file mode 100644
index 000000000..13bedc298
--- /dev/null
+++ b/docs/content/reference/events-api/enumerations/ErrorCode.md
@@ -0,0 +1,39 @@
+# Enumeration: ErrorCode
+
+A dictionary of codes for errors produced by this package.
+
+## Enumeration Members
+
+### BodyParserNotPermitted
+
+```ts
+BodyParserNotPermitted: "SLACKADAPTER_BODY_PARSER_NOT_PERMITTED_FAILURE";
+```
+
+#### Defined in
+
+[packages/events-api/src/http-handler.ts:17](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L17)
+
+***
+
+### RequestTimeFailure
+
+```ts
+RequestTimeFailure: "SLACKHTTPHANDLER_REQUEST_TIMELIMIT_FAILURE";
+```
+
+#### Defined in
+
+[packages/events-api/src/http-handler.ts:16](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L16)
+
+***
+
+### SignatureVerificationFailure
+
+```ts
+SignatureVerificationFailure: "SLACKHTTPHANDLER_REQUEST_SIGNATURE_VERIFICATION_FAILURE";
+```
+
+#### Defined in
+
+[packages/events-api/src/http-handler.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L15)
diff --git a/docs/content/reference/events-api/functions/createEventAdapter.md b/docs/content/reference/events-api/functions/createEventAdapter.md
new file mode 100644
index 000000000..1bc9c4629
--- /dev/null
+++ b/docs/content/reference/events-api/functions/createEventAdapter.md
@@ -0,0 +1,21 @@
+# Function: createEventAdapter()
+
+```ts
+function createEventAdapter(signingSecret, options?): SlackEventAdapter
+```
+
+Creates a new [SlackEventAdapter](../classes/SlackEventAdapter.md).
+
+## Parameters
+
+• **signingSecret**: `string`
+
+• **options?**: [`EventAdapterOptions`](../interfaces/EventAdapterOptions.md)
+
+## Returns
+
+[`SlackEventAdapter`](../classes/SlackEventAdapter.md)
+
+## Defined in
+
+[packages/events-api/src/index.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/index.ts#L15)
diff --git a/docs/content/reference/events-api/functions/verifyRequestSignature.md b/docs/content/reference/events-api/functions/verifyRequestSignature.md
new file mode 100644
index 000000000..019ef6eb0
--- /dev/null
+++ b/docs/content/reference/events-api/functions/verifyRequestSignature.md
@@ -0,0 +1,28 @@
+# Function: verifyRequestSignature()
+
+```ts
+function verifyRequestSignature(params): true
+```
+
+Verifies the signature of a request. Throws a [CodedError](../interfaces/CodedError.md) if the signature is invalid.
+
+## Parameters
+
+• **params**: [`VerifyRequestSignatureParams`](../interfaces/VerifyRequestSignatureParams.md)
+
+See [VerifyRequestSignatureParams](../interfaces/VerifyRequestSignatureParams.md).
+
+## Returns
+
+`true`
+
+`true` when the signature is valid.
+
+## Remarks
+
+See [Verifying requests from Slack](https://api.slack.com/docs/verifying-requests-from-slack#sdk_support) for more
+information.
+
+## Defined in
+
+[packages/events-api/src/http-handler.ts:38](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L38)
diff --git a/docs/content/reference/events-api/index.md b/docs/content/reference/events-api/index.md
new file mode 100644
index 000000000..fb3adeb77
--- /dev/null
+++ b/docs/content/reference/events-api/index.md
@@ -0,0 +1,24 @@
+# @slack/events-api
+
+## Enumerations
+
+- [ErrorCode](enumerations/ErrorCode.md)
+
+## Classes
+
+- [SlackEventAdapter](classes/SlackEventAdapter.md)
+
+## Interfaces
+
+- [CodedError](interfaces/CodedError.md)
+- [EventAdapterOptions](interfaces/EventAdapterOptions.md)
+- [VerifyRequestSignatureParams](interfaces/VerifyRequestSignatureParams.md)
+
+## Variables
+
+- [errorCodes](variables/errorCodes.md)
+
+## Functions
+
+- [createEventAdapter](functions/createEventAdapter.md)
+- [verifyRequestSignature](functions/verifyRequestSignature.md)
diff --git a/docs/content/reference/events-api/interfaces/CodedError.md b/docs/content/reference/events-api/interfaces/CodedError.md
new file mode 100644
index 000000000..66c8bea0c
--- /dev/null
+++ b/docs/content/reference/events-api/interfaces/CodedError.md
@@ -0,0 +1,71 @@
+# Interface: CodedError
+
+All errors produced by this package are regular
+[Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) objects with
+an extra [`error`](CodedError.md#code) field.
+
+## Extends
+
+- `Error`
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode;
+```
+
+What kind of error occurred.
+
+#### Defined in
+
+[packages/events-api/src/http-handler.ts:292](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L292)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/events-api/interfaces/EventAdapterOptions.md b/docs/content/reference/events-api/interfaces/EventAdapterOptions.md
new file mode 100644
index 000000000..778106f8f
--- /dev/null
+++ b/docs/content/reference/events-api/interfaces/EventAdapterOptions.md
@@ -0,0 +1,40 @@
+# Interface: EventAdapterOptions
+
+Options when constructing [SlackEventAdapter](../classes/SlackEventAdapter.md). See [SlackEventAdapter](../classes/SlackEventAdapter.md)'s fields for more information on
+what each option does.
+
+## Properties
+
+### includeBody?
+
+```ts
+optional includeBody: boolean;
+```
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:140](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L140)
+
+***
+
+### includeHeaders?
+
+```ts
+optional includeHeaders: boolean;
+```
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:141](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L141)
+
+***
+
+### waitForResponse?
+
+```ts
+optional waitForResponse: boolean;
+```
+
+#### Defined in
+
+[packages/events-api/src/adapter.ts:142](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/adapter.ts#L142)
diff --git a/docs/content/reference/events-api/interfaces/VerifyRequestSignatureParams.md b/docs/content/reference/events-api/interfaces/VerifyRequestSignatureParams.md
new file mode 100644
index 000000000..486802b43
--- /dev/null
+++ b/docs/content/reference/events-api/interfaces/VerifyRequestSignatureParams.md
@@ -0,0 +1,59 @@
+# Interface: VerifyRequestSignatureParams
+
+Parameters for calling [verifyRequestSignature](../functions/verifyRequestSignature.md).
+
+## Properties
+
+### body
+
+```ts
+body: string;
+```
+
+Full, raw body string.
+
+#### Defined in
+
+[packages/events-api/src/http-handler.ts:280](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L280)
+
+***
+
+### requestSignature
+
+```ts
+requestSignature: string;
+```
+
+Signature from the `X-Slack-Signature` header.
+
+#### Defined in
+
+[packages/events-api/src/http-handler.ts:270](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L270)
+
+***
+
+### requestTimestamp
+
+```ts
+requestTimestamp: number;
+```
+
+Timestamp from the `X-Slack-Request-Timestamp` header.
+
+#### Defined in
+
+[packages/events-api/src/http-handler.ts:275](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L275)
+
+***
+
+### signingSecret
+
+```ts
+signingSecret: string;
+```
+
+The signing secret used to verify request signature.
+
+#### Defined in
+
+[packages/events-api/src/http-handler.ts:265](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L265)
diff --git a/docs/content/reference/events-api/typedoc-sidebar.cjs b/docs/content/reference/events-api/typedoc-sidebar.cjs
new file mode 100644
index 000000000..e72347534
--- /dev/null
+++ b/docs/content/reference/events-api/typedoc-sidebar.cjs
@@ -0,0 +1,4 @@
+// @ts-check
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"reference/events-api/enumerations/ErrorCode","label":"ErrorCode"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"reference/events-api/classes/SlackEventAdapter","label":"SlackEventAdapter"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"reference/events-api/interfaces/CodedError","label":"CodedError"},{"type":"doc","id":"reference/events-api/interfaces/EventAdapterOptions","label":"EventAdapterOptions"},{"type":"doc","id":"reference/events-api/interfaces/VerifyRequestSignatureParams","label":"VerifyRequestSignatureParams"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"reference/events-api/variables/errorCodes","label":"errorCodes"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"reference/events-api/functions/createEventAdapter","label":"createEventAdapter"},{"type":"doc","id":"reference/events-api/functions/verifyRequestSignature","label":"verifyRequestSignature"}]}]};
+module.exports = typedocSidebar.items;
\ No newline at end of file
diff --git a/docs/content/reference/events-api/variables/errorCodes.md b/docs/content/reference/events-api/variables/errorCodes.md
new file mode 100644
index 000000000..9bbd7a477
--- /dev/null
+++ b/docs/content/reference/events-api/variables/errorCodes.md
@@ -0,0 +1,29 @@
+# Variable: errorCodes
+
+```ts
+const errorCodes: object;
+```
+
+## Type declaration
+
+### BODY\_PARSER\_NOT\_PERMITTED
+
+```ts
+BODY_PARSER_NOT_PERMITTED: ErrorCode = ErrorCode.BodyParserNotPermitted;
+```
+
+### REQUEST\_TIME\_FAILURE
+
+```ts
+REQUEST_TIME_FAILURE: ErrorCode = ErrorCode.RequestTimeFailure;
+```
+
+### SIGNATURE\_VERIFICATION\_FAILURE
+
+```ts
+SIGNATURE_VERIFICATION_FAILURE: ErrorCode = ErrorCode.SignatureVerificationFailure;
+```
+
+## Defined in
+
+[packages/events-api/src/http-handler.ts:305](https://github.com/slackapi/node-slack-sdk/blob/main/packages/events-api/src/http-handler.ts#L305)
diff --git a/docs/content/reference/interactive-messages/classes/SlackMessageAdapter.md b/docs/content/reference/interactive-messages/classes/SlackMessageAdapter.md
new file mode 100644
index 000000000..774e5f43c
--- /dev/null
+++ b/docs/content/reference/interactive-messages/classes/SlackMessageAdapter.md
@@ -0,0 +1,382 @@
+# Class: SlackMessageAdapter
+
+An adapter for Slack's interactive message components such as buttons, menus, and dialogs.
+
+## Constructors
+
+### new SlackMessageAdapter()
+
+```ts
+new SlackMessageAdapter(signingSecret, __namedParameters): SlackMessageAdapter
+```
+
+Create a message adapter.
+
+#### Parameters
+
+• **signingSecret**: `string`
+
+Slack app signing secret used to authenticate request
+
+• **\_\_namedParameters**: [`MessageAdapterOptions`](../interfaces/MessageAdapterOptions.md) = `{}`
+
+#### Returns
+
+[`SlackMessageAdapter`](SlackMessageAdapter.md)
+
+#### Defined in
+
+[adapter.ts:154](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L154)
+
+## Properties
+
+### lateResponseFallbackEnabled
+
+```ts
+lateResponseFallbackEnabled: boolean;
+```
+
+Whether or not promises that resolve after the syncResponseTimeout can fallback to a request for the response_url.
+This only works in cases where the semantic meaning of the response and the response_url are the same.
+
+#### Defined in
+
+[adapter.ts:136](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L136)
+
+***
+
+### signingSecret
+
+```ts
+signingSecret: string;
+```
+
+Slack app signing secret used to authenticate request
+
+#### Defined in
+
+[adapter.ts:124](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L124)
+
+***
+
+### syncResponseTimeout
+
+```ts
+syncResponseTimeout: number;
+```
+
+The number of milliseconds to wait before flushing a synchronous response to an incoming request and falling back
+to an asynchronous response.
+
+#### Defined in
+
+[adapter.ts:130](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L130)
+
+## Methods
+
+### action()
+
+```ts
+action(matchingConstraints, callback): this
+```
+
+Add a handler for an interactive message action.
+
+Usually there's no need to be concerned with _how_ a message is sent to Slack, but the following table describes it
+fully.
+
+**Action**|**Return `object`**|**Return `Promise`**|**Return `undefined`**|**Call `respond(message)`**|**Notes**
+:-----:|:-----:|:-----:|:-----:|:-----:|:-----:
+**Button Press**| Message in response | When resolved before `syncResponseTimeout` or `lateResponseFallbackEnabled: false`, message in response When resolved after `syncResponseTimeout` and `lateResponseFallbackEnabled: true`, message in request to `response_url` | Empty response | Message in request to `response_url` | Create a new message instead of replacing using `replace_original: false`
+**Menu Selection**| Message in response | When resolved before `syncResponseTimeout` or `lateResponseFallbackEnabled: false`, message in response When resolved after `syncResponseTimeout` and `lateResponseFallbackEnabled: true`, message in request to `response_url` | Empty response | Message in request to `response_url` | Create a new message instead of replacing using `replace_original: false`
+**Message Action** | Message in response | When resolved before `syncResponseTimeout` or `lateResponseFallbackEnabled: false`, message in response When resolved after `syncResponseTimeout` and `lateResponseFallbackEnabled: true`, message in request to `response_url` | Empty response | Message in request to `response_url` |
+**Dialog Submission**| Error list in response | Error list in response | Empty response | Message in request to `response_url` | Returning a Promise that takes longer than 3 seconds to resolve can result in the user seeing an error. Warning logged if a promise isn't completed before `syncResponseTimeout`.
+
+#### Parameters
+
+• **matchingConstraints**: `string` \| `RegExp` \| [`ActionConstraints`](../interfaces/ActionConstraints.md)
+
+the callback ID (as a string or RegExp) or an object describing the constraints to
+ match actions for the handler.
+
+• **callback**: [`ActionHandler`](../type-aliases/ActionHandler.md)
+
+the function to run when an action is matched
+
+#### Returns
+
+`this`
+
+this instance (for chaining)
+
+#### Defined in
+
+[adapter.ts:284](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L284)
+
+***
+
+### createServer()
+
+```ts
+createServer(): Promise
+```
+
+Create a server that dispatches Slack's interactive message actions and menu requests to this message adapter
+instance. Use this method if your application will handle starting the server.
+
+#### Returns
+
+`Promise`\<`Server`\>
+
+A promise that resolves to an instance of http.Server and will dispatch interactive message actions and
+ options requests to this message adapter instance. See
+ https://nodejs.org/dist/latest/docs/api/http.html#http_class_http_server
+
+#### Defined in
+
+[adapter.ts:197](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L197)
+
+***
+
+### dispatch()
+
+```ts
+dispatch(payload): undefined | Promise
+```
+
+**`Internal`**
+
+Dispatches the contents of an HTTP request to the registered handlers.
+
+#### Parameters
+
+• **payload**: `any`
+
+#### Returns
+
+`undefined` \| `Promise`\<[`DispatchResult`](../interfaces/DispatchResult.md)\>
+
+A promise of the response information (an object with status and content that is a JSON serializable
+ object or a string or undefined) for the request. An undefined return value indicates that the request was not
+ matched.
+
+#### Remarks
+
+This is an internal API not meant to be used by code depending on this package.
+
+#### Defined in
+
+[adapter.ts:424](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L424)
+
+***
+
+### expressMiddleware()
+
+```ts
+expressMiddleware(): RequestHandler
+```
+
+Create a middleware function that can be used to integrate with the `express` web framework in order for incoming
+requests to be dispatched to this message adapter instance.
+
+#### Returns
+
+`RequestHandler`
+
+A middleware function (see http://expressjs.com/en/guide/using-middleware.html)
+
+#### Defined in
+
+[adapter.ts:248](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L248)
+
+***
+
+### options()
+
+```ts
+options(matchingConstraints, callback): this
+```
+
+Add a handler for an options request
+
+Usually there's no need to be concerned with _how_ a message is sent to Slack, but the
+following table describes it fully
+
+ |**Return `options`**|**Return `Promise`**|**Return `undefined`**|**Notes**
+:-----:|:-----:|:-----:|:-----:|:-----:
+**Options Request**| Options in response | Options in response | Empty response | Returning a Promise that takes longer than 3 seconds to resolve can result in the user seeing an error. If the request is from within a dialog, the `text` field is called `label`.
+
+#### Parameters
+
+• **matchingConstraints**: `string` \| `RegExp` \| [`OptionsConstraints`](../interfaces/OptionsConstraints.md)
+
+the callback ID (as a string or RegExp) or an object describing the constraints to
+ select options requests for the handler.
+
+• **callback**: [`OptionsHandler`](../type-aliases/OptionsHandler.md)
+
+the function to run when an options request is matched
+
+#### Returns
+
+`this`
+
+this instance (for chaining)
+
+#### Defined in
+
+[adapter.ts:342](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L342)
+
+***
+
+### requestListener()
+
+```ts
+requestListener(): RequestListener
+```
+
+Create a request listener function that handles HTTP requests, verifies requests and dispatches responses
+
+#### Returns
+
+`RequestListener`
+
+#### Defined in
+
+[adapter.ts:258](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L258)
+
+***
+
+### shortcut()
+
+```ts
+shortcut(matchingConstraints, callback): this
+```
+
+#### Parameters
+
+• **matchingConstraints**: `string` \| `RegExp` \| [`ShortcutConstraints`](../interfaces/ShortcutConstraints.md)
+
+• **callback**: [`ShortcutHandler`](../type-aliases/ShortcutHandler.md)
+
+#### Returns
+
+`this`
+
+#### Defined in
+
+[adapter.ts:308](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L308)
+
+***
+
+### start()
+
+```ts
+start(port): Promise
+```
+
+Start a built-in server that dispatches Slack's interactive message actions and menu requests to this message
+adapter interface.
+
+#### Parameters
+
+• **port**: `number`
+
+#### Returns
+
+`Promise`\<`Server`\>
+
+A promise that resolves once the server is ready
+
+#### Defined in
+
+[adapter.ts:208](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L208)
+
+***
+
+### stop()
+
+```ts
+stop(): Promise
+```
+
+Stop the previously started built-in server.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves once the server is cleaned up.
+
+#### Defined in
+
+[adapter.ts:223](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L223)
+
+***
+
+### viewClosed()
+
+```ts
+viewClosed(matchingConstraints, callback): this
+```
+
+Add a handler for view closed interaction. The handler should not return a value.
+
+#### Parameters
+
+• **matchingConstraints**: `string` \| `RegExp` \| [`ViewConstraints`](../interfaces/ViewConstraints.md)
+
+the callback ID (as a string or RegExp) or an object describing the constraints to
+ match view closed interactions for the handler.
+
+• **callback**: [`ViewClosedHandler`](../type-aliases/ViewClosedHandler.md)
+
+the function to run when an view closed interaction is matched
+
+#### Returns
+
+`this`
+
+this instance (for chaining)
+
+#### Defined in
+
+[adapter.ts:397](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L397)
+
+***
+
+### viewSubmission()
+
+```ts
+viewSubmission(matchingConstraints, callback): this
+```
+
+Add a handler for view submission.
+
+The value returned from the `callback` determines the response sent back to Slack. The handler can return a plain
+object with a `response_action` property to dismiss the modal, push a view into the modal, display validation
+errors, or update the view. Alternatively, the handler can return a Promise for this kind of object, which resolves
+before `syncResponseTimeout` or `lateResponseFallbackEnabled: false`, to perform the same response actions. If the
+Promise resolves afterwards or `lateResponseFallbackEnabled: true` then the modal will be dismissed. If the handler
+returns `undefined` the modal will be dismissed.
+
+#### Parameters
+
+• **matchingConstraints**: `string` \| `RegExp` \| [`ViewConstraints`](../interfaces/ViewConstraints.md)
+
+the callback ID (as a string or RegExp) or an object describing the constraints to
+ match view submissions for the handler.
+
+• **callback**: [`ViewSubmissionHandler`](../type-aliases/ViewSubmissionHandler.md)
+
+the function to run when an view submission is matched
+
+#### Returns
+
+`this`
+
+this instance (for chaining)
+
+#### Defined in
+
+[adapter.ts:375](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L375)
diff --git a/docs/content/reference/interactive-messages/enumerations/ErrorCode.md b/docs/content/reference/interactive-messages/enumerations/ErrorCode.md
new file mode 100644
index 000000000..07423d486
--- /dev/null
+++ b/docs/content/reference/interactive-messages/enumerations/ErrorCode.md
@@ -0,0 +1,51 @@
+# Enumeration: ErrorCode
+
+A dictionary of codes for errors produced by this package.
+
+## Enumeration Members
+
+### BodyParserNotPermitted
+
+```ts
+BodyParserNotPermitted: "SLACKADAPTER_BODY_PARSER_NOT_PERMITTED_FAILURE";
+```
+
+#### Defined in
+
+[errors.ts:8](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/errors.ts#L8)
+
+***
+
+### PromiseTimeout
+
+```ts
+PromiseTimeout: "SLACKMESSAGEUTIL_PROMISE_TIMEOUT";
+```
+
+#### Defined in
+
+[errors.ts:5](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/errors.ts#L5)
+
+***
+
+### RequestTimeFailure
+
+```ts
+RequestTimeFailure: "SLACKHTTPHANDLER_REQUEST_TIMELIMIT_FAILURE";
+```
+
+#### Defined in
+
+[errors.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/errors.ts#L7)
+
+***
+
+### SignatureVerificationFailure
+
+```ts
+SignatureVerificationFailure: "SLACKHTTPHANDLER_REQUEST_SIGNATURE_VERIFICATION_FAILURE";
+```
+
+#### Defined in
+
+[errors.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/errors.ts#L6)
diff --git a/docs/content/reference/interactive-messages/enumerations/ResponseStatus.md b/docs/content/reference/interactive-messages/enumerations/ResponseStatus.md
new file mode 100644
index 000000000..3eb8a4e74
--- /dev/null
+++ b/docs/content/reference/interactive-messages/enumerations/ResponseStatus.md
@@ -0,0 +1,27 @@
+# Enumeration: ResponseStatus
+
+Some HTTP response statuses.
+
+## Enumeration Members
+
+### Failure
+
+```ts
+Failure: 500;
+```
+
+#### Defined in
+
+[adapter.ts:30](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L30)
+
+***
+
+### Ok
+
+```ts
+Ok: 200;
+```
+
+#### Defined in
+
+[adapter.ts:29](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L29)
diff --git a/docs/content/reference/interactive-messages/functions/createMessageAdapter.md b/docs/content/reference/interactive-messages/functions/createMessageAdapter.md
new file mode 100644
index 000000000..3ad3a72f9
--- /dev/null
+++ b/docs/content/reference/interactive-messages/functions/createMessageAdapter.md
@@ -0,0 +1,21 @@
+# Function: createMessageAdapter()
+
+```ts
+function createMessageAdapter(signingSecret, options?): SlackMessageAdapter
+```
+
+Factory method to create an instance of [SlackMessageAdapter](../classes/SlackMessageAdapter.md)
+
+## Parameters
+
+• **signingSecret**: `string`
+
+• **options?**: [`MessageAdapterOptions`](../interfaces/MessageAdapterOptions.md)
+
+## Returns
+
+[`SlackMessageAdapter`](../classes/SlackMessageAdapter.md)
+
+## Defined in
+
+[index.ts:34](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/index.ts#L34)
diff --git a/docs/content/reference/interactive-messages/index.md b/docs/content/reference/interactive-messages/index.md
new file mode 100644
index 000000000..dae9dc091
--- /dev/null
+++ b/docs/content/reference/interactive-messages/index.md
@@ -0,0 +1,36 @@
+# @slack/interactive-messages
+
+## Enumerations
+
+- [ErrorCode](enumerations/ErrorCode.md)
+- [ResponseStatus](enumerations/ResponseStatus.md)
+
+## Classes
+
+- [SlackMessageAdapter](classes/SlackMessageAdapter.md)
+
+## Interfaces
+
+- [ActionConstraints](interfaces/ActionConstraints.md)
+- [DispatchResult](interfaces/DispatchResult.md)
+- [MessageAdapterOptions](interfaces/MessageAdapterOptions.md)
+- [OptionsConstraints](interfaces/OptionsConstraints.md)
+- [ShortcutConstraints](interfaces/ShortcutConstraints.md)
+- [ViewConstraints](interfaces/ViewConstraints.md)
+
+## Type Aliases
+
+- [ActionHandler](type-aliases/ActionHandler.md)
+- [OptionsHandler](type-aliases/OptionsHandler.md)
+- [Respond](type-aliases/Respond.md)
+- [ShortcutHandler](type-aliases/ShortcutHandler.md)
+- [ViewClosedHandler](type-aliases/ViewClosedHandler.md)
+- [ViewSubmissionHandler](type-aliases/ViewSubmissionHandler.md)
+
+## Variables
+
+- [errorCodes](variables/errorCodes.md)
+
+## Functions
+
+- [createMessageAdapter](functions/createMessageAdapter.md)
diff --git a/docs/content/reference/interactive-messages/interfaces/ActionConstraints.md b/docs/content/reference/interactive-messages/interfaces/ActionConstraints.md
new file mode 100644
index 000000000..12fda911a
--- /dev/null
+++ b/docs/content/reference/interactive-messages/interfaces/ActionConstraints.md
@@ -0,0 +1,75 @@
+# Interface: ActionConstraints
+
+Constraints on when to call an action handler.
+
+## Properties
+
+### actionId?
+
+```ts
+optional actionId: string | RegExp;
+```
+
+A string or RegExp to match against the `action_id`
+
+#### Defined in
+
+[adapter.ts:693](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L693)
+
+***
+
+### blockId?
+
+```ts
+optional blockId: string | RegExp;
+```
+
+A string or RegExp to match against the `block_id`
+
+#### Defined in
+
+[adapter.ts:688](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L688)
+
+***
+
+### callbackId?
+
+```ts
+optional callbackId: string | RegExp;
+```
+
+A string or RegExp to match against the `callback_id`
+
+#### Defined in
+
+[adapter.ts:683](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L683)
+
+***
+
+### type?
+
+```ts
+optional type: string;
+```
+
+Valid types include all
+[actions block elements](https://api.slack.com/reference/messaging/interactive-components),
+`select` only for menu selections, or `dialog_submission` only for dialog submissions
+
+#### Defined in
+
+[adapter.ts:700](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L700)
+
+***
+
+### unfurl?
+
+```ts
+optional unfurl: boolean;
+```
+
+When `true` only match actions from an unfurl
+
+#### Defined in
+
+[adapter.ts:705](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L705)
diff --git a/docs/content/reference/interactive-messages/interfaces/DispatchResult.md b/docs/content/reference/interactive-messages/interfaces/DispatchResult.md
new file mode 100644
index 000000000..448eddd3b
--- /dev/null
+++ b/docs/content/reference/interactive-messages/interfaces/DispatchResult.md
@@ -0,0 +1,27 @@
+# Interface: DispatchResult
+
+The result of a call to [SlackMessageAdapter#dispatch](../classes/SlackMessageAdapter.md#dispatch).
+
+## Properties
+
+### content?
+
+```ts
+optional content: any;
+```
+
+#### Defined in
+
+[adapter.ts:664](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L664)
+
+***
+
+### status
+
+```ts
+status: ResponseStatus;
+```
+
+#### Defined in
+
+[adapter.ts:663](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L663)
diff --git a/docs/content/reference/interactive-messages/interfaces/MessageAdapterOptions.md b/docs/content/reference/interactive-messages/interfaces/MessageAdapterOptions.md
new file mode 100644
index 000000000..653099511
--- /dev/null
+++ b/docs/content/reference/interactive-messages/interfaces/MessageAdapterOptions.md
@@ -0,0 +1,39 @@
+# Interface: MessageAdapterOptions
+
+Options for constructing [SlackMessageAdapter](../classes/SlackMessageAdapter.md).
+
+## Properties
+
+### agent?
+
+```ts
+optional agent: any;
+```
+
+#### Defined in
+
+[adapter.ts:673](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L673)
+
+***
+
+### lateResponseFallbackEnabled?
+
+```ts
+optional lateResponseFallbackEnabled: boolean;
+```
+
+#### Defined in
+
+[adapter.ts:672](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L672)
+
+***
+
+### syncResponseTimeout?
+
+```ts
+optional syncResponseTimeout: number;
+```
+
+#### Defined in
+
+[adapter.ts:671](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L671)
diff --git a/docs/content/reference/interactive-messages/interfaces/OptionsConstraints.md b/docs/content/reference/interactive-messages/interfaces/OptionsConstraints.md
new file mode 100644
index 000000000..72cbc73c1
--- /dev/null
+++ b/docs/content/reference/interactive-messages/interfaces/OptionsConstraints.md
@@ -0,0 +1,59 @@
+# Interface: OptionsConstraints
+
+Constraints on when to call an options handler.
+
+## Properties
+
+### actionId?
+
+```ts
+optional actionId: string | RegExp;
+```
+
+A string or RegExp to match against the `action_id`
+
+#### Defined in
+
+[adapter.ts:740](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L740)
+
+***
+
+### blockId?
+
+```ts
+optional blockId: string | RegExp;
+```
+
+A string or RegExp to match against the `block_id`
+
+#### Defined in
+
+[adapter.ts:735](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L735)
+
+***
+
+### callbackId?
+
+```ts
+optional callbackId: string | RegExp;
+```
+
+A string or RegExp to match against the `callback_id`
+
+#### Defined in
+
+[adapter.ts:730](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L730)
+
+***
+
+### within
+
+```ts
+within: "block_actions" | "interactive_message" | "dialog";
+```
+
+The source of options request.
+
+#### Defined in
+
+[adapter.ts:745](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L745)
diff --git a/docs/content/reference/interactive-messages/interfaces/ShortcutConstraints.md b/docs/content/reference/interactive-messages/interfaces/ShortcutConstraints.md
new file mode 100644
index 000000000..c3350f8f9
--- /dev/null
+++ b/docs/content/reference/interactive-messages/interfaces/ShortcutConstraints.md
@@ -0,0 +1,31 @@
+# Interface: ShortcutConstraints
+
+Constraints on when to call an shortcut handler.
+
+## Properties
+
+### callbackId?
+
+```ts
+optional callbackId: string | RegExp;
+```
+
+A string or RegExp to match against the `callback_id`
+
+#### Defined in
+
+[adapter.ts:715](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L715)
+
+***
+
+### type?
+
+```ts
+optional type: "shortcut";
+```
+
+Valid type includes shortcut
+
+#### Defined in
+
+[adapter.ts:720](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L720)
diff --git a/docs/content/reference/interactive-messages/interfaces/ViewConstraints.md b/docs/content/reference/interactive-messages/interfaces/ViewConstraints.md
new file mode 100644
index 000000000..d77d752cc
--- /dev/null
+++ b/docs/content/reference/interactive-messages/interfaces/ViewConstraints.md
@@ -0,0 +1,45 @@
+# Interface: ViewConstraints
+
+Constraints on when to call a view submission or view closed handler.
+
+## Properties
+
+### callbackId?
+
+```ts
+optional callbackId: string | RegExp;
+```
+
+A string or RegExp to match against the `callback_id`
+
+#### Defined in
+
+[adapter.ts:755](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L755)
+
+***
+
+### externalId?
+
+```ts
+optional externalId: string | RegExp;
+```
+
+A string to match against the `external_id`
+
+#### Defined in
+
+[adapter.ts:760](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L760)
+
+***
+
+### viewId?
+
+```ts
+optional viewId: string;
+```
+
+A string to match against the `view_id`
+
+#### Defined in
+
+[adapter.ts:765](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L765)
diff --git a/docs/content/reference/interactive-messages/type-aliases/ActionHandler.md b/docs/content/reference/interactive-messages/type-aliases/ActionHandler.md
new file mode 100644
index 000000000..734d733f1
--- /dev/null
+++ b/docs/content/reference/interactive-messages/type-aliases/ActionHandler.md
@@ -0,0 +1,39 @@
+# Type Alias: ActionHandler()
+
+```ts
+type ActionHandler: (payload, respond) => any | Promise | undefined;
+```
+
+## Parameters
+
+• **payload**: `any`
+
+an object describing the
+ [block actions](https://api.slack.com/messaging/interactivity/enabling#understanding-payloads)
+ [button press](https://api.slack.com/docs/message-buttons#responding_to_message_actions),
+ [menu selection](https://api.slack.com/docs/message-menus#request_url_response), or
+ [dialog submission](https://api.slack.com/dialogs#evaluating_submission_responses).
+
+• **respond**: [`Respond`](Respond.md)
+
+When the action is a button press or menu selection, this function is used to update the message
+ where the action occurred or create new messages in the same conversation. When the action is a dialog submission,
+ this function is used to create new messages in the conversation where the dialog was triggered.
+
+## Returns
+
+`any` \| `Promise`\<`any`\> \| `undefined`
+
+When the action is a button press or a menu selection, this object is a replacement
+ [message](https://api.slack.com/docs/interactive-message-field-guide#top-level_message_fields) for the message in
+ which the action occurred. It may also be a Promise for a message, and if so and the Promise takes longer than the
+ `syncResponseTimeout` to complete, the message is sent over the `response_url`. The message may also be a new
+ message in the same conversation by setting `replace_original: false`. When the action is a dialog submission,
+ this object is a list of [validation errors](https://api.slack.com/dialogs#input_validation). It may also be a
+ Promise for a list of validation errors, and if so and the Promise takes longer than the `syncResponseTimeout` to
+ complete, Slack will display an error to the user. If there is no return value, then button presses and menu
+ selections do not update the message and dialog submissions will validate and dismiss.
+
+## Defined in
+
+[adapter.ts:813](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L813)
diff --git a/docs/content/reference/interactive-messages/type-aliases/OptionsHandler.md b/docs/content/reference/interactive-messages/type-aliases/OptionsHandler.md
new file mode 100644
index 000000000..8371a2553
--- /dev/null
+++ b/docs/content/reference/interactive-messages/type-aliases/OptionsHandler.md
@@ -0,0 +1,28 @@
+# Type Alias: OptionsHandler()
+
+```ts
+type OptionsHandler: (payload) => any | Promise | undefined;
+```
+
+## Parameters
+
+• **payload**: `any`
+
+an object describing
+ [the state of the menu](https://api.slack.com/docs/message-menus#options_load_url)
+
+## Returns
+
+`any` \| `Promise`\<`any`\> \| `undefined`
+
+an [options list](https://api.slack.com/docs/interactive-message-field-guide#option_fields) or
+ [option groups list](https://api.slack.com/docs/interactive-message-field-guide#option_groups). When the menu is
+ within an interactive message, (`within: 'interactive_message'`) the option keys are `text` and `value`. When the
+ menu is within a dialog (`within: 'dialog'`) the option keys are `label` and `value`. When the menu is within a
+ dialog (`within: 'block_actions'`) the option keys are a text block and `value`. This function may also return a
+ Promise either of these values. If a Promise is returned and it does not complete within 3 seconds, Slack will
+ display an error to the user. If there is no return value, then the user is shown an empty list of options.
+
+## Defined in
+
+[adapter.ts:835](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L835)
diff --git a/docs/content/reference/interactive-messages/type-aliases/Respond.md b/docs/content/reference/interactive-messages/type-aliases/Respond.md
new file mode 100644
index 000000000..7714ed892
--- /dev/null
+++ b/docs/content/reference/interactive-messages/type-aliases/Respond.md
@@ -0,0 +1,23 @@
+# Type Alias: Respond()
+
+```ts
+type Respond: (message) => Promise;
+```
+
+## Parameters
+
+• **message**: `any`
+
+a [message](https://api.slack.com/docs/interactive-message-field-guide#top-level_message_fields).
+ Dialog submissions do not allow `replace_original: false` on this message.
+
+## Returns
+
+`Promise`\<`unknown`\>
+
+there's no contract or interface for the resolution value, but this Promise will resolve when the HTTP
+ response from the `response_url` request is complete and reject when there is an error.
+
+## Defined in
+
+[adapter.ts:789](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L789)
diff --git a/docs/content/reference/interactive-messages/type-aliases/ShortcutHandler.md b/docs/content/reference/interactive-messages/type-aliases/ShortcutHandler.md
new file mode 100644
index 000000000..30d633ee4
--- /dev/null
+++ b/docs/content/reference/interactive-messages/type-aliases/ShortcutHandler.md
@@ -0,0 +1,21 @@
+# Type Alias: ShortcutHandler()
+
+```ts
+type ShortcutHandler: (payload) => any | Promise | undefined;
+```
+
+A handler function for global shortcuts.
+
+TODO: describe the payload and return values more specifically?
+
+## Parameters
+
+• **payload**: `any`
+
+## Returns
+
+`any` \| `Promise`\<`any`\> \| `undefined`
+
+## Defined in
+
+[adapter.ts:820](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L820)
diff --git a/docs/content/reference/interactive-messages/type-aliases/ViewClosedHandler.md b/docs/content/reference/interactive-messages/type-aliases/ViewClosedHandler.md
new file mode 100644
index 000000000..ff6a4d773
--- /dev/null
+++ b/docs/content/reference/interactive-messages/type-aliases/ViewClosedHandler.md
@@ -0,0 +1,21 @@
+# Type Alias: ViewClosedHandler()
+
+```ts
+type ViewClosedHandler: (payload) => void;
+```
+
+A handler function for view closed requests.
+
+TODO: describe the payload and return values more specifically?
+
+## Parameters
+
+• **payload**: `any`
+
+## Returns
+
+`void`
+
+## Defined in
+
+[adapter.ts:849](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L849)
diff --git a/docs/content/reference/interactive-messages/type-aliases/ViewSubmissionHandler.md b/docs/content/reference/interactive-messages/type-aliases/ViewSubmissionHandler.md
new file mode 100644
index 000000000..dae70ee31
--- /dev/null
+++ b/docs/content/reference/interactive-messages/type-aliases/ViewSubmissionHandler.md
@@ -0,0 +1,21 @@
+# Type Alias: ViewSubmissionHandler()
+
+```ts
+type ViewSubmissionHandler: (payload) => any | Promise | undefined;
+```
+
+A handler function for view submission requests.
+
+TODO: describe the payload and return values more specifically?
+
+## Parameters
+
+• **payload**: `any`
+
+## Returns
+
+`any` \| `Promise`\<`any`\> \| `undefined`
+
+## Defined in
+
+[adapter.ts:842](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/adapter.ts#L842)
diff --git a/docs/content/reference/interactive-messages/typedoc-sidebar.cjs b/docs/content/reference/interactive-messages/typedoc-sidebar.cjs
new file mode 100644
index 000000000..0fb80bc36
--- /dev/null
+++ b/docs/content/reference/interactive-messages/typedoc-sidebar.cjs
@@ -0,0 +1,4 @@
+// @ts-check
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"reference/interactive-messages/enumerations/ErrorCode","label":"ErrorCode"},{"type":"doc","id":"reference/interactive-messages/enumerations/ResponseStatus","label":"ResponseStatus"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"reference/interactive-messages/classes/SlackMessageAdapter","label":"SlackMessageAdapter"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"reference/interactive-messages/interfaces/ActionConstraints","label":"ActionConstraints"},{"type":"doc","id":"reference/interactive-messages/interfaces/DispatchResult","label":"DispatchResult"},{"type":"doc","id":"reference/interactive-messages/interfaces/MessageAdapterOptions","label":"MessageAdapterOptions"},{"type":"doc","id":"reference/interactive-messages/interfaces/OptionsConstraints","label":"OptionsConstraints"},{"type":"doc","id":"reference/interactive-messages/interfaces/ShortcutConstraints","label":"ShortcutConstraints"},{"type":"doc","id":"reference/interactive-messages/interfaces/ViewConstraints","label":"ViewConstraints"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"reference/interactive-messages/type-aliases/ActionHandler","label":"ActionHandler"},{"type":"doc","id":"reference/interactive-messages/type-aliases/OptionsHandler","label":"OptionsHandler"},{"type":"doc","id":"reference/interactive-messages/type-aliases/Respond","label":"Respond"},{"type":"doc","id":"reference/interactive-messages/type-aliases/ShortcutHandler","label":"ShortcutHandler"},{"type":"doc","id":"reference/interactive-messages/type-aliases/ViewClosedHandler","label":"ViewClosedHandler"},{"type":"doc","id":"reference/interactive-messages/type-aliases/ViewSubmissionHandler","label":"ViewSubmissionHandler"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"reference/interactive-messages/variables/errorCodes","label":"errorCodes"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"reference/interactive-messages/functions/createMessageAdapter","label":"createMessageAdapter"}]}]};
+module.exports = typedocSidebar.items;
\ No newline at end of file
diff --git a/docs/content/reference/interactive-messages/variables/errorCodes.md b/docs/content/reference/interactive-messages/variables/errorCodes.md
new file mode 100644
index 000000000..cddb80b45
--- /dev/null
+++ b/docs/content/reference/interactive-messages/variables/errorCodes.md
@@ -0,0 +1,19 @@
+# Variable: errorCodes
+
+```ts
+const errorCodes: object;
+```
+
+Dictionary of error codes that may appear on errors emitted from this package's objects
+
+## Type declaration
+
+### BODY\_PARSER\_NOT\_PERMITTED
+
+```ts
+readonly BODY_PARSER_NOT_PERMITTED: BodyParserNotPermitted = ErrorCode.BodyParserNotPermitted;
+```
+
+## Defined in
+
+[index.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/interactive-messages/src/index.ts#L25)
diff --git a/docs/content/reference/logger/classes/ConsoleLogger.md b/docs/content/reference/logger/classes/ConsoleLogger.md
new file mode 100644
index 000000000..fecea0306
--- /dev/null
+++ b/docs/content/reference/logger/classes/ConsoleLogger.md
@@ -0,0 +1,201 @@
+# Class: ConsoleLogger
+
+Default logger which logs to stdout and stderr
+
+## Implements
+
+- [`Logger`](../interfaces/Logger.md)
+
+## Constructors
+
+### new ConsoleLogger()
+
+```ts
+new ConsoleLogger(): ConsoleLogger
+```
+
+#### Returns
+
+[`ConsoleLogger`](ConsoleLogger.md)
+
+#### Defined in
+
+[index.ts:90](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L90)
+
+## Methods
+
+### debug()
+
+```ts
+debug(...msg): void
+```
+
+Log a debug message
+
+#### Parameters
+
+• ...**msg**: `any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`Logger`](../interfaces/Logger.md).[`debug`](../interfaces/Logger.md#debug)
+
+#### Defined in
+
+[index.ts:117](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L117)
+
+***
+
+### error()
+
+```ts
+error(...msg): void
+```
+
+Log an error message
+
+#### Parameters
+
+• ...**msg**: `any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`Logger`](../interfaces/Logger.md).[`error`](../interfaces/Logger.md#error)
+
+#### Defined in
+
+[index.ts:147](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L147)
+
+***
+
+### getLevel()
+
+```ts
+getLevel(): LogLevel
+```
+
+Return the current LogLevel.
+
+#### Returns
+
+[`LogLevel`](../enumerations/LogLevel.md)
+
+#### Implementation of
+
+[`Logger`](../interfaces/Logger.md).[`getLevel`](../interfaces/Logger.md#getlevel)
+
+#### Defined in
+
+[index.ts:95](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L95)
+
+***
+
+### info()
+
+```ts
+info(...msg): void
+```
+
+Log an info message
+
+#### Parameters
+
+• ...**msg**: `any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`Logger`](../interfaces/Logger.md).[`info`](../interfaces/Logger.md#info)
+
+#### Defined in
+
+[index.ts:127](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L127)
+
+***
+
+### setLevel()
+
+```ts
+setLevel(level): void
+```
+
+Sets the instance's log level so that only messages which are equal or more severe are output to the console.
+
+#### Parameters
+
+• **level**: [`LogLevel`](../enumerations/LogLevel.md)
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`Logger`](../interfaces/Logger.md).[`setLevel`](../interfaces/Logger.md#setlevel)
+
+#### Defined in
+
+[index.ts:102](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L102)
+
+***
+
+### setName()
+
+```ts
+setName(name): void
+```
+
+Set the instance's name, which will appear on each log line before the message.
+
+#### Parameters
+
+• **name**: `string`
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`Logger`](../interfaces/Logger.md).[`setName`](../interfaces/Logger.md#setname)
+
+#### Defined in
+
+[index.ts:109](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L109)
+
+***
+
+### warn()
+
+```ts
+warn(...msg): void
+```
+
+Log a warning message
+
+#### Parameters
+
+• ...**msg**: `any`[]
+
+#### Returns
+
+`void`
+
+#### Implementation of
+
+[`Logger`](../interfaces/Logger.md).[`warn`](../interfaces/Logger.md#warn)
+
+#### Defined in
+
+[index.ts:137](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L137)
diff --git a/docs/content/reference/logger/enumerations/LogLevel.md b/docs/content/reference/logger/enumerations/LogLevel.md
new file mode 100644
index 000000000..69614a47c
--- /dev/null
+++ b/docs/content/reference/logger/enumerations/LogLevel.md
@@ -0,0 +1,51 @@
+# Enumeration: LogLevel
+
+Severity levels for log entries
+
+## Enumeration Members
+
+### DEBUG
+
+```ts
+DEBUG: "debug";
+```
+
+#### Defined in
+
+[index.ts:10](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L10)
+
+***
+
+### ERROR
+
+```ts
+ERROR: "error";
+```
+
+#### Defined in
+
+[index.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L7)
+
+***
+
+### INFO
+
+```ts
+INFO: "info";
+```
+
+#### Defined in
+
+[index.ts:9](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L9)
+
+***
+
+### WARN
+
+```ts
+WARN: "warn";
+```
+
+#### Defined in
+
+[index.ts:8](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L8)
diff --git a/docs/content/reference/logger/index.md b/docs/content/reference/logger/index.md
new file mode 100644
index 000000000..aa5090552
--- /dev/null
+++ b/docs/content/reference/logger/index.md
@@ -0,0 +1,13 @@
+# @slack/logger
+
+## Enumerations
+
+- [LogLevel](enumerations/LogLevel.md)
+
+## Classes
+
+- [ConsoleLogger](classes/ConsoleLogger.md)
+
+## Interfaces
+
+- [Logger](interfaces/Logger.md)
diff --git a/docs/content/reference/logger/interfaces/Logger.md b/docs/content/reference/logger/interfaces/Logger.md
new file mode 100644
index 000000000..bc426ad6a
--- /dev/null
+++ b/docs/content/reference/logger/interfaces/Logger.md
@@ -0,0 +1,167 @@
+# Interface: Logger
+
+Interface for objects where objects in this package's logs can be sent (can be used as `logger` option).
+
+## Methods
+
+### debug()
+
+```ts
+debug(...msg): void
+```
+
+Output debug message
+
+#### Parameters
+
+• ...**msg**: `any`[]
+
+any data to log
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[index.ts:22](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L22)
+
+***
+
+### error()
+
+```ts
+error(...msg): void
+```
+
+Output error message
+
+#### Parameters
+
+• ...**msg**: `any`[]
+
+any data to log
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[index.ts:43](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L43)
+
+***
+
+### getLevel()
+
+```ts
+getLevel(): LogLevel
+```
+
+Return the current LogLevel.
+
+#### Returns
+
+[`LogLevel`](../enumerations/LogLevel.md)
+
+#### Defined in
+
+[index.ts:55](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L55)
+
+***
+
+### info()
+
+```ts
+info(...msg): void
+```
+
+Output info message
+
+#### Parameters
+
+• ...**msg**: `any`[]
+
+any data to log
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[index.ts:29](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L29)
+
+***
+
+### setLevel()
+
+```ts
+setLevel(level): void
+```
+
+This disables all logging below the given level, so that after a log.setLevel("warn") call log.warn("something")
+or log.error("something") will output messages, but log.info("something") will not.
+
+#### Parameters
+
+• **level**: [`LogLevel`](../enumerations/LogLevel.md)
+
+as a string, like 'error' (case-insensitive)
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[index.ts:50](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L50)
+
+***
+
+### setName()
+
+```ts
+setName(name): void
+```
+
+This allows the instance to be named so that they can easily be filtered when many loggers are sending output
+to the same destination.
+
+#### Parameters
+
+• **name**: `string`
+
+as a string, will be output with every log after the level
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[index.ts:62](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L62)
+
+***
+
+### warn()
+
+```ts
+warn(...msg): void
+```
+
+Output warn message
+
+#### Parameters
+
+• ...**msg**: `any`[]
+
+any data to log
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[index.ts:36](https://github.com/slackapi/node-slack-sdk/blob/main/packages/logger/src/index.ts#L36)
diff --git a/docs/content/reference/logger/typedoc-sidebar.cjs b/docs/content/reference/logger/typedoc-sidebar.cjs
new file mode 100644
index 000000000..be53408c9
--- /dev/null
+++ b/docs/content/reference/logger/typedoc-sidebar.cjs
@@ -0,0 +1,4 @@
+// @ts-check
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"reference/logger/enumerations/LogLevel","label":"LogLevel"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"reference/logger/classes/ConsoleLogger","label":"ConsoleLogger"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"reference/logger/interfaces/Logger","label":"Logger"}]}]};
+module.exports = typedocSidebar.items;
\ No newline at end of file
diff --git a/docs/content/reference/oauth/classes/AuthorizationError.md b/docs/content/reference/oauth/classes/AuthorizationError.md
new file mode 100644
index 000000000..75bb0549d
--- /dev/null
+++ b/docs/content/reference/oauth/classes/AuthorizationError.md
@@ -0,0 +1,123 @@
+# Class: AuthorizationError
+
+## Extends
+
+- `Error`
+
+## Implements
+
+- [`CodedError`](../interfaces/CodedError.md)
+
+## Constructors
+
+### new AuthorizationError()
+
+```ts
+new AuthorizationError(message, original?): AuthorizationError
+```
+
+#### Parameters
+
+• **message**: `string`
+
+• **original?**: `Error`
+
+#### Returns
+
+[`AuthorizationError`](AuthorizationError.md)
+
+#### Overrides
+
+`Error.constructor`
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:45](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L45)
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode = ErrorCode.AuthorizationError;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`code`](../interfaces/CodedError.md#code)
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:41](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L41)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`message`](../interfaces/CodedError.md#message)
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`name`](../interfaces/CodedError.md#name)
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### original
+
+```ts
+original: undefined | Error;
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:43](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L43)
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`stack`](../interfaces/CodedError.md#stack)
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/oauth/classes/ClearStateStore.md b/docs/content/reference/oauth/classes/ClearStateStore.md
new file mode 100644
index 000000000..5297be143
--- /dev/null
+++ b/docs/content/reference/oauth/classes/ClearStateStore.md
@@ -0,0 +1,93 @@
+# Class: ClearStateStore
+
+Generates state parameter value in the OAuth flow.
+While the state parameter value works for the CSRF protection purpose,
+it can transfer the given InstallURLOptions value to the Redirect URL handler
+(Redirect URL: the default path is "/slack/oauth_redirect")
+
+## Implements
+
+- [`StateStore`](../interfaces/StateStore.md)
+
+## Constructors
+
+### new ClearStateStore()
+
+```ts
+new ClearStateStore(stateSecret, stateExpirationSeconds): ClearStateStore
+```
+
+#### Parameters
+
+• **stateSecret**: `string`
+
+• **stateExpirationSeconds**: `number` = `600`
+
+#### Returns
+
+[`ClearStateStore`](ClearStateStore.md)
+
+#### Defined in
+
+[packages/oauth/src/state-stores/clear-state-store.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/clear-state-store.ts#L13)
+
+## Methods
+
+### generateStateParam()
+
+```ts
+generateStateParam(installOptions, now): Promise
+```
+
+Generates a valid state parameter value, which can be decoded as a StateObj object
+by the verifyStateParam() method. This value may be stored on the server-side with expiration.
+The InstallProvider verifies if this value is set in the installer's browser session.
+
+#### Parameters
+
+• **installOptions**: [`InstallURLOptions`](../interfaces/InstallURLOptions.md)
+
+• **now**: `Date`
+
+#### Returns
+
+`Promise`\<`string`\>
+
+#### Implementation of
+
+[`StateStore`](../interfaces/StateStore.md).[`generateStateParam`](../interfaces/StateStore.md#generatestateparam)
+
+#### Defined in
+
+[packages/oauth/src/state-stores/clear-state-store.ts:21](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/clear-state-store.ts#L21)
+
+***
+
+### verifyStateParam()
+
+```ts
+verifyStateParam(now, state): Promise
+```
+
+Verifies the given state string value by trying to decode the value and
+build the passed InstallURLOptions object from the data.
+This method verifies if the state value is not too old to detect replay attacks.
+If the value is invalid, this method can throw InvalidStateError exception.
+
+#### Parameters
+
+• **now**: `Date`
+
+• **state**: `string`
+
+#### Returns
+
+`Promise`\<[`InstallURLOptions`](../interfaces/InstallURLOptions.md)\>
+
+#### Implementation of
+
+[`StateStore`](../interfaces/StateStore.md).[`verifyStateParam`](../interfaces/StateStore.md#verifystateparam)
+
+#### Defined in
+
+[packages/oauth/src/state-stores/clear-state-store.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/clear-state-store.ts#L33)
diff --git a/docs/content/reference/oauth/classes/FileInstallationStore.md b/docs/content/reference/oauth/classes/FileInstallationStore.md
new file mode 100644
index 000000000..06ca6e1ae
--- /dev/null
+++ b/docs/content/reference/oauth/classes/FileInstallationStore.md
@@ -0,0 +1,103 @@
+# Class: FileInstallationStore
+
+## Implements
+
+- [`InstallationStore`](../interfaces/InstallationStore.md)
+
+## Constructors
+
+### new FileInstallationStore()
+
+```ts
+new FileInstallationStore(__namedParameters): FileInstallationStore
+```
+
+#### Parameters
+
+• **\_\_namedParameters**: `FileInstallationOptions` = `{}`
+
+#### Returns
+
+[`FileInstallationStore`](FileInstallationStore.md)
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/file-store.ts:19](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/file-store.ts#L19)
+
+## Methods
+
+### deleteInstallation()
+
+```ts
+deleteInstallation(query, logger?): Promise
+```
+
+#### Parameters
+
+• **query**: [`InstallationQuery`](../interfaces/InstallationQuery.md)\<`boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Implementation of
+
+[`InstallationStore`](../interfaces/InstallationStore.md).[`deleteInstallation`](../interfaces/InstallationStore.md#deleteinstallation)
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/file-store.ts:97](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/file-store.ts#L97)
+
+***
+
+### fetchInstallation()
+
+```ts
+fetchInstallation(query, logger?): Promise>
+```
+
+#### Parameters
+
+• **query**: [`InstallationQuery`](../interfaces/InstallationQuery.md)\<`boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<[`Installation`](../interfaces/Installation.md)\<`"v1"` \| `"v2"`, `boolean`\>\>
+
+#### Implementation of
+
+[`InstallationStore`](../interfaces/InstallationStore.md).[`fetchInstallation`](../interfaces/InstallationStore.md#fetchinstallation)
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/file-store.ts:61](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/file-store.ts#L61)
+
+***
+
+### storeInstallation()
+
+```ts
+storeInstallation(installation, logger?): Promise
+```
+
+#### Parameters
+
+• **installation**: [`Installation`](../interfaces/Installation.md)\<`"v1"` \| `"v2"`, `boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Implementation of
+
+[`InstallationStore`](../interfaces/InstallationStore.md).[`storeInstallation`](../interfaces/InstallationStore.md#storeinstallation)
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/file-store.ts:28](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/file-store.ts#L28)
diff --git a/docs/content/reference/oauth/classes/FileStateStore.md b/docs/content/reference/oauth/classes/FileStateStore.md
new file mode 100644
index 000000000..26fbe747e
--- /dev/null
+++ b/docs/content/reference/oauth/classes/FileStateStore.md
@@ -0,0 +1,91 @@
+# Class: FileStateStore
+
+Generates state parameter value in the OAuth flow.
+While the state parameter value works for the CSRF protection purpose,
+it can transfer the given InstallURLOptions value to the Redirect URL handler
+(Redirect URL: the default path is "/slack/oauth_redirect")
+
+## Implements
+
+- [`StateStore`](../interfaces/StateStore.md)
+
+## Constructors
+
+### new FileStateStore()
+
+```ts
+new FileStateStore(args): FileStateStore
+```
+
+#### Parameters
+
+• **args**: [`FileStateStoreArgs`](../interfaces/FileStateStoreArgs.md)
+
+#### Returns
+
+[`FileStateStore`](FileStateStore.md)
+
+#### Defined in
+
+[packages/oauth/src/state-stores/file-state-store.ts:24](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/file-state-store.ts#L24)
+
+## Methods
+
+### generateStateParam()
+
+```ts
+generateStateParam(installOptions, now): Promise
+```
+
+Generates a valid state parameter value, which can be decoded as a StateObj object
+by the verifyStateParam() method. This value may be stored on the server-side with expiration.
+The InstallProvider verifies if this value is set in the installer's browser session.
+
+#### Parameters
+
+• **installOptions**: [`InstallURLOptions`](../interfaces/InstallURLOptions.md)
+
+• **now**: `Date`
+
+#### Returns
+
+`Promise`\<`string`\>
+
+#### Implementation of
+
+[`StateStore`](../interfaces/StateStore.md).[`generateStateParam`](../interfaces/StateStore.md#generatestateparam)
+
+#### Defined in
+
+[packages/oauth/src/state-stores/file-state-store.ts:34](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/file-state-store.ts#L34)
+
+***
+
+### verifyStateParam()
+
+```ts
+verifyStateParam(now, state): Promise
+```
+
+Verifies the given state string value by trying to decode the value and
+build the passed InstallURLOptions object from the data.
+This method verifies if the state value is not too old to detect replay attacks.
+If the value is invalid, this method can throw InvalidStateError exception.
+
+#### Parameters
+
+• **now**: `Date`
+
+• **state**: `string`
+
+#### Returns
+
+`Promise`\<[`InstallURLOptions`](../interfaces/InstallURLOptions.md)\>
+
+#### Implementation of
+
+[`StateStore`](../interfaces/StateStore.md).[`verifyStateParam`](../interfaces/StateStore.md#verifystateparam)
+
+#### Defined in
+
+[packages/oauth/src/state-stores/file-state-store.ts:48](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/file-state-store.ts#L48)
diff --git a/docs/content/reference/oauth/classes/GenerateInstallUrlError.md b/docs/content/reference/oauth/classes/GenerateInstallUrlError.md
new file mode 100644
index 000000000..dd635be81
--- /dev/null
+++ b/docs/content/reference/oauth/classes/GenerateInstallUrlError.md
@@ -0,0 +1,109 @@
+# Class: GenerateInstallUrlError
+
+## Extends
+
+- `Error`
+
+## Implements
+
+- [`CodedError`](../interfaces/CodedError.md)
+
+## Constructors
+
+### new GenerateInstallUrlError()
+
+```ts
+new GenerateInstallUrlError(message?): GenerateInstallUrlError
+```
+
+#### Parameters
+
+• **message?**: `string`
+
+#### Returns
+
+[`GenerateInstallUrlError`](GenerateInstallUrlError.md)
+
+#### Inherited from
+
+`Error.constructor`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1082
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode = ErrorCode.GenerateInstallUrlError;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`code`](../interfaces/CodedError.md#code)
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:23](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L23)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`message`](../interfaces/CodedError.md#message)
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`name`](../interfaces/CodedError.md#name)
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`stack`](../interfaces/CodedError.md#stack)
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/oauth/classes/InstallProvider.md b/docs/content/reference/oauth/classes/InstallProvider.md
new file mode 100644
index 000000000..82e2aca4a
--- /dev/null
+++ b/docs/content/reference/oauth/classes/InstallProvider.md
@@ -0,0 +1,169 @@
+# Class: InstallProvider
+
+InstallProvider Class. Refer to InsallProviderOptions interface for the details of constructor arguments.
+
+## Constructors
+
+### new InstallProvider()
+
+```ts
+new InstallProvider(__namedParameters): InstallProvider
+```
+
+#### Parameters
+
+• **\_\_namedParameters**: [`InstallProviderOptions`](../interfaces/InstallProviderOptions.md)
+
+#### Returns
+
+[`InstallProvider`](InstallProvider.md)
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:87](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L87)
+
+## Properties
+
+### installationStore
+
+```ts
+installationStore: InstallationStore;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:38](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L38)
+
+***
+
+### stateStore?
+
+```ts
+optional stateStore: StateStore;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:35](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L35)
+
+## Methods
+
+### authorize()
+
+```ts
+authorize(source): Promise
+```
+
+Fetches data from the installationStore
+
+#### Parameters
+
+• **source**: [`InstallationQuery`](../interfaces/InstallationQuery.md)\<`boolean`\>
+
+#### Returns
+
+`Promise`\<[`AuthorizeResult`](../interfaces/AuthorizeResult.md)\>
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:173](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L173)
+
+***
+
+### generateInstallUrl()
+
+```ts
+generateInstallUrl(
+ options,
+ stateVerification,
+state?): Promise
+```
+
+Returns a URL that is suitable for including in an Add to Slack button
+Uses stateStore to generate a value for the state query param.
+
+#### Parameters
+
+• **options**: [`InstallURLOptions`](../interfaces/InstallURLOptions.md)
+
+• **stateVerification**: `boolean` = `true`
+
+• **state?**: `string`
+
+#### Returns
+
+`Promise`\<`string`\>
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:408](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L408)
+
+***
+
+### handleCallback()
+
+```ts
+handleCallback(
+ req,
+ res,
+ options?,
+installOptions?): Promise
+```
+
+This method handles the incoming request to the callback URL.
+It can be used as a RequestListener in almost any HTTP server
+framework.
+
+Verifies the state using the stateStore, exchanges the grant in the
+query params for an access token, and stores token and associated data
+in the installationStore.
+
+#### Parameters
+
+• **req**: `IncomingMessage`
+
+• **res**: `ServerResponse`
+
+• **options?**: [`CallbackOptions`](../interfaces/CallbackOptions.md)
+
+• **installOptions?**: [`InstallURLOptions`](../interfaces/InstallURLOptions.md)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:478](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L478)
+
+***
+
+### handleInstallPath()
+
+```ts
+handleInstallPath(
+ req,
+ res,
+ options?,
+installOptions?): Promise
+```
+
+Handles the install path (the default is /slack/install) requests from an app installer.
+
+#### Parameters
+
+• **req**: `IncomingMessage`
+
+• **res**: `ServerResponse`
+
+• **options?**: [`InstallPathOptions`](../interfaces/InstallPathOptions.md)
+
+• **installOptions?**: [`InstallURLOptions`](../interfaces/InstallURLOptions.md)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:324](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L324)
diff --git a/docs/content/reference/oauth/classes/InstallerInitializationError.md b/docs/content/reference/oauth/classes/InstallerInitializationError.md
new file mode 100644
index 000000000..807b8df0e
--- /dev/null
+++ b/docs/content/reference/oauth/classes/InstallerInitializationError.md
@@ -0,0 +1,109 @@
+# Class: InstallerInitializationError
+
+## Extends
+
+- `Error`
+
+## Implements
+
+- [`CodedError`](../interfaces/CodedError.md)
+
+## Constructors
+
+### new InstallerInitializationError()
+
+```ts
+new InstallerInitializationError(message?): InstallerInitializationError
+```
+
+#### Parameters
+
+• **message?**: `string`
+
+#### Returns
+
+[`InstallerInitializationError`](InstallerInitializationError.md)
+
+#### Inherited from
+
+`Error.constructor`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1082
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode = ErrorCode.InstallerInitializationError;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`code`](../interfaces/CodedError.md#code)
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:19](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L19)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`message`](../interfaces/CodedError.md#message)
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`name`](../interfaces/CodedError.md#name)
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`stack`](../interfaces/CodedError.md#stack)
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/oauth/classes/InvalidStateError.md b/docs/content/reference/oauth/classes/InvalidStateError.md
new file mode 100644
index 000000000..b500bdccc
--- /dev/null
+++ b/docs/content/reference/oauth/classes/InvalidStateError.md
@@ -0,0 +1,109 @@
+# Class: InvalidStateError
+
+## Extends
+
+- `Error`
+
+## Implements
+
+- [`CodedError`](../interfaces/CodedError.md)
+
+## Constructors
+
+### new InvalidStateError()
+
+```ts
+new InvalidStateError(message?): InvalidStateError
+```
+
+#### Parameters
+
+• **message?**: `string`
+
+#### Returns
+
+[`InvalidStateError`](InvalidStateError.md)
+
+#### Inherited from
+
+`Error.constructor`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1082
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode = ErrorCode.InvalidStateError;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`code`](../interfaces/CodedError.md#code)
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:29](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L29)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`message`](../interfaces/CodedError.md#message)
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`name`](../interfaces/CodedError.md#name)
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`stack`](../interfaces/CodedError.md#stack)
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/oauth/classes/MemoryInstallationStore.md b/docs/content/reference/oauth/classes/MemoryInstallationStore.md
new file mode 100644
index 000000000..0c62aed68
--- /dev/null
+++ b/docs/content/reference/oauth/classes/MemoryInstallationStore.md
@@ -0,0 +1,107 @@
+# Class: MemoryInstallationStore
+
+## Implements
+
+- [`InstallationStore`](../interfaces/InstallationStore.md)
+
+## Constructors
+
+### new MemoryInstallationStore()
+
+```ts
+new MemoryInstallationStore(): MemoryInstallationStore
+```
+
+#### Returns
+
+[`MemoryInstallationStore`](MemoryInstallationStore.md)
+
+## Properties
+
+### devDB
+
+```ts
+devDB: DevDatabase = {};
+```
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/memory-store.ts:12](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/memory-store.ts#L12)
+
+## Methods
+
+### deleteInstallation()
+
+```ts
+deleteInstallation(query, logger?): Promise
+```
+
+#### Parameters
+
+• **query**: [`InstallationQuery`](../interfaces/InstallationQuery.md)\<`boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Implementation of
+
+[`InstallationStore`](../interfaces/InstallationStore.md).[`deleteInstallation`](../interfaces/InstallationStore.md#deleteinstallation)
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/memory-store.ts:59](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/memory-store.ts#L59)
+
+***
+
+### fetchInstallation()
+
+```ts
+fetchInstallation(query, logger?): Promise>
+```
+
+#### Parameters
+
+• **query**: [`InstallationQuery`](../interfaces/InstallationQuery.md)\<`boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<[`Installation`](../interfaces/Installation.md)\<`"v1"` \| `"v2"`, `boolean`\>\>
+
+#### Implementation of
+
+[`InstallationStore`](../interfaces/InstallationStore.md).[`fetchInstallation`](../interfaces/InstallationStore.md#fetchinstallation)
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/memory-store.ts:38](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/memory-store.ts#L38)
+
+***
+
+### storeInstallation()
+
+```ts
+storeInstallation(installation, logger?): Promise
+```
+
+#### Parameters
+
+• **installation**: [`Installation`](../interfaces/Installation.md)\<`"v1"` \| `"v2"`, `boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Implementation of
+
+[`InstallationStore`](../interfaces/InstallationStore.md).[`storeInstallation`](../interfaces/InstallationStore.md#storeinstallation)
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/memory-store.ts:14](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/memory-store.ts#L14)
diff --git a/docs/content/reference/oauth/classes/MissingCodeError.md b/docs/content/reference/oauth/classes/MissingCodeError.md
new file mode 100644
index 000000000..62db97341
--- /dev/null
+++ b/docs/content/reference/oauth/classes/MissingCodeError.md
@@ -0,0 +1,109 @@
+# Class: MissingCodeError
+
+## Extends
+
+- `Error`
+
+## Implements
+
+- [`CodedError`](../interfaces/CodedError.md)
+
+## Constructors
+
+### new MissingCodeError()
+
+```ts
+new MissingCodeError(message?): MissingCodeError
+```
+
+#### Parameters
+
+• **message?**: `string`
+
+#### Returns
+
+[`MissingCodeError`](MissingCodeError.md)
+
+#### Inherited from
+
+`Error.constructor`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1082
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode = ErrorCode.MissingCodeError;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`code`](../interfaces/CodedError.md#code)
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L33)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`message`](../interfaces/CodedError.md#message)
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`name`](../interfaces/CodedError.md#name)
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`stack`](../interfaces/CodedError.md#stack)
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/oauth/classes/MissingStateError.md b/docs/content/reference/oauth/classes/MissingStateError.md
new file mode 100644
index 000000000..cd31665b0
--- /dev/null
+++ b/docs/content/reference/oauth/classes/MissingStateError.md
@@ -0,0 +1,109 @@
+# Class: MissingStateError
+
+## Extends
+
+- `Error`
+
+## Implements
+
+- [`CodedError`](../interfaces/CodedError.md)
+
+## Constructors
+
+### new MissingStateError()
+
+```ts
+new MissingStateError(message?): MissingStateError
+```
+
+#### Parameters
+
+• **message?**: `string`
+
+#### Returns
+
+[`MissingStateError`](MissingStateError.md)
+
+#### Inherited from
+
+`Error.constructor`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1082
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode = ErrorCode.MissingStateError;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`code`](../interfaces/CodedError.md#code)
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:26](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L26)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`message`](../interfaces/CodedError.md#message)
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`name`](../interfaces/CodedError.md#name)
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`stack`](../interfaces/CodedError.md#stack)
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/oauth/classes/UnknownError.md b/docs/content/reference/oauth/classes/UnknownError.md
new file mode 100644
index 000000000..5f4713005
--- /dev/null
+++ b/docs/content/reference/oauth/classes/UnknownError.md
@@ -0,0 +1,109 @@
+# Class: UnknownError
+
+## Extends
+
+- `Error`
+
+## Implements
+
+- [`CodedError`](../interfaces/CodedError.md)
+
+## Constructors
+
+### new UnknownError()
+
+```ts
+new UnknownError(message?): UnknownError
+```
+
+#### Parameters
+
+• **message?**: `string`
+
+#### Returns
+
+[`UnknownError`](UnknownError.md)
+
+#### Inherited from
+
+`Error.constructor`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1082
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode = ErrorCode.UnknownError;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`code`](../interfaces/CodedError.md#code)
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:37](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L37)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`message`](../interfaces/CodedError.md#message)
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`name`](../interfaces/CodedError.md#name)
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Implementation of
+
+[`CodedError`](../interfaces/CodedError.md).[`stack`](../interfaces/CodedError.md#stack)
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/oauth/enumerations/ErrorCode.md b/docs/content/reference/oauth/enumerations/ErrorCode.md
new file mode 100644
index 000000000..8d311035c
--- /dev/null
+++ b/docs/content/reference/oauth/enumerations/ErrorCode.md
@@ -0,0 +1,87 @@
+# Enumeration: ErrorCode
+
+A dictionary of codes for errors produced by this package.
+
+## Enumeration Members
+
+### AuthorizationError
+
+```ts
+AuthorizationError: "slack_oauth_installer_authorization_error";
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:10](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L10)
+
+***
+
+### GenerateInstallUrlError
+
+```ts
+GenerateInstallUrlError: "slack_oauth_generate_url_error";
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:11](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L11)
+
+***
+
+### InstallerInitializationError
+
+```ts
+InstallerInitializationError: "slack_oauth_installer_initialization_error";
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:9](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L9)
+
+***
+
+### InvalidStateError
+
+```ts
+InvalidStateError: "slack_oauth_invalid_state";
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L13)
+
+***
+
+### MissingCodeError
+
+```ts
+MissingCodeError: "slack_oauth_missing_code";
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:14](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L14)
+
+***
+
+### MissingStateError
+
+```ts
+MissingStateError: "slack_oauth_missing_state";
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:12](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L12)
+
+***
+
+### UnknownError
+
+```ts
+UnknownError: "slack_oauth_unknown_error";
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L15)
diff --git a/docs/content/reference/oauth/functions/defaultCallbackFailure.md b/docs/content/reference/oauth/functions/defaultCallbackFailure.md
new file mode 100644
index 000000000..4e5c155cd
--- /dev/null
+++ b/docs/content/reference/oauth/functions/defaultCallbackFailure.md
@@ -0,0 +1,27 @@
+# Function: defaultCallbackFailure()
+
+```ts
+function defaultCallbackFailure(
+ error,
+ _options,
+ _req,
+ res): void
+```
+
+## Parameters
+
+• **error**: [`CodedError`](../interfaces/CodedError.md)
+
+• **\_options**: [`InstallURLOptions`](../interfaces/InstallURLOptions.md)
+
+• **\_req**: `IncomingMessage`
+
+• **res**: `ServerResponse`
+
+## Returns
+
+`void`
+
+## Defined in
+
+[packages/oauth/src/callback-options.ts:128](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/callback-options.ts#L128)
diff --git a/docs/content/reference/oauth/functions/defaultCallbackSuccess.md b/docs/content/reference/oauth/functions/defaultCallbackSuccess.md
new file mode 100644
index 000000000..7b2d8c651
--- /dev/null
+++ b/docs/content/reference/oauth/functions/defaultCallbackSuccess.md
@@ -0,0 +1,27 @@
+# Function: defaultCallbackSuccess()
+
+```ts
+function defaultCallbackSuccess(
+ installation,
+ _options,
+ _req,
+ res): void
+```
+
+## Parameters
+
+• **installation**: [`Installation`](../interfaces/Installation.md)\<`"v1"` \| `"v2"`, `boolean`\>
+
+• **\_options**: `undefined` \| [`InstallURLOptions`](../interfaces/InstallURLOptions.md)
+
+• **\_req**: `IncomingMessage`
+
+• **res**: `ServerResponse`
+
+## Returns
+
+`void`
+
+## Defined in
+
+[packages/oauth/src/callback-options.ts:82](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/callback-options.ts#L82)
diff --git a/docs/content/reference/oauth/functions/defaultRenderHtmlForInstallPath.md b/docs/content/reference/oauth/functions/defaultRenderHtmlForInstallPath.md
new file mode 100644
index 000000000..fafe8097f
--- /dev/null
+++ b/docs/content/reference/oauth/functions/defaultRenderHtmlForInstallPath.md
@@ -0,0 +1,17 @@
+# Function: defaultRenderHtmlForInstallPath()
+
+```ts
+function defaultRenderHtmlForInstallPath(addToSlackUrl): string
+```
+
+## Parameters
+
+• **addToSlackUrl**: `string`
+
+## Returns
+
+`string`
+
+## Defined in
+
+[packages/oauth/src/default-render-html-for-install-path.ts:1](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/default-render-html-for-install-path.ts#L1)
diff --git a/docs/content/reference/oauth/index.md b/docs/content/reference/oauth/index.md
new file mode 100644
index 000000000..e73b1f689
--- /dev/null
+++ b/docs/content/reference/oauth/index.md
@@ -0,0 +1,58 @@
+# @slack/oauth
+
+## References
+
+### LogLevel
+
+Renames and re-exports [Logger](variables/Logger.md)
+
+## Enumerations
+
+- [ErrorCode](enumerations/ErrorCode.md)
+
+## Classes
+
+- [AuthorizationError](classes/AuthorizationError.md)
+- [ClearStateStore](classes/ClearStateStore.md)
+- [FileInstallationStore](classes/FileInstallationStore.md)
+- [FileStateStore](classes/FileStateStore.md)
+- [GenerateInstallUrlError](classes/GenerateInstallUrlError.md)
+- [InstallProvider](classes/InstallProvider.md)
+- [InstallerInitializationError](classes/InstallerInitializationError.md)
+- [InvalidStateError](classes/InvalidStateError.md)
+- [MemoryInstallationStore](classes/MemoryInstallationStore.md)
+- [MissingCodeError](classes/MissingCodeError.md)
+- [MissingStateError](classes/MissingStateError.md)
+- [UnknownError](classes/UnknownError.md)
+
+## Interfaces
+
+- [AuthorizeResult](interfaces/AuthorizeResult.md)
+- [CallbackOptions](interfaces/CallbackOptions.md)
+- [CodedError](interfaces/CodedError.md)
+- [FileStateStoreArgs](interfaces/FileStateStoreArgs.md)
+- [InstallPathOptions](interfaces/InstallPathOptions.md)
+- [InstallProviderOptions](interfaces/InstallProviderOptions.md)
+- [InstallURLOptions](interfaces/InstallURLOptions.md)
+- [Installation](interfaces/Installation.md)
+- [InstallationQuery](interfaces/InstallationQuery.md)
+- [InstallationStore](interfaces/InstallationStore.md)
+- [OAuthV2Response](interfaces/OAuthV2Response.md)
+- [OAuthV2TokenRefreshResponse](interfaces/OAuthV2TokenRefreshResponse.md)
+- [StateObj](interfaces/StateObj.md)
+- [StateStore](interfaces/StateStore.md)
+
+## Type Aliases
+
+- [OrgInstallation](type-aliases/OrgInstallation.md)
+- [OrgInstallationQuery](type-aliases/OrgInstallationQuery.md)
+
+## Variables
+
+- [Logger](variables/Logger.md)
+
+## Functions
+
+- [defaultCallbackFailure](functions/defaultCallbackFailure.md)
+- [defaultCallbackSuccess](functions/defaultCallbackSuccess.md)
+- [defaultRenderHtmlForInstallPath](functions/defaultRenderHtmlForInstallPath.md)
diff --git a/docs/content/reference/oauth/interfaces/AuthorizeResult.md b/docs/content/reference/oauth/interfaces/AuthorizeResult.md
new file mode 100644
index 000000000..0b3c2be29
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/AuthorizeResult.md
@@ -0,0 +1,121 @@
+# Interface: AuthorizeResult
+
+## Properties
+
+### botId?
+
+```ts
+optional botId: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:11](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L11)
+
+***
+
+### botRefreshToken?
+
+```ts
+optional botRefreshToken: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L6)
+
+***
+
+### botToken?
+
+```ts
+optional botToken: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:5](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L5)
+
+***
+
+### botTokenExpiresAt?
+
+```ts
+optional botTokenExpiresAt: number;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L7)
+
+***
+
+### botUserId?
+
+```ts
+optional botUserId: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:12](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L12)
+
+***
+
+### enterpriseId?
+
+```ts
+optional enterpriseId: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:14](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L14)
+
+***
+
+### teamId?
+
+```ts
+optional teamId: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L13)
+
+***
+
+### userRefreshToken?
+
+```ts
+optional userRefreshToken: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:9](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L9)
+
+***
+
+### userToken?
+
+```ts
+optional userToken: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:8](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L8)
+
+***
+
+### userTokenExpiresAt?
+
+```ts
+optional userTokenExpiresAt: number;
+```
+
+#### Defined in
+
+[packages/oauth/src/authorize-result.ts:10](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/authorize-result.ts#L10)
diff --git a/docs/content/reference/oauth/interfaces/CallbackOptions.md b/docs/content/reference/oauth/interfaces/CallbackOptions.md
new file mode 100644
index 000000000..24347058a
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/CallbackOptions.md
@@ -0,0 +1,172 @@
+# Interface: CallbackOptions
+
+## Properties
+
+### afterInstallation()?
+
+```ts
+optional afterInstallation: (installation, options, callbackReq, callbackRes) => Promise;
+```
+
+An additional logic to run right after executing the Slack app installation with the given OAuth code parameter.
+
+When this method returns false, the InstallProvider skips storing the installation in database.
+You can set false when your app needs to cancel the installation (you can call auth.revoke API method for it)
+and then, the app needs to display an error page to the installing user.
+
+Also, when returning false, this method is responsible to call callbackRes#end() method
+to build complete HTTP response for end-users.
+
+#### Parameters
+
+• **installation**: [`Installation`](Installation.md)\<`"v1"` \| `"v2"`, `boolean`\> \| [`OrgInstallation`](../type-aliases/OrgInstallation.md)
+
+• **options**: [`InstallURLOptions`](InstallURLOptions.md)
+
+• **callbackReq**: `IncomingMessage`
+
+• **callbackRes**: `ServerResponse`
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+#### Defined in
+
+[packages/oauth/src/callback-options.ts:34](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/callback-options.ts#L34)
+
+***
+
+### beforeInstallation()?
+
+```ts
+optional beforeInstallation: (options, callbackReq, callbackRes) => Promise;
+```
+
+An additional logic to run right before executing the Slack app installation with the given OAuth code parameter.
+
+When this method returns false, the InstallProvider skips the installation.
+You can set false when the visiting user is not eligible to proceed with the Slack app installation flow.
+
+Also, when returning false, this method is responsible for calling the callbackRes#end() method
+to build a complete HTTP response for end-users.
+
+#### Parameters
+
+• **options**: [`InstallURLOptions`](InstallURLOptions.md)
+
+• **callbackReq**: `IncomingMessage`
+
+• **callbackRes**: `ServerResponse`
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+#### Defined in
+
+[packages/oauth/src/callback-options.ts:18](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/callback-options.ts#L18)
+
+***
+
+### failure()?
+
+```ts
+optional failure: (error, options, callbackReq, callbackRes) => void;
+```
+
+#### Parameters
+
+• **error**: [`CodedError`](CodedError.md)
+
+• **options**: [`InstallURLOptions`](InstallURLOptions.md)
+
+• **callbackReq**: `IncomingMessage`
+
+• **callbackRes**: `ServerResponse`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[packages/oauth/src/callback-options.ts:64](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/callback-options.ts#L64)
+
+***
+
+### failureAsync()?
+
+```ts
+optional failureAsync: (error, options, callbackReq, callbackRes) => Promise;
+```
+
+#### Parameters
+
+• **error**: [`CodedError`](CodedError.md)
+
+• **options**: [`InstallURLOptions`](InstallURLOptions.md)
+
+• **callbackReq**: `IncomingMessage`
+
+• **callbackRes**: `ServerResponse`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/oauth/src/callback-options.ts:73](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/callback-options.ts#L73)
+
+***
+
+### success()?
+
+```ts
+optional success: (installation, options, callbackReq, callbackRes) => void;
+```
+
+#### Parameters
+
+• **installation**: [`Installation`](Installation.md)\<`"v1"` \| `"v2"`, `boolean`\> \| [`OrgInstallation`](../type-aliases/OrgInstallation.md)
+
+• **options**: [`InstallURLOptions`](InstallURLOptions.md)
+
+• **callbackReq**: `IncomingMessage`
+
+• **callbackRes**: `ServerResponse`
+
+#### Returns
+
+`void`
+
+#### Defined in
+
+[packages/oauth/src/callback-options.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/callback-options.ts#L44)
+
+***
+
+### successAsync()?
+
+```ts
+optional successAsync: (installation, options, callbackReq, callbackRes) => Promise;
+```
+
+#### Parameters
+
+• **installation**: [`Installation`](Installation.md)\<`"v1"` \| `"v2"`, `boolean`\> \| [`OrgInstallation`](../type-aliases/OrgInstallation.md)
+
+• **options**: [`InstallURLOptions`](InstallURLOptions.md)
+
+• **callbackReq**: `IncomingMessage`
+
+• **callbackRes**: `ServerResponse`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/oauth/src/callback-options.ts:53](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/callback-options.ts#L53)
diff --git a/docs/content/reference/oauth/interfaces/CodedError.md b/docs/content/reference/oauth/interfaces/CodedError.md
new file mode 100644
index 000000000..6925db6b3
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/CodedError.md
@@ -0,0 +1,65 @@
+# Interface: CodedError
+
+## Extends
+
+- `Error`
+
+## Properties
+
+### code
+
+```ts
+code: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/errors.ts:2](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/errors.ts#L2)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Inherited from
+
+`Error.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Inherited from
+
+`Error.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Inherited from
+
+`Error.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/oauth/interfaces/FileStateStoreArgs.md b/docs/content/reference/oauth/interfaces/FileStateStoreArgs.md
new file mode 100644
index 000000000..181ddc4a4
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/FileStateStoreArgs.md
@@ -0,0 +1,37 @@
+# Interface: FileStateStoreArgs
+
+## Properties
+
+### baseDir?
+
+```ts
+optional baseDir: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/state-stores/file-state-store.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/file-state-store.ts#L13)
+
+***
+
+### logger?
+
+```ts
+optional logger: any;
+```
+
+#### Defined in
+
+[packages/oauth/src/state-stores/file-state-store.ts:14](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/file-state-store.ts#L14)
+
+***
+
+### stateExpirationSeconds?
+
+```ts
+optional stateExpirationSeconds: number;
+```
+
+#### Defined in
+
+[packages/oauth/src/state-stores/file-state-store.ts:12](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/file-state-store.ts#L12)
diff --git a/docs/content/reference/oauth/interfaces/InstallPathOptions.md b/docs/content/reference/oauth/interfaces/InstallPathOptions.md
new file mode 100644
index 000000000..d9e5b8959
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/InstallPathOptions.md
@@ -0,0 +1,38 @@
+# Interface: InstallPathOptions
+
+Customizable callbacks that are supposed to be called
+inside InstallProvider#handleInstallPath() method.
+
+## Properties
+
+### beforeRedirection()?
+
+```ts
+optional beforeRedirection: (request, response, options?) => Promise;
+```
+
+Customize the response headers and body data for
+additional user-specific data handling such as acccount mapping and activity tracking.
+
+When this method returns false, the InstallProvider skips
+the following operations including the redirection to Slack authorize URL.
+You can set false when the visiting user is not eligible to proceed with the Slack app installation flow.
+
+Also, when returning false, this method is responsible for calling the response#end() method
+to build a complete HTTP response for end-users.
+
+#### Parameters
+
+• **request**: `IncomingMessage`
+
+• **response**: `ServerResponse`
+
+• **options?**: [`InstallURLOptions`](InstallURLOptions.md)
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+#### Defined in
+
+[packages/oauth/src/install-path-options.ts:22](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-path-options.ts#L22)
diff --git a/docs/content/reference/oauth/interfaces/InstallProviderOptions.md b/docs/content/reference/oauth/interfaces/InstallProviderOptions.md
new file mode 100644
index 000000000..81b5689b0
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/InstallProviderOptions.md
@@ -0,0 +1,253 @@
+# Interface: InstallProviderOptions
+
+## Properties
+
+### authVersion?
+
+```ts
+optional authVersion: "v1" | "v2";
+```
+
+The default is "v2" (a.k.a. Granular Bot Permissions), different from "v1" (a.k.a. "Classic Apps").
+More details here:
+- https://medium.com/slack-developer-blog/more-precision-less-restrictions-a3550006f9c3
+- https://api.slack.com/authentication/migration
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:79](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L79)
+
+***
+
+### authorizationUrl?
+
+```ts
+optional authorizationUrl: string;
+```
+
+The slack.com authorize URL
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:28](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L28)
+
+***
+
+### clientId
+
+```ts
+clientId: string;
+```
+
+Client ID, which can be found under the Basic Information section of your application on https://api.slack.com/apps
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L13)
+
+***
+
+### clientOptions?
+
+```ts
+optional clientOptions: Omit;
+```
+
+The customization options for WebClient
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:99](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L99)
+
+***
+
+### clientSecret
+
+```ts
+clientSecret: string;
+```
+
+Client Secret, which can be found under the Basic Information section of your application on https://api.slack.com/apps
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:18](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L18)
+
+***
+
+### directInstall?
+
+```ts
+optional directInstall: boolean;
+```
+
+The install path web page rendering will be skipped if true (default: false)
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:71](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L71)
+
+***
+
+### installUrlOptions?
+
+```ts
+optional installUrlOptions: InstallURLOptions;
+```
+
+The initialization options for the OAuth flow
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:84](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L84)
+
+***
+
+### installationStore?
+
+```ts
+optional installationStore: InstallationStore;
+```
+
+Manages installation data, which can be called by both the OAuth flow and authorize() in event handling
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:23](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L23)
+
+***
+
+### legacyStateVerification?
+
+```ts
+optional legacyStateVerification: boolean;
+```
+
+handleCallback() skips checking browser cookies if true (default: false)
+Enabling this option is not recommended.
+This is supposed to be used only for backward-compatibility with v2.4 and olders.
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:51](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L51)
+
+***
+
+### logLevel?
+
+```ts
+optional logLevel: any;
+```
+
+@slack/logger logging level used in this class
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:94](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L94)
+
+***
+
+### logger?
+
+```ts
+optional logger: any;
+```
+
+@slack/logger logging used in this class
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:89](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L89)
+
+***
+
+### renderHtmlForInstallPath()?
+
+```ts
+optional renderHtmlForInstallPath: (url) => string;
+```
+
+The function for rendering the web page for the install path URL
+
+#### Parameters
+
+• **url**: `string`
+
+#### Returns
+
+`string`
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:66](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L66)
+
+***
+
+### stateCookieExpirationSeconds?
+
+```ts
+optional stateCookieExpirationSeconds: number;
+```
+
+The expiration time in seconds for the state parameter value stored via cookies
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:61](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L61)
+
+***
+
+### stateCookieName?
+
+```ts
+optional stateCookieName: string;
+```
+
+The cookie name used for setting state parameter value in cookies
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:56](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L56)
+
+***
+
+### stateSecret?
+
+```ts
+optional stateSecret: string;
+```
+
+The secret value used for generating the state parameter value
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:39](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L39)
+
+***
+
+### stateStore?
+
+```ts
+optional stateStore: StateStore;
+```
+
+Stores state issued to authorization server
+and verifies the value returned at redirection during OAuth flow to prevent CSRF
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:34](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L34)
+
+***
+
+### stateVerification?
+
+```ts
+optional stateVerification: boolean;
+```
+
+handleCallback() verifies the state parameter if true (default: true)
+
+#### Defined in
+
+[packages/oauth/src/install-provider-options.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider-options.ts#L44)
diff --git a/docs/content/reference/oauth/interfaces/InstallURLOptions.md b/docs/content/reference/oauth/interfaces/InstallURLOptions.md
new file mode 100644
index 000000000..0a6cb1838
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/InstallURLOptions.md
@@ -0,0 +1,61 @@
+# Interface: InstallURLOptions
+
+## Properties
+
+### metadata?
+
+```ts
+optional metadata: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-url-options.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-url-options.ts#L6)
+
+***
+
+### redirectUri?
+
+```ts
+optional redirectUri: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-url-options.ts:4](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-url-options.ts#L4)
+
+***
+
+### scopes
+
+```ts
+scopes: string | string[];
+```
+
+#### Defined in
+
+[packages/oauth/src/install-url-options.ts:2](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-url-options.ts#L2)
+
+***
+
+### teamId?
+
+```ts
+optional teamId: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-url-options.ts:3](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-url-options.ts#L3)
+
+***
+
+### userScopes?
+
+```ts
+optional userScopes: string | string[];
+```
+
+#### Defined in
+
+[packages/oauth/src/install-url-options.ts:5](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-url-options.ts#L5)
diff --git a/docs/content/reference/oauth/interfaces/Installation.md b/docs/content/reference/oauth/interfaces/Installation.md
new file mode 100644
index 000000000..bc6c69d95
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/Installation.md
@@ -0,0 +1,283 @@
+# Interface: Installation\
+
+An individual installation of the Slack app.
+
+This interface creates a representation for installations that normalizes the responses from OAuth grant exchanges
+across auth versions (responses from the Web API methods `oauth.v2.access` and `oauth.access`). It describes some of
+these differences using the `AuthVersion` generic placeholder type.
+
+This interface also represents both installations which occur on individual Slack workspaces and on Slack enterprise
+organizations. The `IsEnterpriseInstall` generic placeholder type is used to describe some of those differences.
+
+This representation is designed to be used both when producing data that should be stored by an InstallationStore,
+and when consuming data that is fetched from an InstallationStore. Most often, InstallationStore implementations
+are a database. If you are going to implement an InstallationStore, it's advised that you **store as much of the
+data in these objects as possible so that you can return as much as possible inside `fetchInstallation()`**.
+
+A few properties are synthesized with a default value if they are not present when returned from
+`fetchInstallation()`. These properties are optional in the interface so that stored installations from previous
+versions of this library (from before those properties were introduced) continue to work without requiring a breaking
+change. However the synthesized default values are not always perfect and are based on some assumptions, so this is
+why it's recommended to store as much of that data as possible in any InstallationStore.
+
+Some of the properties (e.g. `team.name`) can change between when the installation occurred and when it is fetched
+from the InstallationStore. This can be seen as a reason not to store those properties. In most workspaces these
+properties rarely change, and for most Slack apps having a slightly out of date value has no impact. However if your
+app uses these values in a way where it must be up to date, it's recommended to implement a caching strategy in the
+InstallationStore to fetch the latest data from the Web API (using methods such as `auth.test`, `teams.info`, etc.)
+as often as it makes sense for your Slack app.
+
+TODO: IsEnterpriseInstall is always false when AuthVersion is v1
+
+## Type Parameters
+
+• **AuthVersion** *extends* `"v1"` \| `"v2"` = `"v1"` \| `"v2"`
+
+• **IsEnterpriseInstall** *extends* `boolean` = `boolean`
+
+## Properties
+
+### appId?
+
+```ts
+optional appId: AuthVersion extends "v2" ? string : undefined;
+```
+
+The App ID, which does not vary per installation. Left as undefined when not returned from fetch.
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:76](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L76)
+
+***
+
+### authVersion?
+
+```ts
+optional authVersion: AuthVersion;
+```
+
+The version of Slack's auth flow that produced this installation. Synthesized as `v2` when not present.
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:91](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L91)
+
+***
+
+### bot?
+
+```ts
+optional bot: object;
+```
+
+#### expiresAt?
+
+```ts
+optional expiresAt: number;
+```
+
+#### id
+
+```ts
+id: string;
+```
+
+#### refreshToken?
+
+```ts
+optional refreshToken: string;
+```
+
+#### scopes
+
+```ts
+scopes: string[];
+```
+
+#### token
+
+```ts
+token: string;
+```
+
+#### userId
+
+```ts
+userId: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L57)
+
+***
+
+### enterprise
+
+```ts
+enterprise: IsEnterpriseInstall extends true ? EnterpriseInfo : undefined | EnterpriseInfo;
+```
+
+When the installation is an enterprise install or when the installation occurs on the org to acquire `admin` scope,
+the name and ID of the enterprise org.
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:47](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L47)
+
+***
+
+### enterpriseUrl?
+
+```ts
+optional enterpriseUrl: AuthVersion extends "v2" ? string : undefined;
+```
+
+When the installation is an enterprise org install, the URL of the landing page for all workspaces in the org.
+Left as undefined when not returned from fetch.
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:85](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L85)
+
+***
+
+### incomingWebhook?
+
+```ts
+optional incomingWebhook: object;
+```
+
+#### channel?
+
+```ts
+optional channel: string;
+```
+
+Left as undefined when not returned from fetch.
+
+#### channelId?
+
+```ts
+optional channelId: string;
+```
+
+Left as undefined when not returned from fetch.
+
+#### configurationUrl?
+
+```ts
+optional configurationUrl: string;
+```
+
+Left as undefined when not returned from fetch.
+
+#### url
+
+```ts
+url: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:65](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L65)
+
+***
+
+### isEnterpriseInstall?
+
+```ts
+optional isEnterpriseInstall: IsEnterpriseInstall;
+```
+
+Whether the installation was performed on an enterprise org. Synthesized as `false` when not present.
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:88](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L88)
+
+***
+
+### metadata?
+
+```ts
+optional metadata: string;
+```
+
+A string value that can be held in the state parameter in the OAuth flow.
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:94](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L94)
+
+***
+
+### team
+
+```ts
+team: IsEnterpriseInstall extends true ? undefined : object;
+```
+
+TODO: when performing a “single workspace” install with the admin scope on the enterprise,
+is the team property returned from oauth.access?
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:37](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L37)
+
+***
+
+### tokenType?
+
+```ts
+optional tokenType: "bot";
+```
+
+When the installation contains a bot user, the token type. Left as undefined when not returned from fetch.
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:79](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L79)
+
+***
+
+### user
+
+```ts
+user: object;
+```
+
+#### expiresAt?
+
+```ts
+optional expiresAt: AuthVersion extends "v1" ? never : undefined | number;
+```
+
+#### id
+
+```ts
+id: string;
+```
+
+#### refreshToken?
+
+```ts
+optional refreshToken: AuthVersion extends "v1" ? never : undefined | string;
+```
+
+#### scopes
+
+```ts
+scopes: AuthVersion extends "v1" ? string[] : undefined | string[];
+```
+
+#### token
+
+```ts
+token: AuthVersion extends "v1" ? string : undefined | string;
+```
+
+#### Defined in
+
+[packages/oauth/src/installation.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L49)
diff --git a/docs/content/reference/oauth/interfaces/InstallationQuery.md b/docs/content/reference/oauth/interfaces/InstallationQuery.md
new file mode 100644
index 000000000..9db8d8fd7
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/InstallationQuery.md
@@ -0,0 +1,65 @@
+# Interface: InstallationQuery\
+
+## Type Parameters
+
+• **isEnterpriseInstall** *extends* `boolean`
+
+## Properties
+
+### conversationId?
+
+```ts
+optional conversationId: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/installation-query.ts:8](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-query.ts#L8)
+
+***
+
+### enterpriseId
+
+```ts
+enterpriseId: isEnterpriseInstall extends true ? string : undefined | string;
+```
+
+#### Defined in
+
+[packages/oauth/src/installation-query.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-query.ts#L6)
+
+***
+
+### isEnterpriseInstall
+
+```ts
+isEnterpriseInstall: isEnterpriseInstall;
+```
+
+#### Defined in
+
+[packages/oauth/src/installation-query.ts:4](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-query.ts#L4)
+
+***
+
+### teamId
+
+```ts
+teamId: isEnterpriseInstall extends false ? string : undefined;
+```
+
+#### Defined in
+
+[packages/oauth/src/installation-query.ts:5](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-query.ts#L5)
+
+***
+
+### userId?
+
+```ts
+optional userId: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/installation-query.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-query.ts#L7)
diff --git a/docs/content/reference/oauth/interfaces/InstallationStore.md b/docs/content/reference/oauth/interfaces/InstallationStore.md
new file mode 100644
index 000000000..901aab173
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/InstallationStore.md
@@ -0,0 +1,71 @@
+# Interface: InstallationStore
+
+## Properties
+
+### deleteInstallation()?
+
+```ts
+optional deleteInstallation: (query, logger?) => Promise;
+```
+
+#### Parameters
+
+• **query**: [`InstallationQuery`](InstallationQuery.md)\<`boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/interface.ts:14](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/interface.ts#L14)
+
+***
+
+### fetchInstallation()
+
+```ts
+fetchInstallation: (query, logger?) => Promise>;
+```
+
+#### Parameters
+
+• **query**: [`InstallationQuery`](InstallationQuery.md)\<`boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<[`Installation`](Installation.md)\<`"v1"` \| `"v2"`, `boolean`\>\>
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/interface.ts:11](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/interface.ts#L11)
+
+## Methods
+
+### storeInstallation()
+
+```ts
+storeInstallation(installation, logger?): Promise
+```
+
+#### Type Parameters
+
+• **AuthVersion** *extends* `"v1"` \| `"v2"`
+
+#### Parameters
+
+• **installation**: [`Installation`](Installation.md)\<`AuthVersion`, `boolean`\>
+
+• **logger?**: `any`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/oauth/src/installation-stores/interface.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-stores/interface.ts#L7)
diff --git a/docs/content/reference/oauth/interfaces/OAuthV2Response.md b/docs/content/reference/oauth/interfaces/OAuthV2Response.md
new file mode 100644
index 000000000..7cfa2cc81
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/OAuthV2Response.md
@@ -0,0 +1,209 @@
+# Interface: OAuthV2Response
+
+## Extends
+
+- [`Logger`](../variables/Logger.md)
+
+## Properties
+
+### access\_token?
+
+```ts
+optional access_token: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:769](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L769)
+
+***
+
+### app\_id
+
+```ts
+app_id: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:758](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L758)
+
+***
+
+### authed\_user
+
+```ts
+authed_user: object;
+```
+
+#### access\_token?
+
+```ts
+optional access_token: string;
+```
+
+#### expires\_in?
+
+```ts
+optional expires_in: number;
+```
+
+#### id
+
+```ts
+id: string;
+```
+
+#### refresh\_token?
+
+```ts
+optional refresh_token: string;
+```
+
+#### scope?
+
+```ts
+optional scope: string;
+```
+
+#### token\_type?
+
+```ts
+optional token_type: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:759](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L759)
+
+***
+
+### bot\_user\_id?
+
+```ts
+optional bot_user_id: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:772](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L772)
+
+***
+
+### enterprise
+
+```ts
+enterprise: null | object;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:774](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L774)
+
+***
+
+### expires\_in?
+
+```ts
+optional expires_in: number;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:771](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L771)
+
+***
+
+### incoming\_webhook?
+
+```ts
+optional incoming_webhook: object;
+```
+
+#### channel
+
+```ts
+channel: string;
+```
+
+#### channel\_id
+
+```ts
+channel_id: string;
+```
+
+#### configuration\_url
+
+```ts
+configuration_url: string;
+```
+
+#### url
+
+```ts
+url: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:776](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L776)
+
+***
+
+### is\_enterprise\_install
+
+```ts
+is_enterprise_install: boolean;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:775](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L775)
+
+***
+
+### refresh\_token?
+
+```ts
+optional refresh_token: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:770](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L770)
+
+***
+
+### scope?
+
+```ts
+optional scope: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:767](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L767)
+
+***
+
+### team
+
+```ts
+team: null | object;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:773](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L773)
+
+***
+
+### token\_type?
+
+```ts
+optional token_type: "bot";
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:768](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L768)
diff --git a/docs/content/reference/oauth/interfaces/OAuthV2TokenRefreshResponse.md b/docs/content/reference/oauth/interfaces/OAuthV2TokenRefreshResponse.md
new file mode 100644
index 000000000..d31fe31d5
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/OAuthV2TokenRefreshResponse.md
@@ -0,0 +1,137 @@
+# Interface: OAuthV2TokenRefreshResponse
+
+## Extends
+
+- [`Logger`](../variables/Logger.md)
+
+## Properties
+
+### access\_token
+
+```ts
+access_token: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:788](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L788)
+
+***
+
+### app\_id
+
+```ts
+app_id: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:785](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L785)
+
+***
+
+### bot\_user\_id?
+
+```ts
+optional bot_user_id: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:791](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L791)
+
+***
+
+### enterprise
+
+```ts
+enterprise: null | object;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:793](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L793)
+
+***
+
+### expires\_in
+
+```ts
+expires_in: number;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:790](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L790)
+
+***
+
+### is\_enterprise\_install
+
+```ts
+is_enterprise_install: boolean;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:794](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L794)
+
+***
+
+### refresh\_token
+
+```ts
+refresh_token: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:789](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L789)
+
+***
+
+### scope
+
+```ts
+scope: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:786](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L786)
+
+***
+
+### team
+
+```ts
+team: object;
+```
+
+#### id
+
+```ts
+id: string;
+```
+
+#### name
+
+```ts
+name: string;
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:792](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L792)
+
+***
+
+### token\_type
+
+```ts
+token_type: "bot" | "user";
+```
+
+#### Defined in
+
+[packages/oauth/src/install-provider.ts:787](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/install-provider.ts#L787)
diff --git a/docs/content/reference/oauth/interfaces/StateObj.md b/docs/content/reference/oauth/interfaces/StateObj.md
new file mode 100644
index 000000000..750dcb299
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/StateObj.md
@@ -0,0 +1,43 @@
+# Interface: StateObj
+
+The data structure represented by the state parameter.
+
+## Properties
+
+### installOptions
+
+```ts
+installOptions: InstallURLOptions;
+```
+
+The passed InstallURLOptions object when generating this state parameter.
+
+#### Defined in
+
+[packages/oauth/src/state-stores/interface.ts:16](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/interface.ts#L16)
+
+***
+
+### now
+
+```ts
+now: Date;
+```
+
+The timestamp that the state object was generated.
+
+#### Defined in
+
+[packages/oauth/src/state-stores/interface.ts:11](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/interface.ts#L11)
+
+***
+
+### random?
+
+```ts
+optional random: string | number;
+```
+
+#### Defined in
+
+[packages/oauth/src/state-stores/interface.ts:17](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/interface.ts#L17)
diff --git a/docs/content/reference/oauth/interfaces/StateStore.md b/docs/content/reference/oauth/interfaces/StateStore.md
new file mode 100644
index 000000000..5fa3abc67
--- /dev/null
+++ b/docs/content/reference/oauth/interfaces/StateStore.md
@@ -0,0 +1,59 @@
+# Interface: StateStore
+
+Generates state parameter value in the OAuth flow.
+While the state parameter value works for the CSRF protection purpose,
+it can transfer the given InstallURLOptions value to the Redirect URL handler
+(Redirect URL: the default path is "/slack/oauth_redirect")
+
+## Properties
+
+### generateStateParam()
+
+```ts
+generateStateParam: (installOptions, now) => Promise;
+```
+
+Generates a valid state parameter value, which can be decoded as a StateObj object
+by the verifyStateParam() method. This value may be stored on the server-side with expiration.
+The InstallProvider verifies if this value is set in the installer's browser session.
+
+#### Parameters
+
+• **installOptions**: [`InstallURLOptions`](InstallURLOptions.md)
+
+• **now**: `Date`
+
+#### Returns
+
+`Promise`\<`string`\>
+
+#### Defined in
+
+[packages/oauth/src/state-stores/interface.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/interface.ts#L33)
+
+***
+
+### verifyStateParam()
+
+```ts
+verifyStateParam: (now, state) => Promise;
+```
+
+Verifies the given state string value by trying to decode the value and
+build the passed InstallURLOptions object from the data.
+This method verifies if the state value is not too old to detect replay attacks.
+If the value is invalid, this method can throw InvalidStateError exception.
+
+#### Parameters
+
+• **now**: `Date`
+
+• **state**: `string`
+
+#### Returns
+
+`Promise`\<[`InstallURLOptions`](InstallURLOptions.md)\>
+
+#### Defined in
+
+[packages/oauth/src/state-stores/interface.ts:41](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/state-stores/interface.ts#L41)
diff --git a/docs/content/reference/oauth/type-aliases/OrgInstallation.md b/docs/content/reference/oauth/type-aliases/OrgInstallation.md
new file mode 100644
index 000000000..1746752df
--- /dev/null
+++ b/docs/content/reference/oauth/type-aliases/OrgInstallation.md
@@ -0,0 +1,11 @@
+# Type Alias: OrgInstallation
+
+```ts
+type OrgInstallation: Installation<"v2", true>;
+```
+
+A type to describe enterprise organization installations.
+
+## Defined in
+
+[packages/oauth/src/installation.ts:100](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation.ts#L100)
diff --git a/docs/content/reference/oauth/type-aliases/OrgInstallationQuery.md b/docs/content/reference/oauth/type-aliases/OrgInstallationQuery.md
new file mode 100644
index 000000000..596ba3b34
--- /dev/null
+++ b/docs/content/reference/oauth/type-aliases/OrgInstallationQuery.md
@@ -0,0 +1,9 @@
+# Type Alias: OrgInstallationQuery
+
+```ts
+type OrgInstallationQuery: InstallationQuery;
+```
+
+## Defined in
+
+[packages/oauth/src/installation-query.ts:12](https://github.com/slackapi/node-slack-sdk/blob/main/packages/oauth/src/installation-query.ts#L12)
diff --git a/docs/content/reference/oauth/typedoc-sidebar.cjs b/docs/content/reference/oauth/typedoc-sidebar.cjs
new file mode 100644
index 000000000..f303649b9
--- /dev/null
+++ b/docs/content/reference/oauth/typedoc-sidebar.cjs
@@ -0,0 +1,4 @@
+// @ts-check
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"reference/oauth/enumerations/ErrorCode","label":"ErrorCode"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"reference/oauth/classes/AuthorizationError","label":"AuthorizationError"},{"type":"doc","id":"reference/oauth/classes/ClearStateStore","label":"ClearStateStore"},{"type":"doc","id":"reference/oauth/classes/FileInstallationStore","label":"FileInstallationStore"},{"type":"doc","id":"reference/oauth/classes/FileStateStore","label":"FileStateStore"},{"type":"doc","id":"reference/oauth/classes/GenerateInstallUrlError","label":"GenerateInstallUrlError"},{"type":"doc","id":"reference/oauth/classes/InstallProvider","label":"InstallProvider"},{"type":"doc","id":"reference/oauth/classes/InstallerInitializationError","label":"InstallerInitializationError"},{"type":"doc","id":"reference/oauth/classes/InvalidStateError","label":"InvalidStateError"},{"type":"doc","id":"reference/oauth/classes/MemoryInstallationStore","label":"MemoryInstallationStore"},{"type":"doc","id":"reference/oauth/classes/MissingCodeError","label":"MissingCodeError"},{"type":"doc","id":"reference/oauth/classes/MissingStateError","label":"MissingStateError"},{"type":"doc","id":"reference/oauth/classes/UnknownError","label":"UnknownError"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"reference/oauth/interfaces/AuthorizeResult","label":"AuthorizeResult"},{"type":"doc","id":"reference/oauth/interfaces/CallbackOptions","label":"CallbackOptions"},{"type":"doc","id":"reference/oauth/interfaces/CodedError","label":"CodedError"},{"type":"doc","id":"reference/oauth/interfaces/FileStateStoreArgs","label":"FileStateStoreArgs"},{"type":"doc","id":"reference/oauth/interfaces/InstallPathOptions","label":"InstallPathOptions"},{"type":"doc","id":"reference/oauth/interfaces/InstallProviderOptions","label":"InstallProviderOptions"},{"type":"doc","id":"reference/oauth/interfaces/InstallURLOptions","label":"InstallURLOptions"},{"type":"doc","id":"reference/oauth/interfaces/Installation","label":"Installation"},{"type":"doc","id":"reference/oauth/interfaces/InstallationQuery","label":"InstallationQuery"},{"type":"doc","id":"reference/oauth/interfaces/InstallationStore","label":"InstallationStore"},{"type":"doc","id":"reference/oauth/interfaces/OAuthV2Response","label":"OAuthV2Response"},{"type":"doc","id":"reference/oauth/interfaces/OAuthV2TokenRefreshResponse","label":"OAuthV2TokenRefreshResponse"},{"type":"doc","id":"reference/oauth/interfaces/StateObj","label":"StateObj"},{"type":"doc","id":"reference/oauth/interfaces/StateStore","label":"StateStore"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"reference/oauth/type-aliases/OrgInstallation","label":"OrgInstallation"},{"type":"doc","id":"reference/oauth/type-aliases/OrgInstallationQuery","label":"OrgInstallationQuery"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"reference/oauth/variables/Logger","label":"Logger"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"reference/oauth/functions/defaultCallbackFailure","label":"defaultCallbackFailure"},{"type":"doc","id":"reference/oauth/functions/defaultCallbackSuccess","label":"defaultCallbackSuccess"},{"type":"doc","id":"reference/oauth/functions/defaultRenderHtmlForInstallPath","label":"defaultRenderHtmlForInstallPath"}]}]};
+module.exports = typedocSidebar.items;
\ No newline at end of file
diff --git a/docs/content/reference/oauth/variables/Logger.md b/docs/content/reference/oauth/variables/Logger.md
new file mode 100644
index 000000000..e32c0b8c7
--- /dev/null
+++ b/docs/content/reference/oauth/variables/Logger.md
@@ -0,0 +1,5 @@
+# Variable: Logger
+
+```ts
+Logger: any;
+```
diff --git a/docs/content/reference/rtm-api/classes/RTMClient.md b/docs/content/reference/rtm-api/classes/RTMClient.md
new file mode 100644
index 000000000..7a5da3ed5
--- /dev/null
+++ b/docs/content/reference/rtm-api/classes/RTMClient.md
@@ -0,0 +1,316 @@
+# Class: RTMClient
+
+An RTMClient allows programs to communicate with the [Platform's RTM API](https://api.slack.com/rtm|Slack).
+This object uses the EventEmitter pattern to dispatch incoming events and has several methods for sending outgoing
+messages.
+
+## Extends
+
+- [`Logger`](../variables/Logger.md)
+
+## Constructors
+
+### new RTMClient()
+
+```ts
+new RTMClient(token, __namedParameters): RTMClient
+```
+
+#### Parameters
+
+• **token**: `string`
+
+• **\_\_namedParameters**: [`RTMClientOptions`](../interfaces/RTMClientOptions.md) = `{}`
+
+#### Returns
+
+[`RTMClient`](RTMClient.md)
+
+#### Overrides
+
+`EventEmitter.constructor`
+
+#### Defined in
+
+[RTMClient.ts:340](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L340)
+
+## Properties
+
+### activeTeamId?
+
+```ts
+optional activeTeamId: string;
+```
+
+The team ID for the workspace the client is connected to.
+
+#### Defined in
+
+[RTMClient.ts:83](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L83)
+
+***
+
+### activeUserId?
+
+```ts
+optional activeUserId: string;
+```
+
+The user ID for the connected client.
+
+#### Defined in
+
+[RTMClient.ts:78](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L78)
+
+***
+
+### authenticated
+
+```ts
+authenticated: boolean = false;
+```
+
+Whether or not the client has authenticated to the RTM API. This occurs when the connect method
+completes, and a WebSocket URL is available for the client's connection.
+
+#### Defined in
+
+[RTMClient.ts:73](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L73)
+
+***
+
+### connected
+
+```ts
+connected: boolean = false;
+```
+
+Whether or not the client is currently connected to the RTM API
+
+#### Defined in
+
+[RTMClient.ts:67](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L67)
+
+## Methods
+
+### addOutgoingEvent()
+
+#### addOutgoingEvent(awaitReply, type, body)
+
+```ts
+addOutgoingEvent(
+ awaitReply,
+ type,
+body?): Promise
+```
+
+Generic method for sending an outgoing message of an arbitrary type. This method guards the higher-level methods
+from concern of which state the client is in, because it places all messages into a queue. The tasks on the queue
+will buffer until the client is in a state where they can be sent.
+
+If the awaitReply parameter is set to true, then the returned Promise is resolved with the platform's
+acknowledgement response. Not all message types will result in an acknowledgement response, so use this carefully.
+This promise may be rejected with an error containing code=RTMNoReplyReceivedError if the client disconnects or
+reconnects before receiving the acknowledgement response.
+
+If the awaitReply parameter is set to false, then the returned Promise is resolved as soon as the message is sent
+from the websocket.
+
+##### Parameters
+
+• **awaitReply**: `true`
+
+whether to wait for an acknowledgement response from the platform before resolving the returned
+Promise.
+
+• **type**: `string`
+
+the message type
+
+• **body?**: `Record`\<`string`, `unknown`\>
+
+the message body
+
+##### Returns
+
+`Promise`\<[`RTMCallResult`](../interfaces/RTMCallResult.md)\>
+
+##### Defined in
+
+[RTMClient.ts:493](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L493)
+
+#### addOutgoingEvent(awaitReply, type, body)
+
+```ts
+addOutgoingEvent(
+ awaitReply,
+ type,
+body?): Promise
+```
+
+##### Parameters
+
+• **awaitReply**: `false`
+
+• **type**: `string`
+
+• **body?**: `Record`\<`string`, `unknown`\>
+
+##### Returns
+
+`Promise`\<`void`\>
+
+##### Defined in
+
+[RTMClient.ts:494](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L494)
+
+***
+
+### disconnect()
+
+```ts
+disconnect(): Promise
+```
+
+End an RTM session. After this method is called no messages will be sent or received unless you call
+start() again later.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[RTMClient.ts:432](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L432)
+
+***
+
+### send()
+
+```ts
+send(type, body): Promise
+```
+
+Generic method for sending an outgoing message of an arbitrary type. The main difference between this method and
+addOutgoingEvent() is that this method does not use a queue so it can only be used while the client is ready
+to send messages (in the 'ready' substate of the 'connected' state). It returns a Promise for the message ID of the
+sent message. This is an internal ID and generally shouldn't be used as an identifier for messages (for that,
+there is `ts` on messages once the server acknowledges it).
+
+#### Parameters
+
+• **type**: `string`
+
+the message type
+
+• **body** = `{}`
+
+the message body
+
+#### Returns
+
+`Promise`\<`number`\>
+
+#### Defined in
+
+[RTMClient.ts:541](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L541)
+
+***
+
+### sendMessage()
+
+```ts
+sendMessage(text, conversationId): Promise
+```
+
+Send a simple message to a public channel, private channel, DM, or MPDM.
+
+#### Parameters
+
+• **text**: `string`
+
+The message text.
+
+• **conversationId**: `string`
+
+A conversation ID for the destination of this message.
+
+#### Returns
+
+`Promise`\<[`RTMCallResult`](../interfaces/RTMCallResult.md)\>
+
+#### Defined in
+
+[RTMClient.ts:455](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L455)
+
+***
+
+### sendTyping()
+
+```ts
+sendTyping(conversationId): Promise
+```
+
+Sends a typing indicator to indicate that the user with `activeUserId` is typing.
+
+#### Parameters
+
+• **conversationId**: `string`
+
+The destination for where the typing indicator should be shown.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[RTMClient.ts:463](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L463)
+
+***
+
+### start()
+
+```ts
+start(options?): Promise
+```
+
+Begin an RTM session using the provided options. This method must be called before any messages can
+be sent or received.
+
+#### Parameters
+
+• **options?**: `any`
+
+#### Returns
+
+`Promise`\<`WebAPICallResult`\>
+
+#### Defined in
+
+[RTMClient.ts:406](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L406)
+
+***
+
+### subscribePresence()
+
+```ts
+subscribePresence(userIds): Promise
+```
+
+Subscribes this client to presence changes for only the given `userIds`.
+
+#### Parameters
+
+• **userIds**: `string`[]
+
+An array of user IDs whose presence you are interested in. This list will replace the list from
+any previous calls to this method.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[RTMClient.ts:472](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L472)
diff --git a/docs/content/reference/rtm-api/enumerations/ErrorCode.md b/docs/content/reference/rtm-api/enumerations/ErrorCode.md
new file mode 100644
index 000000000..8d83347ba
--- /dev/null
+++ b/docs/content/reference/rtm-api/enumerations/ErrorCode.md
@@ -0,0 +1,99 @@
+# Enumeration: ErrorCode
+
+A dictionary of codes for errors produced by this package
+
+## Enumeration Members
+
+### KeepAliveClientNotConnected
+
+```ts
+KeepAliveClientNotConnected: "slack_rtmapi_keepalive_client_not_connected";
+```
+
+#### Defined in
+
+[errors.ts:22](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L22)
+
+***
+
+### KeepAliveConfigError
+
+```ts
+KeepAliveConfigError: "slack_rtmapi_keepalive_config_error";
+```
+
+#### Defined in
+
+[errors.ts:21](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L21)
+
+***
+
+### KeepAliveInconsistentState
+
+```ts
+KeepAliveInconsistentState: "slack_rtmapi_keepalive_inconsistent_state";
+```
+
+#### Defined in
+
+[errors.ts:23](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L23)
+
+***
+
+### NoReplyReceivedError
+
+```ts
+NoReplyReceivedError: "slack_rtmapi_no_reply_received_error";
+```
+
+#### Defined in
+
+[errors.ts:18](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L18)
+
+***
+
+### SendMessagePlatformError
+
+```ts
+SendMessagePlatformError: "slack_rtmapi_send_message_platform_error";
+```
+
+#### Defined in
+
+[errors.ts:16](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L16)
+
+***
+
+### SendWhileDisconnectedError
+
+```ts
+SendWhileDisconnectedError: "slack_rtmapi_send_while_disconnected_error";
+```
+
+#### Defined in
+
+[errors.ts:14](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L14)
+
+***
+
+### SendWhileNotReadyError
+
+```ts
+SendWhileNotReadyError: "slack_rtmapi_send_while_not_ready_error";
+```
+
+#### Defined in
+
+[errors.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L15)
+
+***
+
+### WebsocketError
+
+```ts
+WebsocketError: "slack_rtmapi_websocket_error";
+```
+
+#### Defined in
+
+[errors.ts:17](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L17)
diff --git a/docs/content/reference/rtm-api/index.md b/docs/content/reference/rtm-api/index.md
new file mode 100644
index 000000000..086fabe18
--- /dev/null
+++ b/docs/content/reference/rtm-api/index.md
@@ -0,0 +1,35 @@
+# @slack/rtm-api
+
+## References
+
+### LogLevel
+
+Renames and re-exports [Logger](variables/Logger.md)
+
+## Enumerations
+
+- [ErrorCode](enumerations/ErrorCode.md)
+
+## Classes
+
+- [RTMClient](classes/RTMClient.md)
+
+## Interfaces
+
+- [CodedError](interfaces/CodedError.md)
+- [RTMCallResult](interfaces/RTMCallResult.md)
+- [RTMClientOptions](interfaces/RTMClientOptions.md)
+- [RTMNoReplyReceivedError](interfaces/RTMNoReplyReceivedError.md)
+- [RTMPlatformError](interfaces/RTMPlatformError.md)
+- [RTMSendWhileDisconnectedError](interfaces/RTMSendWhileDisconnectedError.md)
+- [RTMSendWhileNotReadyError](interfaces/RTMSendWhileNotReadyError.md)
+- [RTMWebsocketError](interfaces/RTMWebsocketError.md)
+
+## Type Aliases
+
+- [RTMCallError](type-aliases/RTMCallError.md)
+- [RTMStartOptions](type-aliases/RTMStartOptions.md)
+
+## Variables
+
+- [Logger](variables/Logger.md)
diff --git a/docs/content/reference/rtm-api/interfaces/CodedError.md b/docs/content/reference/rtm-api/interfaces/CodedError.md
new file mode 100644
index 000000000..8f94ea7e1
--- /dev/null
+++ b/docs/content/reference/rtm-api/interfaces/CodedError.md
@@ -0,0 +1,27 @@
+# Interface: CodedError
+
+All errors produced by this package adhere to this interface
+
+## Extends
+
+- `ErrnoException`
+
+## Extended by
+
+- [`RTMPlatformError`](RTMPlatformError.md)
+- [`RTMWebsocketError`](RTMWebsocketError.md)
+- [`RTMNoReplyReceivedError`](RTMNoReplyReceivedError.md)
+- [`RTMSendWhileDisconnectedError`](RTMSendWhileDisconnectedError.md)
+- [`RTMSendWhileNotReadyError`](RTMSendWhileNotReadyError.md)
+
+## Properties
+
+### code
+
+```ts
+code: ErrorCode;
+```
+
+#### Defined in
+
+[errors.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L7)
diff --git a/docs/content/reference/rtm-api/interfaces/RTMCallResult.md b/docs/content/reference/rtm-api/interfaces/RTMCallResult.md
new file mode 100644
index 000000000..6a59717f3
--- /dev/null
+++ b/docs/content/reference/rtm-api/interfaces/RTMCallResult.md
@@ -0,0 +1,49 @@
+# Interface: RTMCallResult
+
+## Properties
+
+### error?
+
+```ts
+optional error: object;
+```
+
+#### code
+
+```ts
+code: number;
+```
+
+#### msg
+
+```ts
+msg: string;
+```
+
+#### Defined in
+
+[RTMClient.ts:698](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L698)
+
+***
+
+### reply\_to?
+
+```ts
+optional reply_to: number;
+```
+
+#### Defined in
+
+[RTMClient.ts:697](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L697)
+
+***
+
+### ts
+
+```ts
+ts: string;
+```
+
+#### Defined in
+
+[RTMClient.ts:696](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L696)
diff --git a/docs/content/reference/rtm-api/interfaces/RTMClientOptions.md b/docs/content/reference/rtm-api/interfaces/RTMClientOptions.md
new file mode 100644
index 000000000..918c272b4
--- /dev/null
+++ b/docs/content/reference/rtm-api/interfaces/RTMClientOptions.md
@@ -0,0 +1,145 @@
+# Interface: RTMClientOptions
+
+## Properties
+
+### agent?
+
+```ts
+optional agent: any;
+```
+
+#### Defined in
+
+[RTMClient.ts:682](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L682)
+
+***
+
+### autoReconnect?
+
+```ts
+optional autoReconnect: boolean;
+```
+
+#### Defined in
+
+[RTMClient.ts:683](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L683)
+
+***
+
+### clientPingTimeout?
+
+```ts
+optional clientPingTimeout: number;
+```
+
+#### Defined in
+
+[RTMClient.ts:687](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L687)
+
+***
+
+### logLevel?
+
+```ts
+optional logLevel: any;
+```
+
+#### Defined in
+
+[RTMClient.ts:680](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L680)
+
+***
+
+### logger?
+
+```ts
+optional logger: any;
+```
+
+#### Defined in
+
+[RTMClient.ts:679](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L679)
+
+***
+
+### replyAckOnReconnectTimeout?
+
+```ts
+optional replyAckOnReconnectTimeout: number;
+```
+
+#### Defined in
+
+[RTMClient.ts:689](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L689)
+
+***
+
+### retryConfig?
+
+```ts
+optional retryConfig: any;
+```
+
+#### Defined in
+
+[RTMClient.ts:681](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L681)
+
+***
+
+### serverPongTimeout?
+
+```ts
+optional serverPongTimeout: number;
+```
+
+#### Defined in
+
+[RTMClient.ts:688](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L688)
+
+***
+
+### slackApiUrl?
+
+```ts
+optional slackApiUrl: string;
+```
+
+#### Defined in
+
+[RTMClient.ts:678](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L678)
+
+***
+
+### tls?
+
+```ts
+optional tls: any;
+```
+
+#### Defined in
+
+[RTMClient.ts:690](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L690)
+
+***
+
+### useRtmConnect?
+
+```ts
+optional useRtmConnect: boolean;
+```
+
+#### Defined in
+
+[RTMClient.ts:686](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L686)
+
+***
+
+### webClient?
+
+```ts
+optional webClient: any;
+```
+
+#### Defined in
+
+[RTMClient.ts:677](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L677)
diff --git a/docs/content/reference/rtm-api/interfaces/RTMNoReplyReceivedError.md b/docs/content/reference/rtm-api/interfaces/RTMNoReplyReceivedError.md
new file mode 100644
index 000000000..e3394260b
--- /dev/null
+++ b/docs/content/reference/rtm-api/interfaces/RTMNoReplyReceivedError.md
@@ -0,0 +1,23 @@
+# Interface: RTMNoReplyReceivedError
+
+All errors produced by this package adhere to this interface
+
+## Extends
+
+- [`CodedError`](CodedError.md)
+
+## Properties
+
+### code
+
+```ts
+code: NoReplyReceivedError;
+```
+
+#### Overrides
+
+[`CodedError`](CodedError.md).[`code`](CodedError.md#code)
+
+#### Defined in
+
+[errors.ts:40](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L40)
diff --git a/docs/content/reference/rtm-api/interfaces/RTMPlatformError.md b/docs/content/reference/rtm-api/interfaces/RTMPlatformError.md
new file mode 100644
index 000000000..507970f46
--- /dev/null
+++ b/docs/content/reference/rtm-api/interfaces/RTMPlatformError.md
@@ -0,0 +1,35 @@
+# Interface: RTMPlatformError
+
+All errors produced by this package adhere to this interface
+
+## Extends
+
+- [`CodedError`](CodedError.md)
+
+## Properties
+
+### code
+
+```ts
+code: SendMessagePlatformError;
+```
+
+#### Overrides
+
+[`CodedError`](CodedError.md).[`code`](CodedError.md#code)
+
+#### Defined in
+
+[errors.ts:30](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L30)
+
+***
+
+### data
+
+```ts
+data: RTMCallResult;
+```
+
+#### Defined in
+
+[errors.ts:31](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L31)
diff --git a/docs/content/reference/rtm-api/interfaces/RTMSendWhileDisconnectedError.md b/docs/content/reference/rtm-api/interfaces/RTMSendWhileDisconnectedError.md
new file mode 100644
index 000000000..812d92be4
--- /dev/null
+++ b/docs/content/reference/rtm-api/interfaces/RTMSendWhileDisconnectedError.md
@@ -0,0 +1,23 @@
+# Interface: RTMSendWhileDisconnectedError
+
+All errors produced by this package adhere to this interface
+
+## Extends
+
+- [`CodedError`](CodedError.md)
+
+## Properties
+
+### code
+
+```ts
+code: SendWhileDisconnectedError;
+```
+
+#### Overrides
+
+[`CodedError`](CodedError.md).[`code`](CodedError.md#code)
+
+#### Defined in
+
+[errors.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L44)
diff --git a/docs/content/reference/rtm-api/interfaces/RTMSendWhileNotReadyError.md b/docs/content/reference/rtm-api/interfaces/RTMSendWhileNotReadyError.md
new file mode 100644
index 000000000..577135ac2
--- /dev/null
+++ b/docs/content/reference/rtm-api/interfaces/RTMSendWhileNotReadyError.md
@@ -0,0 +1,23 @@
+# Interface: RTMSendWhileNotReadyError
+
+All errors produced by this package adhere to this interface
+
+## Extends
+
+- [`CodedError`](CodedError.md)
+
+## Properties
+
+### code
+
+```ts
+code: SendWhileNotReadyError;
+```
+
+#### Overrides
+
+[`CodedError`](CodedError.md).[`code`](CodedError.md#code)
+
+#### Defined in
+
+[errors.ts:48](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L48)
diff --git a/docs/content/reference/rtm-api/interfaces/RTMWebsocketError.md b/docs/content/reference/rtm-api/interfaces/RTMWebsocketError.md
new file mode 100644
index 000000000..15c380e52
--- /dev/null
+++ b/docs/content/reference/rtm-api/interfaces/RTMWebsocketError.md
@@ -0,0 +1,35 @@
+# Interface: RTMWebsocketError
+
+All errors produced by this package adhere to this interface
+
+## Extends
+
+- [`CodedError`](CodedError.md)
+
+## Properties
+
+### code
+
+```ts
+code: WebsocketError;
+```
+
+#### Overrides
+
+[`CodedError`](CodedError.md).[`code`](CodedError.md#code)
+
+#### Defined in
+
+[errors.ts:35](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L35)
+
+***
+
+### original
+
+```ts
+original: Error;
+```
+
+#### Defined in
+
+[errors.ts:36](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L36)
diff --git a/docs/content/reference/rtm-api/type-aliases/RTMCallError.md b/docs/content/reference/rtm-api/type-aliases/RTMCallError.md
new file mode 100644
index 000000000..abc824c22
--- /dev/null
+++ b/docs/content/reference/rtm-api/type-aliases/RTMCallError.md
@@ -0,0 +1,14 @@
+# Type Alias: RTMCallError
+
+```ts
+type RTMCallError:
+ | RTMPlatformError
+ | RTMWebsocketError
+ | RTMNoReplyReceivedError
+ | RTMSendWhileDisconnectedError
+ | RTMSendWhileNotReadyError;
+```
+
+## Defined in
+
+[errors.ts:26](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/errors.ts#L26)
diff --git a/docs/content/reference/rtm-api/type-aliases/RTMStartOptions.md b/docs/content/reference/rtm-api/type-aliases/RTMStartOptions.md
new file mode 100644
index 000000000..8acb7effe
--- /dev/null
+++ b/docs/content/reference/rtm-api/type-aliases/RTMStartOptions.md
@@ -0,0 +1,9 @@
+# Type Alias: RTMStartOptions
+
+```ts
+type RTMStartOptions: Logger | Logger;
+```
+
+## Defined in
+
+[RTMClient.ts:704](https://github.com/slackapi/node-slack-sdk/blob/main/packages/rtm-api/src/RTMClient.ts#L704)
diff --git a/docs/content/reference/rtm-api/typedoc-sidebar.cjs b/docs/content/reference/rtm-api/typedoc-sidebar.cjs
new file mode 100644
index 000000000..58e1b4982
--- /dev/null
+++ b/docs/content/reference/rtm-api/typedoc-sidebar.cjs
@@ -0,0 +1,4 @@
+// @ts-check
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"reference/rtm-api/enumerations/ErrorCode","label":"ErrorCode"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"reference/rtm-api/classes/RTMClient","label":"RTMClient"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"reference/rtm-api/interfaces/CodedError","label":"CodedError"},{"type":"doc","id":"reference/rtm-api/interfaces/RTMCallResult","label":"RTMCallResult"},{"type":"doc","id":"reference/rtm-api/interfaces/RTMClientOptions","label":"RTMClientOptions"},{"type":"doc","id":"reference/rtm-api/interfaces/RTMNoReplyReceivedError","label":"RTMNoReplyReceivedError"},{"type":"doc","id":"reference/rtm-api/interfaces/RTMPlatformError","label":"RTMPlatformError"},{"type":"doc","id":"reference/rtm-api/interfaces/RTMSendWhileDisconnectedError","label":"RTMSendWhileDisconnectedError"},{"type":"doc","id":"reference/rtm-api/interfaces/RTMSendWhileNotReadyError","label":"RTMSendWhileNotReadyError"},{"type":"doc","id":"reference/rtm-api/interfaces/RTMWebsocketError","label":"RTMWebsocketError"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"reference/rtm-api/type-aliases/RTMCallError","label":"RTMCallError"},{"type":"doc","id":"reference/rtm-api/type-aliases/RTMStartOptions","label":"RTMStartOptions"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"reference/rtm-api/variables/Logger","label":"Logger"}]}]};
+module.exports = typedocSidebar.items;
\ No newline at end of file
diff --git a/docs/content/reference/rtm-api/variables/Logger.md b/docs/content/reference/rtm-api/variables/Logger.md
new file mode 100644
index 000000000..e32c0b8c7
--- /dev/null
+++ b/docs/content/reference/rtm-api/variables/Logger.md
@@ -0,0 +1,5 @@
+# Variable: Logger
+
+```ts
+Logger: any;
+```
diff --git a/docs/content/reference/socket-mode/classes/SocketModeClient.md b/docs/content/reference/socket-mode/classes/SocketModeClient.md
new file mode 100644
index 000000000..cff68f6fc
--- /dev/null
+++ b/docs/content/reference/socket-mode/classes/SocketModeClient.md
@@ -0,0 +1,115 @@
+# Class: SocketModeClient
+
+A Socket Mode Client allows programs to communicate with the
+[Slack Platform's Events API](https://api.slack.com/events-api) over WebSocket connections.
+This object uses the EventEmitter pattern to dispatch incoming events
+and has a built in send method to acknowledge incoming events over the WebSocket connection.
+
+## Extends
+
+- [`Logger`](../variables/Logger.md)
+
+## Constructors
+
+### new SocketModeClient()
+
+```ts
+new SocketModeClient(__namedParameters): SocketModeClient
+```
+
+#### Parameters
+
+• **\_\_namedParameters**: [`SocketModeOptions`](../interfaces/SocketModeOptions.md) = `...`
+
+#### Returns
+
+[`SocketModeClient`](SocketModeClient.md)
+
+#### Overrides
+
+`EventEmitter.constructor`
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeClient.ts:99](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeClient.ts#L99)
+
+## Properties
+
+### websocket?
+
+```ts
+optional websocket: SlackWebSocket;
+```
+
+The underlying WebSocket client instance
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeClient.ts:69](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeClient.ts#L69)
+
+## Methods
+
+### disconnect()
+
+```ts
+disconnect(): Promise
+```
+
+End a Socket Mode session. After this method is called no messages will be sent or received
+unless you call start() again later.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeClient.ts:205](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeClient.ts#L205)
+
+***
+
+### onWebSocketMessage()
+
+```ts
+protected onWebSocketMessage(data, isBinary): Promise
+```
+
+`onmessage` handler for the client's WebSocket.
+This will parse the payload and dispatch the application-relevant events for each incoming message.
+Mediates:
+- raising the State.Connected event (when Slack sends a type:hello message)
+- disconnecting the underlying socket (when Slack sends a type:disconnect message)
+
+#### Parameters
+
+• **data**: `RawData`
+
+• **isBinary**: `boolean`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeClient.ts:282](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeClient.ts#L282)
+
+***
+
+### start()
+
+```ts
+start(): Promise
+```
+
+Start a Socket Mode session app.
+This method must be called before any messages can be sent or received,
+or to disconnect the client via the `disconnect` method.
+
+#### Returns
+
+`Promise`\<`AppsConnectionsOpenResponse`\>
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeClient.ts:163](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeClient.ts#L163)
diff --git a/docs/content/reference/socket-mode/enumerations/ErrorCode.md b/docs/content/reference/socket-mode/enumerations/ErrorCode.md
new file mode 100644
index 000000000..cd71b1c17
--- /dev/null
+++ b/docs/content/reference/socket-mode/enumerations/ErrorCode.md
@@ -0,0 +1,75 @@
+# Enumeration: ErrorCode
+
+A dictionary of codes for errors produced by this package
+
+## Enumeration Members
+
+### InitializationError
+
+```ts
+InitializationError: "slack_socket_mode_initialization_error";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:17](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L17)
+
+***
+
+### NoReplyReceivedError
+
+```ts
+NoReplyReceivedError: "slack_socket_mode_no_reply_received_error";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:16](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L16)
+
+***
+
+### SendMessagePlatformError
+
+```ts
+SendMessagePlatformError: "slack_socket_mode_send_message_platform_error";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:14](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L14)
+
+***
+
+### SendWhileDisconnectedError
+
+```ts
+SendWhileDisconnectedError: "slack_socket_mode_send_while_disconnected_error";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:12](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L12)
+
+***
+
+### SendWhileNotReadyError
+
+```ts
+SendWhileNotReadyError: "slack_socket_mode_send_while_not_ready_error";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L13)
+
+***
+
+### WebsocketError
+
+```ts
+WebsocketError: "slack_socket_mode_websocket_error";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L15)
diff --git a/docs/content/reference/socket-mode/enumerations/UnrecoverableSocketModeStartError.md b/docs/content/reference/socket-mode/enumerations/UnrecoverableSocketModeStartError.md
new file mode 100644
index 000000000..720734b11
--- /dev/null
+++ b/docs/content/reference/socket-mode/enumerations/UnrecoverableSocketModeStartError.md
@@ -0,0 +1,61 @@
+# Enumeration: UnrecoverableSocketModeStartError
+
+## Enumeration Members
+
+### AccountInactive
+
+```ts
+AccountInactive: "account_inactive";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/UnrecoverableSocketModeStartError.ts:8](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/UnrecoverableSocketModeStartError.ts#L8)
+
+***
+
+### InvalidAuth
+
+```ts
+InvalidAuth: "invalid_auth";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/UnrecoverableSocketModeStartError.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/UnrecoverableSocketModeStartError.ts#L7)
+
+***
+
+### NotAuthed
+
+```ts
+NotAuthed: "not_authed";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/UnrecoverableSocketModeStartError.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/UnrecoverableSocketModeStartError.ts#L6)
+
+***
+
+### TeamDisabled
+
+```ts
+TeamDisabled: "team_disabled";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/UnrecoverableSocketModeStartError.ts:10](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/UnrecoverableSocketModeStartError.ts#L10)
+
+***
+
+### UserRemovedFromTeam
+
+```ts
+UserRemovedFromTeam: "user_removed_from_team";
+```
+
+#### Defined in
+
+[packages/socket-mode/src/UnrecoverableSocketModeStartError.ts:9](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/UnrecoverableSocketModeStartError.ts#L9)
diff --git a/docs/content/reference/socket-mode/index.md b/docs/content/reference/socket-mode/index.md
new file mode 100644
index 000000000..9e4708f53
--- /dev/null
+++ b/docs/content/reference/socket-mode/index.md
@@ -0,0 +1,33 @@
+# @slack/socket-mode
+
+## References
+
+### LogLevel
+
+Renames and re-exports [Logger](variables/Logger.md)
+
+## Enumerations
+
+- [ErrorCode](enumerations/ErrorCode.md)
+- [UnrecoverableSocketModeStartError](enumerations/UnrecoverableSocketModeStartError.md)
+
+## Classes
+
+- [SocketModeClient](classes/SocketModeClient.md)
+
+## Interfaces
+
+- [SMNoReplyReceivedError](interfaces/SMNoReplyReceivedError.md)
+- [SMPlatformError](interfaces/SMPlatformError.md)
+- [SMSendWhileDisconnectedError](interfaces/SMSendWhileDisconnectedError.md)
+- [SMSendWhileNotReadyError](interfaces/SMSendWhileNotReadyError.md)
+- [SMWebsocketError](interfaces/SMWebsocketError.md)
+- [SocketModeOptions](interfaces/SocketModeOptions.md)
+
+## Type Aliases
+
+- [SMCallError](type-aliases/SMCallError.md)
+
+## Variables
+
+- [Logger](variables/Logger.md)
diff --git a/docs/content/reference/socket-mode/interfaces/SMNoReplyReceivedError.md b/docs/content/reference/socket-mode/interfaces/SMNoReplyReceivedError.md
new file mode 100644
index 000000000..1f50807ea
--- /dev/null
+++ b/docs/content/reference/socket-mode/interfaces/SMNoReplyReceivedError.md
@@ -0,0 +1,69 @@
+# Interface: SMNoReplyReceivedError
+
+## Extends
+
+- `CodedError`
+
+## Properties
+
+### code
+
+```ts
+code: NoReplyReceivedError;
+```
+
+#### Overrides
+
+`CodedError.code`
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:35](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L35)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Inherited from
+
+`CodedError.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Inherited from
+
+`CodedError.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Inherited from
+
+`CodedError.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/socket-mode/interfaces/SMPlatformError.md b/docs/content/reference/socket-mode/interfaces/SMPlatformError.md
new file mode 100644
index 000000000..3b54a8644
--- /dev/null
+++ b/docs/content/reference/socket-mode/interfaces/SMPlatformError.md
@@ -0,0 +1,81 @@
+# Interface: SMPlatformError
+
+## Extends
+
+- `CodedError`
+
+## Properties
+
+### code
+
+```ts
+code: SendMessagePlatformError;
+```
+
+#### Overrides
+
+`CodedError.code`
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:24](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L24)
+
+***
+
+### data
+
+```ts
+data: any;
+```
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:26](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L26)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Inherited from
+
+`CodedError.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Inherited from
+
+`CodedError.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Inherited from
+
+`CodedError.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/socket-mode/interfaces/SMSendWhileDisconnectedError.md b/docs/content/reference/socket-mode/interfaces/SMSendWhileDisconnectedError.md
new file mode 100644
index 000000000..c0058ede8
--- /dev/null
+++ b/docs/content/reference/socket-mode/interfaces/SMSendWhileDisconnectedError.md
@@ -0,0 +1,69 @@
+# Interface: SMSendWhileDisconnectedError
+
+## Extends
+
+- `CodedError`
+
+## Properties
+
+### code
+
+```ts
+code: SendWhileDisconnectedError;
+```
+
+#### Overrides
+
+`CodedError.code`
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:39](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L39)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Inherited from
+
+`CodedError.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Inherited from
+
+`CodedError.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Inherited from
+
+`CodedError.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/socket-mode/interfaces/SMSendWhileNotReadyError.md b/docs/content/reference/socket-mode/interfaces/SMSendWhileNotReadyError.md
new file mode 100644
index 000000000..137a0c0ce
--- /dev/null
+++ b/docs/content/reference/socket-mode/interfaces/SMSendWhileNotReadyError.md
@@ -0,0 +1,69 @@
+# Interface: SMSendWhileNotReadyError
+
+## Extends
+
+- `CodedError`
+
+## Properties
+
+### code
+
+```ts
+code: SendWhileNotReadyError;
+```
+
+#### Overrides
+
+`CodedError.code`
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:43](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L43)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Inherited from
+
+`CodedError.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Inherited from
+
+`CodedError.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Inherited from
+
+`CodedError.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/socket-mode/interfaces/SMWebsocketError.md b/docs/content/reference/socket-mode/interfaces/SMWebsocketError.md
new file mode 100644
index 000000000..ba71a3021
--- /dev/null
+++ b/docs/content/reference/socket-mode/interfaces/SMWebsocketError.md
@@ -0,0 +1,81 @@
+# Interface: SMWebsocketError
+
+## Extends
+
+- `CodedError`
+
+## Properties
+
+### code
+
+```ts
+code: WebsocketError;
+```
+
+#### Overrides
+
+`CodedError.code`
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:30](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L30)
+
+***
+
+### message
+
+```ts
+message: string;
+```
+
+#### Inherited from
+
+`CodedError.message`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1077
+
+***
+
+### name
+
+```ts
+name: string;
+```
+
+#### Inherited from
+
+`CodedError.name`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1076
+
+***
+
+### original
+
+```ts
+original: Error;
+```
+
+#### Defined in
+
+[packages/socket-mode/src/errors.ts:31](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L31)
+
+***
+
+### stack?
+
+```ts
+optional stack: string;
+```
+
+#### Inherited from
+
+`CodedError.stack`
+
+#### Defined in
+
+docs/node\_modules/typescript/lib/lib.es5.d.ts:1078
diff --git a/docs/content/reference/socket-mode/interfaces/SocketModeOptions.md b/docs/content/reference/socket-mode/interfaces/SocketModeOptions.md
new file mode 100644
index 000000000..69eda330f
--- /dev/null
+++ b/docs/content/reference/socket-mode/interfaces/SocketModeOptions.md
@@ -0,0 +1,123 @@
+# Interface: SocketModeOptions
+
+## Properties
+
+### appToken
+
+```ts
+appToken: string;
+```
+
+The App-level token associated with your app, located under the Basic Information page on api.slack.com/apps.
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeOptions.ts:8](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeOptions.ts#L8)
+
+***
+
+### autoReconnectEnabled?
+
+```ts
+optional autoReconnectEnabled: boolean;
+```
+
+Whether the client should automatically reconnect when the socket mode connection is disrupted. Defaults to `true`.
+Note that disconnects are regular and expected when using Socket Mode, so setting this to `false` will likely lead
+to a disconnected client after some amount of time.
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeOptions.ts:22](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeOptions.ts#L22)
+
+***
+
+### clientOptions?
+
+```ts
+optional clientOptions: Omit;
+```
+
+The `@slack/web-api` `WebClientOptions` to provide to the HTTP client interacting with Slack's HTTP API.
+Useful for setting retry configurations, TLS and HTTP Agent options.
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeOptions.ts:46](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeOptions.ts#L46)
+
+***
+
+### clientPingTimeout?
+
+```ts
+optional clientPingTimeout: number;
+```
+
+How long the client should wait for a `pong` response to the client's `ping` to the server, in milliseconds.
+If this timeout is hit, the client will attempt to reconnect if `autoReconnectEnabled` is `true`;
+otherwise, it will disconnect.
+Defaults to 5,000.
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeOptions.ts:29](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeOptions.ts#L29)
+
+***
+
+### logLevel?
+
+```ts
+optional logLevel: any;
+```
+
+An instance of `@slack/logger`'s LogLevel enum, setting the minimum log level to emit log messages for.
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeOptions.ts:16](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeOptions.ts#L16)
+
+***
+
+### logger?
+
+```ts
+optional logger: any;
+```
+
+An instance of `@slack/logger`'s Logger interface, to send log messages to.
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeOptions.ts:12](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeOptions.ts#L12)
+
+***
+
+### pingPongLoggingEnabled?
+
+```ts
+optional pingPongLoggingEnabled: boolean;
+```
+
+Should logging related to `ping` and `pong` messages between the client and server be logged at a
+`LogLevel.DEBUG` level. Defaults to `false.
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeOptions.ts:41](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeOptions.ts#L41)
+
+***
+
+### serverPingTimeout?
+
+```ts
+optional serverPingTimeout: number;
+```
+
+How long the client should wait for `ping` messages from the server, in milliseconds.
+If this timeout is hit, the client will attempt to reconnect if `autoReconnectEnabled` is `true`;
+otherwise, it will disconnect.
+Defaults to 30,000.
+
+#### Defined in
+
+[packages/socket-mode/src/SocketModeOptions.ts:36](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/SocketModeOptions.ts#L36)
diff --git a/docs/content/reference/socket-mode/type-aliases/SMCallError.md b/docs/content/reference/socket-mode/type-aliases/SMCallError.md
new file mode 100644
index 000000000..50c968687
--- /dev/null
+++ b/docs/content/reference/socket-mode/type-aliases/SMCallError.md
@@ -0,0 +1,14 @@
+# Type Alias: SMCallError
+
+```ts
+type SMCallError:
+ | SMPlatformError
+ | SMWebsocketError
+ | SMNoReplyReceivedError
+ | SMSendWhileDisconnectedError
+ | SMSendWhileNotReadyError;
+```
+
+## Defined in
+
+[packages/socket-mode/src/errors.ts:20](https://github.com/slackapi/node-slack-sdk/blob/main/packages/socket-mode/src/errors.ts#L20)
diff --git a/docs/content/reference/socket-mode/typedoc-sidebar.cjs b/docs/content/reference/socket-mode/typedoc-sidebar.cjs
new file mode 100644
index 000000000..fc52a0b5e
--- /dev/null
+++ b/docs/content/reference/socket-mode/typedoc-sidebar.cjs
@@ -0,0 +1,4 @@
+// @ts-check
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"reference/socket-mode/enumerations/ErrorCode","label":"ErrorCode"},{"type":"doc","id":"reference/socket-mode/enumerations/UnrecoverableSocketModeStartError","label":"UnrecoverableSocketModeStartError"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"reference/socket-mode/classes/SocketModeClient","label":"SocketModeClient"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"reference/socket-mode/interfaces/SMNoReplyReceivedError","label":"SMNoReplyReceivedError"},{"type":"doc","id":"reference/socket-mode/interfaces/SMPlatformError","label":"SMPlatformError"},{"type":"doc","id":"reference/socket-mode/interfaces/SMSendWhileDisconnectedError","label":"SMSendWhileDisconnectedError"},{"type":"doc","id":"reference/socket-mode/interfaces/SMSendWhileNotReadyError","label":"SMSendWhileNotReadyError"},{"type":"doc","id":"reference/socket-mode/interfaces/SMWebsocketError","label":"SMWebsocketError"},{"type":"doc","id":"reference/socket-mode/interfaces/SocketModeOptions","label":"SocketModeOptions"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"reference/socket-mode/type-aliases/SMCallError","label":"SMCallError"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"reference/socket-mode/variables/Logger","label":"Logger"}]}]};
+module.exports = typedocSidebar.items;
\ No newline at end of file
diff --git a/docs/content/reference/socket-mode/variables/Logger.md b/docs/content/reference/socket-mode/variables/Logger.md
new file mode 100644
index 000000000..e32c0b8c7
--- /dev/null
+++ b/docs/content/reference/socket-mode/variables/Logger.md
@@ -0,0 +1,5 @@
+# Variable: Logger
+
+```ts
+Logger: any;
+```
diff --git a/docs/content/reference/types/index.md b/docs/content/reference/types/index.md
new file mode 100644
index 000000000..ab930a3fb
--- /dev/null
+++ b/docs/content/reference/types/index.md
@@ -0,0 +1,108 @@
+# @slack/types
+
+## Interfaces
+
+- [Action](interfaces/Action.md)
+- [Actionable](interfaces/Actionable.md)
+- [ActionsBlock](interfaces/ActionsBlock.md)
+- [Block](interfaces/Block.md)
+- [Button](interfaces/Button.md)
+- [CallUserExternal](interfaces/CallUserExternal.md)
+- [CallUserSlack](interfaces/CallUserSlack.md)
+- [ChannelsSelect](interfaces/ChannelsSelect.md)
+- [Checkboxes](interfaces/Checkboxes.md)
+- [Confirm](interfaces/Confirm.md)
+- [Confirmable](interfaces/Confirmable.md)
+- [Confirmation](interfaces/Confirmation.md)
+- [ConfirmationDialog](interfaces/ConfirmationDialog.md)
+- [ContextBlock](interfaces/ContextBlock.md)
+- [ConversationsSelect](interfaces/ConversationsSelect.md)
+- [DateTimepicker](interfaces/DateTimepicker.md)
+- [Datepicker](interfaces/Datepicker.md)
+- [Dialog](interfaces/Dialog.md)
+- [DispatchActionConfig](interfaces/DispatchActionConfig.md)
+- [Dispatchable](interfaces/Dispatchable.md)
+- [DividerBlock](interfaces/DividerBlock.md)
+- [EmailInput](interfaces/EmailInput.md)
+- [ExternalSelect](interfaces/ExternalSelect.md)
+- [FileBlock](interfaces/FileBlock.md)
+- [FileInput](interfaces/FileInput.md)
+- [Focusable](interfaces/Focusable.md)
+- [HeaderBlock](interfaces/HeaderBlock.md)
+- [HomeView](interfaces/HomeView.md)
+- [InputBlock](interfaces/InputBlock.md)
+- [LinkUnfurls](interfaces/LinkUnfurls.md)
+- [MaxItemsSelectable](interfaces/MaxItemsSelectable.md)
+- [MessageAttachment](interfaces/MessageAttachment.md)
+- [MessageAttachmentField](interfaces/MessageAttachmentField.md)
+- [MessageMetadata](interfaces/MessageMetadata.md)
+- [MessageMetadataEventPayloadObject](interfaces/MessageMetadataEventPayloadObject.md)
+- [ModalView](interfaces/ModalView.md)
+- [MrkdwnElement](interfaces/MrkdwnElement.md)
+- [MrkdwnOption](interfaces/MrkdwnOption.md)
+- [MultiChannelsSelect](interfaces/MultiChannelsSelect.md)
+- [MultiConversationsSelect](interfaces/MultiConversationsSelect.md)
+- [MultiExternalSelect](interfaces/MultiExternalSelect.md)
+- [MultiStaticSelect](interfaces/MultiStaticSelect.md)
+- [MultiUsersSelect](interfaces/MultiUsersSelect.md)
+- [NumberInput](interfaces/NumberInput.md)
+- [OptionGroup](interfaces/OptionGroup.md)
+- [Overflow](interfaces/Overflow.md)
+- [Placeholdable](interfaces/Placeholdable.md)
+- [PlainTextElement](interfaces/PlainTextElement.md)
+- [PlainTextInput](interfaces/PlainTextInput.md)
+- [PlainTextOption](interfaces/PlainTextOption.md)
+- [RadioButtons](interfaces/RadioButtons.md)
+- [RichTextBlock](interfaces/RichTextBlock.md)
+- [RichTextBorderable](interfaces/RichTextBorderable.md)
+- [RichTextBroadcastMention](interfaces/RichTextBroadcastMention.md)
+- [RichTextChannelMention](interfaces/RichTextChannelMention.md)
+- [RichTextColor](interfaces/RichTextColor.md)
+- [RichTextDate](interfaces/RichTextDate.md)
+- [RichTextEmoji](interfaces/RichTextEmoji.md)
+- [RichTextInput](interfaces/RichTextInput.md)
+- [RichTextLink](interfaces/RichTextLink.md)
+- [RichTextList](interfaces/RichTextList.md)
+- [RichTextPreformatted](interfaces/RichTextPreformatted.md)
+- [RichTextQuote](interfaces/RichTextQuote.md)
+- [RichTextSection](interfaces/RichTextSection.md)
+- [RichTextStyleable](interfaces/RichTextStyleable.md)
+- [RichTextTeamMention](interfaces/RichTextTeamMention.md)
+- [RichTextText](interfaces/RichTextText.md)
+- [RichTextUserMention](interfaces/RichTextUserMention.md)
+- [RichTextUsergroupMention](interfaces/RichTextUsergroupMention.md)
+- [SectionBlock](interfaces/SectionBlock.md)
+- [SelectOption](interfaces/SelectOption.md)
+- [SlackFileImageObject](interfaces/SlackFileImageObject.md)
+- [StaticSelect](interfaces/StaticSelect.md)
+- [Timepicker](interfaces/Timepicker.md)
+- [URLInput](interfaces/URLInput.md)
+- [URLRespondable](interfaces/URLRespondable.md)
+- [UrlImageObject](interfaces/UrlImageObject.md)
+- [UsersSelect](interfaces/UsersSelect.md)
+- [VideoBlock](interfaces/VideoBlock.md)
+- [WorkflowButton](interfaces/WorkflowButton.md)
+- [WorkflowStepView](interfaces/WorkflowStepView.md)
+
+## Type Aliases
+
+- [ActionsBlockElement](type-aliases/ActionsBlockElement.md)
+- [AnyBlock](type-aliases/AnyBlock.md)
+- [CallUser](type-aliases/CallUser.md)
+- [ColorScheme](type-aliases/ColorScheme.md)
+- [ContextBlockElement](type-aliases/ContextBlockElement.md)
+- [ConversationFilter](type-aliases/ConversationFilter.md)
+- [ConversationType](type-aliases/ConversationType.md)
+- [ImageBlock](type-aliases/ImageBlock.md)
+- [ImageElement](type-aliases/ImageElement.md)
+- [InputBlockElement](type-aliases/InputBlockElement.md)
+- [KnownBlock](type-aliases/KnownBlock.md)
+- [MultiSelect](type-aliases/MultiSelect.md)
+- [Option](type-aliases/Option.md)
+- [RichTextBlockElement](type-aliases/RichTextBlockElement.md)
+- [RichTextElement](type-aliases/RichTextElement.md)
+- [SectionBlockAccessory](type-aliases/SectionBlockAccessory.md)
+- [Select](type-aliases/Select.md)
+- [SlackFile](type-aliases/SlackFile.md)
+- [TextObject](type-aliases/TextObject.md)
+- [View](type-aliases/View.md)
diff --git a/docs/content/reference/types/interfaces/Action.md b/docs/content/reference/types/interfaces/Action.md
new file mode 100644
index 000000000..bd1ee6937
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Action.md
@@ -0,0 +1,37 @@
+# Interface: ~~Action~~
+
+## Deprecated
+
+[Action](Action.md) aliased to [Actionable](Actionable.md) in order to name the mixins in this file consistently.
+
+## Extended by
+
+- [`Actionable`](Actionable.md)
+
+## Properties
+
+### ~~action\_id?~~
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### ~~type~~
+
+```ts
+type: string;
+```
+
+#### Defined in
+
+[block-kit/extensions.ts:9](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L9)
diff --git a/docs/content/reference/types/interfaces/Actionable.md b/docs/content/reference/types/interfaces/Actionable.md
new file mode 100644
index 000000000..c0d4b154f
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Actionable.md
@@ -0,0 +1,71 @@
+# Interface: ~~Actionable~~
+
+## Deprecated
+
+[Action](Action.md) aliased to [Actionable](Actionable.md) in order to name the mixins in this file consistently.
+
+## Extends
+
+- [`Action`](Action.md)
+
+## Extended by
+
+- [`Button`](Button.md)
+- [`Checkboxes`](Checkboxes.md)
+- [`Datepicker`](Datepicker.md)
+- [`DateTimepicker`](DateTimepicker.md)
+- [`EmailInput`](EmailInput.md)
+- [`FileInput`](FileInput.md)
+- [`UsersSelect`](UsersSelect.md)
+- [`MultiUsersSelect`](MultiUsersSelect.md)
+- [`StaticSelect`](StaticSelect.md)
+- [`MultiStaticSelect`](MultiStaticSelect.md)
+- [`ConversationsSelect`](ConversationsSelect.md)
+- [`MultiConversationsSelect`](MultiConversationsSelect.md)
+- [`ChannelsSelect`](ChannelsSelect.md)
+- [`MultiChannelsSelect`](MultiChannelsSelect.md)
+- [`ExternalSelect`](ExternalSelect.md)
+- [`MultiExternalSelect`](MultiExternalSelect.md)
+- [`NumberInput`](NumberInput.md)
+- [`Overflow`](Overflow.md)
+- [`PlainTextInput`](PlainTextInput.md)
+- [`RadioButtons`](RadioButtons.md)
+- [`Timepicker`](Timepicker.md)
+- [`URLInput`](URLInput.md)
+- [`RichTextInput`](RichTextInput.md)
+
+## Properties
+
+### ~~action\_id?~~
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Action`](Action.md).[`action_id`](Action.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### ~~type~~
+
+```ts
+type: string;
+```
+
+#### Inherited from
+
+[`Action`](Action.md).[`type`](Action.md#type)
+
+#### Defined in
+
+[block-kit/extensions.ts:9](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L9)
diff --git a/docs/content/reference/types/interfaces/ActionsBlock.md b/docs/content/reference/types/interfaces/ActionsBlock.md
new file mode 100644
index 000000000..bc0d72be5
--- /dev/null
+++ b/docs/content/reference/types/interfaces/ActionsBlock.md
@@ -0,0 +1,74 @@
+# Interface: ActionsBlock
+
+## Description
+
+Holds multiple interactive elements.
+
+## See
+
+[Actions block reference](https://api.slack.com/reference/block-kit/blocks#actions).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### elements
+
+```ts
+elements: ActionsBlockElement[];
+```
+
+#### Description
+
+An array of InteractiveElements objects.
+There is a maximum of 25 elements in each action block.
+
+#### Defined in
+
+[block-kit/blocks.ts:80](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L80)
+
+***
+
+### type
+
+```ts
+type: "actions";
+```
+
+#### Description
+
+The type of block. For an actions block, `type` is always `actions`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:75](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L75)
diff --git a/docs/content/reference/types/interfaces/Block.md b/docs/content/reference/types/interfaces/Block.md
new file mode 100644
index 000000000..a1b3ad885
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Block.md
@@ -0,0 +1,49 @@
+# Interface: Block
+
+## Extended by
+
+- [`ActionsBlock`](ActionsBlock.md)
+- [`ContextBlock`](ContextBlock.md)
+- [`DividerBlock`](DividerBlock.md)
+- [`FileBlock`](FileBlock.md)
+- [`HeaderBlock`](HeaderBlock.md)
+- [`InputBlock`](InputBlock.md)
+- [`RichTextBlock`](RichTextBlock.md)
+- [`SectionBlock`](SectionBlock.md)
+- [`VideoBlock`](VideoBlock.md)
+
+## Properties
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### type
+
+```ts
+type: string;
+```
+
+#### Description
+
+The type of block.
+
+#### Defined in
+
+[block-kit/blocks.ts:36](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L36)
diff --git a/docs/content/reference/types/interfaces/Button.md b/docs/content/reference/types/interfaces/Button.md
new file mode 100644
index 000000000..b677c3277
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Button.md
@@ -0,0 +1,165 @@
+# Interface: Button
+
+## Description
+
+Allows users a direct path to performing basic actions.
+
+## See
+
+ - [Button element reference](https://api.slack.com/reference/block-kit/block-elements#button).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md)
+
+## Properties
+
+### accessibility\_label?
+
+```ts
+optional accessibility_label: string;
+```
+
+#### Description
+
+A label for longer descriptive text about a button element. This label will be read out by screen
+readers instead of the button `text` object. Maximum length for this field is 75 characters.
+
+#### Defined in
+
+[block-kit/block-elements.ts:63](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L63)
+
+***
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### style?
+
+```ts
+optional style: ColorScheme;
+```
+
+#### Description
+
+Decorates buttons with alternative visual color schemes. Use this option with restraint.
+`primary` gives buttons a green outline and text, ideal for affirmation or confirmation actions. `primary` should
+only be used for one button within a set.
+`danger` gives buttons a red outline and text, and should be used when the action is destructive. Use `danger` even
+more sparingly than primary.
+If you don't include this field, the default button style will be used.
+
+#### Defined in
+
+[block-kit/block-elements.ts:58](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L58)
+
+***
+
+### text
+
+```ts
+text: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) that defines the button's text. `text` may truncate with ~30 characters.
+Maximum length for the text in this field is 75 characters.
+
+#### Defined in
+
+[block-kit/block-elements.ts:38](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L38)
+
+***
+
+### type
+
+```ts
+type: "button";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `button`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L33)
+
+***
+
+### url?
+
+```ts
+optional url: string;
+```
+
+#### Description
+
+A URL to load in the user's browser when the button is clicked. Maximum length for this field is 3000
+characters. If you're using `url`, you'll still receive an [interaction payload](https://api.slack.com/interactivity/handling#payloads)
+and will need to send an [acknowledgement response](https://api.slack.com/interactivity/handling#acknowledgment_response).
+
+#### Defined in
+
+[block-kit/block-elements.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L49)
+
+***
+
+### value?
+
+```ts
+optional value: string;
+```
+
+#### Description
+
+The value to send along with the [interaction payload](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 2000 characters.
+
+#### Defined in
+
+[block-kit/block-elements.ts:43](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L43)
diff --git a/docs/content/reference/types/interfaces/CallUserExternal.md b/docs/content/reference/types/interfaces/CallUserExternal.md
new file mode 100644
index 000000000..0182a2f8d
--- /dev/null
+++ b/docs/content/reference/types/interfaces/CallUserExternal.md
@@ -0,0 +1,49 @@
+# Interface: CallUserExternal
+
+## Properties
+
+### avatar\_url?
+
+```ts
+optional avatar_url: string;
+```
+
+#### Description
+
+URL to an avatar image of the user.
+
+#### Defined in
+
+[calls.ts:30](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/calls.ts#L30)
+
+***
+
+### display\_name
+
+```ts
+display_name: string;
+```
+
+#### Description
+
+Name of the user to be displayed in the Call block in a message.
+
+#### Defined in
+
+[calls.ts:26](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/calls.ts#L26)
+
+***
+
+### external\_id
+
+```ts
+external_id: string;
+```
+
+#### Description
+
+A unique ID created by your app to represent your users.
+
+#### Defined in
+
+[calls.ts:22](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/calls.ts#L22)
diff --git a/docs/content/reference/types/interfaces/CallUserSlack.md b/docs/content/reference/types/interfaces/CallUserSlack.md
new file mode 100644
index 000000000..ad6df8881
--- /dev/null
+++ b/docs/content/reference/types/interfaces/CallUserSlack.md
@@ -0,0 +1,18 @@
+# Interface: CallUserSlack
+
+## Properties
+
+### slack\_id
+
+```ts
+slack_id: string;
+```
+
+#### Description
+
+The Slack encoded user ID, e.g. U1234ABCD. Set this if you have it or know it, otherwise, set
+`external_id` and `display_name`.
+
+#### Defined in
+
+[calls.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/calls.ts#L15)
diff --git a/docs/content/reference/types/interfaces/ChannelsSelect.md b/docs/content/reference/types/interfaces/ChannelsSelect.md
new file mode 100644
index 000000000..9fadc4e91
--- /dev/null
+++ b/docs/content/reference/types/interfaces/ChannelsSelect.md
@@ -0,0 +1,158 @@
+# Interface: ChannelsSelect
+
+## Description
+
+This select menu will populate its options with a list of public channels visible to the current user
+in the active workspace.
+
+## See
+
+ - [Select menu of public channels reference](https://api.slack.com/reference/block-kit/block-elements#channels_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md).[`URLRespondable`](URLRespondable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_channel?
+
+```ts
+optional initial_channel: string;
+```
+
+#### Description
+
+The ID of any valid public channel to be pre-selected when the menu loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:448](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L448)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### response\_url\_enabled?
+
+```ts
+optional response_url_enabled: boolean;
+```
+
+#### Description
+
+When set to `true`, the [`view_submission` payload](https://api.slack.com/reference/interaction-payloads/views#view_submission)
+from the menu's parent view will contain a `response_url`. This `response_url` can be used for
+[message responses](https://api.slack.com/interactivity/handling#message_responses). The target conversation
+for the message will be determined by the value of this select menu.
+
+#### Inherited from
+
+[`URLRespondable`](URLRespondable.md).[`response_url_enabled`](URLRespondable.md#response_url_enabled)
+
+#### Defined in
+
+[block-kit/extensions.ts:67](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L67)
+
+***
+
+### type
+
+```ts
+type: "channels_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `channels_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:444](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L444)
diff --git a/docs/content/reference/types/interfaces/Checkboxes.md b/docs/content/reference/types/interfaces/Checkboxes.md
new file mode 100644
index 000000000..e644e385b
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Checkboxes.md
@@ -0,0 +1,130 @@
+# Interface: Checkboxes
+
+## Description
+
+Allows users to choose multiple items from a list of options.
+
+## See
+
+ - [Checkboxes element reference](https://api.slack.com/reference/block-kit/block-elements#checkboxes).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_options?
+
+```ts
+optional initial_options: Option[];
+```
+
+#### Description
+
+An array of [Option](../type-aliases/Option.md) objects that exactly matches one or more of the options within `options`.
+These options will be selected when the checkbox group initially loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:80](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L80)
+
+***
+
+### options
+
+```ts
+options: Option[];
+```
+
+#### Description
+
+An array of [Option](../type-aliases/Option.md) objects. A maximum of 10 options are allowed.
+
+#### Defined in
+
+[block-kit/block-elements.ts:84](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L84)
+
+***
+
+### type
+
+```ts
+type: "checkboxes";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `checkboxes`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:75](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L75)
diff --git a/docs/content/reference/types/interfaces/Confirm.md b/docs/content/reference/types/interfaces/Confirm.md
new file mode 100644
index 000000000..e0b67389c
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Confirm.md
@@ -0,0 +1,104 @@
+# Interface: ~~Confirm~~
+
+## Deprecated
+
+[Confirm](Confirm.md) aliased to [ConfirmationDialog](ConfirmationDialog.md) in order to make the construct clearer
+and line up terminology with api.slack.com.
+
+## Description
+
+Defines a dialog that adds a confirmation step to interactive elements.
+
+## See
+
+[Confirmation dialog object reference](https://api.slack.com/reference/block-kit/composition-objects#confirm).
+
+## Extended by
+
+- [`ConfirmationDialog`](ConfirmationDialog.md)
+
+## Properties
+
+### ~~confirm?~~
+
+```ts
+optional confirm: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object to define the text of the button that confirms the action.
+Maximum length for the `text` in this field is 30 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:34](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L34)
+
+***
+
+### ~~deny?~~
+
+```ts
+optional deny: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object to define the text of the button that cancels the action.
+Maximum length for the `text` in this field is 30 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:39](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L39)
+
+***
+
+### ~~style?~~
+
+```ts
+optional style: ColorScheme;
+```
+
+#### Description
+
+Defines the color scheme applied to the `confirm` button. A value of `danger` will display the button
+with a red background on desktop, or red text on mobile. A value of `primary` will display the button with a green
+background on desktop, or blue text on mobile. If this field is not provided, the default value will be `primary`.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:45](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L45)
+
+***
+
+### ~~text~~
+
+```ts
+text: PlainTextElement | MrkdwnElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object that defines the explanatory text that appears in the confirm
+dialog. Maximum length for the `text` in this field is 300 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:29](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L29)
+
+***
+
+### ~~title?~~
+
+```ts
+optional title: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object that defines the dialog's title.
+Maximum length for this field is 100 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:24](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L24)
diff --git a/docs/content/reference/types/interfaces/Confirmable.md b/docs/content/reference/types/interfaces/Confirmable.md
new file mode 100644
index 000000000..08bf4fa92
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Confirmable.md
@@ -0,0 +1,39 @@
+# Interface: Confirmable
+
+## Extended by
+
+- [`Button`](Button.md)
+- [`Checkboxes`](Checkboxes.md)
+- [`Datepicker`](Datepicker.md)
+- [`DateTimepicker`](DateTimepicker.md)
+- [`UsersSelect`](UsersSelect.md)
+- [`MultiUsersSelect`](MultiUsersSelect.md)
+- [`StaticSelect`](StaticSelect.md)
+- [`MultiStaticSelect`](MultiStaticSelect.md)
+- [`ConversationsSelect`](ConversationsSelect.md)
+- [`MultiConversationsSelect`](MultiConversationsSelect.md)
+- [`ChannelsSelect`](ChannelsSelect.md)
+- [`MultiChannelsSelect`](MultiChannelsSelect.md)
+- [`ExternalSelect`](ExternalSelect.md)
+- [`MultiExternalSelect`](MultiExternalSelect.md)
+- [`Overflow`](Overflow.md)
+- [`RadioButtons`](RadioButtons.md)
+- [`Timepicker`](Timepicker.md)
+- [`WorkflowButton`](WorkflowButton.md)
+
+## Properties
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
diff --git a/docs/content/reference/types/interfaces/Confirmation.md b/docs/content/reference/types/interfaces/Confirmation.md
new file mode 100644
index 000000000..8f959c3d5
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Confirmation.md
@@ -0,0 +1,49 @@
+# Interface: Confirmation
+
+## Properties
+
+### dismiss\_text?
+
+```ts
+optional dismiss_text: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:177](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L177)
+
+***
+
+### ok\_text?
+
+```ts
+optional ok_text: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:178](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L178)
+
+***
+
+### text
+
+```ts
+text: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:179](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L179)
+
+***
+
+### title?
+
+```ts
+optional title: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:180](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L180)
diff --git a/docs/content/reference/types/interfaces/ConfirmationDialog.md b/docs/content/reference/types/interfaces/ConfirmationDialog.md
new file mode 100644
index 000000000..1cecde5dd
--- /dev/null
+++ b/docs/content/reference/types/interfaces/ConfirmationDialog.md
@@ -0,0 +1,119 @@
+# Interface: ConfirmationDialog
+
+## Description
+
+Defines a dialog that adds a confirmation step to interactive elements.
+
+## See
+
+[Confirmation dialog object reference](https://api.slack.com/reference/block-kit/composition-objects#confirm).
+
+## Extends
+
+- [`Confirm`](Confirm.md)
+
+## Properties
+
+### confirm?
+
+```ts
+optional confirm: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object to define the text of the button that confirms the action.
+Maximum length for the `text` in this field is 30 characters.
+
+#### Inherited from
+
+[`Confirm`](Confirm.md).[`confirm`](Confirm.md#confirm)
+
+#### Defined in
+
+[block-kit/composition-objects.ts:34](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L34)
+
+***
+
+### deny?
+
+```ts
+optional deny: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object to define the text of the button that cancels the action.
+Maximum length for the `text` in this field is 30 characters.
+
+#### Inherited from
+
+[`Confirm`](Confirm.md).[`deny`](Confirm.md#deny)
+
+#### Defined in
+
+[block-kit/composition-objects.ts:39](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L39)
+
+***
+
+### style?
+
+```ts
+optional style: ColorScheme;
+```
+
+#### Description
+
+Defines the color scheme applied to the `confirm` button. A value of `danger` will display the button
+with a red background on desktop, or red text on mobile. A value of `primary` will display the button with a green
+background on desktop, or blue text on mobile. If this field is not provided, the default value will be `primary`.
+
+#### Inherited from
+
+[`Confirm`](Confirm.md).[`style`](Confirm.md#style)
+
+#### Defined in
+
+[block-kit/composition-objects.ts:45](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L45)
+
+***
+
+### text
+
+```ts
+text: PlainTextElement | MrkdwnElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object that defines the explanatory text that appears in the confirm
+dialog. Maximum length for the `text` in this field is 300 characters.
+
+#### Inherited from
+
+[`Confirm`](Confirm.md).[`text`](Confirm.md#text)
+
+#### Defined in
+
+[block-kit/composition-objects.ts:29](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L29)
+
+***
+
+### title?
+
+```ts
+optional title: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object that defines the dialog's title.
+Maximum length for this field is 100 characters.
+
+#### Inherited from
+
+[`Confirm`](Confirm.md).[`title`](Confirm.md#title)
+
+#### Defined in
+
+[block-kit/composition-objects.ts:24](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L24)
diff --git a/docs/content/reference/types/interfaces/ContextBlock.md b/docs/content/reference/types/interfaces/ContextBlock.md
new file mode 100644
index 000000000..6164a2388
--- /dev/null
+++ b/docs/content/reference/types/interfaces/ContextBlock.md
@@ -0,0 +1,74 @@
+# Interface: ContextBlock
+
+## Description
+
+Displays contextual info, which can include both images and text.
+
+## See
+
+[Context block reference](https://api.slack.com/reference/block-kit/blocks#context).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### elements
+
+```ts
+elements: ContextBlockElement[];
+```
+
+#### Description
+
+An array of [ImageElement](../type-aliases/ImageElement.md), [PlainTextElement](PlainTextElement.md) or [MrkdwnElement](MrkdwnElement.md) objects.
+Maximum number of items is 10.
+
+#### Defined in
+
+[block-kit/blocks.ts:102](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L102)
+
+***
+
+### type
+
+```ts
+type: "context";
+```
+
+#### Description
+
+The type of block. For a context block, `type` is always `context`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:97](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L97)
diff --git a/docs/content/reference/types/interfaces/ConversationsSelect.md b/docs/content/reference/types/interfaces/ConversationsSelect.md
new file mode 100644
index 000000000..60a626c91
--- /dev/null
+++ b/docs/content/reference/types/interfaces/ConversationsSelect.md
@@ -0,0 +1,210 @@
+# Interface: ConversationsSelect
+
+## Description
+
+This select menu will populate its options with a list of public and private channels, DMs, and MPIMs
+visible to the current user in the active workspace.
+
+## See
+
+ - [Select menu of conversations reference](https://api.slack.com/reference/block-kit/block-elements#conversations_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md).[`URLRespondable`](URLRespondable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### default\_to\_current\_conversation?
+
+```ts
+optional default_to_current_conversation: boolean;
+```
+
+#### Description
+
+Pre-populates the select menu with the conversation that the user was viewing when they opened the
+modal, if available. Default is `false`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:377](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L377)
+
+***
+
+### filter?
+
+```ts
+optional filter: object;
+```
+
+#### exclude\_bot\_users?
+
+```ts
+optional exclude_bot_users: boolean;
+```
+
+#### exclude\_external\_shared\_channels?
+
+```ts
+optional exclude_external_shared_channels: boolean;
+```
+
+#### include?
+
+```ts
+optional include: ("im" | "mpim" | "private" | "public")[];
+```
+
+#### Description
+
+A filter object that reduces the list of available conversations using the specified criteria.
+
+#### Defined in
+
+[block-kit/block-elements.ts:381](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L381)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_conversation?
+
+```ts
+optional initial_conversation: string;
+```
+
+#### Description
+
+The ID of any valid conversation to be pre-selected when the menu loads. If
+`default_to_current_conversation` is also supplied, `initial_conversation` will take precedence.
+
+#### Defined in
+
+[block-kit/block-elements.ts:372](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L372)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### response\_url\_enabled?
+
+```ts
+optional response_url_enabled: boolean;
+```
+
+#### Description
+
+When set to `true`, the [`view_submission` payload](https://api.slack.com/reference/interaction-payloads/views#view_submission)
+from the menu's parent view will contain a `response_url`. This `response_url` can be used for
+[message responses](https://api.slack.com/interactivity/handling#message_responses). The target conversation
+for the message will be determined by the value of this select menu.
+
+#### Inherited from
+
+[`URLRespondable`](URLRespondable.md).[`response_url_enabled`](URLRespondable.md#response_url_enabled)
+
+#### Defined in
+
+[block-kit/extensions.ts:67](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L67)
+
+***
+
+### type
+
+```ts
+type: "conversations_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `conversations_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:367](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L367)
diff --git a/docs/content/reference/types/interfaces/DateTimepicker.md b/docs/content/reference/types/interfaces/DateTimepicker.md
new file mode 100644
index 000000000..478003493
--- /dev/null
+++ b/docs/content/reference/types/interfaces/DateTimepicker.md
@@ -0,0 +1,118 @@
+# Interface: DateTimepicker
+
+## Description
+
+Allows users to select both a date and a time of day, formatted as a Unix timestamp. On desktop
+clients, this time picker will take the form of a dropdown list and the date picker will take the form of a dropdown
+calendar. Both options will have free-text entry for precise choices. On mobile clients, the time picker and date
+picker will use native UIs.
+
+## See
+
+ - [Datetime picker element reference](https://api.slack.com/reference/block-kit/block-elements#datetimepicker).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_date\_time?
+
+```ts
+optional initial_date_time: number;
+```
+
+#### Description
+
+The initial date and time that is selected when the element is loaded, represented as a UNIX
+timestamp in seconds. This should be in the format of 10 digits, for example `1628633820` represents the date and
+time August 10th, 2021 at 03:17pm PST.
+
+#### Defined in
+
+[block-kit/block-elements.ts:126](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L126)
+
+***
+
+### type
+
+```ts
+type: "datetimepicker";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `datetimepicker`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:120](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L120)
diff --git a/docs/content/reference/types/interfaces/Datepicker.md b/docs/content/reference/types/interfaces/Datepicker.md
new file mode 100644
index 000000000..27daa3695
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Datepicker.md
@@ -0,0 +1,135 @@
+# Interface: Datepicker
+
+## Description
+
+Allows users to select a date from a calendar style UI.
+
+## See
+
+ - [Date picker element reference](https://api.slack.com/reference/block-kit/block-elements#datepicker).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_date?
+
+```ts
+optional initial_date: string;
+```
+
+#### Description
+
+The initial date that is selected when the element is loaded.
+This should be in the format `YYYY-MM-DD`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:105](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L105)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "datepicker";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `datepicker`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:100](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L100)
diff --git a/docs/content/reference/types/interfaces/Dialog.md b/docs/content/reference/types/interfaces/Dialog.md
new file mode 100644
index 000000000..dbfb40924
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Dialog.md
@@ -0,0 +1,79 @@
+# Interface: ~~Dialog~~
+
+Reusable shapes for argument values
+
+## Deprecated
+
+Dialogs are a deprecated surface in Slack. For more details on how to upgrade, check out our [Upgrading outmoded dialogs to modals guide](https://api.slack.com/block-kit/dialogs-to-modals). This will be removed in the next major version.
+
+## Properties
+
+### ~~callback\_id~~
+
+```ts
+callback_id: string;
+```
+
+#### Defined in
+
+[dialog.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/dialog.ts#L7)
+
+***
+
+### ~~elements~~
+
+```ts
+elements: object[];
+```
+
+#### Defined in
+
+[dialog.ts:8](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/dialog.ts#L8)
+
+***
+
+### ~~notify\_on\_cancel?~~
+
+```ts
+optional notify_on_cancel: boolean;
+```
+
+#### Defined in
+
+[dialog.ts:31](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/dialog.ts#L31)
+
+***
+
+### ~~state?~~
+
+```ts
+optional state: string;
+```
+
+#### Defined in
+
+[dialog.ts:32](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/dialog.ts#L32)
+
+***
+
+### ~~submit\_label?~~
+
+```ts
+optional submit_label: string;
+```
+
+#### Defined in
+
+[dialog.ts:30](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/dialog.ts#L30)
+
+***
+
+### ~~title~~
+
+```ts
+title: string;
+```
+
+#### Defined in
+
+[dialog.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/dialog.ts#L6)
diff --git a/docs/content/reference/types/interfaces/DispatchActionConfig.md b/docs/content/reference/types/interfaces/DispatchActionConfig.md
new file mode 100644
index 000000000..803ae38e3
--- /dev/null
+++ b/docs/content/reference/types/interfaces/DispatchActionConfig.md
@@ -0,0 +1,30 @@
+# Interface: DispatchActionConfig
+
+## Description
+
+Defines when a [PlainTextElement](PlainTextElement.md) will return a [`block_actions` interaction payload](https://api.slack.com/reference/interaction-payloads/block-actions).
+
+## See
+
+[`block_actions` interaction payload](https://api.slack.com/reference/interaction-payloads/block-actions).
+
+## Properties
+
+### trigger\_actions\_on?
+
+```ts
+optional trigger_actions_on: ("on_enter_pressed" | "on_character_entered")[];
+```
+
+#### Description
+
+An array of interaction types that you would like to receive a
+[`block_actions` payload](https://api.slack.com/reference/interaction-payloads/block-actions) for. Should be
+one or both of:
+ `on_enter_pressed` — payload is dispatched when user presses the enter key while the input is in focus. Hint
+ text will appear underneath the input explaining to the user to press enter to submit.
+ `on_character_entered` — payload is dispatched when a character is entered (or removed) in the input.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:67](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L67)
diff --git a/docs/content/reference/types/interfaces/Dispatchable.md b/docs/content/reference/types/interfaces/Dispatchable.md
new file mode 100644
index 000000000..71d495076
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Dispatchable.md
@@ -0,0 +1,26 @@
+# Interface: Dispatchable
+
+## Extended by
+
+- [`EmailInput`](EmailInput.md)
+- [`NumberInput`](NumberInput.md)
+- [`PlainTextInput`](PlainTextInput.md)
+- [`URLInput`](URLInput.md)
+- [`RichTextInput`](RichTextInput.md)
+
+## Properties
+
+### dispatch\_action\_config?
+
+```ts
+optional dispatch_action_config: DispatchActionConfig;
+```
+
+#### Description
+
+A [DispatchActionConfig](DispatchActionConfig.md) object that determines when during text input the element returns a
+[`block_actions` payload](https://api.slack.com/reference/interaction-payloads/block-actions).
+
+#### Defined in
+
+[block-kit/extensions.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L33)
diff --git a/docs/content/reference/types/interfaces/DividerBlock.md b/docs/content/reference/types/interfaces/DividerBlock.md
new file mode 100644
index 000000000..1c5143f28
--- /dev/null
+++ b/docs/content/reference/types/interfaces/DividerBlock.md
@@ -0,0 +1,58 @@
+# Interface: DividerBlock
+
+## Description
+
+Visually separates pieces of info inside of a message. A content divider, like an ` `, to split up
+different blocks inside of a message. The divider block is nice and neat, requiring only a `type`.
+
+## See
+
+[Divider block reference](https://api.slack.com/reference/block-kit/blocks#divider).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### type
+
+```ts
+type: "divider";
+```
+
+#### Description
+
+The type of block. For a divider block, `type` is always `divider`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:114](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L114)
diff --git a/docs/content/reference/types/interfaces/EmailInput.md b/docs/content/reference/types/interfaces/EmailInput.md
new file mode 100644
index 000000000..2575bcb46
--- /dev/null
+++ b/docs/content/reference/types/interfaces/EmailInput.md
@@ -0,0 +1,134 @@
+# Interface: EmailInput
+
+## Description
+
+Allows user to enter an email into a single-line field.
+
+## See
+
+ - [Email input element reference](https://api.slack.com/reference/block-kit/block-elements#email).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Dispatchable`](Dispatchable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### dispatch\_action\_config?
+
+```ts
+optional dispatch_action_config: DispatchActionConfig;
+```
+
+#### Description
+
+A [DispatchActionConfig](DispatchActionConfig.md) object that determines when during text input the element returns a
+[`block_actions` payload](https://api.slack.com/reference/interaction-payloads/block-actions).
+
+#### Inherited from
+
+[`Dispatchable`](Dispatchable.md).[`dispatch_action_config`](Dispatchable.md#dispatch_action_config)
+
+#### Defined in
+
+[block-kit/extensions.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L33)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_value?
+
+```ts
+optional initial_value: string;
+```
+
+#### Description
+
+The initial value in the email input when it is loaded.
+
+#### Defined in
+
+[block-kit/block-elements.ts:146](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L146)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "email_text_input";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `email_text_input`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:142](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L142)
diff --git a/docs/content/reference/types/interfaces/ExternalSelect.md b/docs/content/reference/types/interfaces/ExternalSelect.md
new file mode 100644
index 000000000..f59494485
--- /dev/null
+++ b/docs/content/reference/types/interfaces/ExternalSelect.md
@@ -0,0 +1,153 @@
+# Interface: ExternalSelect
+
+## Description
+
+This select menu will load its options from an external data source, allowing for a dynamic list of
+options.
+
+## See
+
+ - [Select menu of external data source reference](https://api.slack.com/reference/block-kit/block-elements#external_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_option?
+
+```ts
+optional initial_option: PlainTextOption;
+```
+
+#### Description
+
+A single option to be selected when the menu initially loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:493](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L493)
+
+***
+
+### min\_query\_length?
+
+```ts
+optional min_query_length: number;
+```
+
+#### Description
+
+When the typeahead field is used, a request will be sent on every character change. If you prefer
+fewer requests or more fully ideated queries, use the `min_query_length` attribute to tell Slack the fewest number
+of typed characters required before dispatch. The default value is `3`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:499](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L499)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "external_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `external_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:488](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L488)
diff --git a/docs/content/reference/types/interfaces/FileBlock.md b/docs/content/reference/types/interfaces/FileBlock.md
new file mode 100644
index 000000000..05db04a2e
--- /dev/null
+++ b/docs/content/reference/types/interfaces/FileBlock.md
@@ -0,0 +1,92 @@
+# Interface: FileBlock
+
+## Description
+
+Displays a [remote file](https://api.slack.com/messaging/files/remote). You can't add this block to
+app surfaces directly, but it will show up when [retrieving messages](https://api.slack.com/messaging/retrieving)
+that contain remote files. If you want to add remote files to messages,
+[follow our guide](https://api.slack.com/messaging/files/remote).
+
+## See
+
+[File block reference](https://api.slack.com/reference/block-kit/blocks#file).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### external\_id
+
+```ts
+external_id: string;
+```
+
+#### Description
+
+The external unique ID for this file.
+
+#### Defined in
+
+[block-kit/blocks.ts:136](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L136)
+
+***
+
+### source
+
+```ts
+source: string;
+```
+
+#### Description
+
+At the moment, source will always be `remote` for a remote file.
+
+#### Defined in
+
+[block-kit/blocks.ts:132](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L132)
+
+***
+
+### type
+
+```ts
+type: "file";
+```
+
+#### Description
+
+The type of block. For a file block, `type` is always `file`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:128](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L128)
diff --git a/docs/content/reference/types/interfaces/FileInput.md b/docs/content/reference/types/interfaces/FileInput.md
new file mode 100644
index 000000000..833271a9e
--- /dev/null
+++ b/docs/content/reference/types/interfaces/FileInput.md
@@ -0,0 +1,89 @@
+# Interface: FileInput
+
+## Description
+
+Allows user to upload files. In order to use the `file_input` element within your app,
+your app must have the `files:read` scope.
+
+## See
+
+[File input element reference](https://api.slack.com/reference/block-kit/block-elements#file_input).
+
+## Extends
+
+- [`Actionable`](Actionable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### filetypes?
+
+```ts
+optional filetypes: string[];
+```
+
+#### Description
+
+An array of valid [file extensions](https://api.slack.com/types/file#types) that will be accepted
+for this element. All file extensions will be accepted if `filetypes` is not specified. This validation is provided
+for convenience only, and you should perform your own file type validation based on what you expect to receive.
+
+#### Defined in
+
+[block-kit/block-elements.ts:164](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L164)
+
+***
+
+### max\_files?
+
+```ts
+optional max_files: number;
+```
+
+#### Description
+
+Maximum number of files that can be uploaded for this `file_input` element. Minimum of `1`, maximum of
+`10`. Defaults to `10` if not specified.
+
+#### Defined in
+
+[block-kit/block-elements.ts:169](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L169)
+
+***
+
+### type
+
+```ts
+type: "file_input";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `file_input`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:158](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L158)
diff --git a/docs/content/reference/types/interfaces/Focusable.md b/docs/content/reference/types/interfaces/Focusable.md
new file mode 100644
index 000000000..fac8198f5
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Focusable.md
@@ -0,0 +1,42 @@
+# Interface: Focusable
+
+## Extended by
+
+- [`Checkboxes`](Checkboxes.md)
+- [`Datepicker`](Datepicker.md)
+- [`DateTimepicker`](DateTimepicker.md)
+- [`EmailInput`](EmailInput.md)
+- [`UsersSelect`](UsersSelect.md)
+- [`MultiUsersSelect`](MultiUsersSelect.md)
+- [`StaticSelect`](StaticSelect.md)
+- [`MultiStaticSelect`](MultiStaticSelect.md)
+- [`ConversationsSelect`](ConversationsSelect.md)
+- [`MultiConversationsSelect`](MultiConversationsSelect.md)
+- [`ChannelsSelect`](ChannelsSelect.md)
+- [`MultiChannelsSelect`](MultiChannelsSelect.md)
+- [`ExternalSelect`](ExternalSelect.md)
+- [`MultiExternalSelect`](MultiExternalSelect.md)
+- [`NumberInput`](NumberInput.md)
+- [`PlainTextInput`](PlainTextInput.md)
+- [`RadioButtons`](RadioButtons.md)
+- [`Timepicker`](Timepicker.md)
+- [`URLInput`](URLInput.md)
+- [`RichTextInput`](RichTextInput.md)
+
+## Properties
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
diff --git a/docs/content/reference/types/interfaces/HeaderBlock.md b/docs/content/reference/types/interfaces/HeaderBlock.md
new file mode 100644
index 000000000..bbb9c30bc
--- /dev/null
+++ b/docs/content/reference/types/interfaces/HeaderBlock.md
@@ -0,0 +1,75 @@
+# Interface: HeaderBlock
+
+## Description
+
+Displays a larger-sized text block. A `header` is a plain-text block that displays in a larger, bold
+font. Use it to delineate between different groups of content in your app's surfaces.
+
+## See
+
+[Header block reference](https://api.slack.com/reference/block-kit/blocks#header).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### text
+
+```ts
+text: PlainTextElement;
+```
+
+#### Description
+
+The text for the block, in the form of a [PlainTextElement](PlainTextElement.md).
+Maximum length for the text in this field is 150 characters.
+
+#### Defined in
+
+[block-kit/blocks.ts:153](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L153)
+
+***
+
+### type
+
+```ts
+type: "header";
+```
+
+#### Description
+
+The type of block. For a header block, `type` is always `header`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:148](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L148)
diff --git a/docs/content/reference/types/interfaces/HomeView.md b/docs/content/reference/types/interfaces/HomeView.md
new file mode 100644
index 000000000..6d6318cd3
--- /dev/null
+++ b/docs/content/reference/types/interfaces/HomeView.md
@@ -0,0 +1,109 @@
+# Interface: HomeView
+
+## Extends
+
+- `BaseView`
+
+## Properties
+
+### blocks
+
+```ts
+blocks: AnyBlock[];
+```
+
+#### Description
+
+An array of [AnyBlock](../type-aliases/AnyBlock.md) that defines the content of the view. Max of 100 blocks.
+
+#### Inherited from
+
+`BaseView.blocks`
+
+#### Defined in
+
+[views.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L6)
+
+***
+
+### callback\_id?
+
+```ts
+optional callback_id: string;
+```
+
+#### Description
+
+An identifier to recognize interactions and submissions of this particular view. Don't use this to
+store sensitive information (use `private_metadata` instead). Maximum length of 255 characters.
+
+#### See
+
+[Handling and responding to interactions](https://api.slack.com/surfaces/modals#interactions).
+
+#### Inherited from
+
+`BaseView.callback_id`
+
+#### Defined in
+
+[views.ts:19](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L19)
+
+***
+
+### external\_id?
+
+```ts
+optional external_id: string;
+```
+
+#### Description
+
+A custom identifier that must be unique for all views on a per-team basis.
+
+#### Inherited from
+
+`BaseView.external_id`
+
+#### Defined in
+
+[views.ts:21](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L21)
+
+***
+
+### private\_metadata?
+
+```ts
+optional private_metadata: string;
+```
+
+#### Description
+
+String that will be sent to your app in
+[`view_submission`](https://api.slack.com/reference/interaction-payloads/views#view_submission) and
+[`block_actions`](https://api.slack.com/reference/interaction-payloads/block-actions) events.
+Maximum length of 3000 characters.
+
+#### Inherited from
+
+`BaseView.private_metadata`
+
+#### Defined in
+
+[views.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L13)
+
+***
+
+### type
+
+```ts
+type: "home";
+```
+
+#### Description
+
+The type of view. Set to `home` for Home tabs.
+
+#### Defined in
+
+[views.ts:27](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L27)
diff --git a/docs/content/reference/types/interfaces/InputBlock.md b/docs/content/reference/types/interfaces/InputBlock.md
new file mode 100644
index 000000000..ca33952ca
--- /dev/null
+++ b/docs/content/reference/types/interfaces/InputBlock.md
@@ -0,0 +1,143 @@
+# Interface: InputBlock
+
+## Description
+
+Collects information from users via block elements.
+
+## See
+
+ - [Input block reference](https://api.slack.com/reference/block-kit/blocks#input).
+ - [Collecting input in modals guide](https://api.slack.com/surfaces/modals#gathering_input).
+ - [Collecting input in Home tabs guide](https://api.slack.com/surfaces/app-home#gathering_input).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### dispatch\_action?
+
+```ts
+optional dispatch_action: boolean;
+```
+
+#### Description
+
+A boolean that indicates whether or not the use of elements in this block should dispatch a
+[block_actions payload](https://api.slack.com/reference/interaction-payloads/block-actions). Defaults to `false`.
+
+#### Defined in
+
+[block-kit/blocks.ts:218](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L218)
+
+***
+
+### element
+
+```ts
+element: InputBlockElement;
+```
+
+#### Description
+
+A block element.
+
+#### Defined in
+
+[block-kit/blocks.ts:213](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L213)
+
+***
+
+### hint?
+
+```ts
+optional hint: PlainTextElement;
+```
+
+#### Description
+
+An optional hint that appears below an input element in a lighter grey. It must be a
+[object](PlainTextElement.md). Maximum length for the `text` in this field is 2000 characters.
+
+#### Defined in
+
+[block-kit/blocks.ts:204](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L204)
+
+***
+
+### label
+
+```ts
+label: PlainTextElement;
+```
+
+#### Description
+
+A label that appears above an input element in the form of a [PlainTextElement](PlainTextElement.md) object.
+Maximum length for the text in this field is 2000 characters.
+
+#### Defined in
+
+[block-kit/blocks.ts:199](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L199)
+
+***
+
+### optional?
+
+```ts
+optional optional: boolean;
+```
+
+#### Description
+
+A boolean that indicates whether the input element may be empty when a user submits the modal.
+Defaults to `false`.
+
+#### Defined in
+
+[block-kit/blocks.ts:209](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L209)
+
+***
+
+### type
+
+```ts
+type: "input";
+```
+
+#### Description
+
+The type of block. For an input block, `type` is always `input`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:194](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L194)
diff --git a/docs/content/reference/types/interfaces/LinkUnfurls.md b/docs/content/reference/types/interfaces/LinkUnfurls.md
new file mode 100644
index 000000000..d041ae784
--- /dev/null
+++ b/docs/content/reference/types/interfaces/LinkUnfurls.md
@@ -0,0 +1,5 @@
+# Interface: LinkUnfurls
+
+## Indexable
+
+ \[`linkUrl`: `string`\]: [`MessageAttachment`](MessageAttachment.md)
diff --git a/docs/content/reference/types/interfaces/MaxItemsSelectable.md b/docs/content/reference/types/interfaces/MaxItemsSelectable.md
new file mode 100644
index 000000000..ab49365c4
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MaxItemsSelectable.md
@@ -0,0 +1,25 @@
+# Interface: MaxItemsSelectable
+
+## Extended by
+
+- [`MultiUsersSelect`](MultiUsersSelect.md)
+- [`MultiStaticSelect`](MultiStaticSelect.md)
+- [`MultiConversationsSelect`](MultiConversationsSelect.md)
+- [`MultiChannelsSelect`](MultiChannelsSelect.md)
+- [`MultiExternalSelect`](MultiExternalSelect.md)
+
+## Properties
+
+### max\_selected\_items?
+
+```ts
+optional max_selected_items: number;
+```
+
+#### Description
+
+Specifies the maximum number of items that can be selected. Minimum number is 1.
+
+#### Defined in
+
+[block-kit/extensions.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L49)
diff --git a/docs/content/reference/types/interfaces/MessageAttachment.md b/docs/content/reference/types/interfaces/MessageAttachment.md
new file mode 100644
index 000000000..4585932f5
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MessageAttachment.md
@@ -0,0 +1,401 @@
+# Interface: MessageAttachment
+
+Add [secondary attachments](https://api.slack.com/messaging/composing/layouts#attachments) to your messages in Slack.
+Message attachments are considered a legacy part of messaging functionality. They are not deprecated per se, but they may change in the future, in ways that reduce their visibility or utility. We recommend moving to Block Kit instead. Read more about [when to use message attachments](https://api.slack.com/messaging/composing/layouts#when-to-use-attachments).
+
+## See
+
+[Secondary message attachments reference documentation](https://api.slack.com/reference/messaging/attachments)
+
+## Properties
+
+### actions?
+
+```ts
+optional actions: AttachmentAction[];
+```
+
+#### Defined in
+
+[message-attachments.ts:105](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L105)
+
+***
+
+### app\_id?
+
+```ts
+optional app_id: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:115](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L115)
+
+***
+
+### app\_unfurl\_url?
+
+```ts
+optional app_unfurl_url: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:113](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L113)
+
+***
+
+### author\_icon?
+
+```ts
+optional author_icon: string;
+```
+
+#### Description
+
+A valid URL that displays a small 16px by 16px image to the left of the `author_name` text.
+Will only work if `author_name` is present.
+
+#### Defined in
+
+[message-attachments.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L49)
+
+***
+
+### author\_link?
+
+```ts
+optional author_link: string;
+```
+
+#### Description
+
+A valid URL that will hyperlink the `author_name` text. Will only work if `author_name` is present.
+
+#### Defined in
+
+[message-attachments.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L44)
+
+***
+
+### author\_name?
+
+```ts
+optional author_name: string;
+```
+
+#### Description
+
+Small text used to display the author's name.
+
+#### Defined in
+
+[message-attachments.ts:40](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L40)
+
+***
+
+### author\_subname?
+
+```ts
+optional author_subname: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:50](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L50)
+
+***
+
+### blocks?
+
+```ts
+optional blocks: AnyBlock[];
+```
+
+#### Description
+
+An array of [layout blocks](../type-aliases/KnownBlock.md) in the same format
+[as described in the building blocks guide](https://api.slack.com/block-kit/building).
+
+#### Defined in
+
+[message-attachments.ts:21](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L21)
+
+***
+
+### bot\_id?
+
+```ts
+optional bot_id: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:116](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L116)
+
+***
+
+### callback\_id?
+
+```ts
+optional callback_id: string;
+```
+
+#### Defined in
+
+[message-attachments.ts:106](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L106)
+
+***
+
+### color?
+
+```ts
+optional color: string;
+```
+
+#### Description
+
+Changes the color of the border on the left side of this attachment from the default gray. Can either
+be one of `good` (green), `warning` (yellow), `danger` (red), or any hex color code (eg. `#439FE0`)
+
+#### Defined in
+
+[message-attachments.ts:31](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L31)
+
+***
+
+### fallback?
+
+```ts
+optional fallback: string;
+```
+
+#### Description
+
+A plain text summary of the attachment used in clients that
+don't show formatted text (e.g. mobile notifications).
+
+#### Defined in
+
+[message-attachments.ts:26](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L26)
+
+***
+
+### fields?
+
+```ts
+optional fields: MessageAttachmentField[];
+```
+
+#### Description
+
+An array of [MessageAttachmentField](MessageAttachmentField.md) that get displayed in a table-like way
+(see [this example](https://api.slack.com/reference/messaging/attachments#example)).
+For best results, include no more than 2-3 field objects.
+
+#### Defined in
+
+[message-attachments.ts:71](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L71)
+
+***
+
+### footer?
+
+```ts
+optional footer: string;
+```
+
+#### Description
+
+Some brief text to help contextualize and identify an attachment. Limited to 300 characters,
+and may be truncated further when displayed to users in environments with limited screen real estate.
+
+#### Defined in
+
+[message-attachments.ts:91](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L91)
+
+***
+
+### footer\_icon?
+
+```ts
+optional footer_icon: string;
+```
+
+#### Description
+
+A valid URL to an image file that will be displayed beside the `footer` text.
+Will only work if `footer` is present. We'll render what you provide at 16px by 16px.
+It's best to use an image that is similarly sized.
+
+#### Defined in
+
+[message-attachments.ts:97](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L97)
+
+***
+
+### image\_url?
+
+```ts
+optional image_url: string;
+```
+
+#### Description
+
+A valid URL to an image file that will be displayed at the bottom of the attachment.
+We support GIF, JPEG, PNG, and BMP formats.
+Large images will be resized to a maximum width of 360px or a maximum height of 500px, while still
+maintaining the original aspect ratio. Cannot be used with `thumb_url`.
+
+#### Defined in
+
+[message-attachments.ts:78](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L78)
+
+***
+
+### is\_app\_unfurl?
+
+```ts
+optional is_app_unfurl: boolean;
+```
+
+#### Defined in
+
+[message-attachments.ts:114](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L114)
+
+***
+
+### mrkdwn\_in?
+
+```ts
+optional mrkdwn_in: ("text" | "pretext" | "fields")[];
+```
+
+#### Description
+
+Field names that should be [formatted by `mrkdwn` syntax](https://api.slack.com/reference/surfaces/formatting#basics).
+The fields that can be formatted in this way include the names of the `fields` property, or
+the `text` or `pretext` properties.
+
+#### Defined in
+
+[message-attachments.ts:112](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L112)
+
+***
+
+### pretext?
+
+```ts
+optional pretext: string;
+```
+
+#### Description
+
+Text that appears above the message attachment block. It can be formatted as plain text,
+or with [`mrkdwn`](https://api.slack.com/reference/surfaces/formatting#basics) by including it in the `mrkdwn_in` field.
+
+#### Defined in
+
+[message-attachments.ts:36](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L36)
+
+***
+
+### preview?
+
+```ts
+optional preview: MessageAttachmentPreview;
+```
+
+#### Defined in
+
+[message-attachments.ts:117](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L117)
+
+***
+
+### text?
+
+```ts
+optional text: string;
+```
+
+#### Description
+
+The main body text of the attachment. It can be formatted as plain text, or with
+[`mrkdwn`](https://api.slack.com/reference/surfaces/formatting#basics) by including it in the `mrkdwn_in` field.
+The content will automatically collapse if it contains 700+ characters or 5+ line breaks, and will display
+a "Show more..." link to expand the content.
+
+#### Defined in
+
+[message-attachments.ts:65](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L65)
+
+***
+
+### thumb\_url?
+
+```ts
+optional thumb_url: string;
+```
+
+#### Description
+
+A valid URL to an image file that will be displayed as a thumbnail on the right side of
+a message attachment. We currently support the following formats: GIF, JPEG, PNG, and BMP.
+The thumbnail's longest dimension will be scaled down to 75px while maintaining the aspect ratio of the image.
+The file size of the image must also be less than 500 KB.
+For best results, please use images that are already 75px by 75px.
+
+#### Defined in
+
+[message-attachments.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L86)
+
+***
+
+### title?
+
+```ts
+optional title: string;
+```
+
+#### Description
+
+Large title text near the top of the attachment.
+
+#### Defined in
+
+[message-attachments.ts:54](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L54)
+
+***
+
+### title\_link?
+
+```ts
+optional title_link: string;
+```
+
+#### Description
+
+A valid URL that turns the `title` text into a hyperlink.
+
+#### Defined in
+
+[message-attachments.ts:58](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L58)
+
+***
+
+### ts?
+
+```ts
+optional ts: string;
+```
+
+#### Description
+
+A Unix timestamp that is used to relate your attachment to a specific time.
+The attachment will display the additional timestamp value as part of the attachment's footer.
+Your message's timestamp will be displayed in varying ways, depending on how far in the past or future it is,
+relative to the present. Form factors, like mobile versus desktop may also transform its rendered appearance.
+
+#### Defined in
+
+[message-attachments.ts:104](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L104)
diff --git a/docs/content/reference/types/interfaces/MessageAttachmentField.md b/docs/content/reference/types/interfaces/MessageAttachmentField.md
new file mode 100644
index 000000000..64fd7e461
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MessageAttachmentField.md
@@ -0,0 +1,59 @@
+# Interface: MessageAttachmentField
+
+## Description
+
+A field object to include in a [MessageAttachment](MessageAttachment.md).
+
+## See
+
+[Field objects reference](https://api.slack.com/reference/messaging/attachments#field_objects).
+
+## Properties
+
+### short?
+
+```ts
+optional short: boolean;
+```
+
+#### Description
+
+Indicates whether the field object is short enough to be displayed side-by-side with
+other field objects. Defaults to `false`.
+
+#### Defined in
+
+[message-attachments.ts:138](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L138)
+
+***
+
+### title
+
+```ts
+title: string;
+```
+
+#### Description
+
+Shown as a bold heading displayed in the field object. It cannot contain markup and
+will be escaped for you.
+
+#### Defined in
+
+[message-attachments.ts:129](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L129)
+
+***
+
+### value
+
+```ts
+value: string;
+```
+
+#### Description
+
+The text value displayed in the field object. It can be formatted as plain text, or with [`mrkdwn`](https://api.slack.com/reference/surfaces/formatting#basics) by using the `mrkdwn_in` option of [MessageAttachment](MessageAttachment.md).
+
+#### Defined in
+
+[message-attachments.ts:133](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-attachments.ts#L133)
diff --git a/docs/content/reference/types/interfaces/MessageMetadata.md b/docs/content/reference/types/interfaces/MessageMetadata.md
new file mode 100644
index 000000000..26a7a902b
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MessageMetadata.md
@@ -0,0 +1,52 @@
+# Interface: MessageMetadata
+
+## Description
+
+Application-specific data to attach to Slack message.
+
+## See
+
+ - [Using Metadata](https://api.slack.com/metadata/using)
+ - [Metadata Payload Structure](https://api.slack.com/reference/metadata#payload_structure)
+
+## Properties
+
+### event\_payload
+
+```ts
+event_payload: object;
+```
+
+#### Index Signature
+
+ \[`key`: `string`\]:
+ \| `string`
+ \| `number`
+ \| `boolean`
+ \| [`MessageMetadataEventPayloadObject`](MessageMetadataEventPayloadObject.md)
+ \| [`MessageMetadataEventPayloadObject`](MessageMetadataEventPayloadObject.md)[]
+
+#### Description
+
+A free-form object containing whatever data your application wishes to attach to messages.
+
+#### Defined in
+
+[message-metadata.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-metadata.ts#L15)
+
+***
+
+### event\_type
+
+```ts
+event_type: string;
+```
+
+#### Description
+
+A human readable alphanumeric string representing your application's metadata event.
+The value of this field may appear in the UI to developers.
+
+#### Defined in
+
+[message-metadata.ts:11](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/message-metadata.ts#L11)
diff --git a/docs/content/reference/types/interfaces/MessageMetadataEventPayloadObject.md b/docs/content/reference/types/interfaces/MessageMetadataEventPayloadObject.md
new file mode 100644
index 000000000..fa6b94c30
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MessageMetadataEventPayloadObject.md
@@ -0,0 +1,5 @@
+# Interface: MessageMetadataEventPayloadObject
+
+## Indexable
+
+ \[`key`: `string`\]: `string` \| `number` \| `boolean`
diff --git a/docs/content/reference/types/interfaces/ModalView.md b/docs/content/reference/types/interfaces/ModalView.md
new file mode 100644
index 000000000..99053f1ad
--- /dev/null
+++ b/docs/content/reference/types/interfaces/ModalView.md
@@ -0,0 +1,196 @@
+# Interface: ModalView
+
+## Extends
+
+- `BaseView`
+
+## Properties
+
+### blocks
+
+```ts
+blocks: AnyBlock[];
+```
+
+#### Description
+
+An array of [AnyBlock](../type-aliases/AnyBlock.md) that defines the content of the view. Max of 100 blocks.
+
+#### Inherited from
+
+`BaseView.blocks`
+
+#### Defined in
+
+[views.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L6)
+
+***
+
+### callback\_id?
+
+```ts
+optional callback_id: string;
+```
+
+#### Description
+
+An identifier to recognize interactions and submissions of this particular view. Don't use this to
+store sensitive information (use `private_metadata` instead). Maximum length of 255 characters.
+
+#### See
+
+[Handling and responding to interactions](https://api.slack.com/surfaces/modals#interactions).
+
+#### Inherited from
+
+`BaseView.callback_id`
+
+#### Defined in
+
+[views.ts:19](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L19)
+
+***
+
+### clear\_on\_close?
+
+```ts
+optional clear_on_close: boolean;
+```
+
+#### Description
+
+When set to `true`, clicking on the close button will clear all views in a modal and close it.
+Defaults to `false`.
+
+#### Defined in
+
+[views.ts:54](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L54)
+
+***
+
+### close?
+
+```ts
+optional close: PlainTextElement;
+```
+
+#### Description
+
+An optional [PlainTextElement](PlainTextElement.md) that defines the text displayed in the close button at the
+bottom-right of the view. Maximum length of 24 characters.
+
+#### Defined in
+
+[views.ts:43](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L43)
+
+***
+
+### external\_id?
+
+```ts
+optional external_id: string;
+```
+
+#### Description
+
+A custom identifier that must be unique for all views on a per-team basis.
+
+#### Inherited from
+
+`BaseView.external_id`
+
+#### Defined in
+
+[views.ts:21](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L21)
+
+***
+
+### notify\_on\_close?
+
+```ts
+optional notify_on_close: boolean;
+```
+
+#### Description
+
+Indicates whether Slack will send your app a
+[`view_closed`](https://api.slack.com/reference/interaction-payloads/views#view_closed) event when a user
+clicks the close button. Defaults to `false`.
+
+#### Defined in
+
+[views.ts:60](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L60)
+
+***
+
+### private\_metadata?
+
+```ts
+optional private_metadata: string;
+```
+
+#### Description
+
+String that will be sent to your app in
+[`view_submission`](https://api.slack.com/reference/interaction-payloads/views#view_submission) and
+[`block_actions`](https://api.slack.com/reference/interaction-payloads/block-actions) events.
+Maximum length of 3000 characters.
+
+#### Inherited from
+
+`BaseView.private_metadata`
+
+#### Defined in
+
+[views.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L13)
+
+***
+
+### submit?
+
+```ts
+optional submit: PlainTextElement;
+```
+
+#### Description
+
+An optional [PlainTextElement](PlainTextElement.md) that defines the text displayed in the submit button at the
+bottom-right of the view. `submit` is required when an input block is within the `blocks` array. Max length of 24
+characters.
+
+#### Defined in
+
+[views.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L49)
+
+***
+
+### title
+
+```ts
+title: PlainTextElement;
+```
+
+#### Description
+
+The title that appears in the top-left of the modal. Must be a [PlainTextElement](PlainTextElement.md) with a
+maximum length of 24 characters.
+
+#### Defined in
+
+[views.ts:38](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L38)
+
+***
+
+### type
+
+```ts
+type: "modal";
+```
+
+#### Description
+
+The type of view. Set to `modal` for modals.
+
+#### Defined in
+
+[views.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L33)
diff --git a/docs/content/reference/types/interfaces/MrkdwnElement.md b/docs/content/reference/types/interfaces/MrkdwnElement.md
new file mode 100644
index 000000000..4b90e8608
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MrkdwnElement.md
@@ -0,0 +1,61 @@
+# Interface: MrkdwnElement
+
+## Description
+
+Defines an object containing some text.
+
+## See
+
+[Text object reference](https://api.slack.com/reference/block-kit/composition-objects#text).
+
+## Properties
+
+### text
+
+```ts
+text: string;
+```
+
+#### Description
+
+The text for the block. This field accepts any of the standard text formatting markup.
+The minimum length is 1 and maximum length is 3000 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:166](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L166)
+
+***
+
+### type
+
+```ts
+type: "mrkdwn";
+```
+
+#### Description
+
+The formatting to use for this text object.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:161](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L161)
+
+***
+
+### verbatim?
+
+```ts
+optional verbatim: boolean;
+```
+
+#### Description
+
+When set to `false` (as is default) URLs will be auto-converted into links, conversation names will
+be link-ified, and certain mentions will be [automatically parsed](https://api.slack.com/reference/surfaces/formatting#automatic-parsing).
+Using a value of `true` will skip any preprocessing of this nature, although you can still include
+[manual parsing strings](https://api.slack.com/reference/surfaces/formatting#advanced).
+
+#### Defined in
+
+[block-kit/composition-objects.ts:173](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L173)
diff --git a/docs/content/reference/types/interfaces/MrkdwnOption.md b/docs/content/reference/types/interfaces/MrkdwnOption.md
new file mode 100644
index 000000000..ab6216f66
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MrkdwnOption.md
@@ -0,0 +1,85 @@
+# Interface: MrkdwnOption
+
+## Extends
+
+- `OptionDescriptor`
+
+## Properties
+
+### description?
+
+```ts
+optional description: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) that defines a line of descriptive text shown below the `text` field.
+Maximum length for the `text` within this field is 75 characters.
+
+#### Inherited from
+
+`OptionDescriptor.description`
+
+#### Defined in
+
+[block-kit/composition-objects.ts:85](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L85)
+
+***
+
+### text
+
+```ts
+text: MrkdwnElement;
+```
+
+#### Description
+
+A [MrkdwnElement](MrkdwnElement.md) that defines the text shown in the option on the menu. To be used with
+radio buttons and checkboxes. Maximum length for the `text` in this field is 75 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:93](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L93)
+
+***
+
+### url?
+
+```ts
+optional url: string;
+```
+
+#### Description
+
+Only available in overflow menus! A URL to load in the user's browser when the option is clicked.
+Maximum length for this field is 3000 characters.
+
+#### Inherited from
+
+`OptionDescriptor.url`
+
+#### Defined in
+
+[block-kit/composition-objects.ts:80](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L80)
+
+***
+
+### value?
+
+```ts
+optional value: string;
+```
+
+#### Description
+
+A unique string value that will be passed to your app when this option is chosen.
+Maximum length for this field is 75 characters.
+
+#### Inherited from
+
+`OptionDescriptor.value`
+
+#### Defined in
+
+[block-kit/composition-objects.ts:75](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L75)
diff --git a/docs/content/reference/types/interfaces/MultiChannelsSelect.md b/docs/content/reference/types/interfaces/MultiChannelsSelect.md
new file mode 100644
index 000000000..3d393347e
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MultiChannelsSelect.md
@@ -0,0 +1,155 @@
+# Interface: MultiChannelsSelect
+
+## Description
+
+This multi-select menu will populate its options with a list of public channels visible to the current
+user in the active workspace.
+
+## See
+
+ - [Multi-select menu of public channels reference](https://api.slack.com/reference/block-kit/block-elements#channel_multi_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`MaxItemsSelectable`](MaxItemsSelectable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_channels?
+
+```ts
+optional initial_channels: string[];
+```
+
+#### Description
+
+An array of one or more IDs of any valid public channel to be pre-selected when the menu loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:471](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L471)
+
+***
+
+### max\_selected\_items?
+
+```ts
+optional max_selected_items: number;
+```
+
+#### Description
+
+Specifies the maximum number of items that can be selected. Minimum number is 1.
+
+#### Inherited from
+
+[`MaxItemsSelectable`](MaxItemsSelectable.md).[`max_selected_items`](MaxItemsSelectable.md#max_selected_items)
+
+#### Defined in
+
+[block-kit/extensions.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L49)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "multi_channels_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `multi_channels_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:466](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L466)
diff --git a/docs/content/reference/types/interfaces/MultiConversationsSelect.md b/docs/content/reference/types/interfaces/MultiConversationsSelect.md
new file mode 100644
index 000000000..e2286c567
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MultiConversationsSelect.md
@@ -0,0 +1,207 @@
+# Interface: MultiConversationsSelect
+
+## Description
+
+This multi-select menu will populate its options with a list of public and private channels, DMs, and
+MPIMs visible to the current user in the active workspace.
+
+## See
+
+ - [Multi-select menu of conversations reference](https://api.slack.com/reference/block-kit/block-elements#conversation_multi_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`MaxItemsSelectable`](MaxItemsSelectable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### default\_to\_current\_conversation?
+
+```ts
+optional default_to_current_conversation: boolean;
+```
+
+#### Description
+
+Pre-populates the select menu with the conversation that the user was viewing when they opened the
+modal, if available. Default is `false`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:417](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L417)
+
+***
+
+### filter?
+
+```ts
+optional filter: object;
+```
+
+#### exclude\_bot\_users?
+
+```ts
+optional exclude_bot_users: boolean;
+```
+
+#### exclude\_external\_shared\_channels?
+
+```ts
+optional exclude_external_shared_channels: boolean;
+```
+
+#### include?
+
+```ts
+optional include: ("im" | "mpim" | "private" | "public")[];
+```
+
+#### Description
+
+A filter object that reduces the list of available conversations using the specified criteria.
+
+#### Defined in
+
+[block-kit/block-elements.ts:421](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L421)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_conversations?
+
+```ts
+optional initial_conversations: string[];
+```
+
+#### Description
+
+An array of one or more IDs of any valid conversations to be pre-selected when the menu loads. If
+`default_to_current_conversation` is also supplied, `initial_conversation` will be ignored.
+
+#### Defined in
+
+[block-kit/block-elements.ts:412](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L412)
+
+***
+
+### max\_selected\_items?
+
+```ts
+optional max_selected_items: number;
+```
+
+#### Description
+
+Specifies the maximum number of items that can be selected. Minimum number is 1.
+
+#### Inherited from
+
+[`MaxItemsSelectable`](MaxItemsSelectable.md).[`max_selected_items`](MaxItemsSelectable.md#max_selected_items)
+
+#### Defined in
+
+[block-kit/extensions.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L49)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "multi_conversations_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `conversations_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:406](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L406)
diff --git a/docs/content/reference/types/interfaces/MultiExternalSelect.md b/docs/content/reference/types/interfaces/MultiExternalSelect.md
new file mode 100644
index 000000000..9872bc56f
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MultiExternalSelect.md
@@ -0,0 +1,172 @@
+# Interface: MultiExternalSelect
+
+## Description
+
+This menu will load its options from an external data source, allowing for a dynamic list of options.
+
+## See
+
+ - [Multi-select menu of external data source reference](https://api.slack.com/reference/block-kit/block-elements#external_multi_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`MaxItemsSelectable`](MaxItemsSelectable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_options?
+
+```ts
+optional initial_options: PlainTextOption[];
+```
+
+#### Description
+
+An array of options to be selected when the menu initially loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:521](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L521)
+
+***
+
+### max\_selected\_items?
+
+```ts
+optional max_selected_items: number;
+```
+
+#### Description
+
+Specifies the maximum number of items that can be selected. Minimum number is 1.
+
+#### Inherited from
+
+[`MaxItemsSelectable`](MaxItemsSelectable.md).[`max_selected_items`](MaxItemsSelectable.md#max_selected_items)
+
+#### Defined in
+
+[block-kit/extensions.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L49)
+
+***
+
+### min\_query\_length?
+
+```ts
+optional min_query_length: number;
+```
+
+#### Description
+
+When the typeahead field is used, a request will be sent on every character change. If you prefer
+fewer requests or more fully ideated queries, use the `min_query_length` attribute to tell Slack the fewest number
+of typed characters required before dispatch. The default value is `3`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:527](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L527)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "multi_external_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `multi_external_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:516](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L516)
diff --git a/docs/content/reference/types/interfaces/MultiStaticSelect.md b/docs/content/reference/types/interfaces/MultiStaticSelect.md
new file mode 100644
index 000000000..a073f7189
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MultiStaticSelect.md
@@ -0,0 +1,190 @@
+# Interface: MultiStaticSelect
+
+## Description
+
+This is the simplest form of select menu, with a static list of options passed in when defining the
+element.
+
+## See
+
+ - [Multi-select menu of static options reference](https://api.slack.com/reference/block-kit/block-elements#static_multi_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`MaxItemsSelectable`](MaxItemsSelectable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_options?
+
+```ts
+optional initial_options: PlainTextOption[];
+```
+
+#### Description
+
+An array of option objects that exactly match one or more of the options within `options` or
+`option_groups`. These options will be selected when the menu initially loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:331](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L331)
+
+***
+
+### max\_selected\_items?
+
+```ts
+optional max_selected_items: number;
+```
+
+#### Description
+
+Specifies the maximum number of items that can be selected. Minimum number is 1.
+
+#### Inherited from
+
+[`MaxItemsSelectable`](MaxItemsSelectable.md).[`max_selected_items`](MaxItemsSelectable.md#max_selected_items)
+
+#### Defined in
+
+[block-kit/extensions.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L49)
+
+***
+
+### option\_groups?
+
+```ts
+optional option_groups: object[];
+```
+
+#### Description
+
+An array of option group objects. Maximum number of option groups is 100. If `options` is specified,
+this field should not be.
+
+#### Defined in
+
+[block-kit/block-elements.ts:346](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L346)
+
+***
+
+### options?
+
+```ts
+optional options: PlainTextOption[];
+```
+
+#### Description
+
+An array of [PlainTextOption](PlainTextOption.md). Maximum number of options is 100. If `option_groups` is
+specified, this field should not be.
+
+#### Defined in
+
+[block-kit/block-elements.ts:338](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L338)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "multi_static_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `multi_static_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:325](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L325)
diff --git a/docs/content/reference/types/interfaces/MultiUsersSelect.md b/docs/content/reference/types/interfaces/MultiUsersSelect.md
new file mode 100644
index 000000000..3bb63f9b9
--- /dev/null
+++ b/docs/content/reference/types/interfaces/MultiUsersSelect.md
@@ -0,0 +1,155 @@
+# Interface: MultiUsersSelect
+
+## Description
+
+This multi-select menu will populate its options with a list of Slack users visible to the current user
+in the active workspace.
+
+## See
+
+ - [Multi-select menu of users reference](https://api.slack.com/reference/block-kit/block-elements#users_multi_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`MaxItemsSelectable`](MaxItemsSelectable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_users?
+
+```ts
+optional initial_users: string[];
+```
+
+#### Description
+
+An array of user IDs of any valid users to be pre-selected when the menu loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:266](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L266)
+
+***
+
+### max\_selected\_items?
+
+```ts
+optional max_selected_items: number;
+```
+
+#### Description
+
+Specifies the maximum number of items that can be selected. Minimum number is 1.
+
+#### Inherited from
+
+[`MaxItemsSelectable`](MaxItemsSelectable.md).[`max_selected_items`](MaxItemsSelectable.md#max_selected_items)
+
+#### Defined in
+
+[block-kit/extensions.ts:49](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L49)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "multi_users_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `multi_users_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:262](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L262)
diff --git a/docs/content/reference/types/interfaces/NumberInput.md b/docs/content/reference/types/interfaces/NumberInput.md
new file mode 100644
index 000000000..c7eea927f
--- /dev/null
+++ b/docs/content/reference/types/interfaces/NumberInput.md
@@ -0,0 +1,184 @@
+# Interface: NumberInput
+
+## Description
+
+Allows user to enter a number into a single-line field. The number input element accepts both whole and
+decimal numbers. For example, 0.25, 5.5, and -10 are all valid input values. Decimal numbers are only allowed when
+`is_decimal_allowed` is equal to `true`.
+
+## See
+
+ - [Number input element reference](https://api.slack.com/reference/block-kit/block-elements#number).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Dispatchable`](Dispatchable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### dispatch\_action\_config?
+
+```ts
+optional dispatch_action_config: DispatchActionConfig;
+```
+
+#### Description
+
+A [DispatchActionConfig](DispatchActionConfig.md) object that determines when during text input the element returns a
+[`block_actions` payload](https://api.slack.com/reference/interaction-payloads/block-actions).
+
+#### Inherited from
+
+[`Dispatchable`](Dispatchable.md).[`dispatch_action_config`](Dispatchable.md#dispatch_action_config)
+
+#### Defined in
+
+[block-kit/extensions.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L33)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_value?
+
+```ts
+optional initial_value: string;
+```
+
+#### Description
+
+The initial value in the input when it is loaded.
+
+#### Defined in
+
+[block-kit/block-elements.ts:557](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L557)
+
+***
+
+### is\_decimal\_allowed
+
+```ts
+is_decimal_allowed: boolean;
+```
+
+#### Description
+
+Decimal numbers are allowed if this property is `true`, set the value to `false` otherwise.
+
+#### Defined in
+
+[block-kit/block-elements.ts:553](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L553)
+
+***
+
+### max\_value?
+
+```ts
+optional max_value: string;
+```
+
+#### Description
+
+The maximum value, cannot be less than `min_value`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:565](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L565)
+
+***
+
+### min\_value?
+
+```ts
+optional min_value: string;
+```
+
+#### Description
+
+The minimum value, cannot be greater than `max_value`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:561](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L561)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "number_input";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `number_input`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:549](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L549)
diff --git a/docs/content/reference/types/interfaces/OptionGroup.md b/docs/content/reference/types/interfaces/OptionGroup.md
new file mode 100644
index 000000000..11b2ce3fb
--- /dev/null
+++ b/docs/content/reference/types/interfaces/OptionGroup.md
@@ -0,0 +1,42 @@
+# Interface: OptionGroup
+
+## Description
+
+Defines a way to group options in a select or multi-select menu.
+
+## See
+
+[Option group object reference](https://api.slack.com/reference/block-kit/composition-objects#option_group).
+
+## Properties
+
+### label
+
+```ts
+label: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) text object that defines the label shown above this group of options.
+Maximum length for the `text` in this field is 75 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:120](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L120)
+
+***
+
+### options
+
+```ts
+options: Option[];
+```
+
+#### Description
+
+An array of [Option](../type-aliases/Option.md) that belong to this specific group. Maximum of 100 items.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:124](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L124)
diff --git a/docs/content/reference/types/interfaces/Overflow.md b/docs/content/reference/types/interfaces/Overflow.md
new file mode 100644
index 000000000..21ac78054
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Overflow.md
@@ -0,0 +1,95 @@
+# Interface: Overflow
+
+## Description
+
+Allows users to press a button to view a list of options.
+Unlike the select menu, there is no typeahead field, and the button always appears with an ellipsis ('…') rather
+than customizable text. As such, it is usually used if you want a more compact layout than a select menu, or to
+supply a list of less visually important actions after a row of buttons. You can also specify simple URL links as
+overflow menu options, instead of actions.
+
+## See
+
+ - [Overflow menu element reference](https://api.slack.com/reference/block-kit/block-elements#overflow).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### options
+
+```ts
+options: PlainTextOption[];
+```
+
+#### Description
+
+An array of up to 5 [PlainTextOption](PlainTextOption.md) to display in the menu.
+
+#### Defined in
+
+[block-kit/block-elements.ts:586](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L586)
+
+***
+
+### type
+
+```ts
+type: "overflow";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `number_input`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:581](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L581)
diff --git a/docs/content/reference/types/interfaces/Placeholdable.md b/docs/content/reference/types/interfaces/Placeholdable.md
new file mode 100644
index 000000000..a00cfc058
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Placeholdable.md
@@ -0,0 +1,38 @@
+# Interface: Placeholdable
+
+## Extended by
+
+- [`Datepicker`](Datepicker.md)
+- [`EmailInput`](EmailInput.md)
+- [`UsersSelect`](UsersSelect.md)
+- [`MultiUsersSelect`](MultiUsersSelect.md)
+- [`StaticSelect`](StaticSelect.md)
+- [`MultiStaticSelect`](MultiStaticSelect.md)
+- [`ConversationsSelect`](ConversationsSelect.md)
+- [`MultiConversationsSelect`](MultiConversationsSelect.md)
+- [`ChannelsSelect`](ChannelsSelect.md)
+- [`MultiChannelsSelect`](MultiChannelsSelect.md)
+- [`ExternalSelect`](ExternalSelect.md)
+- [`MultiExternalSelect`](MultiExternalSelect.md)
+- [`NumberInput`](NumberInput.md)
+- [`PlainTextInput`](PlainTextInput.md)
+- [`Timepicker`](Timepicker.md)
+- [`URLInput`](URLInput.md)
+- [`RichTextInput`](RichTextInput.md)
+
+## Properties
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
diff --git a/docs/content/reference/types/interfaces/PlainTextElement.md b/docs/content/reference/types/interfaces/PlainTextElement.md
new file mode 100644
index 000000000..70892b4f3
--- /dev/null
+++ b/docs/content/reference/types/interfaces/PlainTextElement.md
@@ -0,0 +1,57 @@
+# Interface: PlainTextElement
+
+## Description
+
+Defines an object containing some text.
+
+## See
+
+[Text object reference](https://api.slack.com/reference/block-kit/composition-objects#text).
+
+## Properties
+
+### emoji?
+
+```ts
+optional emoji: boolean;
+```
+
+#### Description
+
+Indicates whether emojis in a text field should be escaped into the colon emoji format.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:150](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L150)
+
+***
+
+### text
+
+```ts
+text: string;
+```
+
+#### Description
+
+The text for the block. The minimum length is 1 and maximum length is 3000 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:146](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L146)
+
+***
+
+### type
+
+```ts
+type: "plain_text";
+```
+
+#### Description
+
+The formatting to use for this text object.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:142](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L142)
diff --git a/docs/content/reference/types/interfaces/PlainTextInput.md b/docs/content/reference/types/interfaces/PlainTextInput.md
new file mode 100644
index 000000000..e8c6db86c
--- /dev/null
+++ b/docs/content/reference/types/interfaces/PlainTextInput.md
@@ -0,0 +1,185 @@
+# Interface: PlainTextInput
+
+## Description
+
+Allows users to enter freeform text data into a single-line or multi-line field.
+
+## See
+
+ - [Plain-text input element reference](https://api.slack.com/reference/block-kit/block-elements#input).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Dispatchable`](Dispatchable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### dispatch\_action\_config?
+
+```ts
+optional dispatch_action_config: DispatchActionConfig;
+```
+
+#### Description
+
+A [DispatchActionConfig](DispatchActionConfig.md) object that determines when during text input the element returns a
+[`block_actions` payload](https://api.slack.com/reference/interaction-payloads/block-actions).
+
+#### Inherited from
+
+[`Dispatchable`](Dispatchable.md).[`dispatch_action_config`](Dispatchable.md#dispatch_action_config)
+
+#### Defined in
+
+[block-kit/extensions.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L33)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_value?
+
+```ts
+optional initial_value: string;
+```
+
+#### Description
+
+The initial value in the plain-text input when it is loaded.
+
+#### Defined in
+
+[block-kit/block-elements.ts:606](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L606)
+
+***
+
+### max\_length?
+
+```ts
+optional max_length: number;
+```
+
+#### Description
+
+The maximum length of input that the user can provide. If the user provides more,
+they will receive an error.
+
+#### Defined in
+
+[block-kit/block-elements.ts:621](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L621)
+
+***
+
+### min\_length?
+
+```ts
+optional min_length: number;
+```
+
+#### Description
+
+The minimum length of input that the user must provide. If the user provides less, they will receive
+an error. Maximum value is 3000.
+
+#### Defined in
+
+[block-kit/block-elements.ts:616](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L616)
+
+***
+
+### multiline?
+
+```ts
+optional multiline: boolean;
+```
+
+#### Description
+
+Indicates whether the input will be a single line (`false`) or a larger textarea (`true`).
+Defaults to `false`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:611](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L611)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "plain_text_input";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `plain_text_input`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:602](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L602)
diff --git a/docs/content/reference/types/interfaces/PlainTextOption.md b/docs/content/reference/types/interfaces/PlainTextOption.md
new file mode 100644
index 000000000..ecc70d12c
--- /dev/null
+++ b/docs/content/reference/types/interfaces/PlainTextOption.md
@@ -0,0 +1,85 @@
+# Interface: PlainTextOption
+
+## Extends
+
+- `OptionDescriptor`
+
+## Properties
+
+### description?
+
+```ts
+optional description: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) that defines a line of descriptive text shown below the `text` field.
+Maximum length for the `text` within this field is 75 characters.
+
+#### Inherited from
+
+`OptionDescriptor.description`
+
+#### Defined in
+
+[block-kit/composition-objects.ts:85](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L85)
+
+***
+
+### text
+
+```ts
+text: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) that defines the text shown in the option on the menu. To be used with
+overflow, select and multi-select menus. Maximum length for the `text` in this field is 75 characters.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:101](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L101)
+
+***
+
+### url?
+
+```ts
+optional url: string;
+```
+
+#### Description
+
+Only available in overflow menus! A URL to load in the user's browser when the option is clicked.
+Maximum length for this field is 3000 characters.
+
+#### Inherited from
+
+`OptionDescriptor.url`
+
+#### Defined in
+
+[block-kit/composition-objects.ts:80](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L80)
+
+***
+
+### value?
+
+```ts
+optional value: string;
+```
+
+#### Description
+
+A unique string value that will be passed to your app when this option is chosen.
+Maximum length for this field is 75 characters.
+
+#### Inherited from
+
+`OptionDescriptor.value`
+
+#### Defined in
+
+[block-kit/composition-objects.ts:75](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L75)
diff --git a/docs/content/reference/types/interfaces/RadioButtons.md b/docs/content/reference/types/interfaces/RadioButtons.md
new file mode 100644
index 000000000..97337de49
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RadioButtons.md
@@ -0,0 +1,130 @@
+# Interface: RadioButtons
+
+## Description
+
+Allows users to choose one item from a list of possible options.
+
+## See
+
+ - [Radio button group element reference](https://api.slack.com/reference/block-kit/block-elements#radio).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_option?
+
+```ts
+optional initial_option: Option;
+```
+
+#### Description
+
+An [Option](../type-aliases/Option.md) object that exactly matches one of the options within `options`. This option will
+be selected when the radio button group initially loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:638](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L638)
+
+***
+
+### options
+
+```ts
+options: Option[];
+```
+
+#### Description
+
+An array of [Option](../type-aliases/Option.md) objects. A maximum of 10 options are allowed.
+
+#### Defined in
+
+[block-kit/block-elements.ts:642](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L642)
+
+***
+
+### type
+
+```ts
+type: "radio_buttons";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `radio_buttons`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:633](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L633)
diff --git a/docs/content/reference/types/interfaces/RichTextBlock.md b/docs/content/reference/types/interfaces/RichTextBlock.md
new file mode 100644
index 000000000..efa0149cb
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextBlock.md
@@ -0,0 +1,74 @@
+# Interface: RichTextBlock
+
+## Description
+
+Displays formatted, structured representation of text. It is also the output of the Slack client's
+WYSIWYG message composer, so all messages sent by end-users will have this format. Use this block to include
+user-defined formatted text in your Block Kit payload. While it is possible to format text with `mrkdwn`,
+`rich_text` is strongly preferred and allows greater flexibility.
+You might encounter a `rich_text` block in a message payload, as a built-in type in workflow apps, or as output of
+the [RichTextInput](RichTextInput.md).
+
+## See
+
+[Rich text block reference](https://api.slack.com/reference/block-kit/blocks#rich_text).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### elements
+
+```ts
+elements: RichTextBlockElement[];
+```
+
+#### Defined in
+
+[block-kit/blocks.ts:241](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L241)
+
+***
+
+### type
+
+```ts
+type: "rich_text";
+```
+
+#### Description
+
+The type of block. For a rich text block, `type` is always `rich_text`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:240](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L240)
diff --git a/docs/content/reference/types/interfaces/RichTextBorderable.md b/docs/content/reference/types/interfaces/RichTextBorderable.md
new file mode 100644
index 000000000..835f7cec9
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextBorderable.md
@@ -0,0 +1,26 @@
+# Interface: RichTextBorderable
+
+For use in setting border style details on certain Rich Text elements.
+
+## Extended by
+
+- [`RichTextList`](RichTextList.md)
+- [`RichTextQuote`](RichTextQuote.md)
+- [`RichTextPreformatted`](RichTextPreformatted.md)
+
+## Properties
+
+### border?
+
+```ts
+optional border: 0 | 1;
+```
+
+#### Description
+
+Whether to render a quote-block-like border on the inline side of the list. `0` renders no border
+while `1` renders a border.
+
+#### Defined in
+
+[block-kit/extensions.ts:76](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L76)
diff --git a/docs/content/reference/types/interfaces/RichTextBroadcastMention.md b/docs/content/reference/types/interfaces/RichTextBroadcastMention.md
new file mode 100644
index 000000000..109544c31
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextBroadcastMention.md
@@ -0,0 +1,101 @@
+# Interface: RichTextBroadcastMention
+
+## Description
+
+A broadcast mention element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### range
+
+```ts
+range: "here" | "channel" | "everyone";
+```
+
+#### Description
+
+The range of the broadcast; can be one of `here`, `channel` and `everyone`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:766](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L766)
+
+***
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### type
+
+```ts
+type: "broadcast";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `broadcast`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:762](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L762)
diff --git a/docs/content/reference/types/interfaces/RichTextChannelMention.md b/docs/content/reference/types/interfaces/RichTextChannelMention.md
new file mode 100644
index 000000000..2cf45b6b1
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextChannelMention.md
@@ -0,0 +1,101 @@
+# Interface: RichTextChannelMention
+
+## Description
+
+A channel mention element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### channel\_id
+
+```ts
+channel_id: string;
+```
+
+#### Description
+
+The encoded channel ID, e.g. C1234ABCD.
+
+#### Defined in
+
+[block-kit/block-elements.ts:794](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L794)
+
+***
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### type
+
+```ts
+type: "channel";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `channel`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:790](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L790)
diff --git a/docs/content/reference/types/interfaces/RichTextColor.md b/docs/content/reference/types/interfaces/RichTextColor.md
new file mode 100644
index 000000000..993d3930d
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextColor.md
@@ -0,0 +1,101 @@
+# Interface: RichTextColor
+
+## Description
+
+A hex color element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### type
+
+```ts
+type: "color";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `color`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:776](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L776)
+
+***
+
+### value
+
+```ts
+value: string;
+```
+
+#### Description
+
+The hex value for the color.
+
+#### Defined in
+
+[block-kit/block-elements.ts:780](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L780)
diff --git a/docs/content/reference/types/interfaces/RichTextDate.md b/docs/content/reference/types/interfaces/RichTextDate.md
new file mode 100644
index 000000000..1fbdde726
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextDate.md
@@ -0,0 +1,169 @@
+# Interface: RichTextDate
+
+## Description
+
+A date element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### fallback?
+
+```ts
+optional fallback: string;
+```
+
+#### Description
+
+Text to display in place of the date should parsing, formatting or displaying fails.
+
+#### Defined in
+
+[block-kit/block-elements.ts:840](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L840)
+
+***
+
+### format
+
+```ts
+format: string;
+```
+
+#### Description
+
+A template string containing curly-brace-enclosed tokens to substitute your provided `timestamp`
+in a particularly-formatted way. For example: `Posted at {date_long}`. The available date formatting tokens are:
+- `{day_divider_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable. Otherwise, if the date is in
+ current year, uses the `{date_long}` format without the year. Otherwise, falls back to using the `{date_long}`
+ format.
+- `{date_num}`: Shows date as YYYY-MM-DD.
+- `{date_slash}`: Shows date as DD/MM/YYYY (subject to locale preferences).
+- `{date_long}`: Shows date as a long-form sentence including day-of-week, e.g. `Monday, December 23rd, 2013`.
+- `{date_long_full}`: Shows date as a long-form sentence without day-of-week, e.g. `August 9, 2020`.
+- `{date_long_pretty}`: Shows `yesterday`, `today` or `tomorrow`, otherwise uses the `{date_long}` format.
+- `{date}`: Same as `{date_long_full}` but without the year.
+- `{date_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable, otherwise uses the `{date}` format.
+- `{date_short}`: Shows date using short month names without day-of-week, e.g. `Aug 9, 2020`.
+- `{date_short_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable, otherwise uses the `{date_short}`
+ format.
+- `{time}`: Depending on user preferences, shows just the time-of-day portion of the timestamp using either 12 or
+ 24 hour clock formats, e.g. `2:34 PM` or `14:34`.
+- `{time_secs}`: Depending on user preferences, shows just the time-of-day portion of the timestamp using either 12
+ or 24 hour clock formats, including seconds, e.g. `2:34:56 PM` or `14:34:56`.
+- `{ago}`: A human-readable period of time, e.g. `3 minutes ago`, `4 hours ago`, `2 days ago`.
+TODO: test/document `{member_local_time}`, `{status_expiration}` and `{calendar_header}`
+
+#### Defined in
+
+[block-kit/block-elements.ts:832](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L832)
+
+***
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### timestamp
+
+```ts
+timestamp: number;
+```
+
+#### Description
+
+A UNIX timestamp for the date to be displayed in seconds.
+
+#### Defined in
+
+[block-kit/block-elements.ts:808](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L808)
+
+***
+
+### type
+
+```ts
+type: "date";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `date`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:804](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L804)
+
+***
+
+### url?
+
+```ts
+optional url: string;
+```
+
+#### Description
+
+URL to link the entire `format` string to.
+
+#### Defined in
+
+[block-kit/block-elements.ts:836](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L836)
diff --git a/docs/content/reference/types/interfaces/RichTextEmoji.md b/docs/content/reference/types/interfaces/RichTextEmoji.md
new file mode 100644
index 000000000..d514b4db9
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextEmoji.md
@@ -0,0 +1,133 @@
+# Interface: RichTextEmoji
+
+## Description
+
+An emoji element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### name
+
+```ts
+name: string;
+```
+
+#### Description
+
+Name of emoji, without colons or skin tones, e.g. `wave`
+
+#### Defined in
+
+[block-kit/block-elements.ts:854](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L854)
+
+***
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### type
+
+```ts
+type: "emoji";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `emoji`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:850](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L850)
+
+***
+
+### unicode?
+
+```ts
+optional unicode: string;
+```
+
+#### Description
+
+Lowercase hexadecimal Unicode representation of a standard emoji (not for use with custom emoji).
+
+#### Defined in
+
+[block-kit/block-elements.ts:858](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L858)
+
+***
+
+### url?
+
+```ts
+optional url: string;
+```
+
+#### Description
+
+URL of emoji asset. Only used when sharing custom emoji across workspaces.
+
+#### Defined in
+
+[block-kit/block-elements.ts:862](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L862)
diff --git a/docs/content/reference/types/interfaces/RichTextInput.md b/docs/content/reference/types/interfaces/RichTextInput.md
new file mode 100644
index 000000000..c200dac14
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextInput.md
@@ -0,0 +1,135 @@
+# Interface: RichTextInput
+
+## Description
+
+A rich text input creates a composer/WYSIWYG editor for entering formatted text, offering nearly the
+same experience you have writing messages in Slack.
+
+## See
+
+ - [Rich-text input element reference](https://api.slack.com/reference/block-kit/block-elements#rich_text_input).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Dispatchable`](Dispatchable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### dispatch\_action\_config?
+
+```ts
+optional dispatch_action_config: DispatchActionConfig;
+```
+
+#### Description
+
+A [DispatchActionConfig](DispatchActionConfig.md) object that determines when during text input the element returns a
+[`block_actions` payload](https://api.slack.com/reference/interaction-payloads/block-actions).
+
+#### Inherited from
+
+[`Dispatchable`](Dispatchable.md).[`dispatch_action_config`](Dispatchable.md#dispatch_action_config)
+
+#### Defined in
+
+[block-kit/extensions.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L33)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_value?
+
+```ts
+optional initial_value: RichTextBlock;
+```
+
+#### Description
+
+Initial contents of the input when it is loaded.
+
+#### Defined in
+
+[block-kit/block-elements.ts:1039](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L1039)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "rich_text_input";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `rich_text_input`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:1035](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L1035)
diff --git a/docs/content/reference/types/interfaces/RichTextLink.md b/docs/content/reference/types/interfaces/RichTextLink.md
new file mode 100644
index 000000000..14b8b96aa
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextLink.md
@@ -0,0 +1,133 @@
+# Interface: RichTextLink
+
+## Description
+
+A link element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### text?
+
+```ts
+optional text: string;
+```
+
+#### Description
+
+The text to link.
+
+#### Defined in
+
+[block-kit/block-elements.ts:876](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L876)
+
+***
+
+### type
+
+```ts
+type: "link";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `link`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:872](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L872)
+
+***
+
+### unsafe?
+
+```ts
+optional unsafe: boolean;
+```
+
+#### Description
+
+TODO: ?
+
+#### Defined in
+
+[block-kit/block-elements.ts:880](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L880)
+
+***
+
+### url
+
+```ts
+url: string;
+```
+
+#### Description
+
+URL to link to.
+
+#### Defined in
+
+[block-kit/block-elements.ts:884](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L884)
diff --git a/docs/content/reference/types/interfaces/RichTextList.md b/docs/content/reference/types/interfaces/RichTextList.md
new file mode 100644
index 000000000..a88882d2a
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextList.md
@@ -0,0 +1,96 @@
+# Interface: RichTextList
+
+## Description
+
+A list block within a rich text field.
+
+## Extends
+
+- [`RichTextBorderable`](RichTextBorderable.md)
+
+## Properties
+
+### border?
+
+```ts
+optional border: 0 | 1;
+```
+
+#### Description
+
+Whether to render a quote-block-like border on the inline side of the list. `0` renders no border
+while `1` renders a border.
+
+#### Inherited from
+
+[`RichTextBorderable`](RichTextBorderable.md).[`border`](RichTextBorderable.md#border)
+
+#### Defined in
+
+[block-kit/extensions.ts:76](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L76)
+
+***
+
+### elements
+
+```ts
+elements: RichTextSection[];
+```
+
+#### Description
+
+An array of [RichTextSection](RichTextSection.md) elements comprising each list item.
+
+#### Defined in
+
+[block-kit/block-elements.ts:980](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L980)
+
+***
+
+### indent?
+
+```ts
+optional indent: number;
+```
+
+#### Description
+
+The style of the list points. Can be a number from `0` (default) to `8`. Yields a different character
+or characters rendered as the list points. Also affected by the `style` property.
+
+#### Defined in
+
+[block-kit/block-elements.ts:990](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L990)
+
+***
+
+### style
+
+```ts
+style: "bullet" | "ordered";
+```
+
+#### Description
+
+The type of list. Can be either `bullet` (the list points are all rendered the same way) or `ordered`
+(the list points increase numerically from 1).
+
+#### Defined in
+
+[block-kit/block-elements.ts:985](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L985)
+
+***
+
+### type
+
+```ts
+type: "rich_text_list";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `rich_text_list`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:976](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L976)
diff --git a/docs/content/reference/types/interfaces/RichTextPreformatted.md b/docs/content/reference/types/interfaces/RichTextPreformatted.md
new file mode 100644
index 000000000..e191e4b4a
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextPreformatted.md
@@ -0,0 +1,62 @@
+# Interface: RichTextPreformatted
+
+## Description
+
+A block of preformatted text within a rich text field.
+
+## Extends
+
+- [`RichTextBorderable`](RichTextBorderable.md)
+
+## Properties
+
+### border?
+
+```ts
+optional border: 0 | 1;
+```
+
+#### Description
+
+Whether to render a quote-block-like border on the inline side of the list. `0` renders no border
+while `1` renders a border.
+
+#### Inherited from
+
+[`RichTextBorderable`](RichTextBorderable.md).[`border`](RichTextBorderable.md#border)
+
+#### Defined in
+
+[block-kit/extensions.ts:76](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L76)
+
+***
+
+### elements
+
+```ts
+elements: (RichTextLink | RichTextText)[];
+```
+
+#### Description
+
+An array of either [RichTextLink](RichTextLink.md) or [RichTextText](RichTextText.md) comprising the preformatted text.
+
+#### Defined in
+
+[block-kit/block-elements.ts:1018](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L1018)
+
+***
+
+### type
+
+```ts
+type: "rich_text_preformatted";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `rich_text_preformatted`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:1014](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L1014)
diff --git a/docs/content/reference/types/interfaces/RichTextQuote.md b/docs/content/reference/types/interfaces/RichTextQuote.md
new file mode 100644
index 000000000..2826392f8
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextQuote.md
@@ -0,0 +1,62 @@
+# Interface: RichTextQuote
+
+## Description
+
+A quote block within a rich text field.
+
+## Extends
+
+- [`RichTextBorderable`](RichTextBorderable.md)
+
+## Properties
+
+### border?
+
+```ts
+optional border: 0 | 1;
+```
+
+#### Description
+
+Whether to render a quote-block-like border on the inline side of the list. `0` renders no border
+while `1` renders a border.
+
+#### Inherited from
+
+[`RichTextBorderable`](RichTextBorderable.md).[`border`](RichTextBorderable.md#border)
+
+#### Defined in
+
+[block-kit/extensions.ts:76](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L76)
+
+***
+
+### elements
+
+```ts
+elements: RichTextElement[];
+```
+
+#### Description
+
+An array of [RichTextElement](../type-aliases/RichTextElement.md) comprising the quote block.
+
+#### Defined in
+
+[block-kit/block-elements.ts:1004](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L1004)
+
+***
+
+### type
+
+```ts
+type: "rich_text_quote";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `rich_text_quote`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:1000](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L1000)
diff --git a/docs/content/reference/types/interfaces/RichTextSection.md b/docs/content/reference/types/interfaces/RichTextSection.md
new file mode 100644
index 000000000..e91c88245
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextSection.md
@@ -0,0 +1,33 @@
+# Interface: RichTextSection
+
+## Description
+
+A section block within a rich text field.
+
+## Properties
+
+### elements
+
+```ts
+elements: RichTextElement[];
+```
+
+#### Defined in
+
+[block-kit/block-elements.ts:966](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L966)
+
+***
+
+### type
+
+```ts
+type: "rich_text_section";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `rich_text_section`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:965](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L965)
diff --git a/docs/content/reference/types/interfaces/RichTextStyleable.md b/docs/content/reference/types/interfaces/RichTextStyleable.md
new file mode 100644
index 000000000..6187e75d1
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextStyleable.md
@@ -0,0 +1,74 @@
+# Interface: RichTextStyleable
+
+## Description
+
+For use styling Rich Text sub-elements.
+
+## Extended by
+
+- [`RichTextBroadcastMention`](RichTextBroadcastMention.md)
+- [`RichTextColor`](RichTextColor.md)
+- [`RichTextChannelMention`](RichTextChannelMention.md)
+- [`RichTextDate`](RichTextDate.md)
+- [`RichTextEmoji`](RichTextEmoji.md)
+- [`RichTextLink`](RichTextLink.md)
+- [`RichTextTeamMention`](RichTextTeamMention.md)
+- [`RichTextText`](RichTextText.md)
+- [`RichTextUserMention`](RichTextUserMention.md)
+- [`RichTextUsergroupMention`](RichTextUsergroupMention.md)
+
+## Properties
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
diff --git a/docs/content/reference/types/interfaces/RichTextTeamMention.md b/docs/content/reference/types/interfaces/RichTextTeamMention.md
new file mode 100644
index 000000000..7c267b5bd
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextTeamMention.md
@@ -0,0 +1,101 @@
+# Interface: RichTextTeamMention
+
+## Description
+
+A workspace or team mention element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### team\_id
+
+```ts
+team_id: string;
+```
+
+#### Description
+
+The encoded team ID, e.g. T1234ABCD.
+
+#### Defined in
+
+[block-kit/block-elements.ts:898](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L898)
+
+***
+
+### type
+
+```ts
+type: "team";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `team`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:894](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L894)
diff --git a/docs/content/reference/types/interfaces/RichTextText.md b/docs/content/reference/types/interfaces/RichTextText.md
new file mode 100644
index 000000000..5bd3aa1c1
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextText.md
@@ -0,0 +1,101 @@
+# Interface: RichTextText
+
+## Description
+
+A generic text element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### text
+
+```ts
+text: string;
+```
+
+#### Description
+
+The text to render.
+
+#### Defined in
+
+[block-kit/block-elements.ts:912](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L912)
+
+***
+
+### type
+
+```ts
+type: "text";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `text`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:908](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L908)
diff --git a/docs/content/reference/types/interfaces/RichTextUserMention.md b/docs/content/reference/types/interfaces/RichTextUserMention.md
new file mode 100644
index 000000000..871730ca7
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextUserMention.md
@@ -0,0 +1,101 @@
+# Interface: RichTextUserMention
+
+## Description
+
+A user mention element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### type
+
+```ts
+type: "user";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `user`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:922](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L922)
+
+***
+
+### user\_id
+
+```ts
+user_id: string;
+```
+
+#### Description
+
+The encoded user ID, e.g. U1234ABCD.
+
+#### Defined in
+
+[block-kit/block-elements.ts:926](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L926)
diff --git a/docs/content/reference/types/interfaces/RichTextUsergroupMention.md b/docs/content/reference/types/interfaces/RichTextUsergroupMention.md
new file mode 100644
index 000000000..9fb288be7
--- /dev/null
+++ b/docs/content/reference/types/interfaces/RichTextUsergroupMention.md
@@ -0,0 +1,101 @@
+# Interface: RichTextUsergroupMention
+
+## Description
+
+A usergroup mention element for use in a rich text message.
+
+## Extends
+
+- [`RichTextStyleable`](RichTextStyleable.md)
+
+## Properties
+
+### style?
+
+```ts
+optional style: object;
+```
+
+#### bold?
+
+```ts
+optional bold: boolean;
+```
+
+##### Description
+
+When `true`, boldens the text in this element. Defaults to `false`.
+
+#### code?
+
+```ts
+optional code: boolean;
+```
+
+##### Description
+
+When `true`, the text is preformatted in an inline code style. Defaults to `false.
+
+#### italic?
+
+```ts
+optional italic: boolean;
+```
+
+##### Description
+
+When `true`, italicizes the text in this element. Defaults to `false`.
+
+#### strike?
+
+```ts
+optional strike: boolean;
+```
+
+##### Description
+
+When `true`, strikes through the text in this element. Defaults to `false`.
+
+#### Description
+
+A limited style object for styling rich text `text` elements.
+
+#### Inherited from
+
+[`RichTextStyleable`](RichTextStyleable.md).[`style`](RichTextStyleable.md#style)
+
+#### Defined in
+
+[block-kit/extensions.ts:86](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L86)
+
+***
+
+### type
+
+```ts
+type: "usergroup";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `usergroup`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:936](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L936)
+
+***
+
+### usergroup\_id
+
+```ts
+usergroup_id: string;
+```
+
+#### Description
+
+The encoded usergroup ID, e.g. S1234ABCD.
+
+#### Defined in
+
+[block-kit/block-elements.ts:940](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L940)
diff --git a/docs/content/reference/types/interfaces/SectionBlock.md b/docs/content/reference/types/interfaces/SectionBlock.md
new file mode 100644
index 000000000..c9450f139
--- /dev/null
+++ b/docs/content/reference/types/interfaces/SectionBlock.md
@@ -0,0 +1,112 @@
+# Interface: SectionBlock
+
+## Description
+
+Displays text, possibly alongside block elements. A section can be used as a simple text block, in
+combination with text fields, or side-by-side with certain
+[block elements](https://api.slack.com/reference/messaging/block-elements).
+
+## See
+
+[Section block reference](https://api.slack.com/reference/block-kit/blocks#section).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### accessory?
+
+```ts
+optional accessory: SectionBlockAccessory;
+```
+
+#### Description
+
+One of the compatible element objects.
+
+#### Defined in
+
+[block-kit/blocks.ts:280](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L280)
+
+***
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### fields?
+
+```ts
+optional fields: TextObject[];
+```
+
+#### Description
+
+Required if no `text` is provided. An array of text objects. Any text objects included with `fields`
+will be rendered in a compact format that allows for 2 columns of side-by-side text. Maximum number of items is 10.
+Maximum length for the text in each item is 2000 characters.
+[Click here for an example](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22text%22:%22A%20message%20*with%20some%20bold%20text*%20and%20_some%20italicized%20text_.%22,%22type%22:%22mrkdwn%22%7D,%22fields%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Priority*%22%7D,%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Type*%22%7D,%7B%22type%22:%22plain_text%22,%22text%22:%22High%22%7D,%7B%22type%22:%22plain_text%22,%22text%22:%22String%22%7D%5D%7D%5D%7D).
+
+#### Defined in
+
+[block-kit/blocks.ts:276](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L276)
+
+***
+
+### text?
+
+```ts
+optional text: TextObject;
+```
+
+#### Description
+
+The text for the block, in the form of a [TextObject](../type-aliases/TextObject.md). Minimum length for the `text` in this
+field is 1 and maximum length is 3000 characters. This field is not required if a valid array of `fields` objects
+is provided instead.
+
+#### Defined in
+
+[block-kit/blocks.ts:269](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L269)
+
+***
+
+### type
+
+```ts
+type: "section";
+```
+
+#### Description
+
+The type of block. For a section block, `type` is always `section`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:263](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L263)
diff --git a/docs/content/reference/types/interfaces/SelectOption.md b/docs/content/reference/types/interfaces/SelectOption.md
new file mode 100644
index 000000000..5ca594dc7
--- /dev/null
+++ b/docs/content/reference/types/interfaces/SelectOption.md
@@ -0,0 +1,25 @@
+# Interface: SelectOption
+
+## Properties
+
+### label
+
+```ts
+label: string;
+```
+
+#### Defined in
+
+[dialog.ts:36](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/dialog.ts#L36)
+
+***
+
+### value
+
+```ts
+value: string;
+```
+
+#### Defined in
+
+[dialog.ts:37](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/dialog.ts#L37)
diff --git a/docs/content/reference/types/interfaces/SlackFileImageObject.md b/docs/content/reference/types/interfaces/SlackFileImageObject.md
new file mode 100644
index 000000000..85ad463b6
--- /dev/null
+++ b/docs/content/reference/types/interfaces/SlackFileImageObject.md
@@ -0,0 +1,21 @@
+# Interface: SlackFileImageObject
+
+## Description
+
+Object for image which contains a slack_file.
+
+## Properties
+
+### slack\_file
+
+```ts
+slack_file: SlackFile;
+```
+
+#### Description
+
+The slack file of the image to be displayed.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:217](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L217)
diff --git a/docs/content/reference/types/interfaces/StaticSelect.md b/docs/content/reference/types/interfaces/StaticSelect.md
new file mode 100644
index 000000000..20efaa05b
--- /dev/null
+++ b/docs/content/reference/types/interfaces/StaticSelect.md
@@ -0,0 +1,170 @@
+# Interface: StaticSelect
+
+## Description
+
+This is the simplest form of select menu, with a static list of options passed in when defining the
+element.
+
+## See
+
+ - [Select menu of static options reference](https://api.slack.com/reference/block-kit/block-elements#static_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_option?
+
+```ts
+optional initial_option: PlainTextOption;
+```
+
+#### Description
+
+A single option that exactly matches one of the options within `options` or `option_groups`.
+This option will be selected when the menu initially loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:289](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L289)
+
+***
+
+### option\_groups?
+
+```ts
+optional option_groups: object[];
+```
+
+#### Description
+
+An array of option group objects. Maximum number of option groups is 100. If `options` is specified,
+this field should not be.
+
+#### Defined in
+
+[block-kit/block-elements.ts:304](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L304)
+
+***
+
+### options?
+
+```ts
+optional options: PlainTextOption[];
+```
+
+#### Description
+
+An array of [PlainTextOption](PlainTextOption.md). Maximum number of options is 100. If `option_groups` is
+specified, this field should not be.
+
+#### Defined in
+
+[block-kit/block-elements.ts:296](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L296)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "static_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `static_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:283](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L283)
diff --git a/docs/content/reference/types/interfaces/Timepicker.md b/docs/content/reference/types/interfaces/Timepicker.md
new file mode 100644
index 000000000..7c399dbf4
--- /dev/null
+++ b/docs/content/reference/types/interfaces/Timepicker.md
@@ -0,0 +1,155 @@
+# Interface: Timepicker
+
+## Description
+
+Allows users to choose a time from a rich dropdown UI. On desktop clients, this time picker will take
+the form of a dropdown list with free-text entry for precise choices. On mobile clients, the time picker will use
+native time picker UIs.
+
+## See
+
+ - [Time picker element reference](https://api.slack.com/reference/block-kit/block-elements#timepicker).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_time?
+
+```ts
+optional initial_time: string;
+```
+
+#### Description
+
+The initial time that is selected when the element is loaded. This should be in the format `HH:mm`,
+where `HH` is the 24-hour format of an hour (00 to 23) and `mm` is minutes with leading zeros (00 to 59),
+for example 22:25 for 10:25pm.
+
+#### Defined in
+
+[block-kit/block-elements.ts:666](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L666)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### timezone?
+
+```ts
+optional timezone: string;
+```
+
+#### Description
+
+A string in the IANA format, e.g. 'America/Chicago'. The timezone is displayed to end users as hint
+text underneath the time picker. It is also passed to the app upon certain interactions, such as view_submission.
+
+#### Defined in
+
+[block-kit/block-elements.ts:671](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L671)
+
+***
+
+### type
+
+```ts
+type: "timepicker";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `timepicker`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:660](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L660)
diff --git a/docs/content/reference/types/interfaces/URLInput.md b/docs/content/reference/types/interfaces/URLInput.md
new file mode 100644
index 000000000..92be3d720
--- /dev/null
+++ b/docs/content/reference/types/interfaces/URLInput.md
@@ -0,0 +1,134 @@
+# Interface: URLInput
+
+## Description
+
+Allows user to enter a URL into a single-line field.
+
+## See
+
+ - [URL input element reference](https://api.slack.com/reference/block-kit/block-elements#url).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Dispatchable`](Dispatchable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### dispatch\_action\_config?
+
+```ts
+optional dispatch_action_config: DispatchActionConfig;
+```
+
+#### Description
+
+A [DispatchActionConfig](DispatchActionConfig.md) object that determines when during text input the element returns a
+[`block_actions` payload](https://api.slack.com/reference/interaction-payloads/block-actions).
+
+#### Inherited from
+
+[`Dispatchable`](Dispatchable.md).[`dispatch_action_config`](Dispatchable.md#dispatch_action_config)
+
+#### Defined in
+
+[block-kit/extensions.ts:33](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L33)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_value?
+
+```ts
+optional initial_value: string;
+```
+
+#### Description
+
+The initial value in the URL input when it is loaded.
+
+#### Defined in
+
+[block-kit/block-elements.ts:691](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L691)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "url_text_input";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `url_text_input`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:687](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L687)
diff --git a/docs/content/reference/types/interfaces/URLRespondable.md b/docs/content/reference/types/interfaces/URLRespondable.md
new file mode 100644
index 000000000..066a5eb50
--- /dev/null
+++ b/docs/content/reference/types/interfaces/URLRespondable.md
@@ -0,0 +1,25 @@
+# Interface: URLRespondable
+
+## Extended by
+
+- [`ConversationsSelect`](ConversationsSelect.md)
+- [`ChannelsSelect`](ChannelsSelect.md)
+
+## Properties
+
+### response\_url\_enabled?
+
+```ts
+optional response_url_enabled: boolean;
+```
+
+#### Description
+
+When set to `true`, the [`view_submission` payload](https://api.slack.com/reference/interaction-payloads/views#view_submission)
+from the menu's parent view will contain a `response_url`. This `response_url` can be used for
+[message responses](https://api.slack.com/interactivity/handling#message_responses). The target conversation
+for the message will be determined by the value of this select menu.
+
+#### Defined in
+
+[block-kit/extensions.ts:67](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L67)
diff --git a/docs/content/reference/types/interfaces/UrlImageObject.md b/docs/content/reference/types/interfaces/UrlImageObject.md
new file mode 100644
index 000000000..503baa03b
--- /dev/null
+++ b/docs/content/reference/types/interfaces/UrlImageObject.md
@@ -0,0 +1,21 @@
+# Interface: UrlImageObject
+
+## Description
+
+Object for image which contains a image_url.
+
+## Properties
+
+### image\_url
+
+```ts
+image_url: string;
+```
+
+#### Description
+
+The URL of the image to be displayed.
+
+#### Defined in
+
+[block-kit/composition-objects.ts:207](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L207)
diff --git a/docs/content/reference/types/interfaces/UsersSelect.md b/docs/content/reference/types/interfaces/UsersSelect.md
new file mode 100644
index 000000000..2a4565247
--- /dev/null
+++ b/docs/content/reference/types/interfaces/UsersSelect.md
@@ -0,0 +1,135 @@
+# Interface: UsersSelect
+
+## Description
+
+This select menu will populate its options with a list of Slack users visible to the current user in the
+active workspace.
+
+## See
+
+ - [Select menu of users reference](https://api.slack.com/reference/block-kit/block-elements#users_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Extends
+
+- [`Actionable`](Actionable.md).[`Confirmable`](Confirmable.md).[`Focusable`](Focusable.md).[`Placeholdable`](Placeholdable.md)
+
+## Properties
+
+### action\_id?
+
+```ts
+optional action_id: string;
+```
+
+@description: An identifier for this action. You can use this when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads). Should be unique
+among all other `action_id`s in the containing block. Maximum length for this field is 255 characters.
+
+#### Inherited from
+
+[`Actionable`](Actionable.md).[`action_id`](Actionable.md#action_id)
+
+#### Defined in
+
+[block-kit/extensions.ts:15](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L15)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### focus\_on\_load?
+
+```ts
+optional focus_on_load: boolean;
+```
+
+#### Description
+
+Indicates whether the element will be set to auto focus within the
+[`view` object](https://api.slack.com/reference/surfaces/views). Only one element can be set to `true`.
+Defaults to `false`.
+
+#### Inherited from
+
+[`Focusable`](Focusable.md).[`focus_on_load`](Focusable.md#focus_on_load)
+
+#### Defined in
+
+[block-kit/extensions.ts:42](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L42)
+
+***
+
+### initial\_user?
+
+```ts
+optional initial_user: string;
+```
+
+#### Description
+
+The user ID of any valid user to be pre-selected when the menu loads.
+
+#### Defined in
+
+[block-kit/block-elements.ts:244](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L244)
+
+***
+
+### placeholder?
+
+```ts
+optional placeholder: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) object that defines the placeholder text shown on the element. Maximum
+length for the `text` field in this object is 150 characters.
+
+#### Inherited from
+
+[`Placeholdable`](Placeholdable.md).[`placeholder`](Placeholdable.md#placeholder)
+
+#### Defined in
+
+[block-kit/extensions.ts:57](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L57)
+
+***
+
+### type
+
+```ts
+type: "users_select";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `users_select`.
+
+#### Overrides
+
+[`Actionable`](Actionable.md).[`type`](Actionable.md#type)
+
+#### Defined in
+
+[block-kit/block-elements.ts:240](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L240)
diff --git a/docs/content/reference/types/interfaces/VideoBlock.md b/docs/content/reference/types/interfaces/VideoBlock.md
new file mode 100644
index 000000000..adff7cb4f
--- /dev/null
+++ b/docs/content/reference/types/interfaces/VideoBlock.md
@@ -0,0 +1,206 @@
+# Interface: VideoBlock
+
+## Description
+
+Displays an embedded video player. A video block is designed to embed videos in all app surfaces (e.g.
+link unfurls, messages, modals, App Home) — anywhere you can put blocks! To use the video block within your app, you
+must have the [`links.embed:write` scope](https://api.slack.com/scopes/links.embed:write).
+
+## See
+
+[Video block reference](https://api.slack.com/reference/block-kit/blocks#video).
+
+## Extends
+
+- [`Block`](Block.md)
+
+## Properties
+
+### alt\_text
+
+```ts
+alt_text: string;
+```
+
+#### Description
+
+A tooltip for the video. Required for accessibility.
+
+#### Defined in
+
+[block-kit/blocks.ts:307](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L307)
+
+***
+
+### author\_name?
+
+```ts
+optional author_name: string;
+```
+
+#### Description
+
+Author name to be displayed. Must be less than 50 characters.
+
+#### Defined in
+
+[block-kit/blocks.ts:320](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L320)
+
+***
+
+### block\_id?
+
+```ts
+optional block_id: string;
+```
+
+#### Description
+
+A string acting as a unique identifier for a block. If not specified, a `block_id` will be generated.
+You can use this `block_id` when you receive an interaction payload to
+[identify the source of the action](https://api.slack.com/interactivity/handling#payloads).
+Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of
+a message. If a message is updated, use a new `block_id`.
+
+#### Inherited from
+
+[`Block`](Block.md).[`block_id`](Block.md#block_id)
+
+#### Defined in
+
+[block-kit/blocks.ts:44](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L44)
+
+***
+
+### description?
+
+```ts
+optional description: PlainTextElement;
+```
+
+#### Description
+
+Description for video using a [PlainTextElement](PlainTextElement.md) object.
+
+#### Defined in
+
+[block-kit/blocks.ts:332](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L332)
+
+***
+
+### provider\_icon\_url?
+
+```ts
+optional provider_icon_url: string;
+```
+
+#### Description
+
+Icon for the video provider, e.g. YouTube icon.
+
+#### Defined in
+
+[block-kit/blocks.ts:328](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L328)
+
+***
+
+### provider\_name?
+
+```ts
+optional provider_name: string;
+```
+
+#### Description
+
+The originating application or domain of the video, e.g. YouTube.
+
+#### Defined in
+
+[block-kit/blocks.ts:324](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L324)
+
+***
+
+### thumbnail\_url
+
+```ts
+thumbnail_url: string;
+```
+
+#### Description
+
+The thumbnail image URL.
+
+#### Defined in
+
+[block-kit/blocks.ts:303](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L303)
+
+***
+
+### title
+
+```ts
+title: PlainTextElement;
+```
+
+#### Description
+
+Video title as a [PlainTextElement](PlainTextElement.md) object. `text` within must be less than 200 characters.
+
+#### Defined in
+
+[block-kit/blocks.ts:311](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L311)
+
+***
+
+### title\_url?
+
+```ts
+optional title_url: string;
+```
+
+#### Description
+
+Hyperlink for the title text. Must correspond to the non-embeddable URL for the video.
+Must go to an HTTPS URL.
+
+#### Defined in
+
+[block-kit/blocks.ts:316](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L316)
+
+***
+
+### type
+
+```ts
+type: "video";
+```
+
+#### Description
+
+The type of block. For a video block, `type` is always `video`.
+
+#### Overrides
+
+[`Block`](Block.md).[`type`](Block.md#type)
+
+#### Defined in
+
+[block-kit/blocks.ts:293](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L293)
+
+***
+
+### video\_url
+
+```ts
+video_url: string;
+```
+
+#### Description
+
+The URL to be embedded. Must match any existing
+[unfurl domains](https://api.slack.com/reference/messaging/link-unfurling#configuring_domains) within the app
+and point to a HTTPS URL.
+
+#### Defined in
+
+[block-kit/blocks.ts:299](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L299)
diff --git a/docs/content/reference/types/interfaces/WorkflowButton.md b/docs/content/reference/types/interfaces/WorkflowButton.md
new file mode 100644
index 000000000..a22d255e6
--- /dev/null
+++ b/docs/content/reference/types/interfaces/WorkflowButton.md
@@ -0,0 +1,153 @@
+# Interface: WorkflowButton
+
+## Description
+
+Allows users to run a [link trigger](https://api.slack.com/automation/triggers/link#workflow_buttons) with customizable inputs.
+
+## See
+
+[Workflow button element reference](https://api.slack.com/reference/block-kit/block-elements#workflow_button).
+
+## Extends
+
+- [`Confirmable`](Confirmable.md)
+
+## Properties
+
+### accessibility\_label?
+
+```ts
+optional accessibility_label: string;
+```
+
+#### Description
+
+A label for longer descriptive text about a button element. This label will be read out by screen
+readers instead of the button `text` object. Maximum length for this field is 75 characters.
+
+#### Defined in
+
+[block-kit/block-elements.ts:752](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L752)
+
+***
+
+### confirm?
+
+```ts
+optional confirm: ConfirmationDialog;
+```
+
+#### Description
+
+A [Confirm](Confirm.md) object that defines an optional confirmation dialog after the element is interacted
+with.
+
+#### Inherited from
+
+[`Confirmable`](Confirmable.md).[`confirm`](Confirmable.md#confirm)
+
+#### Defined in
+
+[block-kit/extensions.ts:25](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/extensions.ts#L25)
+
+***
+
+### style?
+
+```ts
+optional style: ColorScheme;
+```
+
+#### Description
+
+Decorates buttons with alternative visual color schemes. Use this option with restraint.
+`primary` gives buttons a green outline and text, ideal for affirmation or confirmation actions. `primary` should
+only be used for one button within a set.
+`danger` gives buttons a red outline and text, and should be used when the action is destructive. Use `danger` even
+more sparingly than primary.
+If you don't include this field, the default button style will be used.
+
+#### Defined in
+
+[block-kit/block-elements.ts:747](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L747)
+
+***
+
+### text
+
+```ts
+text: PlainTextElement;
+```
+
+#### Description
+
+A [PlainTextElement](PlainTextElement.md) that defines the button's text. `text` may truncate with ~30 characters.
+Maximum length for the `text` in this field is 75 characters.
+
+#### Defined in
+
+[block-kit/block-elements.ts:707](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L707)
+
+***
+
+### type
+
+```ts
+type: "workflow_button";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `workflow_button`.
+
+#### Defined in
+
+[block-kit/block-elements.ts:702](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L702)
+
+***
+
+### workflow
+
+```ts
+workflow: object;
+```
+
+#### trigger
+
+```ts
+trigger: object;
+```
+
+##### Description
+
+Properties of the [link trigger](https://api.slack.com/automation/triggers/link#workflow_buttons)
+that will be invoked via this button.
+
+#### trigger.customizable\_input\_parameters?
+
+```ts
+optional customizable_input_parameters: object[];
+```
+
+##### Description
+
+List of customizable input parameters and their values. Should match input parameters specified on
+the provided trigger.
+
+#### trigger.url
+
+```ts
+url: string;
+```
+
+##### Description
+
+The trigger URL of the [link trigger](https://api.slack.com/automation/triggers/link#workflow_buttons)
+
+#### Description
+
+A workflow object that contains details about the workflow that will run when the button is clicked.
+
+#### Defined in
+
+[block-kit/block-elements.ts:711](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L711)
diff --git a/docs/content/reference/types/interfaces/WorkflowStepView.md b/docs/content/reference/types/interfaces/WorkflowStepView.md
new file mode 100644
index 000000000..1c5d3487d
--- /dev/null
+++ b/docs/content/reference/types/interfaces/WorkflowStepView.md
@@ -0,0 +1,128 @@
+# Interface: ~~WorkflowStepView~~
+
+[Configuration modal](https://api.slack.com/legacy/workflows/steps#handle_config_view) for [legacy Workflow Steps from Apps](https://api.slack.com/legacy/workflows/steps).
+
+## Deprecated
+
+Steps from Apps are deprecated and will no longer be executed starting September 12, 2024. For more information, see our [deprecation announcement](https://api.slack.com/changelog/2023-08-workflow-steps-from-apps-step-back).
+
+## Extends
+
+- `BaseView`
+
+## Properties
+
+### ~~blocks~~
+
+```ts
+blocks: AnyBlock[];
+```
+
+#### Description
+
+An array of [AnyBlock](../type-aliases/AnyBlock.md) that defines the content of the view. Max of 100 blocks.
+
+#### Inherited from
+
+`BaseView.blocks`
+
+#### Defined in
+
+[views.ts:6](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L6)
+
+***
+
+### ~~callback\_id?~~
+
+```ts
+optional callback_id: string;
+```
+
+#### Description
+
+An identifier to recognize interactions and submissions of this particular view. Don't use this to
+store sensitive information (use `private_metadata` instead). Maximum length of 255 characters.
+
+#### See
+
+[Handling and responding to interactions](https://api.slack.com/surfaces/modals#interactions).
+
+#### Inherited from
+
+`BaseView.callback_id`
+
+#### Defined in
+
+[views.ts:19](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L19)
+
+***
+
+### ~~external\_id?~~
+
+```ts
+optional external_id: string;
+```
+
+#### Description
+
+A custom identifier that must be unique for all views on a per-team basis.
+
+#### Inherited from
+
+`BaseView.external_id`
+
+#### Defined in
+
+[views.ts:21](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L21)
+
+***
+
+### ~~private\_metadata?~~
+
+```ts
+optional private_metadata: string;
+```
+
+#### Description
+
+String that will be sent to your app in
+[`view_submission`](https://api.slack.com/reference/interaction-payloads/views#view_submission) and
+[`block_actions`](https://api.slack.com/reference/interaction-payloads/block-actions) events.
+Maximum length of 3000 characters.
+
+#### Inherited from
+
+`BaseView.private_metadata`
+
+#### Defined in
+
+[views.ts:13](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L13)
+
+***
+
+### ~~submit\_disabled?~~
+
+```ts
+optional submit_disabled: boolean;
+```
+
+#### Description
+
+When set to `true`, disables the submit button until the user has completed one or more inputs.
+Defaults to `false`.
+
+#### Defined in
+
+[views.ts:73](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L73)
+
+***
+
+### ~~type~~
+
+```ts
+type: "workflow_step";
+```
+
+#### Defined in
+
+[views.ts:68](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L68)
diff --git a/docs/content/reference/types/type-aliases/ActionsBlockElement.md b/docs/content/reference/types/type-aliases/ActionsBlockElement.md
new file mode 100644
index 000000000..039ea4da6
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/ActionsBlockElement.md
@@ -0,0 +1,26 @@
+# Type Alias: ActionsBlockElement
+
+```ts
+type ActionsBlockElement:
+ | Button
+ | Checkboxes
+ | Datepicker
+ | DateTimepicker
+ | MultiSelect
+ | Overflow
+ | RadioButtons
+ | Select
+ | Timepicker
+ | WorkflowButton
+ | RichTextInput;
+```
+
+A helper union type of all Block Elements that can be used in an [ActionsBlock](../interfaces/ActionsBlock.md).
+
+## See
+
+[Actions block reference](https://api.slack.com/reference/block-kit/blocks#actions).
+
+## Defined in
+
+[block-kit/blocks.ts:64](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L64)
diff --git a/docs/content/reference/types/type-aliases/AnyBlock.md b/docs/content/reference/types/type-aliases/AnyBlock.md
new file mode 100644
index 000000000..9239eef3c
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/AnyBlock.md
@@ -0,0 +1,12 @@
+# Type Alias: AnyBlock
+
+```ts
+type AnyBlock: KnownBlock | Block;
+```
+
+A helper union type of all known Blocks as well as the generic [Block](../interfaces/Block.md) interface. A full list of known blocks
+is available here: [Blocks reference](https://api.slack.com/reference/block-kit/blocks).
+
+## Defined in
+
+[block-kit/blocks.ts:58](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L58)
diff --git a/docs/content/reference/types/type-aliases/CallUser.md b/docs/content/reference/types/type-aliases/CallUser.md
new file mode 100644
index 000000000..724d33267
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/CallUser.md
@@ -0,0 +1,13 @@
+# Type Alias: CallUser
+
+```ts
+type CallUser: CallUserSlack | CallUserExternal;
+```
+
+## Description
+
+For use in representing [users in a Slack Call](https://api.slack.com/apis/calls#users).
+
+## Defined in
+
+[calls.ts:8](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/calls.ts#L8)
diff --git a/docs/content/reference/types/type-aliases/ColorScheme.md b/docs/content/reference/types/type-aliases/ColorScheme.md
new file mode 100644
index 000000000..a23397a0c
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/ColorScheme.md
@@ -0,0 +1,12 @@
+# Type Alias: ColorScheme
+
+```ts
+type ColorScheme: "primary" | "danger";
+```
+
+Re-usable labels for common color schemes present in Slack. `danger` displays with a red background (red text on
+mobile), while `primary` displays with a green background (green text on mobile).
+
+## Defined in
+
+[block-kit/composition-objects.ts:7](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L7)
diff --git a/docs/content/reference/types/type-aliases/ContextBlockElement.md b/docs/content/reference/types/type-aliases/ContextBlockElement.md
new file mode 100644
index 000000000..7c2f6f144
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/ContextBlockElement.md
@@ -0,0 +1,15 @@
+# Type Alias: ContextBlockElement
+
+```ts
+type ContextBlockElement: ImageElement | TextObject;
+```
+
+A helper union type of all Block Elements that can be used in a [ContextBlock](../interfaces/ContextBlock.md).
+
+## See
+
+[Context block reference](https://api.slack.com/reference/block-kit/blocks#context).
+
+## Defined in
+
+[block-kit/blocks.ts:87](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L87)
diff --git a/docs/content/reference/types/type-aliases/ConversationFilter.md b/docs/content/reference/types/type-aliases/ConversationFilter.md
new file mode 100644
index 000000000..30bbeea5d
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/ConversationFilter.md
@@ -0,0 +1,18 @@
+# Type Alias: ConversationFilter
+
+```ts
+type ConversationFilter: BaseConversationFilter & Required> | BaseConversationFilter & Required> | BaseConversationFilter & Required>;
+```
+
+## Description
+
+Defines a filter for the list of options in a conversation selector menu. The menu can be either a
+conversations select menu or a conversations multi-select menu.
+
+## See
+
+[Conversation filter object reference](https://api.slack.com/reference/block-kit/composition-objects#filter_conversations).
+
+## Defined in
+
+[block-kit/composition-objects.ts:199](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L199)
diff --git a/docs/content/reference/types/type-aliases/ConversationType.md b/docs/content/reference/types/type-aliases/ConversationType.md
new file mode 100644
index 000000000..5d09b5698
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/ConversationType.md
@@ -0,0 +1,11 @@
+# Type Alias: ConversationType
+
+```ts
+type ConversationType: "im" | "mpim" | "private" | "public";
+```
+
+The conversation type as available within the Slack UI.
+
+## Defined in
+
+[block-kit/composition-objects.ts:10](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L10)
diff --git a/docs/content/reference/types/type-aliases/ImageBlock.md b/docs/content/reference/types/type-aliases/ImageBlock.md
new file mode 100644
index 000000000..e45c98b4b
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/ImageBlock.md
@@ -0,0 +1,51 @@
+# Type Alias: ImageBlock
+
+```ts
+type ImageBlock: object & Block & UrlImageObject | SlackFileImageObject;
+```
+
+## Type declaration
+
+### alt\_text
+
+```ts
+alt_text: string;
+```
+
+#### Description
+
+A plain-text summary of the image. This should not contain any markup.
+Maximum length for this field is 2000 characters.
+
+### title?
+
+```ts
+optional title: PlainTextElement;
+```
+
+#### Description
+
+An optional title for the image in the form of a [PlainTextElement](../interfaces/PlainTextElement.md) object.
+Maximum length for the text in this field is 2000 characters.
+
+### type
+
+```ts
+type: "image";
+```
+
+#### Description
+
+The type of block. For an image block, `type` is always `image`.
+
+## Description
+
+Displays an image. A simple image block, designed to make those cat photos really pop.
+
+## See
+
+[Image block reference](https://api.slack.com/reference/block-kit/blocks#image).
+
+## Defined in
+
+[block-kit/blocks.ts:160](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L160)
diff --git a/docs/content/reference/types/type-aliases/ImageElement.md b/docs/content/reference/types/type-aliases/ImageElement.md
new file mode 100644
index 000000000..09634fe96
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/ImageElement.md
@@ -0,0 +1,40 @@
+# Type Alias: ImageElement
+
+```ts
+type ImageElement: object & UrlImageObject | SlackFileImageObject;
+```
+
+## Type declaration
+
+### alt\_text
+
+```ts
+alt_text: string;
+```
+
+#### Description
+
+A plain-text summary of the image. This should not contain any markup.
+
+### type
+
+```ts
+type: "image";
+```
+
+#### Description
+
+The type of element. In this case `type` is always `image`.
+
+## Description
+
+Displays an image as part of a larger block of content. Use this `image` block if you want a block with
+only an image in it.
+
+## See
+
+[Image element reference](https://api.slack.com/reference/block-kit/block-elements#image).
+
+## Defined in
+
+[block-kit/block-elements.ts:177](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L177)
diff --git a/docs/content/reference/types/type-aliases/InputBlockElement.md b/docs/content/reference/types/type-aliases/InputBlockElement.md
new file mode 100644
index 000000000..5fcf50d79
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/InputBlockElement.md
@@ -0,0 +1,28 @@
+# Type Alias: InputBlockElement
+
+```ts
+type InputBlockElement:
+ | Checkboxes
+ | Datepicker
+ | DateTimepicker
+ | EmailInput
+ | FileInput
+ | MultiSelect
+ | NumberInput
+ | PlainTextInput
+ | RadioButtons
+ | RichTextInput
+ | Select
+ | Timepicker
+ | URLInput;
+```
+
+A helper union type of all Block Elements that can be used in an [InputBlock](../interfaces/InputBlock.md).
+
+## See
+
+[Input block reference](https://api.slack.com/reference/block-kit/blocks#input).
+
+## Defined in
+
+[block-kit/blocks.ts:181](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L181)
diff --git a/docs/content/reference/types/type-aliases/KnownBlock.md b/docs/content/reference/types/type-aliases/KnownBlock.md
new file mode 100644
index 000000000..3a5dcfe4c
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/KnownBlock.md
@@ -0,0 +1,22 @@
+# Type Alias: KnownBlock
+
+```ts
+type KnownBlock:
+ | ImageBlock
+ | ContextBlock
+ | ActionsBlock
+ | DividerBlock
+ | SectionBlock
+ | InputBlock
+ | FileBlock
+ | HeaderBlock
+ | VideoBlock
+ | RichTextBlock;
+```
+
+A helper union type of all known Blocks, as listed out on the
+[Blocks reference](https://api.slack.com/reference/block-kit/blocks).
+
+## Defined in
+
+[block-kit/blocks.ts:51](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L51)
diff --git a/docs/content/reference/types/type-aliases/MultiSelect.md b/docs/content/reference/types/type-aliases/MultiSelect.md
new file mode 100644
index 000000000..9349dd299
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/MultiSelect.md
@@ -0,0 +1,28 @@
+# Type Alias: MultiSelect
+
+```ts
+type MultiSelect:
+ | MultiUsersSelect
+ | MultiStaticSelect
+ | MultiConversationsSelect
+ | MultiChannelsSelect
+ | MultiExternalSelect;
+```
+
+## Description
+
+Allows users to select multiple items from a list of options.
+Just like regular [Select](Select.md), multi-select menus also include type-ahead functionality, where a user can type a
+part or all of an option string to filter the list.
+There are different types of multi-select menu that depend on different data sources for their lists of options:
+[MultiStaticSelect](../interfaces/MultiStaticSelect.md), [MultiExternalSelect](../interfaces/MultiExternalSelect.md), [MultiUsersSelect](../interfaces/MultiUsersSelect.md), [MultiConversationsSelect](../interfaces/MultiConversationsSelect.md),
+[MultiChannelsSelect](../interfaces/MultiChannelsSelect.md).
+
+## See
+
+ - [Multi-select menu element reference](https://api.slack.com/reference/block-kit/block-elements#multi_select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Defined in
+
+[block-kit/block-elements.ts:219](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L219)
diff --git a/docs/content/reference/types/type-aliases/Option.md b/docs/content/reference/types/type-aliases/Option.md
new file mode 100644
index 000000000..39e635be1
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/Option.md
@@ -0,0 +1,18 @@
+# Type Alias: Option
+
+```ts
+type Option: MrkdwnOption | PlainTextOption;
+```
+
+## Description
+
+Defines a single item in a number of item selection elements. An object that represents a single
+selectable item in a select menu, multi-select menu, checkbox group, radio button group, or overflow menu.
+
+## See
+
+[Option object reference](https://api.slack.com/reference/block-kit/composition-objects#option).
+
+## Defined in
+
+[block-kit/composition-objects.ts:109](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L109)
diff --git a/docs/content/reference/types/type-aliases/RichTextBlockElement.md b/docs/content/reference/types/type-aliases/RichTextBlockElement.md
new file mode 100644
index 000000000..be2858fbf
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/RichTextBlockElement.md
@@ -0,0 +1,15 @@
+# Type Alias: RichTextBlockElement
+
+```ts
+type RichTextBlockElement: RichTextSection | RichTextList | RichTextQuote | RichTextPreformatted;
+```
+
+A helper union type of all Block Elements that can be used in a [RichTextBlock](../interfaces/RichTextBlock.md).
+
+## See
+
+[Rich text block reference](https://api.slack.com/reference/block-kit/blocks#rich_text).
+
+## Defined in
+
+[block-kit/blocks.ts:225](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L225)
diff --git a/docs/content/reference/types/type-aliases/RichTextElement.md b/docs/content/reference/types/type-aliases/RichTextElement.md
new file mode 100644
index 000000000..55615e02d
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/RichTextElement.md
@@ -0,0 +1,23 @@
+# Type Alias: RichTextElement
+
+```ts
+type RichTextElement:
+ | RichTextBroadcastMention
+ | RichTextColor
+ | RichTextChannelMention
+ | RichTextDate
+ | RichTextEmoji
+ | RichTextLink
+ | RichTextTeamMention
+ | RichTextText
+ | RichTextUserMention
+ | RichTextUsergroupMention;
+```
+
+## Description
+
+Union of rich text sub-elements for use within rich text blocks.
+
+## Defined in
+
+[block-kit/block-elements.ts:946](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L946)
diff --git a/docs/content/reference/types/type-aliases/SectionBlockAccessory.md b/docs/content/reference/types/type-aliases/SectionBlockAccessory.md
new file mode 100644
index 000000000..8be75659f
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/SectionBlockAccessory.md
@@ -0,0 +1,25 @@
+# Type Alias: SectionBlockAccessory
+
+```ts
+type SectionBlockAccessory:
+ | Button
+ | Checkboxes
+ | Datepicker
+ | ImageElement
+ | MultiSelect
+ | Overflow
+ | RadioButtons
+ | Select
+ | Timepicker
+ | WorkflowButton;
+```
+
+A helper union type of all Block Elements that can be used as an accessory in a [SectionBlock](../interfaces/SectionBlock.md).
+
+## See
+
+[Section block reference](https://api.slack.com/reference/block-kit/blocks#section).
+
+## Defined in
+
+[block-kit/blocks.ts:248](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/blocks.ts#L248)
diff --git a/docs/content/reference/types/type-aliases/Select.md b/docs/content/reference/types/type-aliases/Select.md
new file mode 100644
index 000000000..a273bb517
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/Select.md
@@ -0,0 +1,27 @@
+# Type Alias: Select
+
+```ts
+type Select:
+ | UsersSelect
+ | StaticSelect
+ | ConversationsSelect
+ | ChannelsSelect
+ | ExternalSelect;
+```
+
+## Description
+
+Allows users to choose an option from a drop down menu.
+The select menu also includes type-ahead functionality, where a user can type a part or all of an option string to
+filter the list. There are different types of select menu elements that depend on different data sources for their
+lists of options: [StaticSelect](../interfaces/StaticSelect.md), [ExternalSelect](../interfaces/ExternalSelect.md), [UsersSelect](../interfaces/UsersSelect.md), [ConversationsSelect](../interfaces/ConversationsSelect.md),
+[ChannelsSelect](../interfaces/ChannelsSelect.md).
+
+## See
+
+ - [Select menu element reference](https://api.slack.com/reference/block-kit/block-elements#select).
+ - [This is an interactive component - see our guide to enabling interactivity](https://api.slack.com/interactivity/handling).
+
+## Defined in
+
+[block-kit/block-elements.ts:202](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/block-elements.ts#L202)
diff --git a/docs/content/reference/types/type-aliases/SlackFile.md b/docs/content/reference/types/type-aliases/SlackFile.md
new file mode 100644
index 000000000..a10524f10
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/SlackFile.md
@@ -0,0 +1,20 @@
+# Type Alias: SlackFile
+
+```ts
+type SlackFile: SlackFileViaUrl | SlackFileViaId;
+```
+
+## Description
+
+Defines an object containing Slack file information to be used in an image block or image element.
+This file https://api.slack.com/types/file must be an image and you must provide either the URL or ID. In addition,
+the user posting these blocks must have access to this file. If both are provided then the payload will be rejected.
+Currently only `png`, `jpg`, `jpeg`, and `gif` Slack image files are supported.
+
+## See
+
+[Slack File object reference](https://api.slack.com/reference/block-kit/composition-objects#slack_file).
+
+## Defined in
+
+[block-kit/composition-objects.ts:241](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L241)
diff --git a/docs/content/reference/types/type-aliases/TextObject.md b/docs/content/reference/types/type-aliases/TextObject.md
new file mode 100644
index 000000000..4272bcf77
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/TextObject.md
@@ -0,0 +1,18 @@
+# Type Alias: TextObject
+
+```ts
+type TextObject: PlainTextElement | MrkdwnElement;
+```
+
+## Description
+
+Defines an object containing some text. Can be either a [PlainTextElement](../interfaces/PlainTextElement.md) or a
+[MrkdwnElement](../interfaces/MrkdwnElement.md).
+
+## See
+
+[Text object reference](https://api.slack.com/reference/block-kit/composition-objects#text).
+
+## Defined in
+
+[block-kit/composition-objects.ts:132](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/block-kit/composition-objects.ts#L132)
diff --git a/docs/content/reference/types/type-aliases/View.md b/docs/content/reference/types/type-aliases/View.md
new file mode 100644
index 000000000..ae64f48b1
--- /dev/null
+++ b/docs/content/reference/types/type-aliases/View.md
@@ -0,0 +1,9 @@
+# Type Alias: View
+
+```ts
+type View: HomeView | ModalView | WorkflowStepView;
+```
+
+## Defined in
+
+[views.ts:76](https://github.com/slackapi/node-slack-sdk/blob/main/packages/types/src/views.ts#L76)
diff --git a/docs/content/reference/types/typedoc-sidebar.cjs b/docs/content/reference/types/typedoc-sidebar.cjs
new file mode 100644
index 000000000..b80315b65
--- /dev/null
+++ b/docs/content/reference/types/typedoc-sidebar.cjs
@@ -0,0 +1,4 @@
+// @ts-check
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const typedocSidebar = { items: [{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"reference/types/interfaces/Action","label":"Action"},{"type":"doc","id":"reference/types/interfaces/Actionable","label":"Actionable"},{"type":"doc","id":"reference/types/interfaces/ActionsBlock","label":"ActionsBlock"},{"type":"doc","id":"reference/types/interfaces/Block","label":"Block"},{"type":"doc","id":"reference/types/interfaces/Button","label":"Button"},{"type":"doc","id":"reference/types/interfaces/CallUserExternal","label":"CallUserExternal"},{"type":"doc","id":"reference/types/interfaces/CallUserSlack","label":"CallUserSlack"},{"type":"doc","id":"reference/types/interfaces/ChannelsSelect","label":"ChannelsSelect"},{"type":"doc","id":"reference/types/interfaces/Checkboxes","label":"Checkboxes"},{"type":"doc","id":"reference/types/interfaces/Confirm","label":"Confirm"},{"type":"doc","id":"reference/types/interfaces/Confirmable","label":"Confirmable"},{"type":"doc","id":"reference/types/interfaces/Confirmation","label":"Confirmation"},{"type":"doc","id":"reference/types/interfaces/ConfirmationDialog","label":"ConfirmationDialog"},{"type":"doc","id":"reference/types/interfaces/ContextBlock","label":"ContextBlock"},{"type":"doc","id":"reference/types/interfaces/ConversationsSelect","label":"ConversationsSelect"},{"type":"doc","id":"reference/types/interfaces/DateTimepicker","label":"DateTimepicker"},{"type":"doc","id":"reference/types/interfaces/Datepicker","label":"Datepicker"},{"type":"doc","id":"reference/types/interfaces/Dialog","label":"Dialog"},{"type":"doc","id":"reference/types/interfaces/DispatchActionConfig","label":"DispatchActionConfig"},{"type":"doc","id":"reference/types/interfaces/Dispatchable","label":"Dispatchable"},{"type":"doc","id":"reference/types/interfaces/DividerBlock","label":"DividerBlock"},{"type":"doc","id":"reference/types/interfaces/EmailInput","label":"EmailInput"},{"type":"doc","id":"reference/types/interfaces/ExternalSelect","label":"ExternalSelect"},{"type":"doc","id":"reference/types/interfaces/FileBlock","label":"FileBlock"},{"type":"doc","id":"reference/types/interfaces/FileInput","label":"FileInput"},{"type":"doc","id":"reference/types/interfaces/Focusable","label":"Focusable"},{"type":"doc","id":"reference/types/interfaces/HeaderBlock","label":"HeaderBlock"},{"type":"doc","id":"reference/types/interfaces/HomeView","label":"HomeView"},{"type":"doc","id":"reference/types/interfaces/InputBlock","label":"InputBlock"},{"type":"doc","id":"reference/types/interfaces/LinkUnfurls","label":"LinkUnfurls"},{"type":"doc","id":"reference/types/interfaces/MaxItemsSelectable","label":"MaxItemsSelectable"},{"type":"doc","id":"reference/types/interfaces/MessageAttachment","label":"MessageAttachment"},{"type":"doc","id":"reference/types/interfaces/MessageAttachmentField","label":"MessageAttachmentField"},{"type":"doc","id":"reference/types/interfaces/MessageMetadata","label":"MessageMetadata"},{"type":"doc","id":"reference/types/interfaces/MessageMetadataEventPayloadObject","label":"MessageMetadataEventPayloadObject"},{"type":"doc","id":"reference/types/interfaces/ModalView","label":"ModalView"},{"type":"doc","id":"reference/types/interfaces/MrkdwnElement","label":"MrkdwnElement"},{"type":"doc","id":"reference/types/interfaces/MrkdwnOption","label":"MrkdwnOption"},{"type":"doc","id":"reference/types/interfaces/MultiChannelsSelect","label":"MultiChannelsSelect"},{"type":"doc","id":"reference/types/interfaces/MultiConversationsSelect","label":"MultiConversationsSelect"},{"type":"doc","id":"reference/types/interfaces/MultiExternalSelect","label":"MultiExternalSelect"},{"type":"doc","id":"reference/types/interfaces/MultiStaticSelect","label":"MultiStaticSelect"},{"type":"doc","id":"reference/types/interfaces/MultiUsersSelect","label":"MultiUsersSelect"},{"type":"doc","id":"reference/types/interfaces/NumberInput","label":"NumberInput"},{"type":"doc","id":"reference/types/interfaces/OptionGroup","label":"OptionGroup"},{"type":"doc","id":"reference/types/interfaces/Overflow","label":"Overflow"},{"type":"doc","id":"reference/types/interfaces/Placeholdable","label":"Placeholdable"},{"type":"doc","id":"reference/types/interfaces/PlainTextElement","label":"PlainTextElement"},{"type":"doc","id":"reference/types/interfaces/PlainTextInput","label":"PlainTextInput"},{"type":"doc","id":"reference/types/interfaces/PlainTextOption","label":"PlainTextOption"},{"type":"doc","id":"reference/types/interfaces/RadioButtons","label":"RadioButtons"},{"type":"doc","id":"reference/types/interfaces/RichTextBlock","label":"RichTextBlock"},{"type":"doc","id":"reference/types/interfaces/RichTextBorderable","label":"RichTextBorderable"},{"type":"doc","id":"reference/types/interfaces/RichTextBroadcastMention","label":"RichTextBroadcastMention"},{"type":"doc","id":"reference/types/interfaces/RichTextChannelMention","label":"RichTextChannelMention"},{"type":"doc","id":"reference/types/interfaces/RichTextColor","label":"RichTextColor"},{"type":"doc","id":"reference/types/interfaces/RichTextDate","label":"RichTextDate"},{"type":"doc","id":"reference/types/interfaces/RichTextEmoji","label":"RichTextEmoji"},{"type":"doc","id":"reference/types/interfaces/RichTextInput","label":"RichTextInput"},{"type":"doc","id":"reference/types/interfaces/RichTextLink","label":"RichTextLink"},{"type":"doc","id":"reference/types/interfaces/RichTextList","label":"RichTextList"},{"type":"doc","id":"reference/types/interfaces/RichTextPreformatted","label":"RichTextPreformatted"},{"type":"doc","id":"reference/types/interfaces/RichTextQuote","label":"RichTextQuote"},{"type":"doc","id":"reference/types/interfaces/RichTextSection","label":"RichTextSection"},{"type":"doc","id":"reference/types/interfaces/RichTextStyleable","label":"RichTextStyleable"},{"type":"doc","id":"reference/types/interfaces/RichTextTeamMention","label":"RichTextTeamMention"},{"type":"doc","id":"reference/types/interfaces/RichTextText","label":"RichTextText"},{"type":"doc","id":"reference/types/interfaces/RichTextUserMention","label":"RichTextUserMention"},{"type":"doc","id":"reference/types/interfaces/RichTextUsergroupMention","label":"RichTextUsergroupMention"},{"type":"doc","id":"reference/types/interfaces/SectionBlock","label":"SectionBlock"},{"type":"doc","id":"reference/types/interfaces/SelectOption","label":"SelectOption"},{"type":"doc","id":"reference/types/interfaces/SlackFileImageObject","label":"SlackFileImageObject"},{"type":"doc","id":"reference/types/interfaces/StaticSelect","label":"StaticSelect"},{"type":"doc","id":"reference/types/interfaces/Timepicker","label":"Timepicker"},{"type":"doc","id":"reference/types/interfaces/URLInput","label":"URLInput"},{"type":"doc","id":"reference/types/interfaces/URLRespondable","label":"URLRespondable"},{"type":"doc","id":"reference/types/interfaces/UrlImageObject","label":"UrlImageObject"},{"type":"doc","id":"reference/types/interfaces/UsersSelect","label":"UsersSelect"},{"type":"doc","id":"reference/types/interfaces/VideoBlock","label":"VideoBlock"},{"type":"doc","id":"reference/types/interfaces/WorkflowButton","label":"WorkflowButton"},{"type":"doc","id":"reference/types/interfaces/WorkflowStepView","label":"WorkflowStepView"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"reference/types/type-aliases/ActionsBlockElement","label":"ActionsBlockElement"},{"type":"doc","id":"reference/types/type-aliases/AnyBlock","label":"AnyBlock"},{"type":"doc","id":"reference/types/type-aliases/CallUser","label":"CallUser"},{"type":"doc","id":"reference/types/type-aliases/ColorScheme","label":"ColorScheme"},{"type":"doc","id":"reference/types/type-aliases/ContextBlockElement","label":"ContextBlockElement"},{"type":"doc","id":"reference/types/type-aliases/ConversationFilter","label":"ConversationFilter"},{"type":"doc","id":"reference/types/type-aliases/ConversationType","label":"ConversationType"},{"type":"doc","id":"reference/types/type-aliases/ImageBlock","label":"ImageBlock"},{"type":"doc","id":"reference/types/type-aliases/ImageElement","label":"ImageElement"},{"type":"doc","id":"reference/types/type-aliases/InputBlockElement","label":"InputBlockElement"},{"type":"doc","id":"reference/types/type-aliases/KnownBlock","label":"KnownBlock"},{"type":"doc","id":"reference/types/type-aliases/MultiSelect","label":"MultiSelect"},{"type":"doc","id":"reference/types/type-aliases/Option","label":"Option"},{"type":"doc","id":"reference/types/type-aliases/RichTextBlockElement","label":"RichTextBlockElement"},{"type":"doc","id":"reference/types/type-aliases/RichTextElement","label":"RichTextElement"},{"type":"doc","id":"reference/types/type-aliases/SectionBlockAccessory","label":"SectionBlockAccessory"},{"type":"doc","id":"reference/types/type-aliases/Select","label":"Select"},{"type":"doc","id":"reference/types/type-aliases/SlackFile","label":"SlackFile"},{"type":"doc","id":"reference/types/type-aliases/TextObject","label":"TextObject"},{"type":"doc","id":"reference/types/type-aliases/View","label":"View"}]}]};
+module.exports = typedocSidebar.items;
\ No newline at end of file
diff --git a/docs/content/reference/web-api/classes/Methods.md b/docs/content/reference/web-api/classes/Methods.md
new file mode 100644
index 000000000..d97471ed3
--- /dev/null
+++ b/docs/content/reference/web-api/classes/Methods.md
@@ -0,0 +1,4593 @@
+# Class: `abstract` Methods
+
+A class that defines all Web API methods, their arguments type, their response type, and binds those methods to the
+`apiCall` class method.
+
+## Extends
+
+- `EventEmitter`\<[`WebClientEvent`](../enumerations/WebClientEvent.md)\>
+
+## Extended by
+
+- [`WebClient`](WebClient.md)
+
+## Constructors
+
+### new Methods()
+
+```ts
+protected new Methods(): Methods
+```
+
+#### Returns
+
+[`Methods`](Methods.md)
+
+#### Overrides
+
+`EventEmitter.constructor`
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:534](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L534)
+
+## Properties
+
+### admin
+
+```ts
+readonly admin: object;
+```
+
+#### analytics
+
+```ts
+analytics: object;
+```
+
+#### analytics.getFile
+
+```ts
+getFile: Method;
+```
+
+##### Description
+
+Retrieve analytics data for a given date, presented as a compressed JSON file.
+
+##### See
+
+[`api.test` API reference](https://api.slack.com/methods/api.test).
+
+#### apps
+
+```ts
+apps: object;
+```
+
+#### apps.activities
+
+```ts
+activities: object;
+```
+
+#### apps.activities.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+Get logs for a specified team/org.
+
+##### See
+
+[`admin.apps.activities.list` API reference](https://api.slack.com/methods/admin.apps.activities.list).
+
+#### apps.approve
+
+```ts
+approve: Method;
+```
+
+##### Description
+
+Approve an app for installation on a workspace.
+
+##### See
+
+[`admin.apps.approve` API reference](https://api.slack.com/methods/admin.apps.approve).
+
+#### apps.approved
+
+```ts
+approved: object;
+```
+
+#### apps.approved.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List approved apps for an org or workspace.
+
+##### See
+
+[`admin.apps.approved.list` API reference](https://api.slack.com/methods/admin.apps.approved.list).
+
+#### apps.clearResolution
+
+```ts
+clearResolution: Method;
+```
+
+##### Description
+
+Clear an app resolution.
+
+##### See
+
+[`admin.apps.clearResolution` API reference](https://api.slack.com/methods/admin.apps.clearResolution).
+
+#### apps.config
+
+```ts
+config: object;
+```
+
+#### apps.config.lookup
+
+```ts
+lookup: Method;
+```
+
+##### Description
+
+Look up the app config for connectors by their IDs.
+
+##### See
+
+[`admin.apps.config.lookup` API reference](https://api.slack.com/methods/admin.apps.config.lookup).
+
+#### apps.config.set
+
+```ts
+set: Method;
+```
+
+##### Description
+
+Set the app config for a connector.
+
+##### See
+
+[`admin.apps.config.set` API reference](https://api.slack.com/methods/admin.apps.config.set).
+
+#### apps.requests
+
+```ts
+requests: object;
+```
+
+#### apps.requests.cancel
+
+```ts
+cancel: Method;
+```
+
+##### Description
+
+Cancel app request for team.
+
+##### See
+
+[`admin.apps.requests.cancel` API reference](https://api.slack.com/methods/admin.apps.requests.cancel).
+
+#### apps.requests.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List app requests for a team/workspace.
+
+##### See
+
+[`admin.apps.requests.list` API reference](https://api.slack.com/methods/admin.apps.requests.list).
+
+#### apps.restrict
+
+```ts
+restrict: Method;
+```
+
+##### Description
+
+Restrict an app for installation on a workspace.
+
+##### See
+
+[`admin.apps.restrict` API reference](https://api.slack.com/methods/admin.apps.restrict).
+
+#### apps.restricted
+
+```ts
+restricted: object;
+```
+
+#### apps.restricted.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List restricted apps for an org or workspace.
+
+##### See
+
+[`admin.apps.restricted.list` API reference](https://api.slack.com/methods/admin.apps.restricted.list).
+
+#### apps.uninstall
+
+```ts
+uninstall: Method;
+```
+
+##### Description
+
+Uninstall an app from one or many workspaces, or an entire enterprise organization.
+
+##### See
+
+[`admin.apps.uninstall` API reference](https://api.slack.com/methods/admin.apps.uninstall).
+
+#### auth
+
+```ts
+auth: object;
+```
+
+#### auth.policy
+
+```ts
+policy: object;
+```
+
+#### auth.policy.assignEntities
+
+```ts
+assignEntities: Method;
+```
+
+##### Description
+
+Assign entities to a particular authentication policy.
+
+##### See
+
+[`admin.auth.policy.assignEntities` API reference](https://api.slack.com/methods/admin.auth.policy.assignEntities).
+
+#### auth.policy.getEntities
+
+```ts
+getEntities: Method;
+```
+
+##### Description
+
+Fetch all the entities assigned to a particular authentication policy by name.
+
+##### See
+
+[`admin.auth.policy.getEntities` API reference](https://api.slack.com/methods/admin.auth.policy.getEntities).
+
+#### auth.policy.removeEntities
+
+```ts
+removeEntities: Method;
+```
+
+##### Description
+
+Remove specified entities from a specified authentication policy.
+
+##### See
+
+[`admin.auth.policy.removeEntities` API reference](https://api.slack.com/methods/admin.auth.policy.removeEntities).
+
+#### barriers
+
+```ts
+barriers: object;
+```
+
+#### barriers.create
+
+```ts
+create: Method;
+```
+
+##### Description
+
+Create an Information Barrier.
+
+##### See
+
+[`admin.barriers.create` API reference](https://api.slack.com/methods/admin.barriers.create).
+
+#### barriers.delete
+
+```ts
+delete: Method;
+```
+
+##### Description
+
+Delete an existing Information Barrier.
+
+##### See
+
+[`admin.barriers.delete` API reference](https://api.slack.com/methods/admin.barriers.delete).
+
+#### barriers.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+Get all Information Barriers for your organization.
+
+##### See
+
+[`admin.barriers.list` API reference](https://api.slack.com/methods/admin.barriers.list).
+
+#### barriers.update
+
+```ts
+update: Method;
+```
+
+##### Description
+
+Update an existing Information Barrier.
+
+##### See
+
+[`admin.barriers.update` API reference](https://api.slack.com/methods/admin.barriers.update).
+
+#### conversations
+
+```ts
+conversations: object;
+```
+
+#### conversations.archive
+
+```ts
+archive: Method;
+```
+
+##### Description
+
+Archive a public or private channel.
+
+##### See
+
+[`admin.conversations.archive` API reference](https://api.slack.com/methods/admin.conversations.archive).
+
+#### conversations.bulkArchive
+
+```ts
+bulkArchive: Method;
+```
+
+##### Description
+
+Archive public or private channels in bulk.
+
+##### See
+
+[`admin.conversations.bulkArchive` API reference](https://api.slack.com/methods/admin.conversations.bulkArchive).
+
+#### conversations.bulkDelete
+
+```ts
+bulkDelete: Method;
+```
+
+##### Description
+
+Delete public or private channels in bulk.
+
+##### See
+
+[`admin.conversations.bulkDelete` API reference](https://api.slack.com/methods/admin.conversations.bulkDelet).
+
+#### conversations.bulkMove
+
+```ts
+bulkMove: Method;
+```
+
+##### Description
+
+Move public or private channels in bulk.
+
+##### See
+
+[`admin.conversations.bulkMove` API reference](https://api.slack.com/methods/admin.conversations.bulkMove).
+
+#### conversations.convertToPrivate
+
+```ts
+convertToPrivate: Method;
+```
+
+##### Description
+
+Convert a public channel to a private channel.
+
+##### See
+
+[`admin.conversations.convertToPrivate` API reference](https://api.slack.com/methods/admin.conversations.convertToPrivate).
+
+#### conversations.convertToPublic
+
+```ts
+convertToPublic: Method;
+```
+
+##### Description
+
+Convert a private channel to a public channel.
+
+##### See
+
+[`admin.conversations.convertToPublic` API reference](https://api.slack.com/methods/admin.conversations.convertToPublic).
+
+#### conversations.create
+
+```ts
+create: Method;
+```
+
+##### Description
+
+Create a public or private channel-based conversation.
+
+##### See
+
+[`admin.conversations.create` API reference](https://api.slack.com/methods/admin.conversations.create).
+
+#### conversations.delete
+
+```ts
+delete: Method;
+```
+
+##### Description
+
+Delete a public or private channel.
+
+##### See
+
+[`admin.conversations.delete` API reference](https://api.slack.com/methods/admin.conversations.delete).
+
+#### conversations.disconnectShared
+
+```ts
+disconnectShared: Method;
+```
+
+##### Description
+
+Disconnect a connected channel from one or more workspaces.
+
+##### See
+
+[`admin.conversations.disconnectShared` API reference](https://api.slack.com/methods/admin.conversations.disconnectShared).
+
+#### conversations.ekm
+
+```ts
+ekm: object;
+```
+
+#### conversations.ekm.listOriginalConnectedChannelInfo
+
+```ts
+listOriginalConnectedChannelInfo: Method;
+```
+
+##### Description
+
+List all disconnected channels — i.e., channels that were once connected to other workspaces
+and then disconnected — and the corresponding original channel IDs for key revocation with EKM.
+
+##### See
+
+[`admin.conversations.ekm.listOriginalConnectedChannelInfo` API reference](https://api.slack.com/methods/admin.conversations.ekm.listOriginalConnectedChannelInfo).
+
+#### conversations.getConversationPrefs
+
+```ts
+getConversationPrefs: Method;
+```
+
+##### Description
+
+Get conversation preferences for a public or private channel.
+
+##### See
+
+[`admin.conversations.getConversationPrefs` API reference](https://api.slack.com/methods/admin.conversations.getConversationPrefs).
+
+#### conversations.getCustomRetention
+
+```ts
+getCustomRetention: Method;
+```
+
+##### Description
+
+Get a conversation's retention policy.
+
+##### See
+
+[`admin.conversations.getCustomRetention` API reference](https://api.slack.com/methods/admin.conversations.getCustomRetention).
+
+#### conversations.getTeams
+
+```ts
+getTeams: Method;
+```
+
+##### Description
+
+Get all the workspaces a given public or private channel is connected to within
+this Enterprise org.
+
+##### See
+
+[`admin.conversations.getTeams` API reference](https://api.slack.com/methods/admin.conversations.getTeams).
+
+#### conversations.invite
+
+```ts
+invite: Method;
+```
+
+##### Description
+
+Invite a user to a public or private channel.
+
+##### See
+
+[`admin.conversations.invite` API reference](https://api.slack.com/methods/admin.conversations.invite).
+
+#### conversations.lookup
+
+```ts
+lookup: Method;
+```
+
+##### Description
+
+Returns channels on the given team using the filters.
+
+##### See
+
+[`admin.conversations.lookup` API reference](https://api.slack.com/methods/admin.conversations.lookup).
+
+#### conversations.removeCustomRetention
+
+```ts
+removeCustomRetention: Method;
+```
+
+##### Description
+
+Remove a conversation's retention policy.
+
+##### See
+
+[`admin.conversations.removeCustomRetention` API reference](https://api.slack.com/methods/admin.conversations.removeCustomRetention).
+
+#### conversations.rename
+
+```ts
+rename: Method;
+```
+
+##### Description
+
+Rename a public or private channel.
+
+##### See
+
+[`admin.conversations.rename` API reference](https://api.slack.com/methods/admin.conversations.rename).
+
+#### conversations.restrictAccess
+
+```ts
+restrictAccess: object;
+```
+
+#### conversations.restrictAccess.addGroup
+
+```ts
+addGroup: Method;
+```
+
+##### Description
+
+Add an allowlist of IDP groups for accessing a channel.
+
+##### See
+
+[`admin.conversations.restrictAccess.addGroup` API reference](https://api.slack.com/methods/admin.conversations.restrictAccess.addGroup).
+
+#### conversations.restrictAccess.listGroups
+
+```ts
+listGroups: Method;
+```
+
+##### Description
+
+List all IDP Groups linked to a channel.
+
+##### See
+
+[`admin.conversations.restrictAccess.listGroups` API reference](https://api.slack.com/methods/admin.conversations.restrictAccess.listGroups).
+
+#### conversations.restrictAccess.removeGroup
+
+```ts
+removeGroup: Method;
+```
+
+##### Description
+
+Remove a linked IDP group linked from a private channel.
+
+##### See
+
+[`admin.conversations.restrictAccess.removeGroup` API reference](https://api.slack.com/methods/admin.conversations.restrictAccess.removeGroup).
+
+#### conversations.search
+
+```ts
+search: Method;
+```
+
+##### Description
+
+Search for public or private channels in an Enterprise organization.
+
+##### See
+
+[`admin.conversations.search` API reference](https://api.slack.com/methods/admin.conversations.search).
+
+#### conversations.setConversationPrefs
+
+```ts
+setConversationPrefs: Method;
+```
+
+##### Description
+
+Set the posting permissions for a public or private channel.
+
+##### See
+
+[`admin.conversations.setConversationPrefs` API reference](https://api.slack.com/methods/admin.conversations.setConversationPrefs).
+
+#### conversations.setCustomRetention
+
+```ts
+setCustomRetention: Method;
+```
+
+##### Description
+
+Set a conversation's retention policy.
+
+##### See
+
+[`admin.conversations.setCustomRetention` API reference](https://api.slack.com/methods/admin.conversations.setCustomRetention).
+
+#### conversations.setTeams
+
+```ts
+setTeams: Method;
+```
+
+##### Description
+
+Set the workspaces in an Enterprise grid org that connect to a public or private channel.
+
+##### See
+
+[`admin.conversations.setTeams` API reference](https://api.slack.com/methods/admin.conversations.setTeams).
+
+#### conversations.unarchive
+
+```ts
+unarchive: Method;
+```
+
+##### Description
+
+Unarchive a public or private channel.
+
+##### See
+
+[`admin.conversations.unarchive` API reference](https://api.slack.com/methods/admin.conversations.unarchive).
+
+#### emoji
+
+```ts
+emoji: object;
+```
+
+#### emoji.add
+
+```ts
+add: Method;
+```
+
+##### Description
+
+Add an emoji.
+
+##### See
+
+[`admin.emoji.add` API reference](https://api.slack.com/methods/admin.emoji.add).
+
+#### emoji.addAlias
+
+```ts
+addAlias: Method;
+```
+
+##### Description
+
+Add an emoji alias.
+
+##### See
+
+[`admin.emoji.addAlias` API reference](https://api.slack.com/methods/admin.emoji.addAlias).
+
+#### emoji.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List emoji for an Enterprise Grid organization.
+
+##### See
+
+[`admin.emoji.list` API reference](https://api.slack.com/methods/admin.emoji.list).
+
+#### emoji.remove
+
+```ts
+remove: Method;
+```
+
+##### Description
+
+Remove an emoji across an Enterprise Grid organization.
+
+##### See
+
+[`admin.emoji.remove` API reference](https://api.slack.com/methods/admin.emoji.remove).
+
+#### emoji.rename
+
+```ts
+rename: Method;
+```
+
+##### Description
+
+Rename an emoji.
+
+##### See
+
+[`admin.emoji.rename` API reference](https://api.slack.com/methods/admin.emoji.rename).
+
+#### functions
+
+```ts
+functions: object;
+```
+
+#### functions.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+Look up functions by a set of apps.
+
+##### See
+
+[`admin.functions.list` API reference](https://api.slack.com/methods/admin.functions.list).
+
+#### functions.permissions
+
+```ts
+permissions: object;
+```
+
+#### functions.permissions.lookup
+
+```ts
+lookup: Method;
+```
+
+##### Description
+
+Lookup the visibility of multiple Slack functions and include the users if
+it is limited to particular named entities.
+
+##### See
+
+[`admin.functions.permissions.lookup` API reference](https://api.slack.com/methods/admin.functions.permissions.lookup).
+
+#### functions.permissions.set
+
+```ts
+set: Method;
+```
+
+##### Description
+
+Set the visibility of a Slack function and define the users or workspaces if
+it is set to named_entities.
+
+##### See
+
+[`admin.functions.permissions.set` API reference](https://api.slack.com/methods/admin.functions.permissions.set).
+
+#### inviteRequests
+
+```ts
+inviteRequests: object;
+```
+
+#### inviteRequests.approve
+
+```ts
+approve: Method;
+```
+
+##### Description
+
+Approve a workspace invite request.
+
+##### See
+
+[`admin.inviteRequests.approve` API reference](https://api.slack.com/methods/admin.inviteRequests.approve).
+
+#### inviteRequests.approved
+
+```ts
+approved: object;
+```
+
+#### inviteRequests.approved.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List all approved workspace invite requests.
+
+##### See
+
+[`admin.inviteRequests.approved.list` API reference](https://api.slack.com/methods/admin.inviteRequests.approved.list).
+
+#### inviteRequests.denied
+
+```ts
+denied: object;
+```
+
+#### inviteRequests.denied.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List all denied workspace invite requests.
+
+##### See
+
+[`admin.inviteRequests.denied.list` API reference](https://api.slack.com/methods/admin.inviteRequests.denied.list).
+
+#### inviteRequests.deny
+
+```ts
+deny: Method;
+```
+
+##### Description
+
+Deny a workspace invite request.
+
+##### See
+
+[`admin.inviteRequests.deny` API reference](https://api.slack.com/methods/admin.inviteRequests.deny).
+
+#### inviteRequests.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List all pending workspace invite requests.
+
+##### See
+
+[`admin.inviteRequests.list` API reference](https://api.slack.com/methods/admin.inviteRequests.list).
+
+#### roles
+
+```ts
+roles: object;
+```
+
+#### roles.addAssignments
+
+```ts
+addAssignments: Method;
+```
+
+##### Description
+
+Adds members to the specified role with the specified scopes.
+
+##### See
+
+[`admin.roles.addAssignments` API reference](https://api.slack.com/methods/admin.roles.addAssignments).
+
+#### roles.listAssignments
+
+```ts
+listAssignments: Method;
+```
+
+##### Description
+
+Lists assignments for all roles across entities.
+Options to scope results by any combination of roles or entities.
+
+##### See
+
+[`admin.roles.listAssignments` API reference](https://api.slack.com/methods/admin.roles.listAssignments).
+
+#### roles.removeAssignments
+
+```ts
+removeAssignments: Method;
+```
+
+##### Description
+
+Removes a set of users from a role for the given scopes and entities.
+
+##### See
+
+[`admin.roles.removeAssignments` API reference](https://api.slack.com/methods/admin.roles.removeAssignments).
+
+#### teams
+
+```ts
+teams: object;
+```
+
+#### teams.admins
+
+```ts
+admins: object;
+```
+
+#### teams.admins.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List all of the admins on a given workspace.
+
+##### See
+
+[`admin.teams.admins.list` API reference](https://api.slack.com/methods/admin.teams.admins.list).
+
+#### teams.create
+
+```ts
+create: Method;
+```
+
+##### Description
+
+Create an Enterprise team.
+
+##### See
+
+[`admin.teams.create` API reference](https://api.slack.com/methods/admin.teams.create).
+
+#### teams.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List all teams on an Enterprise organization.
+
+##### See
+
+[`admin.teams.list` API reference](https://api.slack.com/methods/admin.teams.list).
+
+#### teams.owners
+
+```ts
+owners: object;
+```
+
+#### teams.owners.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List all of the owners on a given workspace.
+
+##### See
+
+[`admin.teams.owners.list` API reference](https://api.slack.com/methods/admin.teams.owners.list).
+
+#### teams.settings
+
+```ts
+settings: object;
+```
+
+#### teams.settings.info
+
+```ts
+info: Method;
+```
+
+##### Description
+
+Fetch information about settings in a workspace.
+
+##### See
+
+[`admin.teams.owners.list` API reference](https://api.slack.com/methods/admin.teams.owners.list).
+
+#### teams.settings.setDefaultChannels
+
+```ts
+setDefaultChannels: Method;
+```
+
+##### Description
+
+Set the default channels of a workspace.
+
+##### See
+
+[`admin.teams.settings.setDefaultChannels` API reference](https://api.slack.com/methods/admin.teams.settings.setDefaultChannels).
+
+#### teams.settings.setDescription
+
+```ts
+setDescription: Method;
+```
+
+##### Description
+
+Set the description of a given workspace.
+
+##### See
+
+[`admin.teams.settings.setDescription` API reference](https://api.slack.com/methods/admin.teams.settings.setDescription).
+
+#### teams.settings.setDiscoverability
+
+```ts
+setDiscoverability: Method;
+```
+
+##### Description
+
+Set the discoverability of a given workspace.
+
+##### See
+
+[`admin.teams.settings.setDiscoverability` API reference](https://api.slack.com/methods/admin.teams.settings.setDiscoverability).
+
+#### teams.settings.setIcon
+
+```ts
+setIcon: Method;
+```
+
+##### Description
+
+Sets the icon of a workspace.
+
+##### See
+
+[`admin.teams.settings.setIcon` API reference](https://api.slack.com/methods/admin.teams.settings.setIcon).
+
+#### teams.settings.setName
+
+```ts
+setName: Method;
+```
+
+##### Description
+
+Set the name of a given workspace.
+
+##### See
+
+[`admin.teams.settings.setName` API reference](https://api.slack.com/methods/admin.teams.settings.setName).
+
+#### usergroups
+
+```ts
+usergroups: object;
+```
+
+#### usergroups.addChannels
+
+```ts
+addChannels: Method;
+```
+
+##### Description
+
+Add up to one hundred default channels to an IDP group.
+
+##### See
+
+[`admin.teams.usergroups.addChannels` API reference](https://api.slack.com/methods/admin.usergroups.addChannels).
+
+#### usergroups.addTeams
+
+```ts
+addTeams: Method;
+```
+
+##### Description
+
+Associate one or more default workspaces with an organization-wide IDP group.
+
+##### See
+
+[`admin.teams.usergroups.addTeams` API reference](https://api.slack.com/methods/admin.usergroups.addTeams).
+
+#### usergroups.listChannels
+
+```ts
+listChannels: Method;
+```
+
+##### Description
+
+List the channels linked to an org-level IDP group (user group).
+
+##### See
+
+[`admin.teams.usergroups.listChannels` API reference](https://api.slack.com/methods/admin.usergroups.listChannels).
+
+#### usergroups.removeChannels
+
+```ts
+removeChannels: Method;
+```
+
+##### Description
+
+Remove one or more default channels from an org-level IDP group (user group).
+
+##### See
+
+[`admin.teams.usergroups.removeChannels` API reference](https://api.slack.com/methods/admin.usergroups.removeChannels).
+
+#### users
+
+```ts
+users: object;
+```
+
+#### users.assign
+
+```ts
+assign: Method;
+```
+
+##### Description
+
+Add an Enterprise user to a workspace.
+
+##### See
+
+[`admin.users.assign` API reference](https://api.slack.com/methods/admin.users.assign).
+
+#### users.invite
+
+```ts
+invite: Method;
+```
+
+##### Description
+
+Invite a user to a workspace.
+
+##### See
+
+[`admin.users.invite` API reference](https://api.slack.com/methods/admin.users.invite).
+
+#### users.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List users on a workspace.
+
+##### See
+
+[`admin.users.list` API reference](https://api.slack.com/methods/admin.users.list).
+
+#### users.remove
+
+```ts
+remove: Method;
+```
+
+##### Description
+
+Remove a user from a workspace.
+
+##### See
+
+[`admin.users.remove` API reference](https://api.slack.com/methods/admin.users.remove).
+
+#### users.session
+
+```ts
+session: object;
+```
+
+#### users.session.clearSettings
+
+```ts
+clearSettings: Method;
+```
+
+##### Description
+
+Clear user-specific session settings—the session duration and what happens when the client
+closes—for a list of users.
+
+##### See
+
+[`admin.users.session.clearSettings` API reference](https://api.slack.com/methods/admin.users.session.clearSettings).
+
+#### users.session.getSettings
+
+```ts
+getSettings: Method;
+```
+
+##### Description
+
+Get user-specific session settings—the session duration and what happens when the client
+closes—given a list of users.
+
+##### See
+
+[`admin.users.session.getSettings` API reference](https://api.slack.com/methods/admin.users.session.getSettings).
+
+#### users.session.invalidate
+
+```ts
+invalidate: Method;
+```
+
+##### Description
+
+Revoke a single session for a user. The user will be forced to login to Slack.
+
+##### See
+
+[`admin.users.session.invalidate` API reference](https://api.slack.com/methods/admin.users.session.invalidate).
+
+#### users.session.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List active user sessions for an organization.
+
+##### See
+
+[`admin.users.session.list` API reference](https://api.slack.com/methods/admin.users.session.list).
+
+#### users.session.reset
+
+```ts
+reset: Method;
+```
+
+##### Description
+
+Wipes all valid sessions on all devices for a given user.
+
+##### See
+
+[`admin.users.session.reset` API reference](https://api.slack.com/methods/admin.users.session.reset).
+
+#### users.session.resetBulk
+
+```ts
+resetBulk: Method;
+```
+
+##### Description
+
+Enqueues an asynchronous job to wipe all valid sessions on all devices for a given user list.
+
+##### See
+
+[`admin.users.session.resetBulk` API reference](https://api.slack.com/methods/admin.users.session.resetBulk).
+
+#### users.session.setSettings
+
+```ts
+setSettings: Method;
+```
+
+##### Description
+
+Configure the user-level session settings—the session duration and what happens when the client
+closes—for one or more users.
+
+##### See
+
+[`admin.users.session.setSettings` API reference](https://api.slack.com/methods/admin.users.session.setSettings).
+
+#### users.setAdmin
+
+```ts
+setAdmin: Method;
+```
+
+##### Description
+
+Set an existing guest, regular user, or owner to be an admin user.
+
+##### See
+
+[`admin.users.setAdmin` API reference](https://api.slack.com/methods/admin.users.setAdmin).
+
+#### users.setExpiration
+
+```ts
+setExpiration: Method;
+```
+
+##### Description
+
+Set an expiration for a guest user.
+
+##### See
+
+[`admin.users.setExpiration` API reference](https://api.slack.com/methods/admin.users.setExpiration).
+
+#### users.setOwner
+
+```ts
+setOwner: Method;
+```
+
+##### Description
+
+Set an existing guest, regular user, or admin user to be a workspace owner.
+
+##### See
+
+[`admin.users.setOwner` API reference](https://api.slack.com/methods/admin.users.setOwner).
+
+#### users.setRegular
+
+```ts
+setRegular: Method;
+```
+
+##### Description
+
+Set an existing guest user, admin user, or owner to be a regular user.
+
+##### See
+
+[`admin.users.setRegular` API reference](https://api.slack.com/methods/admin.users.setRegular).
+
+#### users.unsupportedVersions
+
+```ts
+unsupportedVersions: object;
+```
+
+#### users.unsupportedVersions.export
+
+```ts
+export: Method;
+```
+
+##### Description
+
+Ask Slackbot to send you an export listing all workspace members using unsupported software,
+presented as a zipped CSV file.
+
+##### See
+
+[`admin.users.unsupportedVersions.export` API reference](https://api.slack.com/methods/admin.users.unsupportedVersions.export).
+
+#### workflows
+
+```ts
+workflows: object;
+```
+
+#### workflows.collaborators
+
+```ts
+collaborators: object;
+```
+
+#### workflows.collaborators.add
+
+```ts
+add: Method;
+```
+
+##### Description
+
+Add collaborators to workflows within the team or enterprise.
+
+##### See
+
+[`admin.workflows.collaborators.add` API reference](https://api.slack.com/methods/admin.workflows.collaborators.add).
+
+#### workflows.collaborators.remove
+
+```ts
+remove: Method;
+```
+
+##### Description
+
+Remove collaborators from workflows within the team or enterprise.
+
+##### See
+
+[`admin.workflows.collaborators.remove` API reference](https://api.slack.com/methods/admin.workflows.collaborators.remove).
+
+#### workflows.permissions
+
+```ts
+permissions: object;
+```
+
+#### workflows.permissions.lookup
+
+```ts
+lookup: Method;
+```
+
+##### Description
+
+Look up the permissions for a set of workflows.
+
+##### See
+
+[`admin.workflows.permissions.lookup` API reference](https://api.slack.com/methods/admin.workflows.permissions.lookup).
+
+#### workflows.search
+
+```ts
+search: Method;
+```
+
+##### Description
+
+Search workflows within the team or enterprise.
+
+##### See
+
+[`admin.workflows.search` API reference](https://api.slack.com/methods/admin.workflows.search).
+
+#### workflows.unpublish
+
+```ts
+unpublish: Method;
+```
+
+##### Description
+
+Unpublish workflows within the team or enterprise.
+
+##### See
+
+[`admin.workflows.unpublish` API reference](https://api.slack.com/methods/admin.workflows.unpublish).
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:546](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L546)
+
+***
+
+### api
+
+```ts
+readonly api: object;
+```
+
+#### test
+
+```ts
+test: Method;
+```
+
+##### Description
+
+Checks API calling code.
+
+##### See
+
+[`api.test` API reference](https://api.slack.com/methods/api.test).
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:1221](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L1221)
+
+***
+
+### apps
+
+```ts
+readonly apps: object;
+```
+
+#### connections
+
+```ts
+connections: object;
+```
+
+#### connections.open
+
+```ts
+open: Method;
+```
+
+##### Description
+
+Generate a temporary Socket Mode WebSocket URL that your app can connect to in order to receive
+events and interactive payloads over.
+
+##### See
+
+[`apps.connections.open` API reference](https://api.slack.com/methods/apps.connections.open).
+
+#### event
+
+```ts
+event: object;
+```
+
+#### event.authorizations
+
+```ts
+authorizations: object;
+```
+
+#### event.authorizations.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+Get a list of authorizations for the given event context.
+Each authorization represents an app installation that the event is visible to.
+
+##### See
+
+[`apps.event.authorizations.list` API reference](https://api.slack.com/methods/apps.event.authorizations.list).
+
+#### manifest
+
+```ts
+manifest: object;
+```
+
+#### manifest.create
+
+```ts
+create: Method;
+```
+
+##### Description
+
+Create an app from an app manifest.
+
+##### See
+
+[`apps.manifest.create` API reference](https://api.slack.com/methods/apps.manifest.create).
+
+#### manifest.delete
+
+```ts
+delete: Method;
+```
+
+##### Description
+
+Permanently deletes an app created through app manifests.
+
+##### See
+
+[`apps.manifest.delete` API reference](https://api.slack.com/methods/apps.manifest.delete).
+
+#### manifest.export
+
+```ts
+export: Method;
+```
+
+##### Description
+
+Export an app manifest from an existing app.
+
+##### See
+
+[`apps.manifest.export` API reference](https://api.slack.com/methods/apps.manifest.export).
+
+#### manifest.update
+
+```ts
+update: Method;
+```
+
+##### Description
+
+Update an app from an app manifest.
+
+##### See
+
+[`apps.manifest.update` API reference](https://api.slack.com/methods/apps.manifest.update).
+
+#### manifest.validate
+
+```ts
+validate: Method;
+```
+
+##### Description
+
+Validate an app manifest.
+
+##### See
+
+[`apps.manifest.validate` API reference](https://api.slack.com/methods/apps.manifest.validate).
+
+#### uninstall
+
+```ts
+uninstall: Method;
+```
+
+##### Description
+
+Uninstalls your app from a workspace.
+
+##### See
+
+[`apps.uninstall` API reference](https://api.slack.com/methods/apps.uninstall).
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:1229](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L1229)
+
+***
+
+### auth
+
+```ts
+readonly auth: object;
+```
+
+#### revoke
+
+```ts
+revoke: Method;
+```
+
+##### Description
+
+Revokes a token.
+
+##### See
+
+[`auth.revoke` API reference](https://api.slack.com/methods/auth.revoke).
+
+#### teams
+
+```ts
+teams: object;
+```
+
+#### teams.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+Obtain a full list of workspaces your org-wide app has been approved for.
+
+##### See
+
+[`auth.teams.list` API reference](https://api.slack.com/methods/auth.teams.list).
+
+#### test
+
+```ts
+test: Method;
+```
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:1285](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L1285)
+
+***
+
+### bookmarks
+
+```ts
+readonly bookmarks: object;
+```
+
+#### add
+
+```ts
+add: Method;
+```
+
+##### Description
+
+Add bookmark to a channel.
+
+##### See
+
+[`bookmarks.add` API reference](https://api.slack.com/methods/bookmarks.add).
+
+#### edit
+
+```ts
+edit: Method;
+```
+
+##### Description
+
+Edit bookmark.
+
+##### See
+
+[`bookmarks.edit` API reference](https://api.slack.com/methods/bookmarks.edit).
+
+#### list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List bookmarks for a channel.
+
+##### See
+
+[`bookmarks.list` API reference](https://api.slack.com/methods/bookmarks.list).
+
+#### remove
+
+```ts
+remove: Method;
+```
+
+##### Description
+
+Remove bookmark from a channel.
+
+##### See
+
+[`bookmarks.remove` API reference](https://api.slack.com/methods/bookmarks.remove).
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:1301](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L1301)
+
+***
+
+### bots
+
+```ts
+readonly bots: object;
+```
+
+#### info
+
+```ts
+info: Method;
+```
+
+##### Description
+
+Gets information about a bot user.
+
+##### See
+
+[`bots.info` API reference](https://api.slack.com/methods/bots.info).
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:1324](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L1324)
+
+***
+
+### calls
+
+```ts
+readonly calls: object;
+```
+
+#### add
+
+```ts
+add: Method;
+```
+
+##### Description
+
+Registers a new Call.
+
+##### See
+
+[`calls.add` API reference](https://api.slack.com/methods/calls.add).
+
+#### end
+
+```ts
+end: Method;
+```
+
+##### Description
+
+Ends a Call.
+
+##### See
+
+[`calls.end` API reference](https://api.slack.com/methods/calls.end).
+
+#### info
+
+```ts
+info: Method;
+```
+
+##### Description
+
+Returns information about a Call.
+
+##### See
+
+[`calls.info` API reference](https://api.slack.com/methods/calls.info).
+
+#### participants
+
+```ts
+participants: object;
+```
+
+#### participants.add
+
+```ts
+add: Method;
+```
+
+##### Description
+
+Registers new participants added to a Call.
+
+##### See
+
+[`calls.participants.add` API reference](https://api.slack.com/methods/calls.participants.add).
+
+#### participants.remove
+
+```ts
+remove: Method;
+```
+
+#### update
+
+```ts
+update: Method;
+```
+
+##### Description
+
+Updates information about a Call.
+
+##### See
+
+[`calls.info` API reference](https://api.slack.com/methods/calls.info).
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:1332](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L1332)
+
+***
+
+### canvases
+
+```ts
+readonly canvases: object;
+```
+
+#### access
+
+```ts
+access: object;
+```
+
+#### access.delete
+
+```ts
+delete: Method;
+```
+
+##### Description
+
+Remove access to a canvas for specified entities.
+
+##### See
+
+[`canvases.access.delete` API reference](https://api.slack.com/methods/canvases.access.delete).
+
+#### access.set
+
+```ts
+set: Method;
+```
+
+##### Description
+
+Sets the access level to a canvas for specified entities.
+
+##### See
+
+[`canvases.access.set` API reference](https://api.slack.com/methods/canvases.access.set).
+
+#### create
+
+```ts
+create: Method;
+```
+
+##### Description
+
+Create Canvas for a user.
+
+##### See
+
+[`canvases.create` API reference](https://api.slack.com/methods/canvases.create).
+
+#### delete
+
+```ts
+delete: Method;
+```
+
+##### Description
+
+Deletes a canvas.
+
+##### See
+
+[`canvases.delete` API reference](https://api.slack.com/methods/canvases.delete).
+
+#### edit
+
+```ts
+edit: Method;
+```
+
+##### Description
+
+Update an existing canvas.
+
+##### See
+
+[`canvases.edit` API reference](https://api.slack.com/methods/canvases.edit).
+
+#### sections
+
+```ts
+sections: object;
+```
+
+#### sections.lookup
+
+```ts
+lookup: Method;
+```
+
+##### Description
+
+Find sections matching the provided criteria.
+
+##### See
+
+[`canvases.sections.lookup` API reference](https://api.slack.com/methods/canvases.sections.lookup).
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:1363](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L1363)
+
+***
+
+### chat
+
+```ts
+readonly chat: object;
+```
+
+#### delete
+
+```ts
+delete: Method;
+```
+
+##### Description
+
+Deletes a message.
+
+##### See
+
+[`chat.delete` API reference](https://api.slack.com/methods/chat.delete).
+
+#### deleteScheduledMessage
+
+```ts
+deleteScheduledMessage: Method;
+```
+
+##### Description
+
+Deletes a pending scheduled message from the queue.
+
+##### See
+
+[`chat.deleteScheduledMessage` API reference](https://api.slack.com/methods/chat.deleteScheduledMessage).
+
+#### getPermalink
+
+```ts
+getPermalink: Method;
+```
+
+##### Description
+
+Retrieve a permalink URL for a specific extant message.
+
+##### See
+
+[`chat.getPermalink` API reference](https://api.slack.com/methods/chat.getPermalink).
+
+#### meMessage
+
+```ts
+meMessage: Method;
+```
+
+##### Description
+
+Share a me message into a channel.
+
+##### See
+
+[`chat.meMessage` API reference](https://api.slack.com/methods/chat.meMessage).
+
+#### postEphemeral
+
+```ts
+postEphemeral: Method;
+```
+
+##### Description
+
+Sends an ephemeral message to a user in a channel.
+
+##### See
+
+[`chat.postEphemeral` API reference](https://api.slack.com/methods/chat.postEphemeral).
+
+#### postMessage
+
+```ts
+postMessage: Method;
+```
+
+##### Description
+
+Sends a message to a channel.
+
+##### See
+
+[`chat.postMessage` API reference](https://api.slack.com/methods/chat.postMessage).
+
+#### scheduleMessage
+
+```ts
+scheduleMessage: Method;
+```
+
+##### Description
+
+Schedules a message to be sent to a channel.
+
+##### See
+
+[`chat.scheduleMessage` API reference](https://api.slack.com/methods/chat.scheduleMessage).
+
+#### scheduledMessages
+
+```ts
+scheduledMessages: object;
+```
+
+#### scheduledMessages.list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+Returns a list of scheduled messages.
+
+##### See
+
+[`chat.scheduledMessages.list` API reference](https://api.slack.com/methods/chat.scheduledMessages.list).
+
+#### unfurl
+
+```ts
+unfurl: Method;
+```
+
+##### Description
+
+Provide custom unfurl behavior for user-posted URLs.
+
+##### See
+
+[`chat.unfurl` API reference](https://api.slack.com/methods/chat.unfurl).
+
+#### update
+
+```ts
+update: Method;
+```
+
+##### Description
+
+Updates a message.
+
+##### See
+
+[`chat.update` API reference](https://api.slack.com/methods/chat.update).
+
+#### Defined in
+
+[packages/web-api/src/methods.ts:1400](https://github.com/slackapi/node-slack-sdk/blob/main/packages/web-api/src/methods.ts#L1400)
+
+***
+
+### conversations
+
+```ts
+readonly conversations: object;
+```
+
+#### acceptSharedInvite
+
+```ts
+acceptSharedInvite: Method;
+```
+
+##### Description
+
+Accepts an invitation to a Slack Connect channel.
+
+##### See
+
+[`conversations.acceptSharedInvite` API reference](https://api.slack.com/methods/conversations.acceptSharedInvite).
+
+#### approveSharedInvite
+
+```ts
+approveSharedInvite: Method;
+```
+
+##### Description
+
+Approves an invitation to a Slack Connect channel.
+
+##### See
+
+[`conversations.approveSharedInvite` API reference](https://api.slack.com/methods/conversations.approveSharedInvite).
+
+#### archive
+
+```ts
+archive: Method;
+```
+
+##### Description
+
+Archives a conversation.
+
+##### See
+
+[`conversations.archive` API reference](https://api.slack.com/methods/conversations.archive).
+
+#### canvases
+
+```ts
+canvases: object;
+```
+
+#### canvases.create
+
+```ts
+create: Method;
+```
+
+##### Description
+
+Create a Channel Canvas for a channel.
+
+##### See
+
+[`conversations.canvases.create` API reference](https://api.slack.com/methods/conversations.canvases.create).
+
+#### close
+
+```ts
+close: Method;
+```
+
+##### Description
+
+Closes a direct message or multi-person direct message.
+
+##### See
+
+[`conversations.close` API reference](https://api.slack.com/methods/conversations.close).
+
+#### create
+
+```ts
+create: Method;
+```
+
+##### Description
+
+Initiates a public or private channel-based conversation.
+
+##### See
+
+[`conversations.create` API reference](https://api.slack.com/methods/conversations.create).
+
+#### declineSharedInvite
+
+```ts
+declineSharedInvite: Method;
+```
+
+##### Description
+
+Declines an invitation to a Slack Connect channel.
+
+##### See
+
+[`conversations.declineSharedInvite` API reference](https://api.slack.com/methods/conversations.declineSharedInvite).
+
+#### externalInvitePermissions
+
+```ts
+externalInvitePermissions: object;
+```
+
+#### externalInvitePermissions.set
+
+```ts
+set: Method;
+```
+
+##### Description
+
+Convert a team in a shared channel from an External Limited channel to a fully shared Slack
+Connect channel or vice versa.
+
+##### See
+
+[`conversations.externalInvitePermissions.set` API reference](https://api.slack.com/methods/conversations.externalInvitePermissions.set).
+
+#### history
+
+```ts
+history: Method;
+```
+
+##### Description
+
+Fetches a conversation's history of messages and events.
+
+##### See
+
+[`conversations.history` API reference](https://api.slack.com/methods/conversations.history).
+
+#### info
+
+```ts
+info: Method;
+```
+
+##### Description
+
+Retrieve information about a conversation.
+
+##### See
+
+[`conversations.info` API reference](https://api.slack.com/methods/conversations.info).
+
+#### invite
+
+```ts
+invite: Method;
+```
+
+##### Description
+
+Invites users to a channel.
+
+##### See
+
+[`conversations.invite` API reference](https://api.slack.com/methods/conversations.invite).
+
+#### inviteShared
+
+```ts
+inviteShared: Method;
+```
+
+##### Description
+
+Sends an invitation to a Slack Connect channel.
+
+##### See
+
+[`conversations.inviteShared` API reference](https://api.slack.com/methods/conversations.inviteShared).
+
+#### join
+
+```ts
+join: Method;
+```
+
+##### Description
+
+Joins an existing conversation.
+
+##### See
+
+[`conversations.join` API reference](https://api.slack.com/methods/conversations.join).
+
+#### kick
+
+```ts
+kick: Method;
+```
+
+##### Description
+
+Removes a user from a conversation.
+
+##### See
+
+[`conversations.kick` API reference](https://api.slack.com/methods/conversations.kick).
+
+#### leave
+
+```ts
+leave: Method;
+```
+
+##### Description
+
+Leaves a conversation.
+
+##### See
+
+[`conversations.leave` API reference](https://api.slack.com/methods/conversations.leave).
+
+#### list
+
+```ts
+list: Method;
+```
+
+##### Description
+
+List all channels in a Slack team.
+
+##### See
+
+[`conversations.list` API reference](https://api.slack.com/methods/conversations.list).
+
+#### listConnectInvites
+
+```ts
+listConnectInvites: Method;
+```
+
+##### Description
+
+Lists shared channel invites that have been generated or received but have not been approved by
+all parties.
+
+##### See
+
+[`conversations.listConnectInvites` API reference](https://api.slack.com/methods/conversations.listConnectInvites).
+
+#### mark
+
+```ts
+mark: Method;
+```
+
+##### Description
+
+Sets the read cursor in a channel.
+
+##### See
+
+[`conversations.mark` API reference](https://api.slack.com/methods/conversations.mark).
+
+#### members
+
+```ts
+members: Method;
+```
+
+##### Description
+
+Retrieve members of a conversation.
+
+##### See
+
+[`conversations.members` API reference](https://api.slack.com/methods/conversations.members).
+
+#### open
+
+```ts
+open: Method;
+```
+
+##### Description
+
+Opens or resumes a direct message or multi-person direct message.
+
+##### See
+
+[`conversations.open` API reference](https://api.slack.com/methods/conversations.open).
+
+#### rename
+
+```ts
+rename: Method