humanbehavior-js
Version:
SDK for HumanBehavior session and event recording
112 lines • 2.87 kB
TypeScript
/**
* Property Manager for HumanBehavior SDK
* Handles automatic properties, session properties, and user properties
*/
export interface Properties {
[key: string]: any;
}
export interface PropertyManagerConfig {
enableAutomaticProperties?: boolean;
enableSessionProperties?: boolean;
enableUserProperties?: boolean;
propertyDenylist?: string[];
}
export declare class PropertyManager {
private config;
private automaticProperties;
private sessionProperties;
private userProperties;
private initialProperties;
private isInitialized;
constructor(config?: PropertyManagerConfig);
/**
* Initialize the property manager
*/
private initialize;
/**
* Get all properties for an event
*/
getEventProperties(eventProperties?: Properties): Properties;
/**
* Get automatic properties
*/
getAutomaticProperties(): Properties;
/**
* Get automatic properties with GeoIP data merged in
*/
getAutomaticPropertiesWithGeoIP(geoIPProperties?: Record<string, any>): Properties;
/**
* Set a session property
*/
setSessionProperty(key: string, value: any): void;
/**
* Set multiple session properties
*/
setSessionProperties(properties: Properties): void;
/**
* Get a session property
*/
getSessionProperty(key: string): any;
/**
* Remove a session property
*/
removeSessionProperty(key: string): void;
/**
* Set a user property
*/
setUserProperty(key: string, value: any): void;
/**
* Set multiple user properties
*/
setUserProperties(properties: Properties): void;
/**
* Get a user property
*/
getUserProperty(key: string): any;
/**
* Remove a user property
*/
removeUserProperty(key: string): void;
/**
* Set a property only if it hasn't been set before
*/
setOnce(key: string, value: any, scope?: 'session' | 'user'): void;
/**
* Clear all session properties
*/
clearSessionProperties(): void;
/**
* Clear all user properties
*/
clearUserProperties(): void;
/**
* Reset all properties
*/
reset(): void;
/**
* Load session properties from sessionStorage
*/
private loadSessionProperties;
/**
* Save session properties to sessionStorage
*/
private saveSessionProperties;
/**
* Apply property denylist
*/
private applyDenylist;
/**
* Update automatic properties (call when page changes)
*/
updateAutomaticProperties(): void;
/**
* Get all properties for debugging
*/
getAllProperties(): {
automatic: Properties;
session: Properties;
user: Properties;
initial: Properties;
};
}
//# sourceMappingURL=property-manager.d.ts.map