/// <reference types="node" />
import { ILogger } from "@node-lightning/logger";
import { IWireMessage } from "../messages/IWireMessage";
import { Peer } from "../Peer";
import { GossipFilter } from "./GossipFilter";
import { SyncState } from "./GossipManager";
import { GossipQueriesSync } from "./GossipQueriesSync";
export declare class PeerGossipState {
    gossipRelay: boolean;
}
export declare class GossipManager2 {
    readonly chainHash: Buffer;
    readonly filter: GossipFilter;
    protected logger: ILogger;
    protected peers: GossipPeer2[];
    protected syncState: SyncState;
    constructor(logger: ILogger, chainHash: Buffer, filter: GossipFilter);
    start(): void;
    onPeerReady(peer: Peer): void;
    private _syncPeer;
    findPeer(peer: Peer): GossipPeer2;
    handlePeerMessage(peer: Peer, msg: IWireMessage): Promise<void>;
}
export declare class GossipPeer2 {
    readonly peer: Peer;
    syncTask: GossipQueriesSync;
    constructor(peer: Peer);
    /**
     * Returns true if the gossip_queries feature has been negotiated with the
     * remote peer.
     */
    get gossipQueries(): boolean;
}
