import type { Helia } from '@helia/interface';
import type { Libp2p, PrivateKey } from '@libp2p/interface';
import type { KeychainInit } from '@libp2p/keychain';
import type { DNS } from '@multiformats/dns';
import type { Libp2pOptions } from 'libp2p';
export interface CreateLibp2pOptions<T extends Record<string, unknown>> extends Libp2pOptions<T> {
    keychain?: KeychainInit;
}
export interface Libp2pDefaultsOptions {
    privateKey?: PrivateKey;
    keychain?: KeychainInit;
    dns?: DNS;
    name?: string;
    version?: string;
}
export declare function createLibp2p<T extends Record<string, unknown>>(helia: Helia, options: CreateLibp2pOptions<T>): Promise<Libp2p<T>>;
//# sourceMappingURL=libp2p.d.ts.map