import type { ReactElement, ReactNode } from "react";
/** @remarks \@since 2.8.0 */
export interface HoverModeConfiguration {
/**
* Boolean if the hover mode functionality should be disabled.
*
* @defaultValue `false`
*/
disabled?: boolean;
/**
* The amount of time (in ms) the user must hover an element before the hover
* mode is enabled and the visibility is set to `true`.
*
* @defaultValue {@link DEFAULT_HOVER_MODE_VISIBLE_IN_TIME}
*/
defaultVisibleInTime?: number;
/**
* The amount of time (in ms) the user must not hover any element connected to
* the hover mode.
*
* @defaultValue {@link DEFAULT_HOVER_MODE_DEACTIVATION_TIME}
*/
deactivateTime?: number;
}
/** @remarks \@since 2.8.0 */
export interface HoverModeProviderProps extends HoverModeConfiguration {
children: ReactNode;
}
/**
* This component should normally be mounted near the root of your app to enable
* hover mode for child components. However, it can also be used at other levels
* if hover mode functionality should not carry over between two different parts
* of the screen.
*
* @example
* Separating Hover Mode
* ```tsx
* export default function Example(): ReactElement {
* return (
* <>
*
*
*
*
*
*
* >
* );
* }
* ```
*
* @remarks \@since 2.8.0
*/
export declare function HoverModeProvider({ children, disabled, defaultVisibleInTime, deactivateTime, }: HoverModeProviderProps): ReactElement;