UNPKG

stream-chat

Version:

JS SDK for the Stream Chat API

64 lines 4.01 kB
import { StateStore } from './store'; import type { StreamChat } from './client'; import type { DefaultGenerics, Event, ExtendableGenerics, PartialPollUpdate, PollAnswer, PollData, PollEnrichData, PollOptionData, PollResponse, PollVote, QueryVotesFilters, QueryVotesOptions, VoteSort } from './types'; export declare const isVoteAnswer: <SCG extends ExtendableGenerics = DefaultGenerics>(vote: PollVote<SCG> | PollAnswer<SCG>) => vote is PollAnswer<SCG>; export declare type PollAnswersQueryParams = { filter?: QueryVotesFilters; options?: QueryVotesOptions; sort?: VoteSort; }; export declare type PollOptionVotesQueryParams = { filter: { option_id: string; } & QueryVotesFilters; options?: QueryVotesOptions; sort?: VoteSort; }; declare type OptionId = string; export declare type PollState<SCG extends ExtendableGenerics = DefaultGenerics> = SCG['pollType'] & Omit<PollResponse<SCG>, 'own_votes' | 'id'> & { lastActivityAt: Date; maxVotedOptionIds: OptionId[]; ownVotesByOptionId: Record<OptionId, PollVote<SCG>>; ownAnswer?: PollAnswer; }; declare type PollInitOptions<SCG extends ExtendableGenerics = DefaultGenerics> = { client: StreamChat<SCG>; poll: PollResponse<SCG>; }; export declare class Poll<SCG extends ExtendableGenerics = DefaultGenerics> { readonly state: StateStore<PollState<SCG>>; id: string; private client; private unsubscribeFunctions; constructor({ client, poll }: PollInitOptions<SCG>); private getInitialStateFromPollResponse; reinitializeState: (poll: PollInitOptions<SCG>['poll']) => void; get data(): PollState<SCG>; handlePollUpdated: (event: Event<SCG>) => void; handlePollClosed: (event: Event<SCG>) => void; handleVoteCasted: (event: Event<SCG>) => void; handleVoteChanged: (event: Event<SCG>) => void; handleVoteRemoved: (event: Event<SCG>) => void; query: (id: string) => Promise<PollResponse<SCG>>; update: (data: Exclude<PollData<SCG>, 'id'>) => Promise<import("./types").APIResponse & import("./types").UpdatePollAPIResponse<SCG>>; partialUpdate: (partialPollObject: PartialPollUpdate<SCG>) => Promise<import("./types").APIResponse & import("./types").UpdatePollAPIResponse<SCG>>; close: () => Promise<import("./types").APIResponse & import("./types").UpdatePollAPIResponse<SCG>>; delete: () => Promise<import("./types").APIResponse>; createOption: (option: PollOptionData) => Promise<import("./types").APIResponse & import("./types").CreatePollOptionAPIResponse<SCG>>; updateOption: (option: PollOptionData) => Promise<import("./types").APIResponse & import("./types").UpdatePollOptionAPIResponse<SCG>>; deleteOption: (optionId: string) => Promise<import("./types").APIResponse>; castVote: (optionId: string, messageId: string) => Promise<import("./types").APIResponse & import("./types").CastVoteAPIResponse<SCG>>; removeVote: (voteId: string, messageId: string) => Promise<import("./types").APIResponse & { vote: PollVote<DefaultGenerics>; }>; addAnswer: (answerText: string, messageId: string) => Promise<import("./types").APIResponse & import("./types").CastVoteAPIResponse<SCG>>; removeAnswer: (answerId: string, messageId: string) => Promise<import("./types").APIResponse & { vote: PollVote<DefaultGenerics>; }>; queryAnswers: (params: PollAnswersQueryParams) => Promise<import("./types").APIResponse & import("./types").PollAnswersAPIResponse<SCG>>; queryOptionVotes: (params: PollOptionVotesQueryParams) => Promise<import("./types").APIResponse & import("./types").PollVotesAPIResponse<SCG>>; } export declare function extractPollData<SCG extends ExtendableGenerics = DefaultGenerics>(pollResponse: PollResponse<SCG>): PollData<SCG>; export declare function extractPollEnrichedData<SCG extends ExtendableGenerics = DefaultGenerics>(pollResponse: PollResponse<SCG>): Omit<PollEnrichData<SCG>, 'own_votes' | 'latest_answers'>; export {}; //# sourceMappingURL=poll.d.ts.map