import { type EventSubscription } from 'react-native'; import type { InboxMessage, NotificationInboxChangeListener } from './types'; /** * Public API methods for NotificationInbox. * Define the TypeScript API here with proper types (InboxMessage instead of UnsafeObject). * * @internal */ interface NotificationInboxPublicSpec { getMessages(topic?: string): Promise; subscribeToMessages(listener: NotificationInboxChangeListener, topic?: string): EventSubscription; markMessageOpened(message: InboxMessage): void; markMessageUnopened(message: InboxMessage): void; markMessageDeleted(message: InboxMessage): void; trackMessageClicked(message: InboxMessage, actionName?: string): void; } /** * Native inbox methods from CodegenSpec that should be excluded from CustomerIOInAppMessaging. * Includes both public methods (in NotificationInboxPublicSpec) and internal methods. * * @internal */ export type NotificationInboxSpec = keyof NotificationInboxPublicSpec | 'subscribeToMessagesChanged' | 'setupInboxListener'; /** * Manages inbox messages for the current user. * * @public */ export declare class NotificationInbox implements NotificationInboxPublicSpec { /** * Gets inbox messages. */ getMessages(topic?: string): Promise; /** * Subscribes to inbox message changes. * Optionally filter messages by topic. */ subscribeToMessages(listener: NotificationInboxChangeListener, topic?: string): EventSubscription; /** * Marks an inbox message as opened/read. */ markMessageOpened(message: InboxMessage): void; /** * Marks an inbox message as unopened/unread. */ markMessageUnopened(message: InboxMessage): void; /** * Marks an inbox message as deleted. */ markMessageDeleted(message: InboxMessage): void; /** * Tracks a click event for an inbox message. */ trackMessageClicked(message: InboxMessage, actionName?: string): void; } export {}; //# sourceMappingURL=notification-inbox.d.ts.map