import React from 'react'; type NotificationType = "success" | "error" | "warning" | "info"; type NotificationVariant = "toast" | "alert" | "modal"; type NotificationPosition = "top" | "bottom" | "center" | "top-left" | "top-right" | "bottom-left" | "bottom-right"; type SoundName = "success" | "error" | "warning" | "message" | "click" | "ringtone"; type ThemeName = "minimal" | "soft" | "sharp"; interface NotifyPayload { title?: string; message: string; type?: NotificationType; variant?: NotificationVariant; sound?: SoundName | string; volume?: number; duration?: number; position?: NotificationPosition; dismissible?: boolean; vibration?: boolean; delay?: number; actions?: NotificationAction[]; } interface NotificationAction { label: string; onPress: () => void; style?: "default" | "cancel" | "destructive"; } interface Notification extends Required> { id: string; createdAt: number; actions: NotificationAction[]; } interface NotifyConfig { volume: number; enabled: boolean; duration: number; position: NotificationPosition; soundEnabled: boolean; queue: boolean; maxVisible: number; theme: ThemeName; } interface SoundEngine { play(sound: SoundName | string, volume?: number): Promise; stop(): void; setVolume(volume: number): void; preload?(sounds: string[]): Promise; } type CustomRenderer = (notification: Notification, dismiss: () => void) => any; declare function setRenderer(renderer: CustomRenderer | null): void; declare function dismiss(id: string): void; declare function dismissAll(): void; declare function getConfig(): NotifyConfig; declare function setConfig(partial: Partial): void; declare function setTheme(theme: ThemeName): void; declare function resetConfig(): void; declare function registerSound(name: string, path: string): void; declare function notify(payload: NotifyPayload): string; declare function useNotify(): { notifications: Notification[]; notify: (payload: NotifyPayload) => string; }; declare function NotifyRenderer(): React.FunctionComponentElement | null; declare const webSoundEngine: SoundEngine; export { type CustomRenderer, type Notification, type NotificationPosition, type NotificationType, type NotificationVariant, type NotifyConfig, type NotifyPayload, NotifyRenderer, type SoundName, type ThemeName, dismiss, dismissAll, getConfig, notify, registerSound, resetConfig, setConfig, setRenderer, setTheme, useNotify, webSoundEngine };