import type { NobjcObject } from "objc-js";
import type { _NSCopying } from "./NSCopying.js";
import type { _NSDictionary } from "./NSDictionary.js";
import type { _NSEnumerator } from "./NSEnumerator.js";
import type { _NSFastEnumeration } from "./NSFastEnumeration.js";
import type { _NSObject } from "./NSObject.js";
import type { _NSPointerFunctions } from "./NSPointerFunctions.js";
import type { _NSSecureCoding } from "./NSSecureCoding.js";
import type { NSPointerFunctionsOptions } from "./NSPointerFunctionsOptions.js";
export declare class _NSMapTable extends _NSObject {
    static alloc(): _NSMapTable;
    static new(): _NSMapTable;
    init(): _NSMapTable;
    /** @deprecated GC no longer supported */
    static mapTableWithKeyOptions$valueOptions$(keyOptions: NSPointerFunctionsOptions, valueOptions: NSPointerFunctionsOptions): _NSMapTable;
    /** @deprecated GC no longer supported */
    static mapTableWithStrongToStrongObjects(): NobjcObject;
    /** @deprecated GC no longer supported */
    static mapTableWithWeakToStrongObjects(): NobjcObject;
    /** @deprecated GC no longer supported */
    static mapTableWithStrongToWeakObjects(): NobjcObject;
    /** @deprecated GC no longer supported */
    static mapTableWithWeakToWeakObjects(): NobjcObject;
    static strongToStrongObjectsMapTable(): _NSMapTable;
    /** entries are not necessarily purged right away when the weak key is reclaimed */
    static weakToStrongObjectsMapTable(): _NSMapTable;
    static strongToWeakObjectsMapTable(): _NSMapTable;
    /**
     * entries are not necessarily purged right away when the weak key or object is reclaimed
     */
    static weakToWeakObjectsMapTable(): _NSMapTable;
    /** @deprecated GC no longer supported */
    initWithKeyOptions$valueOptions$capacity$(keyOptions: NSPointerFunctionsOptions, valueOptions: NSPointerFunctionsOptions, initialCapacity: number): _NSMapTable;
    /** @deprecated GC no longer supported */
    initWithKeyPointerFunctions$valuePointerFunctions$capacity$(keyFunctions: _NSPointerFunctions, valueFunctions: _NSPointerFunctions, initialCapacity: number): _NSMapTable;
    objectForKey$(aKey: NobjcObject | null): NobjcObject | null;
    removeObjectForKey$(aKey: NobjcObject | null): void;
    /** add/replace value (CFDictionarySetValue, NSMapInsert) */
    setObject$forKey$(anObject: NobjcObject | null, aKey: NobjcObject | null): void;
    keyEnumerator(): _NSEnumerator;
    objectEnumerator(): _NSEnumerator | null;
    removeAllObjects(): void;
    /** create a dictionary of contents */
    dictionaryRepresentation(): _NSDictionary;
    /**
     * return an NSPointerFunctions object reflecting the functions in use. This is a new autoreleased object that can be subsequently modified and/or used directly in the creation of other pointer "collections".
     */
    keyPointerFunctions(): _NSPointerFunctions;
    valuePointerFunctions(): _NSPointerFunctions;
    count(): number;
}
export interface _NSMapTable extends _NSCopying, _NSSecureCoding, _NSFastEnumeration {
}
