/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { DiscoveryData } from "#common/Scanner.js";
import { SessionParameters } from "#session/SessionParameters.js";
import { ServerAddressUdp } from "@matter/general";
import { CaseAuthenticatedTag } from "@matter/types";
import { PeerAddress } from "./PeerAddress.js";
/**
 * Operational information for a single peer.
 *
 * For our purposes a "peer" is another node commissioned to a fabric to which we have access.
 */
export interface PeerDescriptor {
    /**
     * The logical address of the peer.
     */
    address: PeerAddress;
    /**
     * The data model revision the peer supports, if known.
     */
    dataModelRevision?: number;
    /**
     * A physical address the peer may be accessed at, if known.
     */
    operationalAddress?: ServerAddressUdp;
    /**
     * Additional information collected while locating the peer.
     */
    discoveryData?: DiscoveryData;
    /**
     * Parameters from most recent session.
     */
    sessionParameters?: SessionParameters;
    /**
     * Case Authenticated Tags (CATs) to use for operational CASE sessions with this node.
     *
     * CATs provide additional authentication context for Matter operational sessions. They are only used for
     * operational CASE connections after commissioning is complete, not during the initial PASE commissioning
     * process.
     */
    caseAuthenticatedTags?: readonly CaseAuthenticatedTag[];
}
export declare class ObservablePeerDescriptor implements PeerDescriptor {
    #private;
    constructor({ address, operationalAddress, discoveryData, caseAuthenticatedTags }: PeerDescriptor, onChange: () => void);
    get address(): PeerAddress;
    get operationalAddress(): ServerAddressUdp | undefined;
    set operationalAddress(value: ServerAddressUdp | undefined);
    get discoveryData(): DiscoveryData | undefined;
    set discoveryData(value: DiscoveryData | undefined);
    get sessionParameters(): SessionParameters | undefined;
    set sessionParameters(value: SessionParameters | undefined);
    get caseAuthenticatedTags(): undefined | readonly CaseAuthenticatedTag[];
    set caseAuthenticatedTags(cats: undefined | readonly CaseAuthenticatedTag[]);
}
//# sourceMappingURL=PeerDescriptor.d.ts.map