diff --git a/socketty/socketty-tests.ts b/socketty/socketty-tests.ts
new file mode 100644
index 0000000000..22809a6b06
--- /dev/null
+++ b/socketty/socketty-tests.ts
@@ -0,0 +1,24 @@
+///
+
+/* Server */
+
+var httpServer = {}; // Assume it's a real HTTP server object
+
+var webSocketServer = socketty.createServer(httpServer);
+
+webSocketServer.connection((socket: SockettySocket) => {
+ console.log('Client connected');
+ socket.on('msg', (message?: any) => {
+ console.log('Client said' + message);
+ });
+ socket.disconnect(() => {
+ console.log('Goodbye, client!');
+ });
+});
+
+/* Client */
+
+socketty.connect('ws://localhost:8080', (socket: SockettySocket) => {
+ console.log('Connected !');
+ socket.send('msg', 'Hello server!');
+});
diff --git a/socketty/socketty.d.ts b/socketty/socketty.d.ts
new file mode 100644
index 0000000000..da7f825071
--- /dev/null
+++ b/socketty/socketty.d.ts
@@ -0,0 +1,57 @@
+// Type definitions for Socketty v0.2.2
+// Project: https://www.npmjs.com/package/socketty
+// Definitions by: Nax
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare var socketty: Socketty;
+
+declare module 'socketty' {
+ export = socketty;
+}
+
+interface Socketty {
+ /**
+ * Connect to a socketty server.
+ * @param url The server url
+ * @param callback The callback to be run when the connection is open
+ * @return A Socket
+ */
+ connect(url: string, callback: (socket: SockettySocket) => void): SockettySocket;
+
+ /**
+ * Create a socketty server.
+ * @param httpServer The HTTP server to use
+ * @return A socketty server
+ */
+ createServer(httpServer: any): SockettyServer;
+}
+
+interface SockettySocket {
+ /**
+ * Listen for an action.
+ * @param action The action to listen to
+ * @param callback A callback to be run when the action is fired
+ */
+ on(action: string, callback: (message?: any) => void): void;
+
+ /**
+ * Send an action, as well as an optional message.
+ * @param action The action to send
+ * @param message The message to send
+ */
+ send(action: string, message?: any): void;
+
+ /**
+ * Specify a callback to be run when the socket is disconnected.
+ * @param callback The disconnect callback
+ */
+ disconnect(callback: () => void): void;
+}
+
+interface SockettyServer {
+ /**
+ * Specify a callback to be run when a new socket connects to the server.
+ * @param callback The callback
+ */
+ connection(callback: (socket: SockettySocket) => void): void;
+}