partylights/rust_native_module/index.d.ts
2021-11-08 18:14:03 +01:00

31 lines
806 B
TypeScript

type Result<T> =
{ 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<string>;
function openOutput(): Result<OutputHandle>;
}
export = rust_native_module;