import type { IPFS as IPFSCore } from "ipfs-core-types";
import type { IPFSRepo } from "ipfs-repo";
import type { libp2p } from "ipfs-core/components/network";
import type { Options as IPFSOptions } from "ipfs-core/types";
import { Multiaddr } from "@multiformats/multiaddr";
import { IPFSPackage } from "./package.js";
declare type IPFS = IPFSCore & {
    libp2p: libp2p;
};
/** 🎛️ IPFS Options
 */
export declare const OPTIONS: IPFSOptions;
export declare function createAndConnect(pkg: IPFSPackage, peersUrl: string, repoName: string, logging: boolean): Promise<[IPFSCore, IPFSRepo]>;
export declare function fetchPeers(peersUrl: string): Promise<string[]>;
export declare function listPeers(peersUrl: string): Promise<Multiaddr[]>;
export declare function tryConnecting(ipfs: IPFS, peer: Multiaddr, logging: boolean): void;
export declare function ping(ipfs: IPFS, peer: Multiaddr): Promise<{
    latency: number;
}>;
export declare function monitorPeers(): Promise<void>;
export declare function stopMonitoringPeers(): void;
export declare function monitorBitswap(ipfs: IPFS, peersUrl: string, verbose: boolean): Promise<void>;
export declare function stopMonitoringBitswap(): Promise<void>;
export {};
