import { CelebrationType, CelebrationConfig, ConfettiType, PhysicsCelebrationConfig, HapticPattern, HapticIntensity, PhysicsCelebrationType, SoundType } from './index.js'; /** * React hooks for @affectively/confetti-physics * * @example * ```tsx * import { useCelebration, useConfetti, usePhysicsConfetti } from '@affectively/confetti-physics/react'; * * function MyComponent() { * const { celebrate, success, milestone } = useCelebration(); * const confetti = useConfetti(); * * return ( * * ); * } * ``` */ /** * Main celebration hook - provides all celebration functionality */ declare function useCelebration(): { celebrate: (type: CelebrationType) => void; celebrateCustom: (config: CelebrationConfig) => void; celebrateStreak: (days: number) => void; tap: () => void; success: () => void; complete: () => void; achievement: () => void; milestone: () => void; levelUp: () => void; unlock: () => void; premium: () => void; welcome: () => void; error: () => void; warning: () => void; settings: { soundEnabled: boolean; hapticEnabled: boolean; confettiEnabled: boolean; volume: number; hapticSupported: boolean; soundSupported: boolean; }; setSoundEnabled: (enabled: boolean) => void; setHapticEnabled: (enabled: boolean) => void; setConfettiEnabled: (enabled: boolean) => void; setVolume: (volume: number) => void; }; /** * Haptic feedback hook - for tactile interactions */ declare function useHaptic(): { vibrate: (pattern: HapticPattern, intensity?: HapticIntensity) => boolean; enabled: boolean; supported: boolean; setEnabled: (value: boolean) => void; stop: () => boolean; tap: (intensity?: HapticIntensity) => boolean; select: (intensity?: HapticIntensity) => boolean; success: (intensity?: HapticIntensity) => boolean; celebrate: (intensity?: HapticIntensity) => boolean; milestone: (intensity?: HapticIntensity) => boolean; notify: (intensity?: HapticIntensity) => boolean; error: (intensity?: HapticIntensity) => boolean; heartbeat: (intensity?: HapticIntensity) => boolean; breatheIn: (intensity?: HapticIntensity) => boolean; breatheOut: (intensity?: HapticIntensity) => boolean; }; /** * Sound hook - for audio feedback */ declare function useSound(): { play: (type: SoundType) => void; enabled: boolean; supported: boolean; volume: number; setEnabled: (value: boolean) => void; setVolume: (value: number) => void; tap: () => void; success: () => void; celebrate: () => void; milestone: () => void; notify: () => void; complete: () => void; error: () => void; warn: () => void; }; /** * Confetti hook - for visual celebrations (classic + physics) */ declare function useConfetti(): { celebrate: (type: ConfettiType) => void; celebratePhysics: (config: PhysicsCelebrationConfig) => void; celebrateEmotion: (config: { emotion: string; intensity?: number; valence?: number; arousal?: number; heartRate?: number; }) => void; enabled: boolean; physicsEnabled: boolean; setEnabled: (value: boolean) => void; setPreferPhysics: (value: boolean) => void; fromElement: (element: HTMLElement, type?: ConfettiType) => void; reset: () => void; burst: () => void; shower: () => void; fireworks: () => void; sparkles: () => void; stars: () => void; hearts: () => void; achievement: () => void; streak: () => void; milestone: () => void; levelUp: () => void; welcome: () => void; premium: () => void; vortex: () => void; supernova: () => void; aurora: () => void; resonance: (heartRate?: number) => void; orbit: () => void; cascade: () => void; emergence: () => void; harmony: () => void; helix: () => void; bloom: () => void; constellation: () => void; nebula: () => void; }; /** * Physics-based confetti hook - direct access to PhysicsConfettiEngine * * Use this when you need fine-grained control over physics celebrations, * such as providing emotion context, heart rate for resonance, or custom origins. */ declare function usePhysicsConfetti(): { celebrate: (config: PhysicsCelebrationConfig) => void; celebrateWithEmotion: (type: PhysicsCelebrationType, emotion: { name: string; valence?: number; arousal?: number; }, options?: { origin?: { x: number; y: number; }; count?: number; intensity?: number; heartRate?: number; }) => void; clear: () => void; enabled: boolean; setEnabled: (value: boolean) => void; isAvailable: boolean; vortex: (config?: Partial) => void; supernova: (config?: Partial) => void; aurora: (config?: Partial) => void; resonance: (heartRate: number, config?: Partial) => void; orbit: (config?: Partial) => void; cascade: (config?: Partial) => void; emergence: (config?: Partial) => void; harmony: (config?: Partial) => void; helix: (config?: Partial) => void; bloom: (config?: Partial) => void; constellation: (config?: Partial) => void; nebula: (config?: Partial) => void; }; /** * Hook for button/interaction feedback * Provides a simple way to add tactile + audio feedback to interactions */ declare function useInteractionFeedback(): { onPress: () => void; onSuccess: () => void; onError: () => void; }; /** * Hook for breathing exercise feedback */ declare function useBreathingFeedback(): { breatheIn: () => void; breatheOut: () => void; hold: () => void; complete: () => void; breathingCycle: (inhaleMs: number, holdMs: number, exhaleMs: number) => void; }; /** * Hook for streak celebrations */ declare function useStreakCelebration(): { celebrateStreak: (days: number) => void; celebrateDaily: () => void; celebrateWeekly: () => void; }; export { CelebrationConfig, CelebrationType, ConfettiType, HapticIntensity, HapticPattern, PhysicsCelebrationConfig, PhysicsCelebrationType, SoundType, useBreathingFeedback, useCelebration, useConfetti, useHaptic, useInteractionFeedback, usePhysicsConfetti, useSound, useStreakCelebration };