import type { NobjcObject } from "objc-js";
import type { _NSCoder } from "./NSCoder.js";
import type { _NSCopying } from "./NSCopying.js";
import type { _NSObject } from "./NSObject.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CGSize } from "../structs/CGSize.js";
import type { NSEdgeInsets } from "../structs/NSEdgeInsets.js";
import type { NSRange } from "../structs/NSRange.js";
export declare class _NSValue extends _NSObject {
    static alloc(): _NSValue;
    static new(): _NSValue;
    init(): _NSValue;
    static valueWithBytes$objCType$(value: Uint8Array, type: string): _NSValue;
    static value$withObjCType$(value: Uint8Array, type: string): _NSValue;
    static valueWithNonretainedObject$(anObject: NobjcObject | null): _NSValue;
    static valueWithPointer$(pointer: Uint8Array | null): _NSValue;
    static valueWithRange$(range: NSRange): _NSValue;
    static valueWithPoint$(point: CGPoint): _NSValue;
    static valueWithSize$(size: CGSize): _NSValue;
    static valueWithRect$(rect: CGRect): _NSValue;
    static valueWithEdgeInsets$(insets: NSEdgeInsets): _NSValue;
    getValue$size$(value: Uint8Array, size: number): void;
    initWithBytes$objCType$(value: Uint8Array, type: string): _NSValue;
    initWithCoder$(coder: _NSCoder): _NSValue | null;
    isEqualToValue$(value: _NSValue): boolean;
    /**
     * This method is unsafe because it could potentially cause buffer overruns. You should use -getValue:size: instead.
     * @deprecated getValue:size:
     */
    getValue$(value: Uint8Array): void;
    objCType(): string;
    nonretainedObjectValue(): NobjcObject | null;
    pointerValue(): NobjcObject | null;
    rangeValue(): NSRange;
    pointValue(): CGPoint;
    sizeValue(): CGSize;
    rectValue(): CGRect;
    edgeInsetsValue(): NSEdgeInsets;
}
export interface _NSValue extends _NSCopying {
}
