eye-analysis
Version:
Eye Analysis - Browser-based eye tracking and screen recording library for research and experiments
41 lines • 1.55 kB
TypeScript
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