import { GenericData } from '@knocklabs/types'; import { default as Knock } from '../../knock'; import { FeedClientOptions, FetchFeedOptions } from './interfaces'; import { FeedSocketManager, SocketEventPayload } from './socket-manager'; import { FeedStore } from './store'; import { BindableFeedEvent, FeedEventCallback, FeedItemOrItems, FeedRealTimeCallback } from './types'; declare class Feed { readonly knock: Knock; readonly feedId: string; readonly defaultOptions: FeedClientOptions; readonly referenceId: string; unsubscribeFromSocketEvents: (() => void) | undefined; private socketManager; private userFeedId; private broadcaster; private broadcastChannel; private hasSubscribedToRealTimeUpdates; store: FeedStore; constructor(knock: Knock, feedId: string, options: FeedClientOptions, socketManager: FeedSocketManager | undefined); /** * Used to reinitialize a current feed instance, which is useful when reauthenticating users */ reinitialize(socketManager?: FeedSocketManager): void; /** * Cleans up a feed instance by destroying the store and disconnecting * an open socket connection. */ teardown(): void; /** Tears down an instance and removes it entirely from the feed manager */ dispose(): void; listenForUpdates(): void; on(eventName: BindableFeedEvent, callback: FeedEventCallback | FeedRealTimeCallback): void; off(eventName: BindableFeedEvent, callback: FeedEventCallback | FeedRealTimeCallback): void; getState(): import('./types').FeedStoreState; markAsSeen(itemOrItems: FeedItemOrItems): Promise[]>; markAllAsSeen(): Promise; markAsUnseen(itemOrItems: FeedItemOrItems): Promise[]>; markAsRead(itemOrItems: FeedItemOrItems): Promise[]>; markAllAsRead(): Promise; markAsUnread(itemOrItems: FeedItemOrItems): Promise[]>; markAsInteracted(itemOrItems: FeedItemOrItems, metadata?: Record): Promise[]>; markAsArchived(itemOrItems: FeedItemOrItems): Promise[]>; markAllAsArchived(): Promise; markAllReadAsArchived(): Promise; markAsUnarchived(itemOrItems: FeedItemOrItems): Promise[]>; fetch(options?: FetchFeedOptions): Promise<{ status: "error" | "ok"; data: any; } | undefined>; fetchNextPage(options?: FetchFeedOptions): Promise; get socketChannelTopic(): string; private broadcast; private onNewMessageReceived; private buildUserFeedId; private optimisticallyPerformStatusUpdate; private makeStatusUpdate; private makeBulkStatusUpdate; private setupBroadcastChannel; private broadcastOverChannel; private initializeRealtimeConnection; handleSocketEvent(payload: SocketEventPayload): Promise; private emitEvent; } export default Feed; //# sourceMappingURL=feed.d.ts.map