import type { NotificareDevice } from './models/notificare-device'; import type { NotificareDoNotDisturb } from './models/notificare-do-not-disturb'; export declare class NotificareDeviceModule { /** * @returns {Promise} - A promise that resolves to * the current {@link NotificareDevice} information, or 'null' in case no * device is registered. */ getCurrentDevice(): Promise; /** * @returns {Promise} - A promise that resolves to the * preferred language of the current device for notifications and messages, or * `null` if no preferred language is set. */ getPreferredLanguage(): Promise; /** * Updates the preferred language setting for the device. * * @param {string | null} language - The preferred language code. * @returns {Promise} - A promise that resolves when the preferred language * has been successfully updated. */ updatePreferredLanguage(language: string | null): Promise; /** * Registers a user for the device. * * To register the device anonymously, set both `userId` and `userName` to `null`. * * @param {string | null} userId - Optional user identifier. * @param {string | null} userName - Optional username. * @returns {Promise} - A promise that resolves when the user has been * successfully registered. * * @deprecated Use updateUser() instead. */ register(userId: string | null, userName: string | null): Promise; /** * Updates the user information for the device. * * To register the device anonymously, set both `userId` and `userName` to `null`. * * @param {string | null} userId - Optional user identifier. * @param {string | null} userName - Optional username. * @returns {Promise} - A promise that resolves when the user information * has been successfully updated. */ updateUser(userId: string | null, userName: string | null): Promise; /** * Fetches the tags associated with the device. * * @return {Promise} - A promise that resolves to a list of tags * currently associated with the device. */ fetchTags(): Promise; /** * Adds a single tag to the device. * * @param {string} tag - The tag to add. * @returns {Promise} - A promise that resolves when the tag has been * successfully added to the device. */ addTag(tag: string): Promise; /** * Adds multiple tags to the device. * * @param {string[]} tags - A list of tags to add. * @returns {Promise} - A promise that resolves when all the tags have * been successfully added to the device. */ addTags(tags: string[]): Promise; /** * Removes a specific tag from the device. * * @param {string} tag - The tag to remove. * @returns {Promise} - A promise that resolves when the tag has been * successfully removed from the device. */ removeTag(tag: string): Promise; /** * Removes multiple tags from the device. * * @param {string[]} tags - A list of tags to remove. * @returns {Promise} - A promise that resolves when all the specified tags * have been successfully removed from the device. */ removeTags(tags: string[]): Promise; /** * Clears all tags from the device. * * @returns {Promise} - A promise that resolves when all tags have been * successfully cleared from the device. */ clearTags(): Promise; /** * Fetches the "Do Not Disturb" (DND) settings for the device. * * @return {Promise} - A promise that resolves * to the current {@link NotificareDoNotDisturb} settings, or `null` if * none are set. */ fetchDoNotDisturb(): Promise; /** * Updates the "Do Not Disturb" (DND) settings for the device. * * @param {NotificareDoNotDisturb} dnd - The new {@link NotificareDoNotDisturb} * settings to apply. * @returns {Promise} - A promise that resolves when the DND settings * have been successfully updated. */ updateDoNotDisturb(dnd: NotificareDoNotDisturb): Promise; /** * Clears the "Do Not Disturb" (DND) settings for the device. * * @returns {Promise} - A promise that resolves when the DND settings * have been successfully cleared. */ clearDoNotDisturb(): Promise; /** * Fetches the user data associated with the device. * * @return {Promise>} - A promise that resolves to a * {@link Record} object containing the current user data. */ fetchUserData(): Promise>; /** * Updates the custom user data associated with the device. * * @param {Record} userData - The updated user data to associate * with the device. * @returns {Promise} - A promise that resolves when the user data has * been successfully updated. */ updateUserData(userData: Record): Promise; }