/**
 * @license
 * Copyright 2022-2024 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { MutableSet, ObservableSet } from "#general";
import { Endpoint } from "../Endpoint.js";
/**
 * Manages parent-child relationships between endpoints.
 */
export declare class EndpointContainer implements MutableSet<Endpoint, Endpoint>, ObservableSet<Endpoint> {
    #private;
    constructor(endpoint: Endpoint);
    get(id: string): Endpoint<import("../index.js").EndpointType.Empty> | undefined;
    add(endpoint: Endpoint): void;
    delete(endpoint: Endpoint): boolean;
    clear(): void;
    has(endpoint: Endpoint): boolean;
    get added(): import("#general").Observable<[Endpoint<import("../index.js").EndpointType.Empty>], void>;
    get deleted(): import("#general").Observable<[Endpoint<import("../index.js").EndpointType.Empty>], void>;
    get size(): number;
    [Symbol.iterator](): SetIterator<Endpoint<import("../index.js").EndpointType.Empty>>;
    /**
     * Soft-reset all parts.  Invoked automatically by the owner on reset.
     */
    reset(): Promise<void>;
    /**
     * Destroy all parts.  Invoked automatically by the owner on destroy.
     */
    close(): Promise<void>;
    /**
     * Ensure the endpoint's identity is unique amongst siblings.
     */
    /**
     * Confirm availability of an ID amongst the endpoint's children.
     */
    assertIdAvailable(id: string, endpoint: Endpoint): void;
    protected get endpoint(): Endpoint<import("../index.js").EndpointType.Empty>;
}
//# sourceMappingURL=EndpointContainer.d.ts.map