diff --git a/index.d.ts b/index.d.ts
new file mode 100644
index 0000000..6959425
--- /dev/null
+++ b/index.d.ts
@@ -0,0 +1,43 @@
+///
+
+declare module 'react-input-trigger' {
+ interface Trigger {
+ keyCode?: number | null;
+ shiftKey?: boolean;
+ ctrlKey?: boolean;
+ metaKey?: boolean;
+ }
+
+ type hookType = 'start' | 'cancel' | 'typing';
+
+ export interface Result {
+ hookType: hookType;
+ cursor: {
+ selectionStart: number;
+ selectionEnd: number;
+ top: number;
+ left: number;
+ height: number;
+ };
+ text?: string;
+ }
+
+ declare class InputTrigger extends React.Component {}
+
+ declare namespace InputTrigger {
+ function handleTrigger(
+ event: React.KeyboardEvent
+ ): null;
+
+ interface Props {
+ trigger?: Trigger;
+ onStart?(obj: Result): void;
+ onCancel?(obj: Result): void;
+ onType?(obj: Result): void;
+ endTrigger?(resetState: () => void): void;
+ elementRef?: HTMLTextAreaElement | HTMLInputElement | null;
+ }
+ }
+
+ export default InputTrigger;
+}
diff --git a/package-lock.json b/package-lock.json
index 2417518..d0a19c3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,6 +4,22 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "@types/prop-types": {
+ "version": "15.5.8",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.8.tgz",
+ "integrity": "sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==",
+ "dev": true
+ },
+ "@types/react": {
+ "version": "16.7.18",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.7.18.tgz",
+ "integrity": "sha512-Tx4uu3ppK53/iHk6VpamMP3f3ahfDLEVt3ZQc8TFm30a1H3v9lMsCntBREswZIW/SKrvJjkb3Hq8UwO6GREBng==",
+ "dev": true,
+ "requires": {
+ "@types/prop-types": "15.5.8",
+ "csstype": "2.6.0"
+ }
+ },
"accepts": {
"version": "1.3.5",
"resolved": "http://repo.internal.cleartax.co:4873/accepts/-/accepts-1.3.5.tgz",
@@ -1999,6 +2015,12 @@
"integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
"dev": true
},
+ "csstype": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.0.tgz",
+ "integrity": "sha512-by8hi8BlLbowQq0qtkx54d9aN73R9oUW20HISpka5kmgsR9F7nnxgfsemuR2sdCKZh+CDNf5egW9UZMm4mgJRg==",
+ "dev": true
+ },
"currently-unhandled": {
"version": "0.4.1",
"resolved": "http://repo.internal.cleartax.co:4873/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
diff --git a/package.json b/package.json
index 2f16f90..9353a24 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,7 @@
"version": "1.1.2",
"main": "build/lib/react-input-trigger.js",
"module": "build/es/react-input-trigger.js",
+ "types": "index.d.ts",
"repository": "git@github.com:abinavseelan/react-input-trigger.git",
"author": "Abinav Seelan ",
"license": "MIT",
@@ -29,6 +30,7 @@
"success"
],
"devDependencies": {
+ "@types/react": "^16.7.18",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.3",