import type { I_LoginSuccess, I_AuthHooks, SocialConfig, I_SocialUser, I_UserObject, I_LoginError, I_OAuthError, I_OAuthSuccess, I_TokenError, I_TokenIssued, I_Logout, I_TokenBlacklisted, I_TokenRefresh, I_SessionTimeout, I_Profile, I_MapProfileToUser } from './types/auth'; import type { RequestHandler } from 'express'; type Handler = RequestHandler; interface AuthConfig extends SocialConfig { jwtSecrets: { access: string; refresh: string; }; clientBaseUrl: string; getUserHandler: (user: I_SocialUser) => Promise; hooks?: I_AuthHooks; } interface InertiaAuthReturn { auth: { login: Handler; logout: Handler; refreshToken?: Handler; google?: Handler; facebook?: Handler; linkedin?: Handler; }; middleware: { authenticate: (options?: { autoRefresh?: boolean; }) => Handler; }; } declare const inertiaAuth: (config: AuthConfig) => InertiaAuthReturn; export default inertiaAuth; export type { I_SocialUser, I_UserObject, I_LoginSuccess, I_AuthHooks, I_LoginError, I_OAuthError, I_OAuthSuccess, I_TokenError, I_TokenIssued, I_Logout, I_TokenBlacklisted, I_TokenRefresh, I_SessionTimeout, I_Profile, I_MapProfileToUser };