///
///
import { EventEmitter } from 'events';
import { SerialPort } from '../../serialPort';
import net from "net";
import { SerialPortOptions } from "../../tstype";
import { ZiGateCommandCode, ZiGateObjectPayload } from "./constants";
import ZiGateObject from "./ziGateObject";
import { ZiGateResponseMatcher } from "./commandType";
type WaitressMatcher = {
ziGateObject: ZiGateObject;
rules: ZiGateResponseMatcher;
extraParameters?: object;
};
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: SerialPort | net.Socket;
private waitress;
constructor(path: string, serialPortOptions: SerialPortOptions);
sendCommand(code: ZiGateCommandCode, payload?: ZiGateObjectPayload, timeout?: number, extraParameters?: object, disableResponse?: boolean): Promise;
static isValidPath(path: string): Promise;
static autoDetectPath(): Promise;
open(): Promise;
close(): Promise;
waitFor(matcher: WaitressMatcher, timeout?: number): {
start: () => {
promise: Promise;
ID: number;
};
ID: number;
};
private openSerialPort;
private openSocketPort;
private onPortError;
private onPortClose;
private onSerialData;
private waitressTimeoutFormatter;
private waitressValidator;
}
export {};
//# sourceMappingURL=zigate.d.ts.map