export interface UseBlockerDialogOptions { disableBlock?: boolean; title: string; content: string; /** * Text for button enabling the user to continue without saving (discarding changes). If blank, no button with show. */ buttonContinueWithoutSaveText?: string; /** * Action handler for when the user clicks the continue without saving button * * @returns true if the user should be allowed to continue, false if the user should be blocked from continuing */ onContinueWithoutSave?: () => Promise | boolean; /** * Text for button enabling the user to continue */ buttonContinueText?: string; /** * Action handler for when the user clicks the continue button * * @returns true if the user should be allowed to continue, false if the user should be blocked from continuing */ onContinue?: () => Promise | boolean; } interface UseBlockerDialogOptionsWithId extends UseBlockerDialogOptions { id: string; } interface RequestBlockerOptions { onContinue: () => void; } interface UseBlockerDialogState { activeBlockers: UseBlockerDialogOptionsWithId[]; addBlocker: (options: UseBlockerDialogOptionsWithId) => void; removeBlocker: (id: string) => void; requestedBlockers: RequestBlockerOptions[]; requestBlocker: (options: RequestBlockerOptions) => void; clearRequestedBlockers: () => void; } export declare const useBlockerDialogState: import("zustand").UseBoundStore>; export declare function useBlockBeforeContinue(): (options: RequestBlockerOptions) => void; export declare function useBlockerDialog(options: UseBlockerDialogOptions): void; export {}; //# sourceMappingURL=use-blocker-dialog.d.ts.map