diff --git a/types/peer-dial/index.d.ts b/types/peer-dial/index.d.ts
new file mode 100644
index 0000000000..1c638ab3d4
--- /dev/null
+++ b/types/peer-dial/index.d.ts
@@ -0,0 +1,98 @@
+/** Declaration file generated by dts-gen */
+
+///
+///
+///
+
+import * as events from "events";
+import * as express from "express";
+import * as uuid from "node-uuid";
+
+//TODO: Needs namespaces for all of this.
+
+export class Server extends events.EventEmitter{
+ constructor(options: ServerOptions);
+
+ start(): void;
+
+ stop(): void;
+
+ corsOptionsAppsDelegate(req: string, callback: (err: any, data: CorsOptions) => void): void;
+
+}
+
+export interface CorsOptions {
+ origin: boolean;
+ methods: string[];
+ exposedHeaders: string[];
+}
+
+export interface ServerOptions {
+ expressApp: express.Express;
+ prefix: string;
+ port: number;
+ host: string;
+ uuid: uuid.UUIDOptions;
+ friendlyName: string;
+ manufacturer: string;
+ modelName: string;
+ maxContentLength: number;
+ extraHeaders: Object;
+ delegate: Delegate;
+ corsAllowOrigins: boolean;
+}
+
+export class Delegate {
+
+ getApp(appName: string) : App;
+
+ launchApp(appName: string, launchData: string, callback: (data: string) => void) : void;
+
+ stopApp(appName: string, pid: string, callback: (data: boolean) => void) : void;
+}
+
+export interface App {
+ name: string;
+ state: string;
+ allowStop: boolean;
+ pid: string;
+
+ launch(launchData: string): void;
+}
+
+export class Client extends events.EventEmitter {
+ constructor();
+
+ getDialDevice(deviceDescriptionUrl: string, callback?: (data: DialDevice, err: any) => void) : void;
+
+ start() : void;
+
+ refresh() : void;
+
+ stop() : void;
+}
+
+export class DialDevice {
+ constructor(deviceInfo: DeviceInfo);
+
+ getAppInfoXml(appName: string, callback?: (data: string, err: any) => void) :void;
+
+ getAppInfo(appName: string, callback?: (data: Object, err: any) => void): void;
+
+ launchApp(appName: string, launchData: string, contentType: string, callback?: (data: string, err: any) => void): void;
+
+ stopApp(appName: string, pid: string, callback?: (data: number, err: any) => void): void;
+}
+
+interface DeviceInfo {
+ descriptionUrl: string;
+ applicationUrl: string;
+ deviceType: string;
+ friendlyName: string;
+ manufacturer: string;
+ modelName: string;
+ UDN: string;
+ iconList: Object[] | {
+ icon: Object
+ };
+}
diff --git a/types/peer-dial/peer-dial-tests.ts b/types/peer-dial/peer-dial-tests.ts
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/types/peer-dial/peer-dial-tests.ts
@@ -0,0 +1 @@
+
diff --git a/types/peer-dial/tsconfig.json b/types/peer-dial/tsconfig.json
new file mode 100644
index 0000000000..5cfd0105d1
--- /dev/null
+++ b/types/peer-dial/tsconfig.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "peer-dial-tests.ts"
+ ]
+}
diff --git a/types/peer-dial/tslint.json b/types/peer-dial/tslint.json
new file mode 100644
index 0000000000..3db14f85ea
--- /dev/null
+++ b/types/peer-dial/tslint.json
@@ -0,0 +1 @@
+{ "extends": "dtslint/dt.json" }