import type { HttpContext } from '@adonisjs/core/http'; import type { AllyManagerDriverFactory, AllyManagerUseOptions } from './types.ts'; /** * AllyManager is used to create and manage social authentication driver * instances during an HTTP request. The drivers are cached during the * lifecycle of a request to avoid creating duplicate instances. * * @example * ```ts * router.get('/github/redirect', ({ ally }) => { * return ally.use('github').redirect() * }) * * router.get('/github/callback', async ({ ally }) => { * const github = ally.use('github') * const user = await github.user() * return user * }) * ``` */ export declare class AllyManager> { #private; /** * The configured provider factories available for the current application. */ config: KnownSocialProviders; /** * Create a new Ally manager for the current request. * * @param config - Map of provider names to driver factory functions * @param ctx - The current HTTP context */ constructor( /** * The configured provider factories available for the current application. */ config: KnownSocialProviders, ctx: HttpContext); /** * Find if a provider has been configured. * * @param provider - The provider name to check. * @returns `true` when the provider exists in the manager config. * * @example * ```ts * if (ally.has(provider)) { * await ally.use(provider).redirect() * } * ``` */ has(provider: string): provider is Extract; /** * Find if a provider allows local signup. * * @param provider - The configured provider name to inspect. * @returns `true` when the provider does not opt out of local signup. * * @example * ```ts * if (ally.allowsLocalSignup('github')) { * return ally.use('github', { intent: 'signup' }).redirect() * } * ``` */ allowsLocalSignup(provider: keyof KnownSocialProviders & string): boolean; /** * Returns configured provider names. * * @returns An array of configured provider names. * * @example * ```ts * const providers = ally.configuredProviderNames() * ``` */ configuredProviderNames(): Array>; /** * Returns provider names that allow local signup. * * @returns An array of configured provider names that allow signup flows. * * @example * ```ts * const signupProviders = ally.signupProviderNames() * ``` */ signupProviderNames(): Array>; /** * Get a driver instance for the specified social provider. The driver * instance is cached for the duration of the HTTP request. * * @param provider - The name of the social provider (e.g., 'github', 'google') * @param options - Additional options used to qualify the provider usage. * @returns The instantiated social authentication driver. * * @example * ```ts * const github = ally.use('github') * await github.redirect() * * const signupDriver = ally.use('github', { intent: 'signup' }) * await signupDriver.redirect() * ``` */ use(provider: SocialProvider, options?: AllyManagerUseOptions): ReturnType; }