fingerprinter-js
Version:
Enterprise-grade browser fingerprinting with 19 collectors and advanced bot detection
83 lines • 2.56 kB
TypeScript
import { FingerprintEngineConfig, FingerprintResult, FingerprintOptions, SuspectAnalysisConfig } from '../types';
/**
* Advanced Fingerprint Engine with Dependency Injection
* Implements SOLID principles and provides enterprise-grade functionality
*
* Key features:
* - Dependency injection for collectors and detectors
* - Configurable performance settings
* - Comprehensive error handling and recovery
* - Parallel and sequential collection modes
* - Performance monitoring and optimization
*/
export declare class FingerprintEngine {
private readonly config;
private readonly analyzer;
private readonly performanceMetrics;
constructor(config: FingerprintEngineConfig);
/**
* Generate a comprehensive fingerprint with full analysis
*/
generate(): Promise<FingerprintResult>;
/**
* Collect components from all configured collectors
*/
private collectComponents;
/**
* Collect components in parallel for better performance
*/
private collectComponentsParallel;
/**
* Collect components sequentially for better error isolation
*/
private collectComponentsSequential;
/**
* Execute a collector with timeout protection
*/
private executeCollectorWithTimeout;
/**
* Calculate confidence score based on collection results
*/
private calculateConfidence;
/**
* Generate fingerprint hash from components
*/
private generateFingerprintHash;
/**
* Normalize components for consistent hashing
*/
private normalizeComponents;
/**
* Normalize individual values for consistent hashing
*/
private normalizeValue;
/**
* Validate and normalize configuration
*/
private validateAndNormalizeConfig;
/**
* Get performance metrics from last collection
*/
getPerformanceMetrics(): Readonly<Record<string, number>>;
/**
* Get available collectors
*/
getAvailableCollectors(): ReadonlyArray<string>;
/**
* Get available detectors
*/
getAvailableDetectors(): ReadonlyArray<string>;
/**
* Get configuration
*/
getConfig(): FingerprintEngineConfig;
/**
* Create a new engine with modified options
*/
withOptions(options: Partial<FingerprintOptions>): FingerprintEngine;
/**
* Create a new engine with modified suspect configuration
*/
withSuspectConfig(suspectConfig: Partial<SuspectAnalysisConfig>): FingerprintEngine;
}
//# sourceMappingURL=fingerprint-engine.d.ts.map