export interface UseOverlayOptions {
    /** Whether the overlay is currently open */
    isOpen: boolean;
    /** Callback to close the overlay */
    onClose: () => void;
    /** Whether pressing Escape should close the overlay (default: true) */
    closeOnEsc?: boolean;
    /** Whether clicking the overlay backdrop should close it (default: true) */
    closeOnOverlayClick?: boolean;
    /** Whether to lock body scroll when overlay is open (default: true) */
    enableScrollLock?: boolean;
    /** Custom handler for overlay click (called before default behavior) */
    onOverlayClick?: (event: React.MouseEvent) => void;
    /** Custom handler for Escape key (called before default behavior) */
    onEscapeKey?: (event: KeyboardEvent) => void;
}
export interface UseOverlayReturn {
    /** Handler for overlay backdrop click events */
    handleOverlayClick: (event: React.MouseEvent) => void;
    /** Handler for Escape key press */
    handleEscKey: (event: KeyboardEvent) => void;
}
/**
 * Shared hook for overlay behavior (escape key, scroll lock, click handling)
 *
 * Provides consistent overlay interaction patterns across Modal, Drawer,
 * CommandPalette, and other overlay-based components.
 *
 * @example
 * ```tsx
 * const { handleOverlayClick, handleEscKey } = useOverlay({
 *   isOpen,
 *   onClose,
 *   closeOnEsc: true,
 *   closeOnOverlayClick: true,
 * });
 *
 * return (
 *   <div onClick={handleOverlayClick}>
 *     <div onClick={(e) => e.stopPropagation()}>
 *       Content
 *     </div>
 *   </div>
 * );
 * ```
 */
export declare const useOverlay: ({ isOpen, onClose, closeOnEsc, closeOnOverlayClick, enableScrollLock, onOverlayClick, onEscapeKey, }: UseOverlayOptions) => UseOverlayReturn;
