diff --git a/index.d.ts b/index.d.ts
index faaf31c..ff4940d 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -1,6 +1,9 @@
///
///
+import { EventEmitter } from "events";
+import { StrictEventEmitter } from "strict-event-emitter-types";
+
// Expose classes
export class Position {
constructor(commitPosition: number|Long, preparePosition: number|Long);
@@ -305,7 +308,18 @@ export interface EventData {
readonly metadata: Buffer;
}
-export interface EventStoreNodeConnection {
+interface EventStoreNodeConnectionEvents {
+ connected: TcpEndPoint;
+ disconnected: TcpEndPoint;
+ reconnecting: void;
+ closed:string;
+ error: Error;
+ heartbeatInfo: HeartbeatInfo;
+}
+
+type EventStoreNodeConnectionEventEmitter = StrictEventEmitter;
+
+export class EventStoreNodeConnection extends (EventEmitter as { new(): EventStoreNodeConnectionEventEmitter }) {
connect(): Promise;
close(): void;
// write actions
@@ -332,9 +346,6 @@ export interface EventStoreNodeConnection {
// metadata actions
setStreamMetadataRaw(stream: string, expectedMetastreamVersion: Long|number, metadata: any, userCredentials?: UserCredentials): Promise;
getStreamMetadataRaw(stream: string, userCredentials?: UserCredentials): Promise;
-
- on(event: "connected" | "disconnected" | "reconnecting" | "closed" | "error" | "heartbeatInfo", listener: (arg: Error | string | TcpEndPoint | HeartbeatInfo) => void): this;
- once(event: "connected" | "disconnected" | "reconnecting" | "closed" | "error" | "heartbeatInfo", listener: (arg: Error | string | TcpEndPoint | HeartbeatInfo) => void): this;
}
// Expose helper functions
diff --git a/package.json b/package.json
index 5ee6acd..a155c3f 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
"dependencies": {
"@types/long": "^3.0.31",
"@types/node": "^6.0.47",
+ "strict-event-emitter-types": "^1.2.0",
"long": "^3.2",
"protobufjs": "^6.7.3",
"uuid": "^3.0.1"