import type { NobjcObject } from "objc-js";
import type { _NSArray } from "./NSArray.js";
import type { _NSCoder } from "./NSCoder.js";
import type { _NSData } from "./NSData.js";
import type { _NSDictionary } from "./NSDictionary.js";
import type { _NSKeyedUnarchiverDelegate } from "./NSKeyedUnarchiverDelegate.js";
import type { _NSSet } from "./NSSet.js";
import type { _NSString } from "./NSString.js";
import type { NSDecodingFailurePolicy } from "./NSDecodingFailurePolicy.js";
export declare class _NSKeyedUnarchiver extends _NSCoder {
    static alloc(): _NSKeyedUnarchiver;
    static new(): _NSKeyedUnarchiver;
    /**
     * Decodes the root object of the given class from the given archive, previously encoded by \c NSKeyedArchiver. Enables \c requiresSecureCoding and sets the \c decodingFailurePolicy to \c NSDecodingFailurePolicySetErrorAndReturn. Returns \c nil if the given data is not valid or cannot be decoded, and sets the \c error out parameter.
     */
    static unarchivedObjectOfClass$fromData$error$(cls: NobjcObject, data: _NSData, error: NobjcObject | null): NobjcObject | null;
    /**
     * Decodes the \c NSArray root object from \c data which should be an \c NSArray<cls> containing the given non-collection class (no nested arrays or arrays of dictionaries, etc) from the given archive, previously encoded by \c NSKeyedArchiver. Enables \c requiresSecureCoding and sets the \c decodingFailurePolicy to \c NSDecodingFailurePolicySetErrorAndReturn. Returns \c nil if the given data is not valid or cannot be decoded, and sets the \c error out parameter.
     */
    static unarchivedArrayOfObjectsOfClass$fromData$error$(cls: NobjcObject, data: _NSData, error: NobjcObject | null): _NSArray | null;
    /**
     * Decodes the \c NSDictionary root object from \c data which should be an \c NSDictionary<keyCls,objectCls> with keys of type given in \c keyCls and objects of the given non-collection class \c objectCls (no nested dictionaries or other dictionaries contained in the dictionary, etc) from the given archive, previously encoded by \c NSKeyedArchiver. Enables \c requiresSecureCoding and sets the \c decodingFailurePolicy to \c NSDecodingFailurePolicySetErrorAndReturn. Returns \c nil if the given data is not valid or cannot be decoded, and sets the \c error out parameter.
     */
    static unarchivedDictionaryWithKeysOfClass$objectsOfClass$fromData$error$(keyCls: NobjcObject, valueCls: NobjcObject, data: _NSData, error: NobjcObject | null): _NSDictionary | null;
    /**
     * Decodes the root object of one of the given classes from the given archive, previously encoded by \c NSKeyedArchiver. Enables \c requiresSecureCoding and sets the \c decodingFailurePolicy to \c NSDecodingFailurePolicySetErrorAndReturn. Returns \c nil if the given data is not valid or cannot be decoded, and sets the \c error out parameter.
     */
    static unarchivedObjectOfClasses$fromData$error$(classes: _NSSet, data: _NSData, error: NobjcObject | null): NobjcObject | null;
    /**
     * Decodes the \c NSArray root object from \c data which should be an \c NSArray, containing the given non-collection classes in \c classes (no nested arrays or arrays of dictionaries, etc) from the given archive, previously encoded by \c NSKeyedArchiver. Enables \c requiresSecureCoding and sets the \c decodingFailurePolicy to \c NSDecodingFailurePolicySetErrorAndReturn. Returns \c nil if the given data is not valid or cannot be decoded, and sets the \c error out parameter.
     */
    static unarchivedArrayOfObjectsOfClasses$fromData$error$(classes: _NSSet, data: _NSData, error: NobjcObject | null): _NSArray | null;
    /**
     * Decodes the \c NSDictionary root object from \c data which should be an \c NSDictionary, with keys of the types given in \c keyClasses and objects of the given non-collection classes in \c objectClasses (no nested dictionaries or other dictionaries contained in the dictionary, etc) from the given archive, previously encoded by \c NSKeyedArchiver. Enables \c requiresSecureCoding and sets the \c decodingFailurePolicy to \c NSDecodingFailurePolicySetErrorAndReturn. Returns \c nil if the given data is not valid or cannot be decoded, and sets the \c error out parameter.
     * @deprecated Use -initForReadingFromData:error: instead
     */
    static unarchivedDictionaryWithKeysOfClasses$objectsOfClasses$fromData$error$(keyClasses: _NSSet, valueClasses: _NSSet, data: _NSData, error: NobjcObject | null): _NSDictionary | null;
    /** @deprecated Use +unarchivedObjectOfClass:fromData:error: instead */
    static unarchiveObjectWithData$(data: _NSData): NobjcObject | null;
    /** @deprecated Use +unarchivedObjectOfClass:fromData:error: instead */
    static unarchiveTopLevelObjectWithData$error$(data: _NSData, error: NobjcObject | null): NobjcObject | null;
    /** @deprecated Use +unarchivedObjectOfClass:fromData:error: instead */
    static unarchiveObjectWithFile$(path: _NSString): NobjcObject | null;
    static setClass$forClassName$(cls: NobjcObject | null, codedName: _NSString): void;
    /**
     * During decoding, the coder first checks with the coder's own table, then if there was no mapping there, the class's.
     */
    static classForClassName$(codedName: _NSString): NobjcObject | null;
    /**
     * Initializes the receiver for decoding an archive previously encoded by \c NSKeyedUnarchiver. Enables \c requiresSecureCoding by default. If \c NSSecureCoding cannot be used, \c requiresSecureCoding may be turned off manually; for improved security, \c requiresSecureCoding should be left enabled whenever possible. Sets the unarchiver's \c decodingFailurePolicy to \c NSDecodingFailurePolicySetErrorAndReturn. Returns \c nil if the given data is not valid, and sets the \c error out parameter.
     */
    initForReadingFromData$error$(data: _NSData, error: NobjcObject | null): _NSKeyedUnarchiver | null;
    /** @deprecated Use -initForReadingFromData:error: instead */
    init(): _NSKeyedUnarchiver;
    /** @deprecated Use -initForReadingFromData:error: instead */
    initForReadingWithData$(data: _NSData): _NSKeyedUnarchiver;
    finishDecoding(): void;
    setClass$forClassName$(cls: NobjcObject | null, codedName: _NSString): void;
    classForClassName$(codedName: _NSString): NobjcObject | null;
    containsValueForKey$(key: _NSString): boolean;
    decodeObjectForKey$(key: _NSString): NobjcObject | null;
    decodeBoolForKey$(key: _NSString): boolean;
    /** may raise a range exception */
    decodeIntForKey$(key: _NSString): number;
    decodeInt32ForKey$(key: _NSString): number;
    decodeInt64ForKey$(key: _NSString): number;
    decodeFloatForKey$(key: _NSString): number;
    decodeDoubleForKey$(key: _NSString): number;
    /**
     * returned bytes immutable, and they go away with the unarchiver, not the containing autorelease pool
     */
    decodeBytesForKey$returnedLength$(key: _NSString, lengthp: NobjcObject | null): NobjcObject | null;
    delegate(): _NSKeyedUnarchiverDelegate | null;
    setDelegate$(value: _NSKeyedUnarchiverDelegate | null): void;
    /**
     * Enables secure coding support on this keyed unarchiver. When enabled, unarchiving a disallowed class throws an exception. Once enabled, attempting to set requiresSecureCoding to NO will throw an exception. This is to prevent classes from selectively turning secure coding off. This is designed to be set once at the top level and remain on. Note that the getter is on the superclass, NSCoder. See NSCoder for more information about secure coding.
     */
    requiresSecureCoding(): boolean;
    setRequiresSecureCoding$(value: boolean): void;
    decodingFailurePolicy(): NSDecodingFailurePolicy;
    setDecodingFailurePolicy$(value: NSDecodingFailurePolicy): void;
}
