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 };