export type UserDetails = { userId: string; secret: string; accountId?: string | null; test?: string; }; export type LogMessage = { action: string; message: string; code: number; data?: unknown; }; export type BehavioralData = { keystrokeDynamics?: KeystrokeData[]; mouseInteractions?: MouseData[]; touchInteractions?: TouchData[]; deviceHandlingPatterns?: DeviceHandlingData[]; timestamp: string; }; export type BehavioralMetrics = { timestamp: string; mean_key_hold_time: number; std_key_hold_time: number; mean_interkey_delay: number; typing_speed_chars_per_sec: number; backspace_count: number; ngram_timing_mean: number; keyboard_focus_loss_freq: number; touch_event_rate: number; tap_duration_mean: number; swipe_length_mean: number; swipe_velocity_mean: number; swipe_angle_distribution: number; double_tap_interval_mean: number; num_swipes: number; num_taps: number; orientation_change_rate: number; mean_touch_pressure: number; std_touch_pressure: number; touch_area_mean: number; rotationVector: number; deviceVelocity: number; gravity: number; gyroscope: number; }; export type KeystrokeData = { key: string; keyCode: number; timestamp: number; timeBetweenKeys?: number; typingSpeed?: number; inputField?: string; }; export type MouseData = { eventType: 'click' | 'move' | 'scroll' | 'drag'; x: number; y: number; timestamp: number; element?: string; movementX?: number; movementY?: number; }; export type TouchData = { eventType: 'touchstart' | 'touchmove' | 'touchend'; x: number; y: number; timestamp: number; touchCount?: number; }; export type DeviceHandlingData = { orientation?: string; motion?: { acceleration: { x: number; y: number; z: number; }; rotation: { alpha: number; beta: number; gamma: number; }; }; timestamp: number; }; export type FRMWidgetProps = { baseUrl: string; ipInfoToken: string; type: "login" | "transaction" | "updateMFAStatus"; deviceDetails?: DeviceInfo; userDetails: UserDetails; trackingId?: string; paymentMode?: "NETBANKING" | "UPI" | "CARD" | "ATM" | "netbanking" | "upi" | 'card' | 'atm'; transactionDetails?: TransactionDetails; onMessage: (arg: LogMessage) => void; pageLoadTime?: number; jwt?: undefined | string; mfaType?: "default" | "custom"; mfaStatus?: "pending" | "success" | "decline" | "failed"; onBehavioralData?: (data: BehavioralMetrics) => void; behavioralData?: BehavioralMetrics; behavioralBiometrics?: BehavioralMetrics; }; export type UserInfo = { userid?: string; accountid?: string; email?: string; phone?: string; }; export type LoginResultData = { actionNeeded?: string; trackingId?: string; jwt?: string; userId?: string; authType?: string; user?: { userid?: string; accountid?: string; email?: string; phone?: string; [key: string]: unknown; }; action?: actionTypes; }; export type actionTypes = "byPassMFA" | "requiredMFA" | "decline" | "review" | "Require MFA"; export type DeviceResultData = { deviceId?: string; }; export type ApiResponse = { resultCode?: number; resultData?: LoginResultData; resultMessage?: string; timestamp?: Date | string; transaction_currency: string; }; export interface User { userid: string; accountid: string; } export interface MFADialogProps { open: boolean; onClose: () => void; baseUrl: string; handleFinalCall: (status: number) => void; responseData: LoginResultData | undefined; deviceData: DeviceInfo | null | Record; logAction: (action: string, message: string, code: number, data?: unknown) => void; userDetails: UserDetails; } export interface CircularProgressWithLabelProps { value: number; } export interface DataJSONBodyProps { type: number; device_id?: string; device_type?: string; operating_system_and_version?: string; browser_version?: string; ip_address?: string; latitude?: string | number; longitude?: string | number; timestamp: string; time_taken_to_login?: number; time_taken_to_complete_transaction?: number; screen_resolution?: string; transaction_amount?: string; transaction_type?: string; recipient_details?: string; recipient_bank_name?: string; transaction_category?: string; transaction_currency?: string; transaction_frequency?: string; recipient_account_no?: string | number; wallet_id?: string; payment_mode?: string; upi_id?: string; recipient_ifsc_code?: string; ifsc_code?: string; sender_upi_id?: string; account_no?: number | string; bank_name?: number | string; debit_card_no?: number | string; debit_card_expiry?: string; debit_card_cvv?: number | string; credit_card_no?: number | string; credit_card_expiry?: string; credit_card_cvv?: number | string; device_fingerprint?: string; device_model?: string; isp_name?: string; network_type?: string; time_zone?: string; vpn_check?: string; behavioralBiometrics?: any; behavioralData?: any; [key: string]: unknown; } export interface DeviceInfo extends GenericObject { latitude: string | number; longitude: string | number; carrier_name: string; browser_name: string; device_type: string; engine_name: string; mobile_vendor: string; os_name: string; screen_resolution: string; device_language: string; device_id: string; [key: string]: unknown; behavioralData?: BehavioralData; } export interface GeolocationData { ip?: string; loc?: string; latitude?: string; longitude?: string; postal?: string; org?: string; privacy?: { vpn?: boolean; }; [key: string]: unknown; } export type MimeType = { pattern: string; mime: string; }; export type GenericObject = { [key: string]: T; }; export interface TransactionDetails extends GenericObject { time_taken_to_complete_transaction?: number; screen_resolution?: string; transaction_amount?: string; transaction_type?: string; recipient_details?: string; recipient_bank_name?: string; transaction_category?: string; transaction_currency?: string; transaction_frequency?: string; recipient_account_no?: string | number; transactionId?: string; wallet_id?: string; payment_mode?: string; upi_id?: string; recipient_ifsc_code?: string; ifsc_code?: string; sender_upi_id?: string; account_no?: number | string; bank_name?: number | string; debit_card_no?: number | string; debit_card_expiry?: string; debit_card_cvv?: number | string; credit_card_no?: number | string; credit_card_expiry?: string; credit_card_cvv?: number | string; device_fingerprint?: string; device_model?: string; isp_name?: string; network_type?: string; time_zone?: string; vpn_check?: string; }