import { b as OAuthBaseProviderConfig, c as OAuth2ProviderConfig, d as OIDCProviderConfig, P as PasskeyProviderConfig, a as PasswordProviderConfig } from '../types-D_f0kW5e.js';
import 'oauth4webapi';

type AppleAuthConfig$1 = OAuthBaseProviderConfig;
/**
 * Add Apple OAuth2 Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/apple
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {AppleOAuth2Provider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      AppleOAuth2Provider({
 *          client_id: process.env.APPLE_CLIENT_ID as string,
 *          client_secret: process.env.APPLE_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 *
 * ]
 * ```
 *
 */
declare function AppleOAuth2Provider(config: AppleAuthConfig$1): OAuth2ProviderConfig;

type AtlassianAuthConfig = OAuthBaseProviderConfig;
/**
 * Add Atlassian OAuth2 Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/atlassian
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {AtlassianAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugins[] = [
 *  authPlugin({
 *    providers:[
 *      AtlassianAuthProvider({
 *          client_id: process.env.ATLASSIAN_CLIENT_ID as string,
 *          client_secret: process.env.ATLASSIAN_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 *
 * ]
 * ```
 *
 */
declare function AtlassianAuthProvider(config: AtlassianAuthConfig): OAuth2ProviderConfig;

interface Auth0AuthConfig extends OAuthBaseProviderConfig {
    domain: string;
}
/**
 * Add Auth0 OAuth2 Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/auth0
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {Auth0AuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      Auth0AuthProvider({
 *          client_id: process.env.AUTH0_CLIENT_ID as string,
 *          client_secret: process.env.AUTH0_CLIENT_SECRET as string,
 *          domain: process.env.AUTH0_DOMAIN as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 *
 */
declare function Auth0AuthProvider(config: Auth0AuthConfig): OAuth2ProviderConfig;

type DiscordAuthConfig = OAuthBaseProviderConfig;
/**
 * Add Discord OAuth2 Provider
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/discord
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {DiscordAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      DiscordAuthProvider({
 *          client_id: process.env.DISCORD_CLIENT_ID as string,
 *          client_secret: process.env.DISCORD_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 *
 */
declare function DiscordAuthProvider(config: DiscordAuthConfig): OAuth2ProviderConfig;

type FacebookAuthConfig = OAuthBaseProviderConfig;
/**
 * Add Facebook OAuth2 Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/facebook
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {FacebookAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      FacebookAuthProvider({
 *          client_id: process.env.FACEBOOK_CLIENT_ID as string,
 *          client_secret: process.env.FACEBOOK_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 */
declare function FacebookAuthProvider(config: FacebookAuthConfig): OAuth2ProviderConfig;

type GitHubAuthConfig = OAuthBaseProviderConfig;
/**
 * Add Github OAuth2 Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/github
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {GithubAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      GithubAuthProvider({
 *          client_id: process.env.GITHUB_CLIENT_ID as string,
 *          client_secret: process.env.GITHUB_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 *
 */
declare function GitHubAuthProvider(config: GitHubAuthConfig): OAuth2ProviderConfig;

type JumpCloudAuthConfig = OAuthBaseProviderConfig;
/**
 * Add Jump Cloud OAuth2 Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/jumpcloud
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {JumpCloudAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      JumpCloudAuthProvider({
 *          client_id: process.env.JUMP_CLOUD_CLIENT_ID as string,
 *          client_secret: process.env.JUMP_CLOUD_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 */
declare function JumpCloudAuthProvider(config: JumpCloudAuthConfig): OAuth2ProviderConfig;

type TwitchAuthConfig = OAuthBaseProviderConfig;
/**
 * Add Twitch OAuth2 Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/twitch
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {TwitchAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      TwitchAuthProvider({
 *          client_id: process.env.TWITCH_CLIENT_ID as string,
 *          client_secret: process.env.TWITCH_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 */
declare function TwitchAuthProvider(config: TwitchAuthConfig): OAuth2ProviderConfig;

interface AppleAuthConfig extends OAuthBaseProviderConfig {
    client_id: string;
    params?: Record<string, string>;
}
/**
 * Add Apple OIDC Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/apple
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import { authPlugin } from "payload-auth-plugin"
 * import { AppleOIDCAuthProvider } from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      AppleOIDCAuthProvider({
 *          client_id: process.env.APPLE_CLIENT_ID as string,
 *      })
 *    ]
 *  })
 * ```
 *
 */
declare function AppleOIDCAuthProvider(config: AppleAuthConfig): OIDCProviderConfig;

interface CognitoAuthConfig extends OAuthBaseProviderConfig {
    domain: string;
}
/**
 * Add Cognito OIDC Provider
 *
 * #### Callback or Redirect URL pattern
 * ```
 * https://example.com/api/{name}/oauth/callback/cognito
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import { authPlugin } from "payload-auth-plugin"
 * import { CognitoAuthProvider } from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      CognitoAuthProvider({
 *        client_id: process.env.COGNITO_CLIENT_ID as string,
 *        client_secret: process.env.COGNITO_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 *
 */
declare function CognitoAuthProvider(config: CognitoAuthConfig): OIDCProviderConfig;

