import { ServiceProvider } from '@rudderjs/core'; import type { MiddlewareHandler } from '@rudderjs/contracts'; import type { AuthUser } from './contracts.js'; declare module '@rudderjs/contracts' { interface AppRequest { user?: AuthUser; } } import './types/vike.js'; export { Auth, auth } from './auth-manager.js'; export { AuthManager, runWithAuth, currentAuth, runWithTestUser, currentTestUser } from './auth-manager.js'; export { SessionGuard } from './session-guard.js'; export { EloquentUserProvider, toAuthenticatable } from './providers.js'; export { Gate, Policy, AuthorizationError } from './gate.js'; export { PasswordBroker, MemoryTokenRepository } from './password-reset.js'; export { EnsureEmailIsVerified, verificationUrl, handleEmailVerification, verifyEmailFromRequest, mustVerifyEmail } from './verification.js'; export { RequireGuest } from './require-guest.js'; export { newRememberToken, encodeRememberCookie, decodeRememberCookie, rememberCookieAttrs, } from './remember.js'; export type { RememberCookieAttrs, RememberDirective } from './remember.js'; export { BaseAuthController, DEFAULT_AUTH_RATE_LIMITS } from './base-auth-controller.js'; export type { AuthUserModelLike, AuthHashLike, AuthRateLimits } from './base-auth-controller.js'; export { Attempting, Validated, Login, Failed, Logout, Registered, PasswordReset } from './events.js'; export type { Authenticatable, AuthUser, Guard, UserProvider } from './contracts.js'; export type { MustVerifyEmail } from './verification.js'; export type { TokenRepository, PasswordResetStatus, PasswordResetConfig } from './password-reset.js'; export type { AuthConfig, AuthGuardConfig, AuthProviderConfig } from './auth-manager.js'; export type { SessionStore } from './session-guard.js'; /** * Serialize an `Authenticatable` for `req.user`. Drops: * - all functions (so prototype methods don't leak across the request boundary) * - the always-hidden columns above * - any column listed by the user's optional `getHidden()` method */ export declare function userToPlain(user: unknown): AuthUser; /** * Middleware that sets up the Auth context for the current request. * Attaches `req.user` if authenticated (does not block unauthenticated requests). */ export declare function AuthMiddleware(guardName?: string): MiddlewareHandler; /** * Middleware that requires authentication — returns 401 if not authenticated. */ export declare function RequireAuth(guardName?: string): MiddlewareHandler; /** * Returns an AuthServiceProvider configured with guards + providers. * * Requires: @rudderjs/session (session middleware), @rudderjs/hash * * Usage in bootstrap/providers.ts: * import { authProvider } from '@rudderjs/auth' * export default [session(configs.session), hash(configs.hash), authProvider(configs.auth), ...] * * Note: the lowercase `auth()` helper is a different export — it returns the * current request's AuthManager (Laravel's `auth()->user()` ergonomics). */ export declare class AuthProvider extends ServiceProvider { register(): void; boot(): Promise; } //# sourceMappingURL=index.d.ts.map