import type { _MTLBinding } from "./MTLBinding.js";
import type { _MTLTensorExtents } from "./MTLTensorExtents.js";
import type { MTLDataType } from "./MTLDataType.js";
import type { MTLTensorDataType } from "./MTLTensorDataType.js";
export interface _MTLTensorBinding extends _MTLBinding {
    /** The underlying data format of this tensor. */
    tensorDataType?(): MTLTensorDataType;
    /** The data format you use for indexing into the tensor. */
    indexType?(): MTLDataType;
    /**
     * The array of sizes, in elements, one for each dimension of this tensor. Because shader-bound tensors have dynamic extents, if this tensor is shader bound, the ``MTLTensorExtents/rank`` of `dimensions` corresponds to the rank the shader function specifies, and ``MTLTensorExtents/extentsAtDimensionIndex:`` always returns a value of -1. In the case of functions used with machine learning pipelines, `dimensions` corresponds to the default shape, if you provide one. Otherwise, it's `nil` in the case of an undefined shape.
     */
    dimensions?(): _MTLTensorExtents | null;
}
