type Result = { type: "success" } & T | { type: "error", message: string }; type Brightness = { type: "off" } | { type: "switch" } | { type: "dimmer", value: number } | { type: "strobe", value: number }; type MovingHeadState = { start_address: 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, // [255, 0] } type OutputHandle = { set: (heads: [MovingHeadState, MovingHeadState, MovingHeadState, MovingHeadState]) => Result<{}>, close: () => Result<{}>, } declare module rust_native_module { function listPorts(): Array; function openOutput(): Result; } export = rust_native_module;