UNPKG

@towns-protocol/sdk

Version:

For more details, visit the following resources:

100 lines 4.61 kB
import { MembershipOp, Snapshot, WrappedEncryptedData, MemberPayload_Nft, MemberPayload_Membership } from '@towns-protocol/proto'; import TypedEmitter from 'typed-emitter'; import { StreamEncryptionEvents, StreamStateEvents } from './streamEvents'; import { ConfirmedTimelineEvent, ParsedEvent, RemoteTimelineEvent, StreamTimelineEvent } from './types'; import { StreamStateView_Members_Solicitations } from './streamStateView_Members_Solicitations'; import { DecryptedContent } from './encryptedContentTypes'; import { StreamStateView_MemberMetadata } from './streamStateView_MemberMetadata'; import { KeySolicitationContent } from './decryptionExtensions'; import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent'; import { SpaceReviewEventObject } from '@towns-protocol/web3'; import { StreamMemberIdsView } from './views/streams/streamMemberIds'; export type StreamMember = { userId: string; userAddress: Uint8Array; miniblockNum?: bigint; eventNum?: bigint; solicitations: KeySolicitationContent[]; encryptedUsername?: WrappedEncryptedData; encryptedDisplayName?: WrappedEncryptedData; ensAddress?: Uint8Array; nft?: MemberPayload_Nft; tipsSent?: { [key: string]: bigint; }; tipsReceived?: { [key: string]: bigint; }; tipsSentCount?: { [key: string]: bigint; }; tipsReceivedCount?: { [key: string]: bigint; }; }; export interface Pin { creatorUserId: string; event: StreamTimelineEvent; } export interface MemberTokenTransfer { address: Uint8Array; amount: bigint; isBuy: boolean; chainId: string; userId: string; sender: Uint8Array; createdAtEpochMs: bigint; messageId: string; } export interface MemberSpaceReview { review: SpaceReviewEventObject; createdAtEpochMs: bigint; eventHashStr: string; } export declare class StreamStateView_Members extends StreamStateView_AbstractContent { private streamMemberIdsView; readonly streamId: string; readonly joined: Map<string, StreamMember>; readonly joinedUsers: Set<string>; readonly invitedUsers: Set<string>; readonly leftUsers: Set<string>; readonly pendingJoinedUsers: Set<string>; readonly pendingInvitedUsers: Set<string>; readonly pendingLeftUsers: Set<string>; readonly pendingMembershipEvents: Map<string, MemberPayload_Membership>; readonly solicitHelper: StreamStateView_Members_Solicitations; readonly memberMetadata: StreamStateView_MemberMetadata; readonly pins: Pin[]; tips: { [key: string]: bigint; }; tipsCount: { [key: string]: bigint; }; encryptionAlgorithm?: string; spaceReviews: MemberSpaceReview[]; tokenTransfers: MemberTokenTransfer[]; get streamMemberIds(): string[]; constructor(streamId: string, streamMemberIdsView: StreamMemberIdsView); applySnapshot(event: ParsedEvent, snapshot: Snapshot, cleartexts: Record<string, Uint8Array | string> | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined): void; prependEvent(event: RemoteTimelineEvent, _cleartext: Uint8Array | string | undefined, _encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void; /** * Places event in a pending queue, to be applied when the event is confirmed in a miniblock header */ appendEvent(event: RemoteTimelineEvent, cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void; onConfirmedEvent(event: ConfirmedTimelineEvent, stateEmitter: TypedEmitter<StreamStateEvents> | undefined, _: TypedEmitter<StreamEncryptionEvents> | undefined): void; onDecryptedContent(eventId: string, content: DecryptedContent, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void; isMemberJoined(userId: string): boolean; isMember(membership: MembershipOp, userId: string): boolean; participants(): Set<string>; joinedParticipants(): Set<string>; joinedOrPendingJoinedParticipants(): Set<string>; joinedOrInvitedParticipants(): Set<string>; info(userId: string): MembershipOp; private addTokenTransfer; private addPin; private removePin; applyMembershipEvent(userId: string, op: MembershipOp, type: 'pending' | 'confirmed', stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void; private emitMembershipChange; } //# sourceMappingURL=streamStateView_Members.d.ts.map