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"