import { type ReactNode } from 'react';
interface DrawerCloseGuardContextValue {
    /** Register a drawer's dirty state and reset callback. Pass `null` to unregister. */
    setGuard: (guard: {
        isDirty: boolean;
        onReset: () => void;
    } | null) => void;
    /** Navigate only if no dirty drawer is registered; otherwise show confirmation. */
    guardedNavigate: (navigate: () => void) => void;
    /** Returns true when any drawer has unsaved changes. Safe to call from effects/intervals. */
    getIsDirty: () => boolean;
}
export declare function DrawerCloseGuardProvider({ children }: {
    children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export declare function useDrawerCloseGuard(): DrawerCloseGuardContextValue;
export declare function useGuardedDrawerClose({ open, isDirty, onClose, onReset, }: {
    open: boolean;
    isDirty: boolean;
    onClose: () => void;
    onReset: () => void;
}): {
    attemptClose: () => void;
};
export {};
//# sourceMappingURL=drawer-close-guard.d.ts.map