/** * useTooltipTransition * * Hook principal para orquestar animaciones de tooltip con: * - Direction-aware animations (up/down) * - Cancelación automática en hover rápido * - Sincronización de título, items y height * - Soporte para ambos enfoques de título 3D * * @example * ```typescript * const { * transition, * isAnimating, * controller * } = useTooltipTransition({ * debug: false, * customTimings: { titleDuration: 300 } * }); * * // Al cambiar de item * await transition({ * oldTitleEl: titleOldRef.current, * newTitleEl: titleNewRef.current, * oldItemsContainer: itemsOldRef.current, * newItemsContainer: itemsNewRef.current, * heightContainer: heightRef.current, * currentItemIndex: 2 * }); * ``` */ import { TooltipAnimationController } from '@/utils/TooltipAnimationController'; import type { AnimationTimings } from '@/utils/TooltipAnimationController'; import type { TooltipDirection } from './useTooltipDirection'; export interface UseTooltipTransitionOptions { debug?: boolean; customTimings?: Partial; onTransitionStart?: (direction: TooltipDirection) => void; onTransitionEnd?: () => void; onTransitionCancel?: () => void; } export interface TransitionOptions { oldTitleEl: HTMLElement | null; newTitleEl: HTMLElement | null; oldItemsContainer: HTMLElement | null; newItemsContainer: HTMLElement | null; heightContainer: HTMLElement | null; currentItemIndex: number; skipTitleAnimation?: boolean; } export interface UseTooltipTransitionReturn { transition: (options: TransitionOptions) => Promise; isAnimating: boolean; currentDirection: TooltipDirection | null; controller: TooltipAnimationController; cancel: () => void; } export declare function useTooltipTransition(options?: UseTooltipTransitionOptions): UseTooltipTransitionReturn; export default useTooltipTransition; //# sourceMappingURL=useTooltipTransition.d.ts.map