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; type NotifyEventType = "show" | "dismiss" | "dismiss-all" | "config-change"; interface NotifyEvent { type: NotifyEventType; notification?: Notification; config?: Partial; } type NotifyEventListener = (event: NotifyEvent) => void; declare function getConfig(): NotifyConfig; declare function setConfig(partial: Partial): void; declare function setTheme(theme: ThemeName): void; declare function resetConfig(): void; declare function getSoundKey(sound: SoundName | string): string; declare function isBuiltInSound(sound: string): boolean; declare function registerSound(name: string, path: string): void; declare function getRegisteredSounds(): Record; declare function subscribe(listener: NotifyEventListener): () => void; declare function setSoundEngine(engine: SoundEngine): void; declare function getSoundEngine(): SoundEngine | null; declare function setRenderer(renderer: CustomRenderer | null): void; declare function getRenderer(): CustomRenderer | null; declare function getNotifications(): Notification[]; declare function show(payload: NotifyPayload): string; declare function dismiss(id: string): void; declare function dismissAll(): void; export { type CustomRenderer, type Notification, type NotificationAction, type NotificationPosition, type NotificationType, type NotificationVariant, type NotifyConfig, type NotifyEvent, type NotifyEventListener, type NotifyEventType, type NotifyPayload, type SoundEngine, type SoundName, type ThemeName, dismiss, dismissAll, getConfig, getNotifications, getRegisteredSounds, getRenderer, getSoundEngine, getSoundKey, isBuiltInSound, registerSound, resetConfig, setConfig, setRenderer, setSoundEngine, setTheme, show, subscribe };