export type Sensitivity = 'low' | 'medium' | 'high'; export type CollectorMode = 'passive' | 'active'; export interface CollectorContext { global: any; window: any; document: Document | null; navigator: Navigator | null; screen: Screen | null; crypto: Crypto | null; consent: unknown; now: () => number; } export interface CollectorDefinition { id: string; version?: string; category?: string; sensitivity?: Sensitivity; mode?: CollectorMode; stability?: 'stable' | 'volatile' | string; weight?: number; hashable?: boolean; includeInIdentity?: boolean; prepare?(context: CollectorContext): Prepared | Promise; collect(context: CollectorContext, prepared?: Prepared): T | Promise; } export interface Collector { id: string; version: string; category: string; sensitivity: Sensitivity; mode: CollectorMode; stability: string; weight: number; hashable: boolean; prepare: null | ((context: CollectorContext) => Prepared | Promise); collect(context: CollectorContext, prepared?: Prepared): T | Promise; } export function createCollector(definition: CollectorDefinition): Collector; export function createApiFeaturesCollector(): Collector; export function createBotDetectionCollector(): Collector; export function createDefaultCollectors(): Collector[]; export function createBrowserCollectorPack(): Collector[]; export function createCssFeaturesCollector(): Collector; export function createNetworkConnectionCollector(): Collector; export function createNavigatorPropertiesCollector(): Collector; export function createPerformanceMemoryCollector(): Collector; export function createPrivacyModeCollector(): Collector; export function createTamperEvidenceCollector(): Collector; export function createWebglPrecisionCollector(): Collector;