import type { NobjcObject } from "objc-js";
import type { _NSArray } from "./NSArray.js";
import type { _NSCoder } from "./NSCoder.js";
import type { _NSCopying } from "./NSCopying.js";
import type { _NSDictionary } from "./NSDictionary.js";
import type { _NSString } from "./NSString.js";
import type { _NSURL } from "./NSURL.js";
export declare class _NSMutableDictionary extends _NSDictionary {
    static alloc(): _NSMutableDictionary;
    static new(): _NSMutableDictionary;
    static dictionaryWithCapacity$(numItems: number): _NSMutableDictionary;
    static dictionaryWithContentsOfFile$(path: _NSString): _NSMutableDictionary | null;
    static dictionaryWithContentsOfURL$(url: _NSURL): _NSMutableDictionary | null;
    /**
     * Create a mutable dictionary which is optimized for dealing with a known set of keys. Keys that are not in the key set can still be set into the dictionary, but that usage is not optimal. As with any dictionary, the keys must be copyable. If keyset is nil, an exception is thrown. If keyset is not an object returned by +sharedKeySetForKeys:, an exception is thrown.
     */
    static dictionaryWithSharedKeySet$(keyset: NobjcObject): _NSMutableDictionary;
    removeObjectForKey$(aKey: NobjcObject): void;
    setObject$forKey$(anObject: NobjcObject, aKey: _NSCopying): void;
    init(): _NSMutableDictionary;
    initWithCapacity$(numItems: number): _NSMutableDictionary;
    initWithCoder$(coder: _NSCoder): _NSMutableDictionary | null;
    addEntriesFromDictionary$(otherDictionary: _NSDictionary): void;
    removeAllObjects(): void;
    removeObjectsForKeys$(keyArray: _NSArray): void;
    setDictionary$(otherDictionary: _NSDictionary): void;
    setObject$forKeyedSubscript$(obj: NobjcObject | null, key: _NSCopying): void;
    initWithContentsOfFile$(path: _NSString): _NSMutableDictionary | null;
    initWithContentsOfURL$(url: _NSURL): _NSMutableDictionary | null;
    /**
     * Send -setObject:forKey: to the receiver, unless the value is nil, in which case send -removeObjectForKey:.
     */
    setValue$forKey$(value: NobjcObject | null, key: _NSString): void;
}
