export type UserDetails = {
    userId: string;
    secret: string;
    accountId?: string | null;
};
export type LogMessage = {
    action: string;
    message: string;
    code: number;
    data?: unknown;
};
export type FRMWidgetProps = {
    baseUrl: string;
    ipInfoToken: string;
    type: "login" | "transaction" | "updateMFAStatus";
    userDetails: UserDetails;
    trackingId?: string;
    paymentMode?: "NETBANKING" | "UPI" | "CARD" | "ATM" | "";
    transactionDetails?: TransactionDetails;
    onMessage: (arg: LogMessage) => void;
    pageLoadTime?: number;
    jwt?: undefined | string;
    mfaType?: "default" | "custom";
    mfaStatus?: "pending" | "success" | "decline" | "failed";
};
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;
    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;
}
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;
}
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<T = unknown> = {
    [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;
}
