diff --git a/react-table-filter/index.d.ts b/react-table-filter/index.d.ts
new file mode 100644
index 0000000000..8f9c50a26f
--- /dev/null
+++ b/react-table-filter/index.d.ts
@@ -0,0 +1,16 @@
+// Type definitions for react-table-filter 1.0.0
+// Project: https://github.com/cheekujha/react-table-filter
+// Definitions by: Gnanavel N
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.8
+
+import * as React from 'react';
+
+export interface TabfilterProps {
+ rows: string | Array | { [name: string]: boolean; };
+ onFilterUpdate: (filteredArray: Array, currentFilters: any[]) => any[] | void;
+ rowClass?: string;
+ initialFilters?: string | Array | { [name: string]: boolean; };
+}
+
+export declare class TableFilter extends React.Component {}
\ No newline at end of file
diff --git a/react-table-filter/react-table-filter-tests.ts b/react-table-filter/react-table-filter-tests.ts
new file mode 100644
index 0000000000..272e387fd6
--- /dev/null
+++ b/react-table-filter/react-table-filter-tests.ts
@@ -0,0 +1,18 @@
+import * as React from "react";
+import * as ReactDOM from "react-dom";
+import { TableFilter } from "react-table-filter";
+
+interface TestTableFilterProps extends TablefilterProps {}
+
+class TestApp extends React.Component {
+ onFilterUpdate = (index: number, last: number, event: Event) => {
+ console.log("selected tab: " + index.toString());
+ console.log("last tab: " + last.toString());
+ }
+
+ render() {
+ return React.createElement(TableFilter, {onFilterUpdate: this.onFilterUpdate});
+ }
+}
+
+ReactDOM.render(React.createElement(TestApp, {}), document.getElementById("test-app"));
\ No newline at end of file