diff --git a/packages/micro/micro.d.ts b/packages/micro/micro.d.ts
new file mode 100644
index 00000000..876d88ef
--- /dev/null
+++ b/packages/micro/micro.d.ts
@@ -0,0 +1,15 @@
+///
+
+import { RequestListener, IncomingMessage, ServerResponse } from 'http'
+
+export type RequestHandler = (req: IncomingMessage, res: ServerResponse) => any
+declare function serve(fn: RequestHandler): RequestListener
+
+export function run(req: IncomingMessage, res: ServerResponse, fn: RequestHandler): Promise
+export function json(req: IncomingMessage, info?: { limit?: string | number, encoding?: string }): Promise
+export function text(req: IncomingMessage, info?: { limit?: string | number, encoding?: string }): Promise
+export function buffer(req: IncomingMessage, info?: { limit?: string | number, encoding?: string }): Promise
+export function send(res: ServerResponse, code: number, data?: any): Promise
+export function createError(code: number, msg: string, orig?: Error): Error & { statusCode: number, originalError?: Error }
+export function sendError(req: IncomingMessage, res: ServerResponse, info: { statusCode?: number, status?: number, message?: string, stack?: string }): Promise
+export default serve
diff --git a/packages/micro/package.json b/packages/micro/package.json
index 1533290a..c09b43f8 100644
--- a/packages/micro/package.json
+++ b/packages/micro/package.json
@@ -4,9 +4,11 @@
"description": "Asynchronous HTTP microservices",
"license": "MIT",
"main": "./lib/index.js",
+ "types": "./micro.d.ts",
"files": [
"bin",
- "lib"
+ "lib",
+ "micro.d.ts"
],
"bin": {
"micro": "./bin/micro.js"