import { Knex } from 'knex'; import { InternalAdminManager } from './admin/internal-admin-manager.js'; import { KnexAdminService } from './services/admin.knex.service.js'; import { AdminApiKeyService } from './services/admin-api-key.service.js'; import { AdminAuthProvider, AdminSessionManager } from './types/admin.js'; import { AuthProvider, ConfigStore, EmailVerificationService, SessionManager, SmsVerificationService, UserService } from './types.js'; import { PlunkVerificationConfig } from './services/index.js'; import { DynamicAuthManager } from './authManager.js'; import { KnexUserService } from './userService.js'; import { AuthPlugin } from './plugins/index.js'; import { SignOptions } from 'jsonwebtoken'; import { BaseOAuthProvider, LocalAuthProvider, PasswordlessProvider } from './providers/index.js'; export interface ContainerDependencies { knex: Knex; adminAuthProvider?: AdminAuthProvider; adminSessionManager?: AdminSessionManager; configStore?: ConfigStore; userService?: UserService; sessionManager?: SessionManager; useJwt?: { secret: string; options?: SignOptions; }; local: { enabled: boolean; userService?: UserService; configStore?: ConfigStore; }; passwordless?: { enabled: boolean; sendToken: (email: string, token: string) => Promise; tokenStore?: Knex; userService?: KnexUserService; }; email: { enabled: boolean; emailVerificationService?: EmailVerificationService; usePlunk?: { enabled: boolean; config: PlunkVerificationConfig; }; }; sms: { enabled: boolean; smsVerificationService?: SmsVerificationService; }; providers?: Record BaseOAuthProvider | AuthProvider)>; refreshInterval?: number; enableConfigIntervalCheck?: boolean; plugins?: AuthPlugin[]; adminConfig: { initialAdminEmail: string; initialAdminPassword: string; enabled?: boolean; createInitialApiKey: boolean; initialApiKeyName?: string; initialApiKeyScopes?: string[]; }; authPolicy: { emailVerificationRequired?: boolean; passwordReset?: boolean; passwordChange?: boolean; accountDeletion?: boolean; smsVerificationRequired?: boolean; loginAfterRegistration?: boolean; }; } export interface AuthCradle { knex: Knex; authPolicy: { emailVerificationRequired?: boolean; passwordReset?: boolean; passwordChange?: boolean; accountDeletion?: boolean; smsVerificationRequired?: boolean; loginAfterRegistration?: boolean; }; authManager: DynamicAuthManager; refreshInterval: number; enableConfigIntervalCheck: boolean; emailVerificationService?: EmailVerificationService; smsVerificationService?: SmsVerificationService; userService: UserService | KnexUserService; configStore: ConfigStore; sessionManager: SessionManager; adminConfig: { initialAdminEmail: string; initialAdminPassword: string; enabled?: boolean; createInitialApiKey: boolean; initialApiKeyName?: string; initialApiKeyScopes?: string[]; }; adminAuthProvider: AdminAuthProvider; adminSessionManager: AdminSessionManager; adminService: KnexAdminService; apiKeyService: AdminApiKeyService; adminManager: InternalAdminManager; localAuthProvider?: LocalAuthProvider; passwordlessProvider?: PasswordlessProvider; providers: Record; } export declare function createAuthContainer(deps: ContainerDependencies): import("awilix").AwilixContainer; //# sourceMappingURL=container.d.ts.map