export interface UXCamConfiguration { userAppKey: string; enableMultiSessionRecord?: boolean; enableCrashHandling?: boolean; enableAutomaticScreenNameTagging?: boolean; enableAdvancedGestureRecognition?: boolean; enableNetworkLogging?: boolean; enableIntegrationLogging?: boolean; occlusions?: UXCamOcclusionConfig[]; } export interface UXCamOcclusionConfig { type: UXCamOcclusionType; screens?: string[]; excludeMentionedScreens?: boolean; name?: string; blurRadius?: number; hideGestures?: boolean; color?: number; recognitionLanguages?: string[]; } export declare enum UXCamOcclusionType { Blur = 1, Overlay = 2, OccludeAllTextFields = 3, AITextOcclusion = 4 } export interface UXCamPlugin { /** * Start UXCam with full configuration */ startWithConfiguration(options: { configuration: UXCamConfiguration; }): Promise<{ sessionUrl: string; }>; /** * Apply an occlusion setting */ applyOcclusion(options: { occlusion: UXCamOcclusionConfig; }): Promise; /** * Remove an occlusion setting */ removeOcclusion(options?: { occlusion?: UXCamOcclusionConfig; }): Promise; /** * Stop the current session and upload data */ stopSessionAndUploadData(): Promise; /** * Allow a short break for another app */ allowShortBreakForAnotherApp(options: { continueSession: boolean; }): Promise; /** * Start a new session */ startNewSession(): Promise; /** * Cancel the current session */ cancelCurrentSession(): Promise; /** * Check if recording is in progress */ isRecording(): Promise<{ isRecording: boolean; }>; /** * Pause screen recording */ pauseScreenRecording(): Promise; /** * Resume screen recording */ resumeScreenRecording(): Promise; /** * Get pending uploads count */ pendingUploads(): Promise<{ count: number; }>; /** * Delete pending uploads */ deletePendingUploads(): Promise; /** * Get pending session count */ pendingSessionCount(): Promise<{ count: number; }>; /** * Upload pending sessions */ uploadPendingSession(): Promise<{ success: boolean; }>; /** * Occlude all text fields */ occludeAllTextFields(options: { occlude: boolean; }): Promise; /** * Tag the current screen with a name */ tagScreenName(options: { screenName: string; }): Promise; /** * Set user identity */ setUserIdentity(options: { identity: string; }): Promise; /** * Set a user property */ setUserProperty(options: { key: string; value: string; }): Promise; /** * Log an event */ logEvent(options: { eventName: string; }): Promise; /** * Log an event with properties */ logEventWithProperties(options: { eventName: string; properties: Record; }): Promise; /** * Get URL for current user */ urlForCurrentUser(): Promise<{ url: string; }>; /** * Get URL for current session */ urlForCurrentSession(): Promise<{ url: string; }>; /** * Opt out overall */ optOutOverall(): Promise; /** * Opt out of schematic recordings */ optOutOfSchematicRecordings(): Promise; /** * Opt in overall */ optInOverall(): Promise; /** * Opt into schematic recordings */ optIntoSchematicRecordings(): Promise; /** * Get opt-in overall status */ optInOverallStatus(): Promise<{ status: boolean; }>; /** * Get opt-in schematic recording status */ optInSchematicRecordingStatus(): Promise<{ status: boolean; }>; } //# sourceMappingURL=definitions.d.ts.map