import { TypedEventEmitter } from "@libp2p/interface";
import { IdentifyResult, PeerDiscovery, PeerDiscoveryEvents, Startable } from "@libp2p/interface";
import { type Libp2pComponents, Tags } from "@waku/interfaces";
type LocalPeerCacheDiscoveryOptions = {
    tagName?: string;
    tagValue?: number;
    tagTTL?: number;
};
export declare const DEFAULT_LOCAL_TAG_NAME = Tags.LOCAL;
export declare class LocalPeerCacheDiscovery extends TypedEventEmitter<PeerDiscoveryEvents> implements PeerDiscovery, Startable {
    private readonly components;
    private readonly options?;
    private isStarted;
    private peers;
    constructor(components: Libp2pComponents, options?: LocalPeerCacheDiscoveryOptions | undefined);
    get [Symbol.toStringTag](): string;
    start(): Promise<void>;
    stop(): void | Promise<void>;
    handleNewPeers: (event: CustomEvent<IdentifyResult>) => void;
    private getPeersFromLocalStorage;
    private savePeersToLocalStorage;
}
export declare function wakuLocalPeerCacheDiscovery(): (components: Libp2pComponents, options?: LocalPeerCacheDiscoveryOptions) => LocalPeerCacheDiscovery;
export {};
