partylights/rust_native_module/index.d.ts
2021-11-09 11:25:24 +01:00

42 lines
1.1 KiB
TypeScript

declare module rust_native_module {
type Result<T> =
{ type: "success" } & T
| { type: "error", message: string };
type Option<T> =
{ 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, // [255, 0]
}
type OutputHandle = {
set: (heads: Array<MovingHeadState>) => Result<{}>,
close: () => Result<{}>,
}
type BeatTrackerHandle = {
tap: () => void,
getProgress: () => Option<number>,
}
function listPorts(): Array<string>;
function openOutput(): Result<OutputHandle>;
function getBeatTracker(): Result<BeatTrackerHandle>;
}
export = rust_native_module;