/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Endpoint } from "#endpoint/Endpoint.js";
import { ClientGroup } from "#node/ClientGroup.js";
import { ClientNode } from "#node/ClientNode.js";
import { Node } from "#node/Node.js";
import { Environment, Environmental } from "@matter/general";
import { Binding } from "@matter/types/clusters/binding";
import { BindingServer } from "./BindingServer.js";
export type BindingResolution = {
    kind: "client";
    node: ClientNode;
    endpoint: Endpoint;
    entry: Binding.Target;
} | {
    kind: "group";
    node: ClientGroup;
    endpoint: Endpoint;
    entry: Binding.Target;
} | {
    kind: "server";
    node: Node;
    endpoint: Endpoint;
    entry: Binding.Target;
};
/**
 * Node-scoped service that manages the lifecycle of Matter binding connections.
 */
export declare class BindingManager {
    #private;
    constructor(env: Environment);
    register(server: BindingServer, sourceEndpoint: Endpoint, entry: Binding.Target): void;
    unregister(server: BindingServer, entry: Binding.Target): Promise<void>;
    disposeServer(server: BindingServer): Promise<void>;
    close(): Promise<void>;
    static [Environmental.create](env: Environment): BindingManager;
}
export declare namespace BindingManager {
    /** Stable string key for a {@link Binding.Target} — shared by BindingServer and BindingManager maps. */
    function entryKey(entry: Binding.Target): string;
}
//# sourceMappingURL=BindingManager.d.ts.map