///
import { EventEmitter } from 'events';
import { CycleShardData } from '../state-manager/state-manager-types';
/** TYPES */
type Count = number;
type Hash = string;
type PartitionId = number;
export type Message = {
cycle: number;
data: {
partitionHash: object;
receiptMapHash: object;
summaryHash: object;
};
sender: string;
};
export type hashMap = Map;
export declare let forwardedGossips: Map;
export declare class Collector extends EventEmitter {
shard: CycleShardData;
allDataHashes: hashMap;
allReceiptMapHashes: hashMap;
allSummaryHashes: hashMap;
dataHashCounter: Map>;
receiptHashCounter: Map>;
summaryHashCounter: Map>;
constructor(shard: CycleShardData);
process(messages: Message[]): void;
}
/** FUNCTIONS */
export declare function initGossip(): void;
export declare function newCollector(shard: CycleShardData): Collector;
export declare function processMessagesInGossipQueue(shard: CycleShardData, collector: Collector): void;
export declare function clean(cycle: number): void;
export declare function cleanOld(current: number, age: number): void;
export {};