stream-chat
Version:
JS SDK for the Stream Chat API
66 lines (65 loc) • 2.75 kB
TypeScript
import { Reminder } from './Reminder';
import { StateStore } from '../store';
import { ReminderPaginator } from '../pagination';
import { WithSubscriptions } from '../utils/WithSubscriptions';
import type { ReminderResponseBaseOrResponse } from './Reminder';
import type { StreamChat } from '../client';
import type { CreateReminderOptions, Event, EventTypes, LocalMessage, MessageResponse, ReminderResponse } from '../types';
export declare const DEFAULT_REMINDER_MANAGER_CONFIG: ReminderManagerConfig;
type MessageId = string;
export type ReminderEvent = {
cid: string;
created_at: string;
message_id: MessageId;
reminder: ReminderResponse;
type: EventTypes;
user_id: string;
};
export type ReminderManagerState = {
reminders: Map<MessageId, Reminder>;
};
export type ReminderManagerConfig = {
scheduledOffsetsMs: number[];
stopTimerRefreshBoundaryMs: number;
};
export type ReminderManagerOptions = {
client: StreamChat;
config?: Partial<ReminderManagerConfig>;
};
export declare class ReminderManager extends WithSubscriptions {
private client;
configState: StateStore<ReminderManagerConfig>;
state: StateStore<ReminderManagerState>;
paginator: ReminderPaginator;
constructor({ client, config }: ReminderManagerOptions);
updateConfig(config: Partial<ReminderManagerConfig>): void;
get stopTimerRefreshBoundaryMs(): number;
get scheduledOffsetsMs(): number[];
get reminders(): Map<string, Reminder>;
getFromState(messageId: MessageId): Reminder | undefined;
upsertToState: ({ data, overwrite, }: {
data: ReminderResponseBaseOrResponse;
overwrite?: boolean;
}) => Reminder | undefined;
removeFromState: (messageId: string) => void;
hydrateState: (messages: MessageResponse[] | LocalMessage[]) => void;
initTimers: () => void;
clearTimers: () => void;
static isReminderWsEventPayload: (event: Event) => event is ReminderEvent;
registerSubscriptions: () => void;
private subscribeReminderCreated;
private subscribeReminderUpdated;
private subscribeReminderDeleted;
private subscribeMessageDeleted;
private subscribeMessageUndeleted;
private subscribeNotificationReminderDue;
private subscribePaginatorStateUpdated;
private subscribeConfigStateUpdated;
upsertReminder: (options: CreateReminderOptions) => Promise<Reminder | undefined>;
createReminder: (options: CreateReminderOptions) => Promise<Reminder | undefined>;
updateReminder: (options: CreateReminderOptions) => Promise<Reminder | undefined>;
deleteReminder: (messageId: MessageId) => Promise<void>;
queryNextReminders: () => Promise<void>;
queryPreviousReminders: () => Promise<void>;
}
export {};