/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Diagnostic, ImmutableSet, MutableSet, ObservableSet } from "@matter/general";
import { Endpoint } from "../Endpoint.js";
/**
 * Manages parent-child relationships between endpoints.
 */
export declare class EndpointContainer<T extends Endpoint = Endpoint> implements ImmutableSet<T>, MutableSet<T, T>, ObservableSet<T> {
    #private;
    [Diagnostic.value]: Diagnostic;
    constructor(endpoint: Endpoint);
    get(id: string | number): T | undefined;
    add(endpoint: T): void;
    delete(endpoint: T): boolean;
    clear(): void;
    has(endpoint: T): boolean;
    get added(): import("@matter/general").Observable<[T], void>;
    get deleted(): import("@matter/general").Observable<[T], void>;
    get empty(): import("@matter/general").ObservableValue<[boolean], void>;
    get size(): number;
    map<T2>(fn: (part: T) => T2): T2[];
    filter(predicate: (part: T) => boolean): T[];
    find(predicate: (part: T) => boolean): T | undefined;
    forEach(fn: (part: T) => boolean): void;
    [Symbol.iterator](): SetIterator<T>;
    /**
     * 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>;
    /**
     * Confirm the availability of an ID amongst the endpoint's children.
     */
    assertIdAvailable(id: string, endpoint: Endpoint): void;
    protected get owner(): Endpoint<import("../index.js").EndpointType.Empty>;
}
//# sourceMappingURL=EndpointContainer.d.ts.map