type GitLabAuthConfig = OAuthBaseProviderConfig;
/**
 * Add GitLab OIDC Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/gitlab
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import { authPlugin } from "payload-auth-plugin"
 * import { GitLabAuthProvider } from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      GitLabAuthProvider({
 *          client_id: process.env.GITLAB_CLIENT_ID as string,
 *          client_secret: process.env.GITLAB_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 *
 */
declare function GitLabAuthProvider(config: GitLabAuthConfig): OIDCProviderConfig;

type GoogleAuthConfig = OAuthBaseProviderConfig;
/**
 * Add Google OIDC Provider
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/google
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {GoogleAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      GoogleAuthProvider({
 *          client_id: process.env.GOOGLE_CLIENT_ID as string,
 *          client_secret: process.env.GOOGLE_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 */
declare function GoogleAuthProvider(config: GoogleAuthConfig): OIDCProviderConfig;

interface KeyCloakAuthConfig extends OAuthBaseProviderConfig {
    realm: string;
    domain: string;
    identifier: string;
    name: string;
}
/**
 * Add KeyCloak OIDC Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{app_name}/oauth/callback/{name}
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {KeyCloakAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      KeyCloakAuthProvider({
 *          realm: process.env.KEYCLOAK_REALM as string,
 *          domain: process.env.KEYCLOAK_DOMAIN as string,
 *          identifier: process.env.KEYCLOAK_IDENTIFIER as string,
 *          name: process.env.KEYCLOAK_NAME as string,
 *          client_id: process.env.KEYCLOAK_CLIENT_ID as string,
 *          client_secret: process.env.KEYCLOAK_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 *
 */
declare function KeyCloakAuthProvider(config: KeyCloakAuthConfig): OIDCProviderConfig;

type MicrosoftEntraAuthConfig = OAuthBaseProviderConfig & {
    tenant_id: string;
    skip_email_verification?: boolean | undefined;
};
/**
 * Add Microsoft Entra OIDC Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/msft-entra
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import { authPlugin } from "payload-auth-plugin"
 * import { MicrosoftEntraAuthProvider } from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      MicrosoftEntraAuthProvider({
 *          tenant_id: process.env.MICROSOFTENTRA_TENANT_ID as string,
 *          client_id: process.env.MICROSOFTENTRA_CLIENT_ID as string,
 *          client_secret: process.env.MICROSOFTENTRA_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 *
 */
declare function MicrosoftEntraAuthProvider(config: MicrosoftEntraAuthConfig): OIDCProviderConfig;

interface OktaAuthConfig extends OAuthBaseProviderConfig {
    domain: string;
}
declare function OktaAuthProvider(config: OktaAuthConfig): OIDCProviderConfig;

interface RobloxAuthConfig extends OAuthBaseProviderConfig {
    /**
     * Domain is required to create custom email addresses, since Roblox does not share users’ actual email addresses for security and privacy reasons. The plugin automatically generates a unique custom email address for each new signup.
     */
    emailDomain: string;
    skip_email_verification?: boolean | undefined;
}
/**
 * Add Roblox OIDC Provider
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/roblox
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {RobloxAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      RobloxAuthProvider({
 *          client_id: process.env.ROBLOX_CLIENT_ID as string,
 *          client_secret: process.env.ROBLOX_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 */
declare function RobloxAuthProvider(config: RobloxAuthConfig): OIDCProviderConfig;

type SlackAuthConfig = OAuthBaseProviderConfig;
/**
 * Add Slack OIDC Provider
 *
 * #### Callback or Redirect URL pattern
 *
 * ```
 * https://example.com/api/{name}/oauth/callback/slack
 * ```
 *
 * #### Plugin Setup
 *
 * ```ts
 * import { Plugin } from 'payload'
 * import {authPlugin} from "payload-auth-plugin"
 * import {SlackAuthProvider} from "payload-auth-plugin/providers"
 *
 * export const plugins: Plugin[] = [
 *  authPlugin({
 *    providers:[
 *      SlackAuthProvider({
 *          client_id: process.env.SLACK_CLIENT_ID as string,
 *          client_secret: process.env.SLACK_CLIENT_SECRET as string,
 *      })
 *    ]
 *  })
 * ]
 * ```
 *
 */
declare function SlackAuthProvider(config: SlackAuthConfig): OIDCProviderConfig;

declare function PasskeyAuthProvider(): PasskeyProviderConfig;

type PasswordProviderOptions = {
    /**
     * Email templates
     */
    emailTemplates: {
        forgotPassword: any;
    };
};
declare function PasswordProvider(options: PasswordProviderOptions): PasswordProviderConfig;

export { AppleOAuth2Provider, AppleOIDCAuthProvider, AtlassianAuthProvider, Auth0AuthProvider, CognitoAuthProvider, DiscordAuthProvider, FacebookAuthProvider, GitHubAuthProvider, GitLabAuthProvider, GoogleAuthProvider, JumpCloudAuthProvider, KeyCloakAuthProvider, MicrosoftEntraAuthProvider, OktaAuthProvider, PasskeyAuthProvider, PasswordProvider, RobloxAuthProvider, SlackAuthProvider, TwitchAuthProvider };
