import { Provider } from './provider.js'; import { Oauth2WrappedConfig, Oauth2Token } from './oauth2.js'; import 'hono'; import '../storage/storage.js'; interface SlackConfig extends Oauth2WrappedConfig { /** * The workspace the user is intending to authenticate. * * If that workspace has been previously authenticated, the user will be signed in directly, * bypassing the consent screen. */ team: string; /** * The scopes to request from the user. * * | Scope | Description | * |-|-| * | `email` | Grants permission to access the user's email address. | * | `profile` | Grants permission to access the user's profile information. | * | `openid` | Grants permission to use OpenID Connect to verify the user's identity. | */ scopes: ("email" | "profile" | "openid")[]; } /** * Creates a [Slack OAuth2 provider](https://api.slack.com/authentication/sign-in-with-slack). * * @param {SlackConfig} config - The config for the provider. * @example * ```ts * SlackProvider({ * team: "T1234567890", * clientID: "1234567890", * clientSecret: "0987654321", * scopes: ["openid", "email", "profile"] * }) * ``` */ declare function SlackProvider(config: SlackConfig): Provider<{ tokenset: Oauth2Token; clientID: string; }>; export { type SlackConfig, SlackProvider };