UNPKG

hamok

Version:

Lightweight Distributed Object Storage on RAFT consensus algorithm

33 lines 1.93 kB
import { RaftAppendEntriesRequestChunk, RaftAppendEntriesResponse } from './messagetypes/RaftAppendEntries'; import { RaftVoteRequest, RaftVoteResponse } from './messagetypes/RaftVote'; import { HamokMessage } from './HamokMessage'; import EventEmitter from 'events'; type Input = RaftVoteRequest | RaftVoteResponse | RaftAppendEntriesRequestChunk | RaftAppendEntriesResponse; type EventMap = { message: [message: HamokMessage]; RaftVoteRequest: [request: RaftVoteRequest]; RaftVoteResponse: [response: RaftVoteResponse]; RaftAppendEntriesRequestChunk: [request: RaftAppendEntriesRequestChunk]; RaftAppendEntriesResponse: [response: RaftAppendEntriesResponse]; }; export declare interface RaftMessageEmitter { on<U extends keyof EventMap>(event: U, listener: (...args: EventMap[U]) => void): this; once<U extends keyof EventMap>(event: U, listener: (...args: EventMap[U]) => void): this; off<U extends keyof EventMap>(event: U, listener: (...args: EventMap[U]) => void): this; emit<U extends keyof EventMap>(event: U, ...args: EventMap[U]): boolean; } export declare class RaftMessageEmitter extends EventEmitter { constructor(); send(input: Input): void; receive(message: HamokMessage): void; encodeRaftVoteRequest(request: RaftVoteRequest): HamokMessage; decodeRaftVoteRequest(message: HamokMessage): RaftVoteRequest; encodeRaftVoteResponse(response: RaftVoteResponse): HamokMessage; decodeRaftVoteResponse(message: HamokMessage): RaftVoteResponse; encodeRaftAppendEntriesRequest(request: RaftAppendEntriesRequestChunk): HamokMessage; decodeRaftAppendEntriesRequest(message: HamokMessage): RaftAppendEntriesRequestChunk; encodeRaftAppendEntriesResponse(response: RaftAppendEntriesResponse): HamokMessage; decodeRaftAppendEntriesResponse(message: HamokMessage): RaftAppendEntriesResponse; } export {}; //# sourceMappingURL=RaftMessageEmitter.d.ts.map