/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Immutable } from "#general";
import { CommissionableDevice, OperationalDevice, PeerAddress } from "#protocol";
import type { CommissioningClient } from "./CommissioningClient.js";
/**
 * Device descriptor used by lower-level components.
 */
export type RemoteDescriptor = Partial<OperationalDevice | CommissionableDevice>;
export declare namespace RemoteDescriptor {
    /**
     * The "long form" descriptor used by higher-level components.
     */
    type Long = CommissioningClient.State;
    /**
     * The subset of device identifiers that matches canonically for identity purposes.
     */
    interface Identifier {
        readonly peerAddress?: Readonly<PeerAddress>;
        readonly deviceIdentifier?: string;
    }
    function is(subject: Identifier, object: Identifier): boolean;
    function fromLongForm(long: Immutable<Long>): RemoteDescriptor;
    function toLongForm(descriptor: RemoteDescriptor | undefined, long?: Long): CommissioningClient.State;
}
//# sourceMappingURL=RemoteDescriptor.d.ts.map