import { ISiTargetMultiplexer } from '../SiStation/ISiTargetMultiplexer'; import * as utils from '../utils'; export declare enum SiDeviceState { Closed = 0, Opening = 1, Opened = 2, Closing = 3 } export interface ISiDeviceDriverData { driver: T; } export declare class DeviceClosedError extends utils.SiError { } export declare class SiDeviceStateChangeEvent extends utils.Event<'stateChange'> { siDevice: ISiDevice>; state: SiDeviceState; constructor(siDevice: ISiDevice>, state: SiDeviceState); } export declare class SiDeviceReceiveEvent extends utils.Event<'receive'> { siDevice: ISiDevice>; uint8Data: number[]; constructor(siDevice: ISiDevice>, uint8Data: number[]); } export type SiDeviceEvents = { 'stateChange': SiDeviceStateChangeEvent; 'receive': SiDeviceReceiveEvent; }; export interface ISiDevice> extends utils.IEventTarget { name: string; ident: string; state: SiDeviceState; setState: (newState: SiDeviceState) => void; data: T; siTargetMultiplexer?: ISiTargetMultiplexer; open: () => Promise>; close: () => Promise>; receiveLoop: () => void; shouldStopReceivingBecauseOfError: (error: unknown) => boolean; receive: () => Promise; send: (buffer: number[]) => Promise; } //# sourceMappingURL=ISiDevice.d.ts.map