summaryrefslogtreecommitdiff
path: root/includes/external/matrix/node_modules/matrix-js-sdk/lib/models/poll.d.ts
blob: 50e1729657e438cc31639f0e52ededadf0554b63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import { MatrixClient } from "../client";
import { PollStartEvent } from "../extensible_events_v1/PollStartEvent";
import { MatrixEvent } from "./event";
import { Relations } from "./relations";
import { Room } from "./room";
import { TypedEventEmitter } from "./typed-event-emitter";
export declare enum PollEvent {
    New = "Poll.new",
    End = "Poll.end",
    Update = "Poll.update",
    Responses = "Poll.Responses",
    Destroy = "Poll.Destroy",
    UndecryptableRelations = "Poll.UndecryptableRelations"
}
export type PollEventHandlerMap = {
    [PollEvent.Update]: (event: MatrixEvent, poll: Poll) => void;
    [PollEvent.Destroy]: (pollIdentifier: string) => void;
    [PollEvent.End]: () => void;
    [PollEvent.Responses]: (responses: Relations) => void;
    [PollEvent.UndecryptableRelations]: (count: number) => void;
};
export declare class Poll extends TypedEventEmitter<Exclude<PollEvent, PollEvent.New>, PollEventHandlerMap> {
    readonly rootEvent: MatrixEvent;
    private matrixClient;
    private room;
    readonly roomId: string;
    readonly pollEvent: PollStartEvent;
    private _isFetchingResponses;
    private relationsNextBatch;
    private responses;
    private endEvent;
    /**
     * Keep track of undecryptable relations
     * As incomplete result sets affect poll results
     */
    private undecryptableRelationEventIds;
    constructor(rootEvent: MatrixEvent, matrixClient: MatrixClient, room: Room);
    get pollId(): string;
    get endEventId(): string | undefined;
    get isEnded(): boolean;
    get isFetchingResponses(): boolean;
    get undecryptableRelationsCount(): number;
    getResponses(): Promise<Relations>;
    /**
     *
     * @param event - event with a relation to the rootEvent
     * @returns void
     */
    onNewRelation(event: MatrixEvent): void;
    private fetchResponses;
    /**
     * Only responses made before the poll ended are valid
     * Refilter after an end event is recieved
     * To ensure responses are valid
     */
    private refilterResponsesOnEnd;
    private countUndecryptableEvents;
    private validateEndEvent;
}
//# sourceMappingURL=poll.d.ts.map