@fenil265/fundly-payment-sdk
Version:
Fundly Payment SDK for seamless integration with Fundly Pay systems.
91 lines • 3.52 kB
TypeScript
/**
* Analytics Service
* Central service for managing analytics tracking in the Payment SDK
*/
import type { IAnalyticsProvider, AnalyticsConfig } from './types';
declare class AnalyticsService {
private static instance;
private provider;
private enabled;
private constructor();
static getInstance(): AnalyticsService;
/**
* Configure analytics with a custom provider or CleverTap config
*/
configure(config: AnalyticsConfig): void;
/**
* Set a custom analytics provider
*/
setProvider(provider: IAnalyticsProvider | null): void;
/**
* Check if analytics is enabled and configured
*/
isEnabled(): boolean;
/**
* Set user identity for analytics tracking
* This should be called after user login to associate all subsequent events with the user
*/
setUserIdentity(identity: string, profileData?: Record<string, unknown>): void;
/**
* Helper to map payment mode from API format to analytics format
*/
private mapPaymentMode;
/**
* Track payment initiated event
*/
trackPaymentInitiated(paymentMode: string, amount: number, invoiceCount: number, transactionId?: string, salesmanId?: number, salesmanName?: string, invoiceIds?: string, additionalDetails?: {
chemistName?: string;
chemistId?: string;
chemistCode?: string;
mobileNumber?: string;
distributorId?: string;
distributorName?: string;
partyCode?: string;
transactionDate?: string;
transactionDateFormatted?: string;
}, salesmanPhone?: string): void;
/**
* Track payment link generated event
*/
trackPaymentLinkGenerated(amount: number, invoiceCount: number, paymentLink: string, transactionId?: string, salesmanId?: number, salesmanName?: string, invoiceIds?: string): void;
/**
* Track payment QR generated event
*/
trackPaymentQRGenerated(amount: number, invoiceCount: number, qrExpiry: number, transactionId?: string, salesmanId?: number, salesmanName?: string, invoiceIds?: string): void;
/**
* Track payment success event
*/
trackPaymentSuccess(paymentMode: string, amount: number, invoiceCount: number, transactionId?: string, salesmanId?: number, salesmanName?: string, invoiceIds?: string, additionalDetails?: {
paymentType?: string;
paymentDate?: string | null;
transactionDate?: string;
transactionDateFormatted?: string;
distributorId?: string;
distributorName?: string;
chemistId?: string;
chemistName?: string;
chemistCode?: string;
mobileNumber?: string;
partyCode?: string;
upiTxnRefNo?: string | null;
}, salesmanPhone?: string): void;
/**
* Track payment failed event
*/
trackPaymentFailed(paymentMode: string, amount: number, invoiceCount: number, error?: string, transactionId?: string, salesmanId?: number, salesmanName?: string, invoiceIds?: string, additionalDetails?: {
paymentType?: string;
paymentDate?: string | null;
transactionDate?: string;
distributorId?: string;
distributorName?: string;
chemistId?: string;
chemistName?: string;
chemistCode?: string;
mobileNumber?: string;
partyCode?: string;
upiTxnRefNo?: string | null;
}): void;
}
export declare const analyticsService: AnalyticsService;
export {};
//# sourceMappingURL=analytics.service.d.ts.map