import type { NobjcObject } from "objc-js";
import type { _NSObject } from "../Foundation/NSObject.js";
export declare class _MLCTensorData extends _NSObject {
    static alloc(): _MLCTensorData;
    static new(): _MLCTensorData;
    init(): _MLCTensorData;
    /**
     * @abstract Creates a data object that holds a given number of bytes from a given buffer. @note The returned object will not take ownership of the \p bytes pointer and thus will not free it on deallocation. @param bytes A buffer containing data for the new object. @param length The number of bytes to hold from \p bytes. This value must not exceed the length of \p bytes. @return A new \p MLCTensorData object.
     */
    static dataWithBytesNoCopy$length$(bytes: Uint8Array, length: number): _MLCTensorData;
    /**
     * @abstract Creates a data object that holds a given number of bytes from a given buffer. @note The returned object will not take ownership of the \p bytes pointer and thus will not free it on deallocation. The underlying bytes in the return object should not be mutated. @param bytes A buffer containing data for the new object. @param length The number of bytes to hold from \p bytes. This value must not exceed the length of \p bytes. @return A new \p MLCTensorData object.
     */
    static dataWithImmutableBytesNoCopy$length$(bytes: Uint8Array, length: number): _MLCTensorData;
    /**
     * @absract Creates a data object that holds a given number of bytes from a given buffer. with a custom deallocator block. @param bytes A buffer containing data for the new object. @param length The number of bytes to hold from \p bytes. This value must not exceed the length of \p bytes. @param deallocator A block to invoke when the resulting object is deallocated. @return A new \p MLCTensorData object.
     */
    static dataWithBytesNoCopy$length$deallocator$(bytes: Uint8Array, length: number, deallocator: (bytes: NobjcObject, length: number) => void): _MLCTensorData;
    /**
     * @property bytes @abstract Pointer to memory that contains or will be used for tensor data
     */
    bytes(): NobjcObject;
    /** @property length @abstract The size in bytes of the tensor data */
    length(): number;
}
