import type { NobjcObject } from "objc-js";
import type { _NSArray } from "./NSArray.js";
import type { _NSCopying } from "./NSCopying.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 _NSPointerArray extends _NSObject {
    static alloc(): _NSPointerArray;
    static new(): _NSPointerArray;
    init(): _NSPointerArray;
    static pointerArrayWithOptions$(options: NSPointerFunctionsOptions): _NSPointerArray;
    static pointerArrayWithPointerFunctions$(functions: _NSPointerFunctions): _NSPointerArray;
    /**
     * strong objects
     * @deprecated GC no longer supported
     */
    static pointerArrayWithStrongObjects(): NobjcObject;
    /**
     * weak objects
     * @deprecated GC no longer supported
     */
    static pointerArrayWithWeakObjects(): NobjcObject;
    static strongObjectsPointerArray(): _NSPointerArray;
    static weakObjectsPointerArray(): _NSPointerArray;
    /** construction */
    initWithOptions$(options: NSPointerFunctionsOptions): _NSPointerArray;
    initWithPointerFunctions$(functions: _NSPointerFunctions): _NSPointerArray;
    pointerAtIndex$(index: number): NobjcObject | null;
    /** add pointer at index 'count' */
    addPointer$(pointer: Uint8Array | null): void;
    /** everything above index, including holes, slide lower */
    removePointerAtIndex$(index: number): void;
    /** everything at & above index, including holes, slide higher */
    insertPointer$atIndex$(item: Uint8Array | null, index: number): void;
    /** O(1); NULL item is okay; index must be < count */
    replacePointerAtIndex$withPointer$(index: number, item: Uint8Array | null): void;
    /** eliminate NULLs */
    compact(): 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;
    /**
     * Getter: the number of elements in the array, including NULLs Setter: sets desired number of elements, adding NULLs or removing items as necessary.
     */
    count(): number;
    setCount$(value: number): void;
    allObjects(): _NSArray;
}
export interface _NSPointerArray extends _NSFastEnumeration, _NSCopying, _NSSecureCoding {
}
