import { DynamicModule, Type } from '@nestjs/common'; import { ModuleAsyncOptions } from '../utils'; import { AuthUser, UserDetailsService } from './interfaces'; import { AccountDetailsService, AccountModuleOptions } from './account'; export type AuthRouteOptions = { enabled?: boolean; recaptcha?: boolean; }; export interface AuthModuleOptions { userDetailsService: UserDetailsService | (AccountDetailsService & UserDetailsService); userDetailsClass: Type; userRegisterDtoClass?: Type; route?: string; login?: AuthRouteOptions; logout?: { enabled?: boolean; }; admin?: { create?: boolean; username?: string; password?: string; }; jwt?: { secret: string; expiresIn?: number; logoutSessionEnabled?: boolean; enabled?: boolean; }; basic?: { enabled?: boolean; }; oauth2?: { enabled?: boolean; }; apikey?: { enabled?: boolean; }; recaptcha?: { siteSecret: string; deliveryHeader?: string; deliveryQuery?: string; deliveryBody?: string; enabled?: boolean; }; google?: { clientId: string; enabled?: boolean; }; facebook?: { appId: string; appSecret: string; enabled?: boolean; }; accountOptions?: Partial; } export interface AuthModuleAsyncOptions extends ModuleAsyncOptions> { userDetailsClass: Type; userRegisterDtoClass?: Type; } export declare class AuthModule { static forRoot(options: AuthModuleOptions): DynamicModule; static forRootAsync(options: AuthModuleAsyncOptions): DynamicModule; private static createModule; }