UNPKG

@river-build/sdk

Version:

For more details, visit the following resources:

119 lines 6.51 kB
import { ChannelMessage, SnapshotCaseType, SyncCookie, Snapshot } from '@river-build/proto'; import TypedEmitter from 'typed-emitter'; import { LocalEventStatus, LocalTimelineEvent, ParsedEvent, ParsedMiniblock, StreamTimelineEvent } from './types'; import { StreamStateView_Space } from './streamStateView_Space'; import { StreamStateView_Channel } from './streamStateView_Channel'; import { StreamStateView_User } from './streamStateView_User'; import { StreamStateView_UserSettings } from './streamStateView_UserSettings'; import { StreamStateView_UserMetadata } from './streamStateView_UserMetadata'; import { StreamStateView_Members } from './streamStateView_Members'; import { StreamStateView_Media } from './streamStateView_Media'; import { StreamStateView_GDMChannel } from './streamStateView_GDMChannel'; import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent'; import { StreamStateView_DMChannel } from './streamStateView_DMChannel'; import { StreamStateView_UserInbox } from './streamStateView_UserInbox'; import { DecryptedContent } from './encryptedContentTypes'; import { StreamStateView_MemberMetadata } from './streamStateView_MemberMetadata'; import { StreamStateView_ChannelMetadata } from './streamStateView_ChannelMetadata'; import { StreamEvents, StreamEncryptionEvents, StreamStateEvents } from './streamEvents'; import { DecryptionSessionError } from '@river-build/encryption'; export interface IStreamStateView { readonly streamId: string; readonly userId: string; readonly contentKind: SnapshotCaseType; readonly timeline: StreamTimelineEvent[]; readonly events: Map<string, StreamTimelineEvent>; isInitialized: boolean; prevMiniblockHash?: Uint8Array; lastEventNum: bigint; prevSnapshotMiniblockNum: bigint; miniblockInfo?: { max: bigint; min: bigint; terminusReached: boolean; }; syncCookie?: SyncCookie; saveSnapshots?: boolean; membershipContent: StreamStateView_Members; get spaceContent(): StreamStateView_Space; get channelContent(): StreamStateView_Channel; get dmChannelContent(): StreamStateView_DMChannel; get gdmChannelContent(): StreamStateView_GDMChannel; get userContent(): StreamStateView_User; get userSettingsContent(): StreamStateView_UserSettings; get userMetadataContent(): StreamStateView_UserMetadata; get userInboxContent(): StreamStateView_UserInbox; get mediaContent(): StreamStateView_Media; snapshot(): Snapshot | undefined; getMembers(): StreamStateView_Members; getMemberMetadata(): StreamStateView_MemberMetadata; getChannelMetadata(): StreamStateView_ChannelMetadata | undefined; getContent(): StreamStateView_AbstractContent; userIsEntitledToKeyExchange(userId: string): boolean; getUsersEntitledToKeyExchange(): Set<string>; } export declare class StreamStateView implements IStreamStateView { readonly streamId: string; readonly userId: string; readonly contentKind: SnapshotCaseType; readonly timeline: StreamTimelineEvent[]; readonly events: Map<string, StreamTimelineEvent>; isInitialized: boolean; prevMiniblockHash?: Uint8Array; lastEventNum: bigint; prevSnapshotMiniblockNum: bigint; miniblockInfo?: { max: bigint; min: bigint; terminusReached: boolean; }; syncCookie?: SyncCookie; saveSnapshots?: boolean; private _snapshot?; snapshot(): Snapshot | undefined; membershipContent: StreamStateView_Members; private readonly _spaceContent?; get spaceContent(): StreamStateView_Space; private readonly _channelContent?; get channelContent(): StreamStateView_Channel; private readonly _dmChannelContent?; get dmChannelContent(): StreamStateView_DMChannel; private readonly _gdmChannelContent?; get gdmChannelContent(): StreamStateView_GDMChannel; private readonly _userContent?; get userContent(): StreamStateView_User; private readonly _userSettingsContent?; get userSettingsContent(): StreamStateView_UserSettings; private readonly _userMetadataContent?; get userMetadataContent(): StreamStateView_UserMetadata; private readonly _userInboxContent?; get userInboxContent(): StreamStateView_UserInbox; private readonly _mediaContent?; get mediaContent(): StreamStateView_Media; constructor(userId: string, streamId: string); private applySnapshot; private appendStreamAndCookie; private processAppendedEvent; private processMiniblockHeader; private processPrependedEvent; private updateMiniblockInfo; updateDecryptedContent(eventId: string, content: DecryptedContent, emitter: TypedEmitter<StreamStateEvents>): void; updateDecryptedContentError(eventId: string, content: DecryptionSessionError, emitter: TypedEmitter<StreamStateEvents>): void; initialize(nextSyncCookie: SyncCookie, minipoolEvents: ParsedEvent[], snapshot: Snapshot, miniblocks: ParsedMiniblock[], prependedMiniblocks: ParsedMiniblock[], prevSnapshotMiniblockNum: bigint, cleartexts: Record<string, Uint8Array | string> | undefined, localEvents: LocalTimelineEvent[], emitter: TypedEmitter<StreamEvents> | undefined): void; appendEvents(events: ParsedEvent[], nextSyncCookie: SyncCookie, cleartexts: Record<string, Uint8Array | string> | undefined, emitter: TypedEmitter<StreamEvents>): void; prependEvents(miniblocks: ParsedMiniblock[], cleartexts: Record<string, Uint8Array | string> | undefined, terminus: boolean, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void; appendLocalEvent(channelMessage: ChannelMessage, status: LocalEventStatus, emitter: TypedEmitter<StreamEvents> | undefined): string; updateLocalEvent(localId: string, parsedEventHash: string, status: LocalEventStatus, emitter: TypedEmitter<StreamEvents>): void; getMembers(): StreamStateView_Members; getMemberMetadata(): StreamStateView_MemberMetadata; getChannelMetadata(): StreamStateView_ChannelMetadata | undefined; getContent(): StreamStateView_AbstractContent; /** * Streams behave slightly differently. * Regular channels: the user needs to be an active member. SO_JOIN * DMs: always open for key exchange for any of the two participants */ userIsEntitledToKeyExchange(userId: string): boolean; getUsersEntitledToKeyExchange(): Set<string>; } //# sourceMappingURL=streamStateView.d.ts.map