// Type definitions for jshashtable 3.0 // Project: http://www.timdown.co.uk/jshashtable/ // Definitions by: Sergey Gerasimov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped interface IHashtable { put(key: TKey, value: TValue): TValue; putAll(hashtable: IHashtable, conflictCallback?: (key: TKey, thisValue: TValue, value: TValue) => TValue): void; get(key: TKey): TValue; containsKey(key: TKey): boolean; containsValue(value: TValue): boolean; clear(): void; isEmpty(): boolean; keys(): TKey[]; values(): TValue[]; entries(): any[][]; remove(key: TKey): TValue; size(): number; clone(): IHashtable; each(callback: (key: TKey, value: TValue) => void): 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; }