import type { Collection } from '@rakered/mongo'; import { CreateUserDocument, InviteUserDocument } from './methods/createUser'; import { LoginDocument } from './methods/login'; import { AuthTokenResult, Context, EmailDoc, InviteUserResult, TokenUrls, UserDocument } from './types'; import { ResetPasswordDocument } from './methods/resetPassword'; import { VerifyEmailDocument } from './methods/verifyEmail'; import { setUsernameDocument } from './methods/setUsername'; import { addEmailDocument } from './methods/addEmail'; import { removeEmailDocument } from './methods/removeEmail'; import { TokenDocument } from './methods/refreshToken'; import { EnrollUserDocument } from './methods/enrollUser'; export interface Accounts { createUser(user: InviteUserDocument): Promise; createUser(user: CreateUserDocument): Promise; enrollUser(user: EnrollUserDocument): Promise; setUsername(options: setUsernameDocument): Promise; addEmail(options: addEmailDocument): Promise; removeEmail(options: removeEmailDocument): Promise; verifyEmail(credentials: VerifyEmailDocument): Promise; resetPassword(options: ResetPasswordDocument): Promise; login(credentials: LoginDocument): Promise; refreshToken(tokens: TokenDocument): Promise; revokeToken(tokens: TokenDocument): Promise; sendEnrollmentEmail(identity: EmailDoc): Promise; sendVerificationEmail(identity: EmailDoc): Promise; sendResetPasswordEmail(identity: EmailDoc): Promise; disconnect(): Promise; collection: Collection; } export type EmailSettings = { from: string; siteName: string; siteUrl: string; logoUrl?: string; }; export type Options = { collection?: Collection | string; email?: EmailSettings; urls?: TokenUrls; onLogin?: Context['onLogin']; }; export declare const defaultOptions: { email: EmailSettings; urls: TokenUrls; }; export declare function init(options?: Options): Accounts; export default init;