import { MessageID, StreamPartID, StreamMessage } from '@streamr/protocol'; import { NodeId } from '../../identifiers'; export interface PropagationTask { message: StreamMessage; source: NodeId | null; handledNeighbors: Set; } /** * Keeps track of propagation tasks for the needs of message propagation logic. * * Properties: * - Allows fetching propagation tasks by StreamPartID * - Upper bound on number of tasks stored, replacement policy if FIFO * - Items have a TTL, after which they are considered stale and not returned when querying **/ export declare class PropagationTaskStore { private readonly streamPartLookup; private readonly tasks; constructor(ttlInMs: number, maxTasks: number); add(task: PropagationTask): void; delete(messageId: MessageID): void; get(streamPartId: StreamPartID): Array; size(): number; }