diff --git a/react-bootstrap-table/react-bootstrap-table-tests.tsx b/react-bootstrap-table/react-bootstrap-table-tests.tsx
new file mode 100644
index 0000000000..9a22bf9df4
--- /dev/null
+++ b/react-bootstrap-table/react-bootstrap-table-tests.tsx
@@ -0,0 +1,30 @@
+///
+///
+
+import * as React from 'react';
+import { render } from 'react-dom';
+import { BootstrapTable, TableHeaderColumn } from 'react-bootstrap-table';
+
+var products = [{
+ id: 1,
+ name: "Item name 1",
+ price: 100
+}, {
+ id: 2,
+ name: "Item name 2",
+ price: 100
+}];
+
+// It's a data format example.
+function priceFormatter(cell: any, row: any) {
+ return ' ' + cell;
+}
+
+render(
+
+ Product ID
+ Product Name
+ Product Price
+ ,
+ document.getElementById("app")
+);
diff --git a/react-bootstrap-table/react-bootstrap-table.d.ts b/react-bootstrap-table/react-bootstrap-table.d.ts
new file mode 100644
index 0000000000..a93b716fbb
--- /dev/null
+++ b/react-bootstrap-table/react-bootstrap-table.d.ts
@@ -0,0 +1,115 @@
+// Type definitions for react-bootstrap-table v1.4.6
+// Project: https://github.com/AllenFang/react-bootstrap-table
+// Definitions by: Frank Laub
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+///
+
+declare module "react-bootstrap-table" {
+ import { ComponentClass, Props, ReactElement } from 'react';
+ import { EventEmitter } from 'events';
+
+ interface SelectRow {
+ mode?: string;
+ bgColor?: string;
+ selected?: any[];
+ onSelect?: Function;
+ onSelectAll?: Function;
+ clickToSelect?: boolean;
+ hideSelectColumn?: boolean;
+ clickToSelectAndEditCell?: boolean;
+ showOnlySelected?: boolean;
+ }
+
+ interface CellEdit {
+ mode?: string;
+ blurToSave?: boolean;
+ afterSaveCell?: Function;
+ }
+
+ interface Options {
+ sortName?: string;
+ sortOrder?: string;
+ afterTableComplete?: Function;
+ afterDeleteRow?: Function;
+ afterInsertRow?: Function;
+ afterSearch?: Function;
+ afterColumnFilter?: Function;
+ onRowClick?: Function;
+ page?: number;
+ sizePerPageList?: number[];
+ sizePerPage?: number;
+ paginationSize?: number;
+ onSortChange?: Function;
+ onPageChange?: Function;
+ onSizePerPageList?: Function;
+ noDataText?: string;
+ handleConfirmDeleteRow?: Function;
+ }
+
+ interface FetchInfo {
+ dataTotalSize?: number;
+ }
+
+ interface BootstrapTableProps extends Props {
+ keyField?: string;
+ height?: string;
+ maxHeight?: string;
+ data?: any;
+ remote?: boolean;
+ striped?: boolean;
+ bordered?: boolean;
+ hover?: boolean;
+ condensed?: boolean;
+ pagination?: boolean;
+ searchPlaceholder?: string;
+ selectRow?: SelectRow;
+ cellEdit?: CellEdit;
+ insertRow?: boolean;
+ deleteRow?: boolean;
+ search?: boolean;
+ columnFilter?: boolean;
+ trClassName?: any;
+ options?: Options;
+ fetchInfo?: FetchInfo;
+ exportCSV?: boolean;
+ csvFileName?: string;
+ }
+
+ interface BootstrapTable extends ComponentClass { }
+ const BootstrapTable: BootstrapTable;
+
+ interface TableHeaderColumnProps extends Props {
+ dataField?: string;
+ dataAlign?: string;
+ dataSort?: boolean;
+ onSort?: Function;
+ dataFormat?: Function;
+ isKey?: boolean;
+ editable?: any;
+ hidden?: boolean;
+ className?: string;
+ width?: string;
+ sortFunc?: Function;
+ columnClassName?: any;
+ filterFormatted?: boolean;
+ sort?: string;
+ }
+
+ interface TableHeaderColumn extends ComponentClass { }
+ const TableHeaderColumn: TableHeaderColumn;
+
+ class TableDataSet extends EventEmitter {
+ constructor(data: any);
+ setData(data: any): void;
+ clear(): void;
+ getData(): any;
+ }
+
+ export {
+ BootstrapTable,
+ TableHeaderColumn,
+ TableDataSet
+ }
+}