import { CourierInboxListener } from './models/CourierInboxListener'; import { CourierPushListener } from './models/CourierPushListener'; import { CourierAuthenticationListener } from './models/CourierAuthenticationListener'; import { InboxMessage } from './models/InboxMessage'; import { CourierPushProvider } from './models/CourierPushProvider'; import { CourierClient } from './client/CourierClient'; import { InboxMessageFeed } from './models/InboxMessageFeed'; import { InboxMessageEvent } from './models/InboxMessageEvent'; export { CourierClient } from './client/CourierClient'; export { BrandClient } from './client/BrandClient'; export { CourierBrandResponse } from './models/CourierBrand'; export { CourierDevice } from './models/CourierDevice'; export { CourierInboxView } from './views/CourierInboxView'; export { CourierPreferencesView } from './views/CourierPreferencesView'; export { CourierInboxListener } from './models/CourierInboxListener'; export { CourierPushListener } from './models/CourierPushListener'; export { CourierUserPreferencesTopic } from './models/CourierUserPreferences'; export { CourierAuthenticationListener } from './models/CourierAuthenticationListener'; export { CourierUserPreferencesChannel } from './models/CourierUserPreferences'; export { CourierUserPreferencesStatus } from './models/CourierUserPreferences'; export { CourierTrackingEvent } from './models/CourierTrackingEvent'; export { CourierPushProvider } from './models/CourierPushProvider'; export { CourierFont } from './models/CourierFont'; export { CourierButton } from './models/CourierButton'; export { CourierInfoViewStyle } from './models/CourierInfoViewStyle'; export { iOS_CourierCell } from './models/iOS_CourierCell'; export { iOS_CourierSheet } from './models/iOS_CourierSheet'; export { InboxMessage } from './models/InboxMessage'; export { InboxMessageFeed } from './models/InboxMessageFeed'; export { InboxMessageEvent } from './models/InboxMessageEvent'; export { CourierInboxButtonStyle, CourierInboxTextStyle, CourierInboxUnreadIndicatorStyle, CourierInboxTheme } from './models/CourierInboxTheme'; export { CourierPreferencesTheme, CourierPreferencesMode, CourierPreferencesChannel } from './models/CourierPreferencesTheme'; export type iOSForegroundPresentationOptions = 'sound' | 'badge' | 'list' | 'banner'; export { CourierUtils } from './utils'; declare class Courier { private static _sharedInstance; private authenticationListeners; private inboxListeners; private pushListeners; private systemBroadcaster; private sharedBroadcaster; private pushNotificationClickedEmitter; private pushNotificationDeliveredEmitter; constructor(); static get shared(): Courier; private isDebugging; static log(message: string): void; private attachPushNotificationListeners; /** * Sets the iOS foreground presentation options for push notifications. * This method only works on iOS devices. * @param props An object containing an array of iOSForegroundPresentationOptions. * @returns A string indicating the result of the operation. Returns 'unsupported' on non-iOS platforms. */ static setIOSForegroundPresentationOptions(props: { options: iOSForegroundPresentationOptions[]; }): string; /** * Retrieves the current notification permission status. * @returns A Promise that resolves to a string representing the current notification permission status. */ static getNotificationPermissionStatus(): Promise; /** * Requests permission to send push notifications to the user. * @returns A Promise that resolves to a string indicating the result of the permission request. */ static requestNotificationPermission(): Promise; /** * Opens the settings page for the current app. * This can be used to direct users to enable notifications if they've previously denied permission. */ static openSettingsForApp(): void; /** * Gets the current CourierClient instance. * @returns {Promise} The current CourierClient instance, or undefined if not initialized. */ getClient(): Promise; /** * Gets the current user ID. * @returns {Promise} The current user ID, or undefined if not set. */ getUserId(): Promise; /** * Gets the current tenant ID. * @returns {Promise} The current tenant ID, or undefined if not set. */ getTenantId(): Promise; /** * Checks if a user is currently signed in. * @returns {Promise} True if a user is signed in, false otherwise. */ isUserSignedIn(): Promise; /** * Signs out the current user. * @returns {Promise} A promise that resolves when the sign out process is complete. */ signOut(): Promise; /** * Signs in a user with the provided credentials. * @param {Object} props - The sign-in properties. * @param {string} props.accessToken - The access token for authentication. * @param {string} [props.clientKey] - The client key (optional). * @param {string} props.userId - The user ID. * @param {string} [props.tenantId] - The tenant ID (optional). * @param {boolean} [props.showLogs] - Whether to show debug logs (defaults to __DEV__). * @returns {Promise} A promise that resolves when the sign-in process is complete. */ signIn(props: { accessToken: string; clientKey?: string; userId: string; tenantId?: string; showLogs?: boolean; }): Promise; /** * Adds an authentication listener to monitor user changes. * @param {Object} props - The listener properties. * @param {function} props.onUserChanged - Callback function triggered when the user changes. * @returns {CourierAuthenticationListener} The created authentication listener. */ addAuthenticationListener(props: { onUserChanged: (userId?: string) => void; }): Promise; /** * Removes a specific authentication listener. * @param {Object} props - The removal properties. * @param {string} props.listenerId - The ID of the listener to remove. * @returns {Promise} A promise that resolves to the ID of the removed listener. */ removeAuthenticationListener(props: { listenerId: string; }): Promise; /** * Removes all authentication listeners. * This method clears all registered authentication listeners, both native and JavaScript. */ removeAllAuthenticationListeners(): Promise; /** * Retrieves all push notification tokens. * @returns {Promise>} A promise that resolves to a Map of provider keys to tokens. */ getAllTokens(): Promise>; /** * Retrieves the push notification token for a specific key. * @param {Object} props - The properties object. * @param {string} props.key - The key associated with the token. * @returns {Promise} A promise that resolves to the token or undefined if not found. */ getToken(props: { key: string; }): Promise; /** * Retrieves the push notification token for a specific provider. * @param {Object} props - The properties object. * @param {CourierPushProvider} props.provider - The push notification provider. * @returns {Promise} A promise that resolves to the token or undefined if not found. */ getTokenForProvider(props: { provider: CourierPushProvider; }): Promise; /** * Sets the push notification token for a specific key. * @param {Object} props - The properties object. * @param {string} props.key - The key to associate with the token. * @param {string} props.token - The push notification token. * @returns {Promise} A promise that resolves when the token is set. */ setToken(props: { key: string; token: string; }): Promise; /** * Sets the push notification token for a specific provider. * @param {Object} props - The properties object. * @param {CourierPushProvider} props.provider - The push notification provider. * @param {string} props.token - The push notification token. * @returns {Promise} A promise that resolves when the token is set. */ setTokenForProvider(props: { provider: CourierPushProvider; token: string; }): Promise; /** * Adds a push notification listener. * @param {Object} props - The properties object. * @param {function} [props.onPushNotificationClicked] - Callback function triggered when a push notification is clicked. * @param {function} [props.onPushNotificationDelivered] - Callback function triggered when a push notification is delivered. * @returns {CourierPushListener} The created push notification listener. */ addPushNotificationListener(props: { onPushNotificationClicked?: (push: any) => void; onPushNotificationDelivered?: (push: any) => void; }): CourierPushListener; /** * Removes a specific push notification listener. * @param {Object} props - The properties object. * @param {string} props.listenerId - The ID of the listener to remove. * @returns {string} The ID of the removed listener. */ removePushNotificationListener(props: { listenerId: string; }): Promise; /** * Removes all push notification listeners. */ removeAllPushNotificationListeners(): Promise; /** * Gets the current pagination limit for inbox messages. * @returns {Promise} A promise that resolves with the current pagination limit. * Default is 32. */ getInboxPaginationLimit(): Promise; /** * Sets the pagination limit for inbox messages. * @param {number} limit - The new pagination limit to set. * @returns {Promise} A promise that resolves when the limit is set. * Default is 32. */ setInboxPaginationLimit(limit: number): Promise; /** * Opens a specific message in the inbox. * @param {Object} props - The properties object. * @param {string} props.messageId - The ID of the message to open. * @returns {Promise} A promise that resolves when the message is opened. */ openMessage(props: { messageId: string; }): Promise; /** * Registers a click event for a specific message in the inbox. * @param {Object} props - The properties object. * @param {string} props.messageId - The ID of the message that was clicked. * @returns {Promise} A promise that resolves when the click is registered. */ clickMessage(props: { messageId: string; }): Promise; /** * Marks a specific message as read in the inbox. * @param {Object} props - The properties object. * @param {string} props.messageId - The ID of the message to mark as read. * @returns {Promise} A promise that resolves when the message is marked as read. */ readMessage(props: { messageId: string; }): Promise; /** * Marks a specific message as unread in the inbox. * @param {Object} props - The properties object. * @param {string} props.messageId - The ID of the message to mark as unread. * @returns {Promise} A promise that resolves when the message is marked as unread. */ unreadMessage(props: { messageId: string; }): Promise; /** * Archives a specific message in the inbox. * @param {Object} props - The properties object. * @param {string} props.messageId - The ID of the message to archive. * @returns {Promise} A promise that resolves when the message is archived. */ archiveMessage(props: { messageId: string; }): Promise; /** * Marks all messages in the inbox as read. * @returns {Promise} A promise that resolves when all messages are marked as read. */ readAllInboxMessages(): Promise; /** * Adds a listener for inbox changes (aligned with the updated native iOS/Swift callbacks). * @param {Object} props - The properties object. * @param {Function} [props.onLoading] - Called when loading or refreshing begins. Receives isRefresh (boolean). * @param {Function} [props.onError] - Called when an error occurs. Receives the error message (string). * @param {Function} [props.onUnreadCountChanged] - Called when unread count changes. Receives unreadCount (number). * @param {Function} [props.onTotalCountChanged] - Called when total message count changes. Receives totalCount (number) and feed ("feed" or "archive"). * @param {Function} [props.onMessagesChanged] - Called when messages in a feed change. Receives an InboxMessageSet and feed name. * @param {Function} [props.onPageAdded] - Called when a new page of messages is added. Receives an InboxMessageSet, feed name, and isFirstPage (boolean). * @param {Function} [props.onMessageEvent] - Called for message-level changes (add/remove/update). Receives a message, index, feed name, and event string. * @returns {CourierInboxListener} A listener object that can be used to remove the listener later. */ addInboxListener(props: { onLoading?: (isRefresh: boolean) => void; onError?: (error: string) => void; onUnreadCountChanged?: (unreadCount: number) => void; onTotalCountChanged?: (totalCount: number, feed: string) => void; onMessagesChanged?: (messages: InboxMessage[], canPaginate: boolean, feed: InboxMessageFeed) => void; onPageAdded?: (messages: InboxMessage[], canPaginate: boolean, isFirstPage: boolean, feed: InboxMessageFeed) => void; onMessageEvent?: (message: InboxMessage, index: number, feed: InboxMessageFeed, eventName: InboxMessageEvent) => void; }): Promise; private convertMessages; /** * Removes a specific inbox listener. * @param {Object} props - The properties object. * @param {string} props.listenerId - The ID of the listener to remove. * @returns {string} The ID of the removed listener. */ removeInboxListener(props: { listenerId: string; }): Promise; /** * Removes all inbox listeners. */ removeAllInboxListeners(): Promise; /** * Refreshes the inbox. * Useful for pull-to-refresh functionality. * @returns {Promise} A promise that resolves when the inbox is refreshed. */ refreshInbox(): Promise; /** * Fetches the next page of inbox messages. * @returns {Promise} A promise that resolves with an array of fetched inbox messages. */ fetchNextPageOfMessages(props: { inboxMessageFeed: InboxMessageFeed; }): Promise; /** * Sets a flag to indicate if UI tests are active. */ static setIsUITestsActive(isActive: boolean): void; } export default Courier; //# sourceMappingURL=index.d.ts.map