/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Duration, MatterError } from "@matter/general";
/**
 * Thrown when there is an error communicating with a peer.
 */
export declare class PeerCommunicationError extends MatterError {
}
/**
 * Thrown when there is a temporary error communicating with a peer.
 *
 * For these errors the peer may still be present, but we have cannot communicate with it.
 */
export declare class TransientPeerCommunicationError extends PeerCommunicationError {
}
/**
 * Thrown when a session is established over TCP but the peer's negotiated session parameters report no TCP server
 * support. Not transient so {@link CaseClient.pair} reports it to the peer as InvalidParam; the connect path then
 * falls back to UDP.
 */
export declare class TcpUnsupportedError extends PeerCommunicationError {
}
/**
 * Thrown when an operation aborts because session establishment times out.
 */
export declare class PeerUnreachableError extends TransientPeerCommunicationError {
    constructor(timeOffline: Duration);
}
/**
 * Thrown when an operation aborts because the peer became unresponsive with an active session.
 */
export declare class PeerUnresponsiveError extends TransientPeerCommunicationError {
    constructor(timeWaited?: Duration);
}
/**
 * Thrown when an expected message did not arrive on an active exchange before the timeout.
 *
 * Subtype of {@link PeerUnresponsiveError}, distinguished from the bare error which is raised when our own outbound
 * message was never acknowledged (the peer may never have received it).  This subtype means the exchange was live but
 * the awaited message — a command response or a subscription/server report — never came.  It does not by itself imply
 * our request was delivered; a caller that reads strictly after a successful (acked) send may additionally infer
 * delivery from that ordering.
 */
export declare class PeerMessageMissingError extends PeerUnresponsiveError {
}
/**
 * Thrown when a session is closed due to peer shutdown.
 */
export declare class PeerShutdownError extends TransientPeerCommunicationError {
    constructor(message?: string);
}
/**
 * Thrown when an operation aborts because the peer closed the active session.
 */
export declare class PeerInitiatedCloseError extends TransientPeerCommunicationError {
    constructor(message?: string);
}
/**
 * Thrown when communication fails because a peer has left the fabric.
 */
export declare class PeerLeftError extends PeerCommunicationError {
    constructor(message?: string);
}
/**
 * Thrown when communication fails because a peer the local node has left the fabric associated with the session.
 */
export declare class FabricRemovedError extends PeerCommunicationError {
    constructor(message?: string);
}
/**
 * Thrown when communication fails because the fabric associated with the session has changed.
 */
export declare class FabricChangedError extends PeerCommunicationError {
    constructor(message?: string);
}
/**
 * Thrown when a session to an ephemeral peer has closed due to failsafe timer expiration.
 */
export declare class FailsafeExpiredError extends PeerCommunicationError {
    constructor(message?: string);
}
/**
 * Thrown when attempting communication on a PASE session that was discarded due to transition to another session as
 * part of the commissioning flow.
 */
export declare class CommissioningTransitionError extends PeerCommunicationError {
}
/**
 * Thrown when an operation aborts because a peer's network address has changed.
 */
export declare class OperationalAddressChangedError extends PeerCommunicationError {
    constructor(message?: string);
}
//# sourceMappingURL=PeerCommunicationError.d.ts.map