import { TypedEventEmitter } from '@libp2p/interface';
import type { AbortOptions, ComponentLogger, PeerInfo, PeerRouting, Startable } from '@libp2p/interface';
import type { RandomWalk as RandomWalkInterface } from '@libp2p/interface-internal';
export interface RandomWalkComponents {
    peerRouting: PeerRouting;
    logger: ComponentLogger;
}
interface RandomWalkEvents {
    'walk:peer': CustomEvent<PeerInfo>;
    'walk:error': CustomEvent<Error>;
}
export declare class RandomWalk extends TypedEventEmitter<RandomWalkEvents> implements RandomWalkInterface, Startable {
    private readonly peerRouting;
    private readonly log;
    private walking;
    private walkers;
    private shutdownController;
    private walkController?;
    private needNext?;
    constructor(components: RandomWalkComponents);
    readonly [Symbol.toStringTag] = "@libp2p/random-walk";
    start(): void;
    stop(): void;
    walk(options?: AbortOptions): AsyncGenerator<PeerInfo>;
    private startWalk;
}
export {};
//# sourceMappingURL=random-walk.d.ts.map