import type { NobjcObject } from "objc-js";
import type { _NSArray } from "./NSArray.js";
import type { _NSCopying } from "./NSCopying.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 { _NSSet } from "./NSSet.js";
import type { NSPointerFunctionsOptions } from "./NSPointerFunctionsOptions.js";
export declare class _NSHashTable extends _NSObject {
    static alloc(): _NSHashTable;
    static new(): _NSHashTable;
    init(): _NSHashTable;
    /**
     * conveniences
     * @deprecated GC no longer supported
     */
    static hashTableWithOptions$(options: NSPointerFunctionsOptions): _NSHashTable;
    /**
     * GC zeroing, otherwise unsafe unretained
     * @deprecated GC no longer supported
     */
    static hashTableWithWeakObjects(): NobjcObject;
    /** entries are not necessarily purged right away when the weak object is reclaimed */
    static weakObjectsHashTable(): _NSHashTable;
    initWithOptions$capacity$(options: NSPointerFunctionsOptions, initialCapacity: number): _NSHashTable;
    initWithPointerFunctions$capacity$(functions: _NSPointerFunctions, initialCapacity: number): _NSHashTable;
    member$(object_: NobjcObject | null): NobjcObject | null;
    objectEnumerator(): _NSEnumerator;
    addObject$(object_: NobjcObject | null): void;
    removeObject$(object_: NobjcObject | null): void;
    removeAllObjects(): void;
    containsObject$(anObject: NobjcObject | null): boolean;
    intersectsHashTable$(other: _NSHashTable): boolean;
    isEqualToHashTable$(other: _NSHashTable): boolean;
    isSubsetOfHashTable$(other: _NSHashTable): boolean;
    intersectHashTable$(other: _NSHashTable): void;
    unionHashTable$(other: _NSHashTable): void;
    minusHashTable$(other: _NSHashTable): void;
    /**
     * 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".
     */
    pointerFunctions(): _NSPointerFunctions;
    count(): number;
    /** convenience */
    allObjects(): _NSArray;
    anyObject(): NobjcObject | null;
    /** create a set of the contents */
    setRepresentation(): _NSSet;
}
export interface _NSHashTable extends _NSCopying, _NSSecureCoding, _NSFastEnumeration {
}
