declare module rust_native_module { type Result = { type: "success", value: T } | { type: "error", message: string }; type Option = { type: "some", value: T } | { type: "none" } type Brightness = { type: "off" } | { type: "switch" } | { type: "dimmer", value: number } | { type: "strobe", value: number }; type MovingHeadState = { startAddress: number, // [0, 512] pan: number, // [-3pi/2, 3pi/2] tilt: number, // [-pi/2, pi/2] brightness: Brightness, rgbw: [number, number, number, number], // RGBW, [0, 255] speed: number, // [0, 1] reset: boolean, } type OutputHandle = { set: (heads: Array) => Result, close: () => Result, } type BeatTrackerHandle = { tap: () => void, getProgress: () => Option, } function listPorts(): Array; function openOutput(port: string): Result; function getBeatTracker(): Result; } export = rust_native_module;