diff --git a/stream-meter/stream-meter-test.ts b/stream-meter/stream-meter-test.ts
new file mode 100644
index 000000000..a9d391ac8
--- /dev/null
+++ b/stream-meter/stream-meter-test.ts
@@ -0,0 +1,19 @@
+///
+import * as meter from 'stream-meter';
+
+var m:meter.StreamMeter = meter();
+process.stdin.pipe(m).pipe(process.stdout);
+
+var bytes: number;
+bytes = m.bytes;
+bytes = m.maxBytes;
+m.on("error", () => {});
+
+// with argument
+m = meter(129);
+
+// stream-meter support following constructing
+// but i cannot declare such object in typescript
+
+//m = new meter();
+//m = new meter(123);
diff --git a/stream-meter/stream-meter.d.ts b/stream-meter/stream-meter.d.ts
new file mode 100644
index 000000000..f1c200e40
--- /dev/null
+++ b/stream-meter/stream-meter.d.ts
@@ -0,0 +1,21 @@
+// Type definitions for stream-meter
+// Project: https://github.com/brycebaril/node-stream-meter
+// Definitions by: TANAKA Koichi
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+///
+
+declare module "stream-meter" {
+ import {Transform} from 'stream';
+
+ function m(maxBytes?:number):m.StreamMeter;
+
+ namespace m {
+ export interface StreamMeter extends Transform {
+ constructor(maxBytes?: number): StreamMeter;
+ bytes: number;
+ maxBytes: number;
+ }
+ }
+
+ export = m;
+}
\ No newline at end of file