import type { NobjcObject } from "objc-js";
import type { _NSArray } from "./NSArray.js";
import type { _NSCoder } from "./NSCoder.js";
import type { _NSIndexSet } from "./NSIndexSet.js";
import type { _NSOrderedCollectionDifference } from "./NSOrderedCollectionDifference.js";
import type { _NSPredicate } from "./NSPredicate.js";
import type { _NSString } from "./NSString.js";
import type { _NSURL } from "./NSURL.js";
import type { NSRange } from "../structs/NSRange.js";
import type { NSSortOptions } from "./NSSortOptions.js";
export declare class _NSMutableArray extends _NSArray {
    static alloc(): _NSMutableArray;
    static new(): _NSMutableArray;
    static arrayWithCapacity$(numItems: number): _NSMutableArray;
    static arrayWithContentsOfFile$(path: _NSString): _NSMutableArray | null;
    static arrayWithContentsOfURL$(url: _NSURL): _NSMutableArray | null;
    addObject$(anObject: NobjcObject): void;
    insertObject$atIndex$(anObject: NobjcObject, index: number): void;
    removeLastObject(): void;
    removeObjectAtIndex$(index: number): void;
    replaceObjectAtIndex$withObject$(index: number, anObject: NobjcObject): void;
    init(): _NSMutableArray;
    initWithCapacity$(numItems: number): _NSMutableArray;
    initWithCoder$(coder: _NSCoder): _NSMutableArray | null;
    addObjectsFromArray$(otherArray: _NSArray): void;
    exchangeObjectAtIndex$withObjectAtIndex$(idx1: number, idx2: number): void;
    /** @deprecated Not supported */
    removeAllObjects(): void;
    /** @deprecated Not supported */
    removeObject$inRange$(anObject: NobjcObject, range: NSRange): void;
    /** @deprecated Not supported */
    removeObject$(anObject: NobjcObject): void;
    /** @deprecated Not supported */
    removeObjectIdenticalTo$inRange$(anObject: NobjcObject, range: NSRange): void;
    /** @deprecated Not supported */
    removeObjectIdenticalTo$(anObject: NobjcObject): void;
    /** @deprecated Not supported */
    removeObjectsFromIndices$numIndices$(indices: NobjcObject, cnt: number): void;
    removeObjectsInArray$(otherArray: _NSArray): void;
    removeObjectsInRange$(range: NSRange): void;
    replaceObjectsInRange$withObjectsFromArray$range$(range: NSRange, otherArray: _NSArray, otherRange: NSRange): void;
    replaceObjectsInRange$withObjectsFromArray$(range: NSRange, otherArray: _NSArray): void;
    setArray$(otherArray: _NSArray): void;
    sortUsingFunction$context$(compare: NobjcObject | null, context: Uint8Array | null): void;
    sortUsingSelector$(comparator: string): void;
    insertObjects$atIndexes$(objects: _NSArray, indexes: _NSIndexSet): void;
    removeObjectsAtIndexes$(indexes: _NSIndexSet): void;
    replaceObjectsAtIndexes$withObjects$(indexes: _NSIndexSet, objects: _NSArray): void;
    setObject$atIndexedSubscript$(obj: NobjcObject, idx: number): void;
    sortUsingComparator$(cmptr: (arg0: NobjcObject, arg1: NobjcObject) => number): void;
    sortWithOptions$usingComparator$(opts: NSSortOptions, cmptr: (arg0: NobjcObject, arg1: NobjcObject) => number): void;
    initWithContentsOfFile$(path: _NSString): _NSMutableArray | null;
    initWithContentsOfURL$(url: _NSURL): _NSMutableArray | null;
    applyDifference$(difference: _NSOrderedCollectionDifference): void;
    /** sorts the array itself */
    sortUsingDescriptors$(sortDescriptors: _NSArray): void;
    /**
     * evaluate a predicate against an array of objects and filter the mutable array directly
     */
    filterUsingPredicate$(predicate: _NSPredicate): void;
}
