import type { ComponentLogger, Libp2p, PrivateKey } from '@libp2p/interface';
import type { KeychainInit } from '@libp2p/keychain';
import type { DNS } from '@multiformats/dns';
import type { Datastore } from 'interface-datastore';
import type { Libp2pOptions } from 'libp2p';
export interface CreateLibp2pHTTPOptions<T extends Record<string, unknown>> {
    datastore: Datastore;
    libp2p?: Libp2pOptions<T>;
    logger?: ComponentLogger;
    keychain?: KeychainInit;
    start?: boolean;
}
export interface Libp2pHTTPDefaultOptions {
    privateKey?: PrivateKey;
    keychain?: KeychainInit;
    dns?: DNS;
}
export declare function createLibp2p<T extends Record<string, unknown>>(options: CreateLibp2pHTTPOptions<T>): Promise<Libp2p<T>>;
//# sourceMappingURL=libp2p.d.ts.map