/**
 * @packageDocumentation
 *
 * Adds libp2p functionality to Helia
 *
 * @example
 *
 * ```ts
 * import { createHelia } from 'helia'
 * import { withLibp2p } from '@helia/libp2p'
 *
 * const node = await withLibp2p(createHelia()).start()
 *
 * console.info(node.libp2p.peerId) // 12D3Koo...
 * ```
 */
import type { DefaultLibp2pServices } from './utils/libp2p-defaults.ts';
import type { CreateLibp2pOptions } from './utils/libp2p.ts';
import type { Helia } from '@helia/interface';
import type { Libp2p, ServiceMap } from '@libp2p/interface';
export { libp2pDefaults } from './utils/libp2p-defaults.ts';
export type { DefaultLibp2pServices } from './utils/libp2p-defaults.ts';
export type { CreateLibp2pOptions };
export interface HeliaWithLibp2p<M extends ServiceMap = DefaultLibp2pServices> extends Helia {
    /**
     * Libp2p provides a peer identity and a networking layer
     */
    libp2p: Libp2p<M>;
}
/**
 * Return a Helia node augmented with a libp2p instance
 */
export declare function withLibp2p<H extends Helia, M extends ServiceMap = ServiceMap, L extends Libp2p = Libp2p<M>>(helia: H, opts: L): H & HeliaWithLibp2p<M>;
export declare function withLibp2p<H extends Helia, M extends ServiceMap = ServiceMap>(helia: H, opts?: CreateLibp2pOptions<M>): H & HeliaWithLibp2p<M>;
//# sourceMappingURL=index.d.ts.map