/** * use-text-cylinder * * Hook para gestionar el estado y controles de un cilindro de texto rotatorio 3D. * * Features: * - State management: currentIndex, isAnimating * - Controls: next(), prev(), goTo(index), pause(), resume() * - Auto-rotate con interval configurable * - Direction-aware: calcula ruta más corta * * @example * ```typescript * const { state, controls } = useTextCylinder({ * items: ['Fast', 'Reliable', 'Scalable'], * autoRotate: true, * duration: 600 * }); * * // Controlar manualmente * controls.next(); * controls.goTo(2); * controls.pause(); * ``` */ export interface TextCylinderOptions { /** Array de items a mostrar en el cilindro */ items: T[]; /** Habilitar rotación automática */ autoRotate?: boolean; /** Intervalo de rotación automática en ms */ autoRotateInterval?: number; /** Duración de la animación en ms */ duration?: number; /** Función de easing CSS */ easing?: string; /** Dirección de auto-rotate: 'forward' o 'backward' */ direction?: 'forward' | 'backward'; } export interface TextCylinderState { /** Índice actual del item visible */ currentIndex: number; /** Si hay una animación en curso */ isAnimating: boolean; } export interface TextCylinderControls { /** Ir al siguiente item */ next: () => void; /** Ir al item anterior */ prev: () => void; /** Ir a un índice específico */ goTo: (index: number) => void; /** Pausar auto-rotate */ pause: () => void; /** Reanudar auto-rotate */ resume: () => void; /** Toggle pause/resume */ toggle: () => void; } export interface UseTextCylinderReturn { state: TextCylinderState; controls: TextCylinderControls; setIsAnimating: (isAnimating: boolean) => void; animationRef: React.MutableRefObject; } export declare function useTextCylinder({ items, autoRotate, autoRotateInterval, duration, easing, direction }: TextCylinderOptions): UseTextCylinderReturn; //# sourceMappingURL=use-text-cylinder.d.ts.map