import { IPeerExchange, Libp2pComponents, PeerExchangeQueryParams, PeerExchangeQueryResult } from "@waku/interfaces";
export declare const PeerExchangeCodec = "/vac/waku/peer-exchange/2.0.0-alpha1";
/**
 * Implementation of the Peer Exchange protocol (https://rfc.vac.dev/spec/34/)
 */
export declare class WakuPeerExchange implements IPeerExchange {
    private readonly components;
    private readonly streamManager;
    /**
     * @param components - libp2p components
     */
    constructor(components: Libp2pComponents);
    /**
     * Make a peer exchange query to a peer
     */
    query(params: PeerExchangeQueryParams): Promise<PeerExchangeQueryResult>;
}
/**
 *
 * @returns A function that creates a new peer exchange protocol
 */
export declare function wakuPeerExchange(): (components: Libp2pComponents) => WakuPeerExchange;
