import type { ContentRouting } from '@libp2p/interface-content-routing'; import type { PeerId } from '@libp2p/interface-peer-id'; import type { PeerInfo } from '@libp2p/interface-peer-info'; import type { AbortOptions } from 'ipfs-core-types/src/utils'; import type { CID } from 'multiformats/cid'; export interface HTTPClientExtraOptions { headers?: Record; searchParams?: URLSearchParams; } export declare enum EventTypes { SENDING_QUERY = 0, PEER_RESPONSE = 1, FINAL_PEER = 2, QUERY_ERROR = 3, PROVIDER = 4, VALUE = 5, ADDING_PEER = 6, DIALING_PEER = 7 } /** * The types of messages set/received during DHT queries */ export declare enum MessageType { PUT_VALUE = 0, GET_VALUE = 1, ADD_PROVIDER = 2, GET_PROVIDERS = 3, FIND_NODE = 4, PING = 5 } export type MessageName = keyof typeof MessageType; export interface DHTRecord { key: Uint8Array; value: Uint8Array; timeReceived?: Date; } export interface SendingQueryEvent { type: EventTypes.SENDING_QUERY; name: 'SENDING_QUERY'; } export interface PeerResponseEvent { from: PeerId; type: EventTypes.PEER_RESPONSE; name: 'PEER_RESPONSE'; messageType: MessageType; messageName: MessageName; providers: PeerInfo[]; closer: PeerInfo[]; record?: DHTRecord; } export interface FinalPeerEvent { peer: PeerInfo; type: EventTypes.FINAL_PEER; name: 'FINAL_PEER'; } export interface QueryErrorEvent { type: EventTypes.QUERY_ERROR; name: 'QUERY_ERROR'; error: Error; } export interface ProviderEvent { type: EventTypes.PROVIDER; name: 'PROVIDER'; providers: PeerInfo[]; } export interface ValueEvent { type: EventTypes.VALUE; name: 'VALUE'; value: Uint8Array; } export interface AddingPeerEvent { type: EventTypes.ADDING_PEER; name: 'ADDING_PEER'; peer: PeerId; } export interface DialingPeerEvent { peer: PeerId; type: EventTypes.DIALING_PEER; name: 'DIALING_PEER'; } export type QueryEvent = SendingQueryEvent | PeerResponseEvent | FinalPeerEvent | QueryErrorEvent | ProviderEvent | ValueEvent | AddingPeerEvent | DialingPeerEvent; export interface DHTProvideOptions extends AbortOptions { recursive?: boolean; } export interface StatResult { cid: CID; size: number; } export interface Delegate { getEndpointConfig: () => { protocol: string; host: string; port: string; }; block: { stat: (cid: CID, options?: AbortOptions) => Promise; }; dht: { findProvs: (cid: CID, options?: HTTPClientExtraOptions & AbortOptions) => AsyncIterable; provide: (cid: CID, options?: HTTPClientExtraOptions & DHTProvideOptions) => AsyncIterable; put: (key: string | Uint8Array, value: Uint8Array, options?: HTTPClientExtraOptions & AbortOptions) => AsyncIterable; get: (key: string | Uint8Array, options?: HTTPClientExtraOptions & AbortOptions) => AsyncIterable; }; } export declare function delegatedContentRouting(client: Delegate): (components?: any) => ContentRouting; //# sourceMappingURL=index.d.ts.map