type ConfettiConfig = { lifetime?: number; angle?: number; decay?: number; spread?: number; startVelocity?: number; elementCount?: number; elementSize?: number; zIndex?: number; position?: string; colors?: string[]; onAnimationComplete?: () => void; fps?: number; }; type EmojiConfig = { lifetime?: number; angle?: number; decay?: number; spread?: number; startVelocity?: number; elementCount?: number; elementSize?: number; zIndex?: number; position?: string; emoji?: string[]; rotate?: boolean; onAnimationComplete?: () => void; fps?: number; }; type BalloonsConfig = { lifetime?: number; angle?: number; decay?: number; spread?: number; startVelocity?: number; elementCount?: number; elementSize?: number; zIndex?: number; position?: string; colors?: string[]; onAnimationComplete?: () => void; fps?: number; }; interface RewardConfigs { confetti: ConfettiConfig; emoji: EmojiConfig; balloons: BalloonsConfig; } type RewardType = keyof RewardConfigs; type RewardFunction = { reward: () => void; isAnimating: boolean; }; type UseRewardType = (id: string, type: T, config?: RewardConfigs[T]) => RewardFunction; declare const useReward: UseRewardType; declare const confetti: (root: Element, internalAnimatingCallback: () => void, config?: ConfettiConfig) => void; declare const balloons: (root: Element, internalAnimatingCallback: () => void, config?: BalloonsConfig) => void; declare const emoji: (root: Element, internalAnimatingCallback: () => void, config?: EmojiConfig) => void; export { balloons, confetti, emoji, useReward };