import { CID } from 'multiformats/cid'; import { Ledger } from './ledger.ts'; import type { BitswapNotifyProgressEvents, PeerWantListEntry } from '../index.ts'; import type { Network } from '../network.ts'; import type { BitswapMessage } from '../pb/message.ts'; import type { AbortOptions, ComponentLogger, Libp2p, Metrics, PeerId } from '@libp2p/interface'; import type { PeerMap } from '@libp2p/peer-collections'; import type { Blockstore } from 'interface-blockstore'; import type { ProgressOptions } from 'progress-events'; export interface PeerWantListsInit { maxSizeReplaceHasWithBlock?: number; doNotResendBlockWindow?: number; maxWantListSize?: number; } export interface PeerWantListsComponents { blockstore: Blockstore; network: Network; libp2p: Libp2p; logger: ComponentLogger; metrics?: Metrics; } export interface PeerLedger { peer: PeerId; value: number; sent: number; received: number; exchanged: number; } export declare class PeerWantLists { blockstore: Blockstore; network: Network; readonly ledgerMap: PeerMap; private readonly maxSizeReplaceHasWithBlock?; private readonly doNotResendBlockWindow?; private readonly maxWantListSize?; private readonly log; private readonly logger; constructor(components: PeerWantListsComponents, init?: PeerWantListsInit); ledgerForPeer(peerId: PeerId): PeerLedger | undefined; wantListForPeer(peerId: PeerId): PeerWantListEntry[] | undefined; peers(): PeerId[]; /** * Handle incoming messages */ receiveMessage(peerId: PeerId, message: BitswapMessage): Promise; receivedBlock(cid: CID, options: ProgressOptions & AbortOptions): Promise; peerDisconnected(peerId: PeerId): void; } //# sourceMappingURL=index.d.ts.map