diff --git a/package.json b/package.json
index 5cc723c..740ac84 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "react-router-navigation-prompt",
- "version": "1.6.6",
+ "version": "1.6.7",
"description": "A replacement component for the react-router ``. Allows for more flexible dialogs.",
"scripts": {
"build": "webpack",
@@ -32,6 +32,7 @@
"jsnext:main": "es/index.js",
"main": "es/index.js",
"module": "es/index.js",
+ "typings": "types/index.d.ts",
"homepage": "https://github.com/ZacharyRSmith/react-router-navigation-prompt#readme",
"peerDependencies": {
"react": ">= 15",
diff --git a/types/index.d.ts b/types/index.d.ts
new file mode 100644
index 0000000..f763ee5
--- /dev/null
+++ b/types/index.d.ts
@@ -0,0 +1,44 @@
+import * as React from 'react';
+import * as H from 'history';
+import { RouteComponentProps, Omit } from 'react-router';
+
+declare module 'react-router-navigation-prompt' {
+ export interface ChildData {
+ isActive: boolean;
+ onCancel: () => void;
+ onConfirm: () => void;
+ }
+
+ export interface NavigationPromptProps extends RouteComponentProps {
+ children: (data: ChildData) => React.ReactNode;
+ when: boolean | ((currentLocation: H.Location, nextLocation?: H.Location) => boolean);
+ afterCancel?: () => void;
+ afterConfirm?: () => void;
+ beforeCancel?: () => void;
+ beforeConfirm?: () => void;
+ renderIfNotActive?: boolean;
+ disableNative?: boolean;
+ }
+
+ interface NavigationPromptState {
+ action?: H.Action;
+ nextLocation?: H.Location;
+ isActive: boolean;
+ unblock: () => void;
+ }
+
+ export class NavigationPrompt extends React.Component {
+ _prevUserAction: string;
+ _isMounted: boolean;
+
+ block(nextLocation: H.Location, action: H.Action): boolean;
+ navigateToNextLocation(cb: () => void): void;
+ onCancel(): void;
+ onConfirm(): void;
+ onBeforeUnload(e: any): string
+ when(nextLocation?: H.Location): boolean;
+ }
+}
+
+// This is for the withRouter HOC being used as the default export.
+export default function NavigationPrompt(): React.Component>>;