/**
 * @param {Options} options
 */
export function create(options?: Options): Promise<IPFS>;
export type Options = import('../types').Options;
export type Print = import('../types').Print;
export type StorageAPI = typeof import("./storage.js");
export type BlockCodec = import('multiformats/codecs/interface').BlockCodec<any, any>;
export type MultihashHasher = import('multiformats/hashes/interface').MultihashHasher;
export type MultibaseCodec = import('multiformats/bases/interface').MultibaseCodec<any>;
/**
 * @typedef {import('../types').Options} Options
 * @typedef {import('../types').Print} Print
 * @typedef {import('./storage')} StorageAPI
 * @typedef {import('multiformats/codecs/interface').BlockCodec<any, any>} BlockCodec
 * @typedef {import('multiformats/hashes/interface').MultihashHasher} MultihashHasher
 * @typedef {import('multiformats/bases/interface').MultibaseCodec<any>} MultibaseCodec
 */
declare class IPFS {
    /**
     * @param {object} config
     * @param {Print} config.print
     * @param {Storage} config.storage
     * @param {import('ipfs-core-utils/multicodecs').Multicodecs} config.codecs
     * @param {Options} config.options
     */
    constructor({ print, storage, codecs, options }: {
        print: Print;
        storage: Storage;
        codecs: import('ipfs-core-utils/multicodecs').Multicodecs;
        options: Options;
    });
    hashers: Multihashes;
    bases: Multibases;
    preload: import("../types").Preload;
    name: NameAPI;
    ipns: IPNSAPI;
    pin: PinAPI;
    resolve: (name: string, options?: import("ipfs-core-types/src/root.js").ResolveOptions | undefined) => Promise<string>;
    block: BlockAPI;
    refs: ((ipfsPath: import("ipfs-core-types/src/utils.js").IPFSPath | import("ipfs-core-types/src/utils.js").IPFSPath[], options?: import("ipfs-core-types/src/refs/index.js").RefsOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/refs/index.js").RefsResult>) & {
        local: (options?: import("ipfs-core-types").AbortOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/refs/index.js").RefsResult>;
    };
    start: () => Promise<void>;
    stop: (options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<void>;
    dht: {
        get: (key: string | Uint8Array, options?: import("ipfs-core-types").AbortOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/dht/index.js").QueryEvent>;
        put: (key: string | Uint8Array, value: Uint8Array, options?: import("ipfs-core-types").AbortOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/dht/index.js").QueryEvent>;
        findProvs: (cid: import("multiformats/basics").CID<unknown, number, number, import("multiformats").Version>, options?: import("ipfs-core-types").AbortOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/dht/index.js").QueryEvent>;
        findPeer: (peerId: import("@libp2p/interface-peer-id").PeerId, options?: import("ipfs-core-types").AbortOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/dht/index.js").QueryEvent>;
        provide: (cid: import("multiformats/basics").CID<unknown, number, number, import("multiformats").Version>, options?: import("ipfs-core-types/src/dht/index.js").DHTProvideOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/dht/index.js").QueryEvent>;
        query: (peerId: import("multiformats/basics").CID<unknown, number, number, import("multiformats").Version> | import("@libp2p/interface-peer-id").PeerId, options?: import("ipfs-core-types").AbortOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/dht/index.js").QueryEvent>;
    };
    pubsub: {
        subscribe: (topic: string, handler: import("@libp2p/interfaces/dist/src/events.js").EventHandler<import("@libp2p/interface-pubsub").Message>, options?: import("ipfs-core-types/src/pubsub/index.js").SubscribeOptions | undefined) => Promise<void>;
        unsubscribe: (topic: string, handler?: import("@libp2p/interfaces/dist/src/events.js").EventHandler<import("@libp2p/interface-pubsub").Message> | undefined, options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<void>;
        publish: (topic: string, data: Uint8Array, options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<void>;
        ls: (options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<string[]>;
        peers: (topic: string, options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<import("@libp2p/interface-peer-id").PeerId[]>;
    };
    dns: (domain: string, options?: import("ipfs-core-types/src/root.js").DNSOptions | undefined) => Promise<string>;
    isOnline: () => boolean;
    id: (options?: import("ipfs-core-types/src/root.js").IDOptions | undefined) => Promise<import("ipfs-core-types/src/root.js").IDResult>;
    version: (options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<import("ipfs-core-types/src/root.js").VersionResult>;
    bitswap: BitswapAPI;
    bootstrap: BootstrapAPI;
    config: {
        getAll: (options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<import("ipfs-core-types/src/config/index.js").Config>;
        get: (key: string, options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<string | object>;
        set: (key: string, value: any, options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<void>;
        replace: (config: import("ipfs-core-types/src/config/index.js").Config, options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<void>;
        profiles: {
            apply: (name: string, options?: import("ipfs-core-types/src/config/profiles/index.js").ProfilesApplyOptions | undefined) => Promise<import("ipfs-core-types/src/config/profiles/index.js").ProfilesApplyResult>;
            list: (options?: import("ipfs-core-types").AbortOptions | undefined) => Promise<import("ipfs-core-types/src/config/profiles/index.js").Profile[]>;
        };
    };
    ping: (peerId: import("@libp2p/interface-peer-id").PeerId, options?: import("ipfs-core-types/src/root.js").PingOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/root.js").PingResult>;
    add: (entry: import("ipfs-core-types/src/utils.js").ImportCandidate, options?: import("ipfs-core-types/src/root.js").AddOptions | undefined) => Promise<import("ipfs-core-types/src/root.js").AddResult>;
    addAll: (source: import("ipfs-core-types/src/utils.js").ImportCandidateStream, options?: (import("ipfs-core-types/src/root.js").AddAllOptions & import("ipfs-core-types").AbortOptions) | undefined) => AsyncIterable<import("ipfs-core-types/src/root.js").AddResult>;
    cat: (ipfsPath: import("ipfs-core-types/src/utils.js").IPFSPath, options?: import("ipfs-core-types/src/root.js").CatOptions | undefined) => AsyncIterable<Uint8Array>;
    get: (ipfsPath: import("ipfs-core-types/src/utils.js").IPFSPath, options?: import("ipfs-core-types/src/root.js").GetOptions | undefined) => AsyncIterable<Uint8Array>;
    ls: (ipfsPath: import("ipfs-core-types/src/utils.js").IPFSPath, options?: import("ipfs-core-types/src/root.js").ListOptions | undefined) => AsyncIterable<import("ipfs-core-types/src/root.js").IPFSEntry>;
    dag: DagAPI;
    files: import("ipfs-core-types/src/files/index.js").API<any>;
    key: KeyAPI;
    object: ObjectAPI;
    repo: RepoAPI;
    stats: StatsAPI;
    swarm: SwarmAPI;
    commands: () => Promise<never>;
    diag: {
        cmds: () => Promise<never>;
        net: () => Promise<never>;
        sys: () => Promise<never>;
    };
    log: {
        level: () => Promise<never>;
        ls: () => Promise<never>;
        tail: () => AsyncGenerator<never, never, unknown>;
    };
    mount: () => Promise<never>;
    codecs: Multicodecs;
    /**
     * `IPFS.create` will do the initialization. Keep this around for backwards
     * compatibility.
     *
     * @deprecated
     */
    init(): Promise<void>;
}
import { Multihashes } from "ipfs-core-utils/multihashes";
import { Multibases } from "ipfs-core-utils/multibases";
import { NameAPI } from "./name/index.js";
import { IPNSAPI } from "./ipns.js";
import { PinAPI } from "./pin/index.js";
import { BlockAPI } from "./block/index.js";
import { BitswapAPI } from "./bitswap/index.js";
import { BootstrapAPI } from "./bootstrap/index.js";
import { DagAPI } from "./dag/index.js";
import { KeyAPI } from "./key/index.js";
import { ObjectAPI } from "./object/index.js";
import { RepoAPI } from "./repo/index.js";
import { StatsAPI } from "./stats/index.js";
import { SwarmAPI } from "./swarm/index.js";
import { Multicodecs } from "ipfs-core-utils/multicodecs";
import { Storage } from "./storage.js";
export {};
//# sourceMappingURL=index.d.ts.map