///
import { EventEmitter } from 'events';
import { SerialPortOptions } from "../../tstype";
import { ZiGateCommandCode, ZiGateObjectPayload } from "./constants";
import ZiGateObject from "./ziGateObject";
import { ZiGateResponseMatcher } from "./commandType";
declare type WaitressMatcher = {
ziGateObject: ZiGateObject;
rules: ZiGateResponseMatcher;
};
export default class ZiGate extends EventEmitter {
private path;
private baudRate;
private rtscts;
private initialized;
private parser;
private serialPort;
private seqNumber;
private portType;
private socketPort;
private queue;
portWrite: any;
private waitress;
constructor(path: string, serialPortOptions: SerialPortOptions);
static isValidPath(path: string): Promise;
static autoDetectPath(): Promise;
open(): Promise;
close(): Promise;
sendCommand(code: ZiGateCommandCode, payload?: ZiGateObjectPayload): Promise;
waitFor(matcher: WaitressMatcher, timeout?: number): {
start: () => {
promise: Promise;
ID: number;
};
ID: number;
};
private openSerialPort;
private openSocketPort;
private onSerialError;
private onPortClose;
private onSerialData;
private waitressTimeoutFormatter;
private waitressValidator;
}
export {};
//# sourceMappingURL=zigate.d.ts.map