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 { _NSDate } from "./NSDate.js";
import type { _NSEnumerator } from "./NSEnumerator.js";
import type { _NSMutableCopying } from "./NSMutableCopying.js";
import type { _NSNumber } from "./NSNumber.js";
import type { _NSObject } from "./NSObject.js";
import type { _NSSet } from "./NSSet.js";
import type { _NSString } from "./NSString.js";
import type { _NSURL } from "./NSURL.js";
import type { NSEnumerationOptions } from "./NSEnumerationOptions.js";
import type { NSSortOptions } from "./NSSortOptions.js";
export declare class _NSDictionary extends _NSObject {
    static alloc(): _NSDictionary;
    static new(): _NSDictionary;
    /**
     * These methods are deprecated, and will be marked with API_DEPRECATED in a subsequent release. Use the variants that use errors instead.
     * @deprecated dictionaryWithContentsOfURL:error:
     */
    static dictionaryWithContentsOfFile$(path: _NSString): _NSDictionary | null;
    /** @deprecated dictionaryWithContentsOfURL:error: */
    static dictionaryWithContentsOfURL$(url: _NSURL): _NSDictionary | null;
    static dictionary(): _NSDictionary;
    static dictionaryWithObject$forKey$(object_: NobjcObject, key: _NSCopying): _NSDictionary;
    static dictionaryWithObjects$forKeys$count$(objects: NobjcObject | null, keys: NobjcObject | null, cnt: number): _NSDictionary;
    static dictionaryWithObjectsAndKeys$(firstObject: NobjcObject): _NSDictionary;
    static dictionaryWithDictionary$(dict: _NSDictionary): _NSDictionary;
    static dictionaryWithObjects$forKeys$(objects: _NSArray, keys: _NSArray): _NSDictionary;
    /** Reads dictionary stored in NSPropertyList format from the specified url. */
    static dictionaryWithContentsOfURL$error$(url: _NSURL, error: NobjcObject | null): _NSDictionary | null;
    /**
     * Use this method to create a key set to pass to +dictionaryWithSharedKeySet:. The keys are copied from the array and must be copyable. If the array parameter is nil or not an NSArray, an exception is thrown. If the array of keys is empty, an empty key set is returned. The array of keys may contain duplicates, which are ignored (it is undefined which object of each duplicate pair is used). As for any usage of hashing, is recommended that the keys have a well-distributed implementation of -hash, and the hash codes must satisfy the hash/isEqual: invariant. Keys with duplicate hash codes are allowed, but will cause lower performance and increase memory usage.
     */
    static sharedKeySetForKeys$(keys: _NSArray): NobjcObject;
    objectForKey$(aKey: NobjcObject): NobjcObject | null;
    keyEnumerator(): _NSEnumerator;
    init(): _NSDictionary;
    initWithObjects$forKeys$count$(objects: NobjcObject | null, keys: NobjcObject | null, cnt: number): _NSDictionary;
    initWithCoder$(coder: _NSCoder): _NSDictionary | null;
    allKeysForObject$(anObject: NobjcObject): _NSArray;
    descriptionWithLocale$(locale: NobjcObject | null): _NSString;
    descriptionWithLocale$indent$(locale: NobjcObject | null, level: number): _NSString;
    isEqualToDictionary$(otherDictionary: _NSDictionary): boolean;
    objectEnumerator(): _NSEnumerator;
    objectsForKeys$notFoundMarker$(keys: _NSArray, marker: NobjcObject): _NSArray;
    /**
     * Serializes this instance to the specified URL in the NSPropertyList format (using NSPropertyListXMLFormat_v1_0). For other formats use NSPropertyListSerialization directly.
     */
    writeToURL$error$(url: _NSURL, error: NobjcObject | null): boolean;
    keysSortedByValueUsingSelector$(comparator: string): _NSArray;
    /** count refers to the number of elements in the dictionary */
    getObjects$andKeys$count$(objects: NobjcObject | null, keys: NobjcObject | null, count: number): void;
    objectForKeyedSubscript$(key: NobjcObject): NobjcObject | null;
    enumerateKeysAndObjectsUsingBlock$(block: (key: NobjcObject, obj: NobjcObject, stop: NobjcObject) => void): void;
    enumerateKeysAndObjectsWithOptions$usingBlock$(opts: NSEnumerationOptions, block: (key: NobjcObject, obj: NobjcObject, stop: NobjcObject) => void): void;
    keysSortedByValueUsingComparator$(cmptr: (arg0: NobjcObject, arg1: NobjcObject) => number): _NSArray;
    keysSortedByValueWithOptions$usingComparator$(opts: NSSortOptions, cmptr: (arg0: NobjcObject, arg1: NobjcObject) => number): _NSArray;
    keysOfEntriesPassingTest$(predicate: (key: NobjcObject, obj: NobjcObject, stop: NobjcObject) => boolean): _NSSet;
    keysOfEntriesWithOptions$passingTest$(opts: NSEnumerationOptions, predicate: (key: NobjcObject, obj: NobjcObject, stop: NobjcObject) => boolean): _NSSet;
    /**
     * This method is unsafe because it could potentially cause buffer overruns. You should use -getObjects:andKeys:count:
     * @deprecated Use -getObjects:andKeys:count: instead
     */
    getObjects$andKeys$(objects: NobjcObject | null, keys: NobjcObject | null): void;
    /** @deprecated initWithContentsOfURL:error: */
    initWithContentsOfFile$(path: _NSString): _NSDictionary | null;
    /** @deprecated initWithContentsOfURL:error: */
    initWithContentsOfURL$(url: _NSURL): _NSDictionary | null;
    /** @deprecated writeToURL:error: */
    writeToFile$atomically$(path: _NSString, useAuxiliaryFile: boolean): boolean;
    /**
     * the atomically flag is ignored if url of a type that cannot be written atomically.
     * @deprecated writeToURL:error:
     */
    writeToURL$atomically$(url: _NSURL, atomically: boolean): boolean;
    initWithObjectsAndKeys$(firstObject: NobjcObject): _NSDictionary;
    initWithDictionary$(otherDictionary: _NSDictionary): _NSDictionary;
    initWithDictionary$copyItems$(otherDictionary: _NSDictionary, flag: boolean): _NSDictionary;
    initWithObjects$forKeys$(objects: _NSArray, keys: _NSArray): _NSDictionary;
    /** Reads dictionary stored in NSPropertyList format from the specified url. */
    initWithContentsOfURL$error$(url: _NSURL, error: NobjcObject | null): _NSDictionary | null;
    countByEnumeratingWithState$objects$count$(state: NobjcObject, buffer: NobjcObject | null, len: number): number;
    fileSize(): number;
    fileModificationDate(): _NSDate | null;
    fileType(): _NSString | null;
    filePosixPermissions(): number;
    fileOwnerAccountName(): _NSString | null;
    fileGroupOwnerAccountName(): _NSString | null;
    fileSystemNumber(): number;
    fileSystemFileNumber(): number;
    fileExtensionHidden(): boolean;
    fileHFSCreatorCode(): number;
    fileHFSTypeCode(): number;
    fileIsImmutable(): boolean;
    fileIsAppendOnly(): boolean;
    fileCreationDate(): _NSDate | null;
    fileOwnerAccountID(): _NSNumber | null;
    fileGroupOwnerAccountID(): _NSNumber | null;
    /** Return the result of sending -objectForKey: to the receiver. */
    valueForKey$(key: _NSString): NobjcObject | null;
    count(): number;
    allKeys(): _NSArray;
    allValues(): _NSArray;
    description(): _NSString;
    descriptionInStringsFileFormat(): _NSString;
}
export interface _NSDictionary extends _NSCopying, _NSMutableCopying {
}
