import type { Noop } from "../utils/basic.js"; export interface UseBeforeUnloadOptions { /** * Whether to prevent the default behavior of the event, which leads to showing a browser-native message * * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event * * @defaultValue false */ preventDefault?: boolean; } /** * A callback function to run before the page is unloaded * * @param {BeforeUnloadEvent} event - `BeforeUnloadEvent`, the event object * @returns {void} `void` */ export type UseBeforeUnloadCallback = (event: BeforeUnloadEvent) => void; /** * * A React Hook to perform actions **before the page is unloaded** (e.g., closing, refreshing the page) and optionally trigger a browser-native confirmation dialog. * * set `preventDefault` to `true` to show the confirm leave dialog. * * @param {UseBeforeUnloadCallback} callback - `UseBeforeUnloadCallback`, the callback function to run before the page is unloaded, see {@link UseBeforeUnloadCallback} * @param {UseBeforeUnloadOptions} [options={}] - `UseBeforeUnloadOptions`, options to configure the hook, see {@link UseBeforeUnloadOptions} * @returns {Noop} `Noop`, a function that clear the event listener, see {@link Noop} * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event | BeforeUnloadEvent - MDN} */ export declare function useBeforeUnload(callback: UseBeforeUnloadCallback, options?: UseBeforeUnloadOptions): Noop;