/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Duration } from "@matter/general";
import type { Peer } from "./Peer.js";
/**
 * Monitors mDNS-discovered addresses for a peer and probes the current session when the session's IP
 * disappears from discovered addresses.
 *
 * When the peer's {@link IpService} reports changes, call {@link schedule} to start the debounce timer.
 * After stabilization, if the session's current IP is no longer in the discovered set, an empty-read
 * probe verifies the address is still reachable.  If the probe fails, normal reconnection picks up the
 * new discovered addresses.
 *
 * Repeated probes for the same address use a Fibonacci-like backoff so persistent mDNS churn doesn't
 * flood the network.
 */
export declare class PeerAddressMonitor {
    #private;
    constructor(peer: Peer, stabilizationDelay: Duration, probeCooldown: {
        minimum: Duration;
        maximum: Duration;
    }, abort: AbortSignal, trackWork: (work: PromiseLike<void>) => void);
    /**
     * Schedule a debounced address check.  Restarts the timer on each call so rapid changes coalesce.
     */
    schedule(): void;
    /**
     * Stop the timer.  Does not cancel an in-flight probe.
     */
    stop(): void;
}
//# sourceMappingURL=PeerAddressMonitor.d.ts.map