/** * Parse active entitlements from a raw API payload into a consistent shape * @param {Object} [payload={}] - Raw payload from API or offline token * @returns {import('./types.js').Entitlement[]} Normalized entitlements array */ export function parseActiveEntitlements(payload?: any): import("./types.js").Entitlement[]; /** * Constant-time string comparison to mitigate timing attacks * @param {string} [a=""] - First string * @param {string} [b=""] - Second string * @returns {boolean} True if strings are equal */ export function constantTimeEqual(a?: string, b?: string): boolean; /** * Generate a canonical JSON string from an object (keys sorted) * This is crucial for consistent signature verification. * @param {Object} obj - The object to stringify * @returns {string} Canonical JSON string */ export function canonicalJsonStringify(obj: any): string; /** * Decode a Base64URL string to a Uint8Array * Works in both browser and Node.js environments. * @param {string} base64UrlString - The Base64URL encoded string * @returns {Uint8Array} Decoded bytes */ export function base64UrlDecode(base64UrlString: string): Uint8Array; /** * Simple hash function for generating device fingerprints * @param {string} str - String to hash * @returns {string} Base36 encoded hash */ export function hashCode(str: string): string; /** * Get canvas fingerprint for device identification * @returns {string} Canvas fingerprint or "no-canvas" if unavailable */ export function getCanvasFingerprint(): string; /** * Generate a stable device identifier based on browser characteristics. * The ID is deterministic - same device will produce the same ID across calls. * @returns {string} Stable device identifier */ export function generateDeviceId(): string; /** * Sleep for a specified duration * @param {number} ms - Duration in milliseconds * @returns {Promise} Resolves after the specified duration */ export function sleep(ms: number): Promise; /** * Get CSRF token from meta tag (for browser form submissions) * @returns {string} CSRF token or empty string if not found */ export function getCsrfToken(): string; //# sourceMappingURL=utils.d.ts.map