diff --git a/tedious-connection-pool/tedious-connection-pool-tests.ts b/tedious-connection-pool/tedious-connection-pool-tests.ts
new file mode 100644
index 000000000..6c39fd201
--- /dev/null
+++ b/tedious-connection-pool/tedious-connection-pool-tests.ts
@@ -0,0 +1,56 @@
+// Type definitions for tedious-connection-pool
+// Project: https://github.com/pekim/tedious-connection-pool
+// Definitions by: Cyprien Autexier https://github.com/sandorfr
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+"use strict";
+
+import tediousConnectionPool = require("tedious-connection-pool");
+import tedious = require("tedious");
+
+var config: tedious.ConnectionConfig = {
+ userName: "rogier",
+ password: "rogiers password",
+ server: "127.0.0.1",
+ options: {
+ database: "somedb",
+ instance: "someinstance"
+ }
+};
+
+var poolConfig : tediousConnectionPool.PoolConfig = {
+ min: 1,
+ max: 4
+};
+
+var pool: tediousConnectionPool.ConnectionPool = new tediousConnectionPool(poolConfig, config);
+
+pool.on('error', (err: Error) => {
+ console.error(err);
+});
+
+pool.acquire((err: Error, connection: tediousConnectionPool.PooledConnection) =>{
+ console.log("hurray");
+ connection.beginTransaction((error: Error): void => {}, "some name");
+ connection.rollbackTransaction((error: Error): void => {});
+ connection.commitTransaction((error: Error): void => {});
+
+
+ var request = new tedious.Request("SELECT * FROM foo", (error: Error, rowCount: number): void => {
+ });
+ request.on("row", (row: tedious.ColumnValue[]): void => {
+ });
+ connection.execSql(request);
+
+ connection.release();
+
+
+ pool.drain();
+});
+
+
+
+
+
diff --git a/tedious-connection-pool/tedious-connection-pool.d.ts b/tedious-connection-pool/tedious-connection-pool.d.ts
new file mode 100644
index 000000000..b4ead6cfd
--- /dev/null
+++ b/tedious-connection-pool/tedious-connection-pool.d.ts
@@ -0,0 +1,104 @@
+// Type definitions for tedious-connection-pool
+// Project: https://github.com/pekim/tedious-connection-pool
+// Definitions by: Cyprien Autexier https://github.com/sandorfr
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module "tedious-connection-pool" {
+ import tedious = require('tedious');
+
+ module tcp {
+
+ /**
+ * Extends Tedious Connection with release function
+ */
+ export class PooledConnection extends tedious.Connection {
+ /**
+ * If the connection is issued from a connection pool returns the connection to the pool.
+ */
+ release():void;
+ }
+
+ /**
+ * Acquire function callback signature
+ */
+ export interface ConnectionCallback {
+ /**
+ * Provides a connection or an error
+ * @param err error if any
+ * @param connection issued from the pool
+ */
+ (err:Error, connection:PooledConnection): void;
+ }
+
+ /**
+ * Pool Configuration interface
+ */
+ export interface PoolConfig {
+
+ /**
+ * Minimum concurrent connections
+ */
+ min?: number;
+
+ /**
+ * Maximum concurrent connections
+ */
+ max?: number;
+
+ /**
+ * Defines if logging is activated
+ */
+ log?: boolean;
+
+ /**
+ * Idle timeout
+ */
+ idleTimeout?: number;
+
+ /**
+ * Retry delay
+ */
+ retryDelay?: number;
+
+ /**
+ * Acquire timeout
+ */
+ acquireTimeout?: number;
+ }
+
+ /**
+ * Tedious Connection Pool Interface
+ */
+ export interface ConnectionPool {
+
+ /**
+ * acquires a connection from the pool
+ * @param callback invoked when the connection is retrieved and ready
+ */
+ acquire(callback:ConnectionCallback):void;
+
+ /**
+ * listens for a specific connection pool event
+ * @param event the event name
+ * @param callback invoked when the event is raised
+ */
+ on(event:string, callback:Function):void;
+
+ /**
+ * closes opened connections
+ */
+ drain():void;
+ }
+ }
+
+ /**
+ * Connection Pool constructor
+ * @param poolConfig the pool configuration
+ * @param connectionConfig the connection configuration
+ */
+ function tcp(poolConfig:tcp.PoolConfig, connectionConfig:any): void;
+
+ export = tcp;
+}