fingerprinter-js
Version:
Enterprise-grade browser fingerprinting with 19 collectors and advanced bot detection
50 lines • 1.45 kB
TypeScript
/**
* Base Collector Class
* Abstract base class for all fingerprint collectors
*/
import { CollectorCategory, CollectorMetadata, ComponentCollector } from "../types";
/**
* Abstract base class for collectors
*/
export declare abstract class BaseCollector<T = unknown> implements ComponentCollector<T> {
abstract readonly name: string;
abstract readonly metadata: CollectorMetadata;
/**
* Collect fingerprint data
* Override this method in subclasses
*/
abstract collect(): Promise<T> | T;
/**
* Check if collector is supported
* Override in subclasses for specific checks
*/
isSupported(): boolean;
/**
* Safe collection with error handling
*/
protected safeCollect<R>(fn: () => R, defaultValue: R): R;
/**
* Create metadata helper
*/
protected static createMetadata(name: string, options?: {
weight?: number;
entropy?: number;
stable?: boolean;
category?: CollectorCategory;
}): CollectorMetadata;
}
/**
* Async base collector with timeout support
*/
export declare abstract class AsyncBaseCollector<T = unknown> extends BaseCollector<T> {
protected timeout: number;
/**
* Set collector timeout
*/
setTimeout(ms: number): this;
/**
* Wrap async operation with timeout
*/
protected withTimeout<R>(promise: Promise<R>, fallback: R): Promise<R>;
}
//# sourceMappingURL=base.d.ts.map