import { ScNet } from './sc_net'; import { ScAddr, ScType } from './sc_types'; export declare type CallbackAddElement = (addr: ScAddr) => Promise; export declare type CallbackRemoveElement = (addr: ScAddr) => Promise; export declare type CallbackInitialize = (addrs: ScAddr[]) => Promise; export declare class ScSet { /** * We store map that contains edge targets for each edge add. * In future remove and add events will provide target of edge, but right now they don't. * And when we receive event on item remove, edge already doesn't exist to get target. */ private _elements; private _scNet; private _addr; private _onAdd; private _onRemove; private _onInitialize; private _filterType; private _evtAddElement; private _evtRemoveElement; constructor(scNet: ScNet, addr: ScAddr, onInitialize: CallbackInitialize, onAdd: CallbackAddElement, onRemove: CallbackRemoveElement, filterType?: ScType); Initialize(): Promise; private ShouldAppend; private OnEventAddElement; private OnEventRemoveElement; private CallOnInitialize; private CallOnAdd; private CallOnRemove; private IterateExistingElements; /** * Add item to this set. If item alreay exist, then do nothing. * If element was added into set, then returns true; otherwise - false * @param el addr of set item to add */ AddItem(el: ScAddr): Promise; }