eye-analysis
Version:
Eye Analysis - Browser-based eye tracking and screen recording library for research and experiments
53 lines • 2.02 kB
TypeScript
import type { GazePointInput } from "../../recorder/types";
import type { FunctionBasedAdaptor, TrackingStatus } from "../types";
/**
* Custom adaptor setup function type
*/
export type CustomAdaptorSetupFunction = (onGaze: (gazePoint: GazePointInput) => void) => undefined | (() => void);
/**
* Custom adaptor options
*/
export interface CustomAdaptorOptions {
initialQuality?: "excellent" | "good" | "poor" | "unavailable";
autoStart?: boolean;
description?: string;
metadata?: Record<string, unknown>;
}
/**
* Create a custom function-based tracking adaptor
*/
export declare const createCustomAdaptor: (id: string, name: string, setupFunction: CustomAdaptorSetupFunction, options?: CustomAdaptorOptions) => FunctionBasedAdaptor;
/**
* Create a data-driven custom adaptor that processes external data
*/
export declare const createDataDrivenAdaptor: (id: string, name: string, options?: CustomAdaptorOptions) => {
adaptor: FunctionBasedAdaptor;
sendGazeData: (gazePoint: GazePointInput) => Promise<void>;
updateStatus: (newStatus: Partial<TrackingStatus>) => void;
};
/**
* Create a timer-based custom adaptor for testing
*/
export declare const createTimerAdaptor: (id: string, name: string, options?: {
interval?: number;
gazeGenerator?: () => GazePointInput;
autoStart?: boolean;
}) => FunctionBasedAdaptor;
/**
* Create a WebRTC-based custom adaptor
*/
export declare const createWebRTCAdaptor: (id: string, name: string, peerConnection: RTCPeerConnection, options?: CustomAdaptorOptions) => FunctionBasedAdaptor;
/**
* Validate custom adaptor configuration
*/
export declare const validateCustomAdaptorConfig: (id: string, name: string, setupFunction: CustomAdaptorSetupFunction) => string[];
/**
* Get example custom adaptor configurations
*/
export declare const getExampleAdaptorConfigs: () => Array<{
id: string;
name: string;
description: string;
setupFunction: CustomAdaptorSetupFunction;
}>;
//# sourceMappingURL=custom.d.ts.map