interface BlockerArgs {
    readonly currentLocation: {
        readonly pathname: string;
    };
    readonly nextLocation: {
        readonly pathname: string;
    };
}
type ShouldBlockFn = (args: BlockerArgs) => boolean;
export interface NavigationBlocker {
    readonly state: 'blocked' | 'unblocked';
    readonly proceed: () => void;
    readonly reset: () => void;
}
/**
 * `useBlocker` replacement compatible with the classic `<BrowserRouter>` (which
 * is not a data router). Patches `history.pushState` / `replaceState` and
 * intercepts `popstate` so any client-side navigation can be cancelled by the
 * consumer. The returned API mirrors React Router's `useBlocker` so call sites
 * can swap one for the other without further changes.
 *
 * When `shouldBlock` returns true for a pending navigation, the URL change is
 * suppressed and `state` becomes `'blocked'`. The consumer can then call
 * `proceed()` to let the queued navigation through (e.g. after the user
 * confirmed a discard) or `reset()` to abort and stay on the current page.
 *
 * Limitations: this hook patches the global History API while mounted, so a
 * single page may rely on it at a time. On unmount, the original methods are
 * restored verbatim.
 */
export declare function useNavigationBlocker(shouldBlock: ShouldBlockFn): NavigationBlocker;
export {};
//# sourceMappingURL=useNavigationBlocker.d.ts.map