import { PeerDiscovery, PeerDiscoveryEvents, TypedEventEmitter } from "@libp2p/interface";
import { peerDiscoverySymbol as symbol } from "@libp2p/interface";
import type { DiscoveryTrigger, DnsDiscOptions, DnsDiscoveryComponents, NodeCapabilityCount } from "@waku/interfaces";
/**
 * Parse options and expose function to return bootstrap peer addresses.
 */
export declare class PeerDiscoveryDns extends TypedEventEmitter<PeerDiscoveryEvents> implements PeerDiscovery, DiscoveryTrigger {
    private nextPeer;
    private _started;
    private _components;
    private _options;
    constructor(components: DnsDiscoveryComponents, options: DnsDiscOptions);
    /**
     * Start discovery process
     */
    start(): Promise<void>;
    findPeers(): Promise<void>;
    /**
     * Stop emitting events
     */
    stop(): void;
    get [symbol](): true;
    get [Symbol.toStringTag](): string;
}
export declare function wakuDnsDiscovery(enrUrls: string[], wantedNodeCapabilityCount?: Partial<NodeCapabilityCount>): (components: DnsDiscoveryComponents) => PeerDiscoveryDns;
