// Type definitions for node-hid 1.3 // Project: https://github.com/node-hid/node-hid#readme // Definitions by: Mohamed Hegazy // Robert Kiss // Rob Moran // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped import { EventEmitter } from 'events' export interface Device { vendorId: number productId: number path?: string | undefined serialNumber?: string | undefined manufacturer?: string | undefined product?: string | undefined release: number interface: number usagePage?: number | undefined usage?: number | undefined } export class HID extends EventEmitter { constructor(path: string, options?: { nonExclusive?: boolean }) constructor(vid: number, pid: number, options?: { nonExclusive?: boolean }) close(): void pause(): void read(callback: (err: any, data: number[]) => void): void readSync(): number[] readTimeout(time_out: number): number[] sendFeatureReport(data: number[] | Buffer): number getFeatureReport(report_id: number, report_length: number): number[] resume(): void write(values: number[] | Buffer): number setNonBlocking(no_block: boolean): void getDeviceInfo(): Device } export function devices(vid: number, pid: number): Device[] export function devices(): Device[] export function devicesAsync(vid: number, pid: number): Promise export function devicesAsync(): Promise export class HIDAsync extends EventEmitter { private constructor() static open(path: string, options?: { nonExclusive?: boolean }): Promise static open(vid: number, pid: number, options?: { nonExclusive?: boolean }): Promise close(): Promise pause(): void read(time_out?: number | undefined): Promise sendFeatureReport(data: number[] | Buffer): Promise getFeatureReport(report_id: number, report_length: number): Promise resume(): void write(values: number[] | Buffer): Promise setNonBlocking(no_block: boolean): Promise getDeviceInfo(): Promise } export function setDriverType(type: 'hidraw' | 'libusb'): void