/**
 * @typedef {import('ipfs-repo').IPFSRepo} IPFSRepo
 * @typedef {import('../types').Options} IPFSOptions
 * @typedef {import('../types').InitOptions} InitOptions
 * @typedef {import('../types').Print} Print
 * @typedef {import('ipfs-core-types/src/config').Config} IPFSConfig
 * @typedef {import('@libp2p/crypto/keys').KeyTypes} KeyType
 * @typedef {import('@libp2p/interface-keychain').KeyChain} Keychain
 * @typedef {import('@libp2p/interface-peer-id').PeerId} PeerId
 */
export class Storage {
    /**
     * @param {Print} print
     * @param {import('ipfs-core-utils/multicodecs').Multicodecs} codecs
     * @param {IPFSOptions} options
     */
    static start(print: Print, codecs: import('ipfs-core-utils/multicodecs').Multicodecs, options: IPFSOptions): Promise<Storage>;
    /**
     * @private
     * @param {PeerId} peerId
     * @param {Keychain} keychain
     * @param {IPFSRepo} repo
     * @param {Print} print
     * @param {boolean} isNew
     */
    private constructor();
    print: import("../types").Print;
    peerId: import("@libp2p/interface-peer-id").PeerId;
    keychain: import("@libp2p/interface-keychain").KeyChain;
    repo: import("ipfs-repo/dist/src/types.js").IPFSRepo;
    isNew: boolean;
}
export type IPFSRepo = import('ipfs-repo').IPFSRepo;
export type IPFSOptions = import('../types').Options;
export type InitOptions = import('../types').InitOptions;
export type Print = import('../types').Print;
export type IPFSConfig = import('ipfs-core-types/src/config').Config;
export type KeyType = import('@libp2p/crypto/keys').KeyTypes;
export type Keychain = import('@libp2p/interface-keychain').KeyChain;
export type PeerId = import('@libp2p/interface-peer-id').PeerId;
//# sourceMappingURL=storage.d.ts.map