/** * @tracetail/react - React Hooks for Enterprise Browser Fingerprinting * Version: 2.3.4 * * Over 99.5% accuracy browser fingerprinting with React hooks and server-side processing. * Perfect for fraud detection, user analytics, and security applications. */ import type { FC, ReactNode } from 'react'; import { FingerprintOptions, FingerprintResult } from '@tracetail/js'; import type { ComplianceContext } from '@tracetail/js'; export interface UseTraceTailOptions extends FingerprintOptions { immediate?: boolean; suspense?: boolean; } export interface UseTraceTailReturn { fingerprint: FingerprintResult | null; loading: boolean; error: Error | null; generate: () => Promise; regenerate: () => Promise; } /** * React hook for basic browser fingerprinting * * @example * ```typescript * import { useTraceTail } from '@tracetail/react'; * * function MyComponent() { * const { fingerprint, loading, error } = useTraceTail({ * apiKey: 'your-api-key', * immediate: true * }); * * if (loading) return
Generating fingerprint...
; * if (error) return
Error: {error.message}
; * * return
Visitor ID: {fingerprint?.visitorId}
; * } * ``` */ export declare function useTraceTail(options: UseTraceTailOptions): UseTraceTailReturn; /** * React hook for visitor identification with persistent storage * * @example * ```typescript * import { useVisitorId } from '@tracetail/react'; * * function UserTrackingComponent() { * const { visitorId, isReturningVisitor, loading } = useVisitorId({ * apiKey: 'your-api-key', * storageKey: 'app_visitor_id' * }); * * return ( *
*

Visitor: {visitorId}

*

Status: {isReturningVisitor ? 'Returning' : 'New'} visitor

*
* ); * } * ``` */ export declare function useVisitorId(options: UseTraceTailOptions & { storageKey?: string; }): { visitorId: string | null; isReturningVisitor: boolean; loading: boolean; error: Error | null; refresh: () => Promise; }; /** * React hook returning client-side privacy / region compliance signals. * * The context is computed ONCE on mount (the underlying signals — timezone, * locale, GPC, DNT — do not change during a session) and memoized for the * lifetime of the component. SSR-safe: during server render it returns the same * safe defaults as `getComplianceContext()`. * * These are CLIENT-SIDE HEURISTICS, not authoritative geolocation, and do NOT * gate or alter fingerprint collection. Use `likelyRequiresConsent` together * with your own consent state to decide whether to collect a fingerprint — * obtaining consent where required (EU ePrivacy/GDPR, UK PECR, etc.) is the * merchant's responsibility. * * @example * ```typescript * import { useComplianceContext, useTraceTail } from '@tracetail/react'; * * function Tracker({ hasConsent }: { hasConsent: boolean }) { * const compliance = useComplianceContext(); * const shouldCollect = !compliance.likelyRequiresConsent || hasConsent; * const { fingerprint } = useTraceTail({ immediate: shouldCollect }); * return shouldCollect ? {fingerprint?.visitorId} : null; * } * ``` */ export declare function useComplianceContext(): ComplianceContext; export type { FingerprintOptions, FingerprintResult, ComponentData, ComplianceContext, ComplianceRegion } from '@tracetail/js'; export { TraceTail, getComplianceContext } from '@tracetail/js'; interface TraceTailProviderProps { children: ReactNode; apiKey: string; options?: Partial; } export declare const TraceTailProvider: FC; /** * Get the current React package version */ export declare const getVersion: () => string; declare const _default: { useTraceTail: typeof useTraceTail; useVisitorId: typeof useVisitorId; useComplianceContext: typeof useComplianceContext; TraceTailProvider: FC; getVersion: () => string; }; export default _default;