import type { PinRemoteServiceAPI } from './service/index.js'; import type { HTTPRPCOptions } from '../../index.js'; import type { HTTPRPCClient } from '../../lib/core.js'; import type { Multiaddr } from '@multiformats/multiaddr'; import type { CID } from 'multiformats/cid'; export interface PinRemoteAPI { /** * API for configuring remote pinning services. */ service: PinRemoteServiceAPI; /** * Pin a content with a given CID to a remote pinning service. */ add(cid: CID, options: PinRemoteAddOptions): Promise; /** * Returns a list of matching pins on the remote pinning service. */ ls(query: RemotePinQuery): AsyncIterable; /** * Removes a single pin object matching query allowing it to be garbage * collected (if needed). Will error if multiple pins match provided * query. To remove all matches use `rmAll` instead. */ rm(query: RemotePinQuery): Promise; /** * Removes all pin object that match given query allowing them to be garbage * collected if needed. */ rmAll(query: RemotePinQuery): Promise; } export interface PinRemoteAddOptions extends RemoteServiceOptions { /** * Optional name for pinned data; can be used for lookups later (max 255 * characters) */ name?: string; /** * Optional list of multiaddrs known to provide the data (max 20). */ origins?: Multiaddr[]; /** * If true, will add to the queue on the remote service and return * immediately. If false or omitted will wait until pinned on the * remote service. */ background?: boolean; } /** * Reperesents query for matching pin objects. */ export interface RemotePinQuery extends RemoteServiceOptions { /** * If provided, will only include pin objects that have a CID from the given * set. */ cid?: CID[]; /** * If passed, will only include pin objects with names that have this name * (case-sensitive, exact match). */ name?: string; /** * Return pin objects for pins that have one of the specified status values. * If omitted treated as ["pinned"] */ status?: RemotePinStatus[]; all?: boolean; } export interface RemoteServiceOptions extends HTTPRPCOptions { /** * Name of the remote pinning service to use. */ service?: string; } export interface RemotePin { status: RemotePinStatus; cid: CID; name: string; } export type RemotePinStatus = 'queued' | 'pinning' | 'pinned' | 'failed'; export declare function createRemote(client: HTTPRPCClient): PinRemoteAPI; //# sourceMappingURL=index.d.ts.map