UNPKG

eye-analysis

Version:

Eye Analysis - Browser-based eye tracking and screen recording library for research and experiments

41 lines 1.55 kB
import type { GazePoint, GazePointInput } from "../recorder/types"; export interface TrackingStatus { connected: boolean; tracking: boolean; quality: "excellent" | "good" | "poor" | "unavailable"; message?: string; metadata?: Record<string, unknown>; } export interface ConnectionOptions { timeout?: number; retryAttempts?: number; retryDelay?: number; autoReconnect?: boolean; } export interface TrackingAdaptor { readonly id: string; readonly name: string; connect(): Promise<void>; disconnect(): Promise<void>; isConnected(): boolean; getStatus(): TrackingStatus; onStatusChange?: (status: TrackingStatus) => void; onError?: (error: Error) => void; } export interface DataProcessingAdaptor extends TrackingAdaptor { processRawData(rawData: unknown): Promise<GazePointInput | null>; } export interface FunctionBasedAdaptor extends TrackingAdaptor { setupFunction: (onGaze: (gazePoint: GazePointInput) => void) => (() => void) | undefined; } export type AdaptorFactory<T extends TrackingAdaptor = TrackingAdaptor> = (...args: unknown[]) => T; export type StatusChangeCallback = (status: TrackingStatus) => void; export type ErrorCallback = (error: Error) => void; export type GazeCallback = (gazePoint: GazePoint) => void; export interface AdaptorManagerState { adaptors: Map<string, TrackingAdaptor>; activeAdaptors: Set<string>; statusCallbacks: Map<string, StatusChangeCallback>; gazeCallbacks: Map<string, GazeCallback>; } //# sourceMappingURL=types.d.ts.map