/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { Endpoint } from "#endpoint/Endpoint.js";
import { ImplementationError } from "#general";
import type { ClientNode } from "#node/ClientNode.js";
import type { PeerAddress } from "#protocol";
import type { FabricIndex, NodeId } from "#types";
/**
 * Thrown when there is a endpoint ID or number conflict.
 */
export declare class IdentityConflictError extends ImplementationError {
}
/**
 * Provides NodeServer and Endpoint identification.
 */
export declare class IdentityService {
    #private;
    constructor(node: Endpoint);
    /**
     * Textual description of the node.
     */
    get nodeDescription(): string;
    /**
     * Ensure that a number is available for assignment to a {@link Endpoint}.
     */
    assertNumberAvailable(number: number, endpoint: Endpoint): void;
    /**
     * Assign a peer address.
     */
    assignNodeAddress(_node: ClientNode, _fabricIndex: FabricIndex, _nodeId?: NodeId): Promise<PeerAddress>;
    /**
     * Release a peer address.
     */
    releaseNodeAddress(_address: PeerAddress): void;
}
//# sourceMappingURL=IdentityService.d.ts.map