/**
 * @typedef {object} Online
 * @property {libp2p} libp2p
 * @property {Bitswap} bitswap
 *
 * @typedef {object} Options
 * @property {PeerId} options.peerId
 * @property {Repo} options.repo
 * @property {Print} options.print
 * @property {IPFSOptions} options.options
 * @property {import('ipfs-core-utils/multihashes').Multihashes} options.hashers
 *
 * @typedef {import('ipfs-core-types/src/config').Config} IPFSConfig
 * @typedef {import('../types').Options} IPFSOptions
 * @typedef {import('ipfs-repo').IPFSRepo} Repo
 * @typedef {import('../types').Print} Print
 * @typedef {import('libp2p').Libp2p} libp2p
 * @typedef {import('ipfs-bitswap').IPFSBitswap} Bitswap
 * @typedef {import('@libp2p/interface-peer-id').PeerId} PeerId
 * @typedef {import('ipfs-core-types/src/utils').AbortOptions} AbortOptions
 * @typedef {import('@multiformats/multiaddr').Multiaddr} Multiaddr
 */
export class Network {
    /**
     * @param {Options} options
     */
    static start({ peerId, repo, print, hashers, options }: Options): Promise<Network>;
    /**
     * @param {Network} network
     */
    static stop(network: Network): Promise<void>;
    /**
     * @param {PeerId} peerId
     * @param {libp2p} libp2p
     * @param {Bitswap} bitswap
     * @param {Repo} repo
     * @param {BlockStorage} blockstore
     */
    constructor(peerId: PeerId, libp2p: libp2p, bitswap: Bitswap, repo: Repo, blockstore: BlockStorage);
    peerId: import("@libp2p/interface-peer-id").PeerId;
    libp2p: import("libp2p").Libp2p;
    bitswap: import("ipfs-bitswap/dist/src/types.js").IPFSBitswap;
    repo: import("ipfs-repo/dist/src/types.js").IPFSRepo;
    blockstore: BlockStorage;
}
export type Online = {
    libp2p: libp2p;
    bitswap: Bitswap;
};
export type Options = {
    peerId: PeerId;
    repo: Repo;
    print: Print;
    options: IPFSOptions;
    hashers: import('ipfs-core-utils/multihashes').Multihashes;
};
export type IPFSConfig = import('ipfs-core-types/src/config').Config;
export type IPFSOptions = import('../types').Options;
export type Repo = import('ipfs-repo').IPFSRepo;
export type Print = import('../types').Print;
export type libp2p = import('libp2p').Libp2p;
export type Bitswap = import('ipfs-bitswap').IPFSBitswap;
export type PeerId = import('@libp2p/interface-peer-id').PeerId;
export type AbortOptions = import('ipfs-core-types/src/utils').AbortOptions;
export type Multiaddr = import('@multiformats/multiaddr').Multiaddr;
import { BlockStorage } from "../block-storage.js";
//# sourceMappingURL=network.d.ts.map