import * as React from 'react'; export interface StateProps { /** * Указывает, должен ли компонент реагировать на `hover`-состояние. */ hasHover?: boolean; /** * Позволяет управлять `hovered`-состоянием извне. */ hovered?: boolean; /** * Позволяет управлять `activated`-состоянием извне. */ activated?: boolean; /** * Указывает, должен ли компонент реагировать на `active`-состояние. */ hasActive?: boolean; /** * Позволяет родительскому компоненту * иметь `hovered`-cостояние при наведении * на любой дочерний элемент. * По умолчанию состояние hovered у родителя сбрасывается. * * Присваивается родителькому компоненту. * * @example * * * * * */ hasHoverWithChildren?: boolean; /** * Позволяет родительскому компоненту показывать hovered-состояние при наведении * на текущий дочерний компонент. * * Присваивается дочернему компоненту. * * @example * * * * * */ unlockParentHover?: boolean; /** * Длительность показа `active`-состояния. */ activeEffectDelay?: number; /** * Стиль подсветки `active`-состояния. */ activeClassName?: string; /** * Стиль подсветки `hover`-состояния. */ hoverClassName?: string; } export declare const DEFAULT_ACTIVE_EFFECT_DELAY = 600; interface UseHoverProps extends Pick { /** * Блокирование активации состояний. */ lockState?: boolean; setParentStateLock?: (v: boolean) => void; } /** * Управляет наведением на компонент, игнорирует тач события. */ export declare function useHover({ hovered, hasHover, lockState, setParentStateLock, }?: UseHoverProps): { isHovered: boolean; onPointerEnter: React.PointerEventHandler; onPointerLeave: () => void; }; interface ClickableLockStateContextInterface { lockHoverStateBubbling?: (v: boolean) => void; lockActiveStateBubbling?: (v: boolean) => void; } export declare const ClickableLockStateContext: React.Context; /** * Управляет состоянием компонента. */ export declare function useState({ hovered, hasHover, activated, hasActive, activeEffectDelay, unlockParentHover, hoverClassName, activeClassName, }: StateProps): { stateClassName: string; setLockHoverBubblingImmediate: (...args: any[]) => void; setLockActiveBubblingImmediate: (...args: any[]) => void; }; export {}; //# sourceMappingURL=useState.d.ts.map