/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Observable } from "#util/Observable.js";
/**
 * Set change events.
 */
export interface ObservableMap<K, V> {
    get added(): Observable<[key: K, newValue: V]>;
    get deleted(): Observable<[key: K, oldValue: V]>;
    get changed(): Observable<[key: K, newValue: V, oldValue: V]>;
}
/** Map extension to get added, deleted or changed events */
export declare class BasicMap<K, V> extends Map<K, V> implements ObservableMap<K, V> {
    #private;
    set(key: K, value: V): this;
    delete(key: K): boolean;
    get added(): Observable<[K, V], void>;
    get deleted(): Observable<[K, V], void>;
    get changed(): Observable<[K, V, V], void>;
}
//# sourceMappingURL=Map.d.ts.map