@vscubing/cubing
Version:
A collection of JavaScript cubing libraries.
44 lines (40 loc) • 1.48 kB
TypeScript
import { A as AlgLeaf, K as KPattern } from './PuzzleLoader-B4x8OB3B.js';
interface StreamTransformer {
transformAlgLeaf(algLeafEvent: AlgLeafEvent): void;
transformOrientation(orientationEvent: OrientationEvent): void;
}
/******** BluetoothPuzzle ********/
/** @category Smart Puzzles */
interface AlgLeafEvent {
latestAlgLeaf: AlgLeaf;
timeStamp: number;
debug?: Record<string, unknown>;
pattern?: KPattern;
quaternion?: any;
}
/** @category Smart Puzzles */
interface OrientationEvent {
quaternion: {
x: number;
y: number;
z: number;
w: number;
};
timeStamp: number;
debug?: Record<string, unknown>;
}
/** @category Smart Puzzles */
declare abstract class BluetoothPuzzle extends EventTarget {
transformers: StreamTransformer[];
protected listeners: Array<(e: AlgLeafEvent) => void>;
protected orientationListeners: Array<(e: OrientationEvent) => void>;
abstract name(): string | undefined;
abstract disconnect(): void;
getPattern(): Promise<KPattern>;
addAlgLeafListener(listener: (e: AlgLeafEvent) => void): void;
addOrientationListener(listener: (e: OrientationEvent) => void): void;
experimentalAddBasicRotationTransformer(): void;
protected dispatchAlgLeaf(algLeaf: AlgLeafEvent): void;
protected dispatchOrientation(orientationEvent: OrientationEvent): void;
}
export { type AlgLeafEvent as A, BluetoothPuzzle as B, type OrientationEvent as O };