import { Router } from 'express'; import { type OAuthProviderCallback } from './oauth.ts'; import { type JwtPayload } from './JWT.ts'; export type MayHaveUpgradeToken = { upgradingToken?: JwtPayload; }; export type RegisterWithEmailAndPasswordCallback = (email: string, password: string, options: T & MayHaveUpgradeToken) => Promise; export type RegisterAnonymouslyCallback = (options: T) => Promise; export type FindUserByEmailCallback = (email: string) => Promise<(unknown & { password: string; }) | null | undefined>; export type SendEmailConfirmationCallback = (email: string, html: string, confirmLink: string) => Promise; export type EmailConfirmedCallback = (email: string) => Promise; export type ForgotPasswordCallback = (email: string, html: string, resetLink: string) => Promise; export type ResetPasswordCallback = (email: string, password: string) => Promise; export type ParseTokenCallback = (token: JwtPayload) => Promise | unknown; export type GenerateTokenCallback = (userdata: unknown) => Promise; export type HashPasswordCallback = (password: string) => Promise; export interface AuthSettings { onFindUserByEmail: FindUserByEmailCallback; onRegisterWithEmailAndPassword: RegisterWithEmailAndPasswordCallback; onRegisterAnonymously: RegisterAnonymouslyCallback; onSendEmailConfirmation?: SendEmailConfirmationCallback; onEmailConfirmed?: EmailConfirmedCallback; onForgotPassword?: ForgotPasswordCallback; onResetPassword?: ResetPasswordCallback; onOAuthProviderCallback?: OAuthProviderCallback; onParseToken?: ParseTokenCallback; onGenerateToken?: GenerateTokenCallback; onHashPassword?: HashPasswordCallback; } export declare const auth: { /** * Backend URL (used for OAuth callbacks and email confirmation links) */ backend_url: string; /** * OAuth utilities */ oauth: { defaults: import("grant").GrantProvider & { prefix: never; }; prefix: string; providers: { [providerId in import("./oauth.ts").OAuthProviderName]: import("./oauth.ts").OAuthProviderConfig; }; addProvider: (providerId: import("./oauth.ts").OAuthProviderName, config: import("./oauth.ts").OAuthProviderConfig) => void; onCallback: (callback: OAuthProviderCallback) => void; routes: (callback?: OAuthProviderCallback) => Router; transformProfileData(raw: any): any; }; settings: AuthSettings; prefix: string; /** * Middleware that verifies JsonWebTokens. * Works with both Express and better-call. * * Express: sets `req.auth` * better-call: decoded JWT payload is available in `ctx.context.auth` */ middleware: (options?: import("jsonwebtoken").VerifyOptions) => import("./JWT.ts").JWTAuthMiddleware; routes: (settings?: Partial) => Router; };