//// [genericClassesRedeclaration.ts] declare module TypeScript { interface IIndexable { [s: string]: T; } function createIntrinsicsObject(): IIndexable; interface IHashTable { getAllKeys(): string[]; add(key: string, data: T): boolean; addOrUpdate(key: string, data: T): boolean; map(fn: (k: string, value: T, context: any) => void, context: any): void; every(fn: (k: string, value: T, context: any) => void, context: any): boolean; some(fn: (k: string, value: T, context: any) => void, context: any): boolean; count(): number; lookup(key: string): T; } class StringHashTable implements IHashTable { private itemCount; private table; public getAllKeys(): string[]; public add(key: string, data: T): boolean; public addOrUpdate(key: string, data: T): boolean; public map(fn: (k: string, value: T, context: any) => void, context: any): void; public every(fn: (k: string, value: T, context: any) => void, context: any): boolean; public some(fn: (k: string, value: T, context: any) => void, context: any): boolean; public count(): number; public lookup(key: string): T; public remove(key: string): void; } class IdentiferNameHashTable extends StringHashTable { public getAllKeys(): string[]; public add(key: string, data: T): boolean; public addOrUpdate(key: string, data: T): boolean; public map(fn: (k: string, value: T, context: any) => void, context: any): void; public every(fn: (k: string, value: T, context: any) => void, context: any): boolean; public some(fn: (k: string, value: any, context: any) => void, context: any): boolean; public lookup(key: string): T; } } declare module TypeScript { interface IIndexable { [s: string]: T; } function createIntrinsicsObject(): IIndexable; interface IHashTable { getAllKeys(): string[]; add(key: string, data: T): boolean; addOrUpdate(key: string, data: T): boolean; map(fn: (k: string, value: T, context: any) => void, context: any): void; every(fn: (k: string, value: T, context: any) => void, context: any): boolean; some(fn: (k: string, value: T, context: any) => void, context: any): boolean; count(): number; lookup(key: string): T; } class StringHashTable implements IHashTable { private itemCount; private table; public getAllKeys(): string[]; public add(key: string, data: T): boolean; public addOrUpdate(key: string, data: T): boolean; public map(fn: (k: string, value: T, context: any) => void, context: any): void; public every(fn: (k: string, value: T, context: any) => void, context: any): boolean; public some(fn: (k: string, value: T, context: any) => void, context: any): boolean; public count(): number; public lookup(key: string): T; public remove(key: string): void; } class IdentiferNameHashTable extends StringHashTable { public getAllKeys(): string[]; public add(key: string, data: T): boolean; public addOrUpdate(key: string, data: T): boolean; public map(fn: (k: string, value: T, context: any) => void, context: any): void; public every(fn: (k: string, value: T, context: any) => void, context: any): boolean; public some(fn: (k: string, value: any, context: any) => void, context: any): boolean; public lookup(key: string): T; } } //// [genericClassesRedeclaration.js]