type VirtualKeypadVersion = "MATH_INPUT_KEYPAD_V2" | "REACT_NATIVE_KEYPAD"; /** * A type union of all the events that any package in the Perseus ecosystem can * send. */ export type PerseusAnalyticsEvent = { type: "perseus:expression-evaluated"; payload: { virtualKeypadVersion: VirtualKeypadVersion; result: "correct" | "incorrect" | "invalid"; }; } | { type: "perseus:expression-focused"; payload: null; } | { type: "perseus:widget-rendering-error:ti"; payload: { widgetSubType: string; widgetType: string; widgetId: string; message: string; stack: string; userAgent: string; }; } | { type: "perseus:widget:rendered:ti"; payload: { widgetSubType: string; widgetType: string; widgetId: string; }; } | { type: "perseus:label-image:toggle-answers-hidden"; payload: null; } | { type: "perseus:label-image:marker-interacted-with"; payload: null; } | { type: "perseus:label-image:choiced-interacted-with"; payload: null; } | { type: "perseus:label-image:toggle-answers-hidden:ti"; payload: null; } | { type: "perseus:label-image:marker-interacted-with:ti"; payload: null; } | { type: "perseus:label-image:choiced-interacted-with:ti"; payload: null; } | { type: "perseus:image:explore-modal-opened:ti"; payload: { widgetSubType: string; widgetId: string; }; } | { type: "perseus:image:explore-modal-closed:ti"; payload: { durationMs: number; widgetSubType: string; widgetId: string; }; } | { type: "math-input:keypad-closed"; payload: { virtualKeypadVersion: VirtualKeypadVersion; }; } | { type: "math-input:keypad-opened"; payload: { virtualKeypadVersion: VirtualKeypadVersion; }; }; /** A function that is called when Perseus emits an analytics event. */ export type AnalyticsEventHandlerFn = (event: PerseusAnalyticsEvent) => Promise; export {};