diff --git a/hashtable/hashtable.d.ts b/hashtable/hashtable.d.ts
new file mode 100644
index 000000000..323748afe
--- /dev/null
+++ b/hashtable/hashtable.d.ts
@@ -0,0 +1,48 @@
+// Type definitions for jshashtable 3.0
+// Project: http://www.timdown.co.uk/jshashtable/
+// Definitions by: Sergey Gerasimov
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+interface IHashtable
+{
+ put(key: TKey, value: TValue): TValue;
+ putAll(hashtable: IHashtable, conflictCallback?: (key: TKey, thisValue: TValue, value: TValue) => TValue);
+
+ get(key: TKey): TValue;
+ containsKey(key: TKey): boolean;
+ containsValue(value: TValue): boolean;
+
+ clear();
+ isEmpty(): boolean;
+
+ keys(): TKey[];
+ values(): TValue[];
+ entries(): any[][];
+
+ remove(key: TKey): TValue;
+ size(): number;
+
+ clone(): IHashtable;
+ each(callback: (key: TKey, value: TValue) => void);
+
+ equals(hashtable: IHashtable): boolean;
+ toQueryString(): string;
+}
+
+interface IHashtableOptions {
+ hashCode?: (key: TKey) => any;
+ equals?: (key1: TKey, key2: TKey) => boolean;
+ replaceDuplicateKey?: boolean;
+}
+
+interface IHashtableStatic {
+ new (): IHashtable;
+ new (options: IHashtableOptions): IHashtable;
+ new (hashCode?: (value: TValue) => any, equals?: (value1: TValue, value2: TValue) => boolean): IHashtable;
+}
+
+declare var Hashtable: IHashtableStatic;
+
+declare module "hashtable" {
+ export = Hashtable;
+}
\ No newline at end of file