import * as utils from '../utils'; import { ISiDevice, ISiDeviceDriverData } from './ISiDevice'; export interface ISiDeviceDriver> { name: string; open: (device: ISiDevice) => Promise; close: (device: ISiDevice) => Promise; receive: (device: ISiDevice) => Promise; send: (device: ISiDevice, buffer: number[]) => Promise; } export interface ISiDeviceDriverWithDetection, U extends Array> extends ISiDeviceDriver { detect: (...args: U) => Promise>; } export declare class SiDeviceAddEvent> extends utils.Event<'add'> { siDevice: ISiDevice; constructor(siDevice: ISiDevice); } export declare class SiDeviceRemoveEvent> extends utils.Event<'remove'> { siDevice: ISiDevice; constructor(siDevice: ISiDevice); } export type SiDeviceDriverWithAutodetectionEvents> = { 'add': SiDeviceAddEvent; 'remove': SiDeviceRemoveEvent; }; export interface ISiDeviceDriverWithAutodetection> extends ISiDeviceDriver, utils.IEventTarget> { startAutoDetection: () => Promise[]>; stopAutoDetection: () => Promise; } //# sourceMappingURL=ISiDeviceDriver.d.ts.map