import { Configuration } from '../types'; export declare class AvatarSDK { private static _initializationState; private static _initializingPromise; private static _configuration; private static readonly _version; private static _avatarCore; private static _dynamicSdkConfig; private static _cachedDeviceScore; private static _rendererBackend; /** * Initialize SDK * @param appId Application ID to be included in both HTTP Headers and WebSocket Headers * @param configuration Configuration parameters */ static initialize(appId: string, configuration: Configuration): Promise; private static _initializeInternal; /** * Set sessionToken * Developer Client -> Developer Server -> AvatarKit Server -> return sessionToken (max 1 hour validity) * Include in WebSocket Headers for avatar WebSocket service authentication */ static setSessionToken(token: string): void; /** * Set userId * Optional interface for developers, SDK includes this in telemetry logs */ static setUserId(userId: string): void; static get isInitialized(): boolean; static get appId(): string | null; static get configuration(): Configuration | null; static get sessionToken(): string | null; static get userId(): string | null; static get version(): string; /** * Cleanup resources */ static cleanup(): void; /** * Device performance score (CPU + GPU). * CPU: matrix multiply throughput in Web Worker (warmup 1s + measure 1s). * GPU: WebGPU compute shader throughput (warmup 1s + measure 1s). * Returns 0 for GPU if WebGPU is not available. */ static deviceScore(): Promise<{ cpuScore: number; gpuScore: number; }>; private static readonly CPU_SCORE_THRESHOLD; private static readonly GPU_SCORE_THRESHOLD; /** * Check if the current device can run the avatar. * Runs a ~2s benchmark, reports device info and scores to PostHog. * Currently always returns true — thresholds will be calibrated from production data. */ static isDeviceSupported(): Promise; private static _getGPURenderer; }