import { PickedEventListeners, StoreEventListeners } from '@dynamic-labs/message-transport'; import { AuthModuleMessages, AuthModuleState, authEventNames } from '@dynamic-labs/webview-messages'; import type { UserProfile } from '@dynamic-labs/types'; import { Core } from '../../client/core'; import { WaitForAuthSuccessOptions } from '../../utils/createWaitForAuthSuccess'; import { EmailAuthModule } from './emailAuthModule'; import { ExternalAuthModule } from './externalAuthModule'; import { PasskeyAuthModule } from './passkeyAuthModule'; import { SmsAuthModule } from './smsAuthModule'; import { SocialAuthModule } from './socialAuthModule'; type PublicAuthModuleMessages = Pick; export type { WaitForAuthSuccessOptions }; export type AuthModule = AuthModuleState & StoreEventListeners & PickedEventListeners & { passkey: PasskeyAuthModule; sms: SmsAuthModule; email: EmailAuthModule; social: SocialAuthModule; external: ExternalAuthModule; getProjectSettings: AuthModuleMessages['getProjectSettings']; logout: AuthModuleMessages['logout']; refreshUser: AuthModuleMessages['refreshUser']; updateUser: AuthModuleMessages['updateUser']; verifyUserUpdateOtp: AuthModuleMessages['verifyUserUpdateOtp']; permanentlyDeleteCurrentUser: AuthModuleMessages['permanentlyDeleteCurrentUser']; setHandler: (name: 'userAuthenticated', handler: AuthenticatedUserHandler) => void; clearHandler: (name: 'userAuthenticated') => void; waitForAuthSuccess: (options?: WaitForAuthSuccessOptions) => Promise; }; type AuthenticatedUserHandler = (user: UserProfile) => Promise; export declare const createAuthModule: (core: Core) => AuthModule;