@helia/remote-pinning
Version:
Add remote pinning capabilities to Helia
29 lines • 1.69 kB
TypeScript
import { CID } from 'multiformats/cid';
import type { HeliaRemotePinnerInit, RemoteAddOptions, RemoteIsPinnedOptions, RemoteLsOptions, RemotePin, RemotePins } from './index.js';
import type { RemotePinningServiceClient } from '@ipfs-shipyard/pinning-service-client';
import type { AbortOptions, Libp2p } from '@libp2p/interface';
import type { HeliaLibp2p, RmOptions } from 'helia';
import type { Version } from 'multiformats/cid';
export declare class HeliaRemotePins<T extends Libp2p = Libp2p> implements RemotePins {
#private;
private readonly helia;
private readonly remotePinningClient;
private readonly originFilter;
private readonly delegateFilter;
private readonly pollInterval;
constructor(helia: HeliaLibp2p<T>, remotePinningClient: RemotePinningServiceClient, init?: HeliaRemotePinnerInit);
/**
* When starting a pinning operation the remote pinning service can send us a
* list of nodes to which it will delegate the fetching of data.
*
* We need to dial them for the pinning operation to complete.
*/
private connectToDelegates;
add(cid: CID, options?: RemoteAddOptions): AsyncGenerator<CID>;
rm(cid: CID, options?: RmOptions): AsyncGenerator<CID, void, undefined>;
ls(options?: RemoteLsOptions): AsyncGenerator<RemotePin, void, undefined>;
get(cid: CID<unknown, number, number, Version>, options?: AbortOptions): Promise<RemotePin>;
setMetadata(cid: CID<unknown, number, number, Version>, metadata: Record<string, string> | undefined, options?: AbortOptions): Promise<void>;
isPinned(cid: CID, options?: RemoteIsPinnedOptions): Promise<boolean>;
}
//# sourceMappingURL=helia-remote-pins.d.ts.map