import { UserRole } from "@arachnomesh/user-management"; import { Algorithm } from "jsonwebtoken"; export declare type UserSession = { sessionId: string; userId: string; createdAt: number; expire: number; expireAt: number; userAgent: string; userRole: string; userIP: string; privileges?: string[]; metadata?: any; }; export declare type User = { userID: string; email?: string; phone?: string; role: UserRole; metadata?: any; }; export declare type OTP = { id: string; expireTime: Date; createdAt: Date; OTP: string; }; export declare type ConfigData = { OTPConfigText?: string; StoreConfig?: StoreConfig; EmailTransportConfig?: EmailTransportConfig; SMSTransportConfig?: SMSTransportConfig; EncyptConfig?: EncyptConfig; UserManagerConfig?: UserManagerConfig; JWTConfig?: JWTConfig; }; export declare type StoreConfig = { URL: string; }; export declare type EmailTransportConfig = { Type: string; Host: string; Username: string; Password: string; EmailFrom: string; OTPConfigText: string; OTPMsgTemplate?: string; }; export declare type SMSTransportConfig = { OTPConfig: OTPConfig; }; export declare type EncyptConfig = { PrivateKey: string; IVString: string; }; export declare type OTPConfig = { AppID?: string; AppKey?: string; UserID?: string; Password?: string; mask?: string; from?: string; serviceProvider: SMSServiceProvider; }; export declare enum SMSServiceProvider { Twilio = "twilio", Gupsup = "gupsup" } export declare enum LoginMethod { Email = "Email", SMS = "SMS", Password = "Password" } export declare type UserManagerConfig = { Username: string; Password: string; Port: string; DBName: string; }; export declare type JWTConfig = { SecretKey: string; ExpireIn: number; Algorithm: Algorithm; };