import type { _MTL4FunctionDescriptor } from "./MTL4FunctionDescriptor.js";
import type { _MTL4PipelineDescriptor } from "./MTL4PipelineDescriptor.js";
import type { _MTLTensorExtents } from "./MTLTensorExtents.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { NSRange } from "../structs/NSRange.js";
export declare class _MTL4MachineLearningPipelineDescriptor extends _MTL4PipelineDescriptor {
    static alloc(): _MTL4MachineLearningPipelineDescriptor;
    static new(): _MTL4MachineLearningPipelineDescriptor;
    init(): _MTL4MachineLearningPipelineDescriptor;
    /**
     * Sets the dimension of an input tensor at a buffer index. - Parameters: - dimensions: the dimensions of the tensor. - bufferIndex: Index of the tensor to modify.
     */
    setInputDimensions$atBufferIndex$(dimensions: _MTLTensorExtents | null, bufferIndex: number): void;
    /**
     * Sets the dimensions of multiple input tensors on a range of buffer bindings. Use this method to specify the dimensions of multiple input tensors at a range of indices in a single call. You can indicate that any tensors in the range have unspecified dimensions by providing `NSNull` at the their corresponding index location in the array. - Important: The range's length property needs to match the number of dimensions you provide. Specifically, `range.length` needs to match `dimensions.count`. - Parameters: - dimensions: An array of tensor extents. - range: The range of inputs of the `dimensions` argument. The range's `length` needs to match the dimensions' `count` property.
     */
    setInputDimensions$withRange$(dimensions: _NSArray, range: NSRange): void;
    /**
     * Obtains the dimensions of the input tensor at `bufferIndex` if set, `nil` otherwise.
     */
    inputDimensionsAtBufferIndex$(bufferIndex: number): _MTLTensorExtents | null;
    /** Resets the descriptor to its default values. */
    reset(): void;
    /**
     * Assigns an optional string that helps identify pipeline states you create from this descriptor.
     */
    label(): _NSString | null;
    setLabel$(value: _NSString | null): void;
    /**
     * Assigns the function that the machine learning pipeline you create from this descriptor executes.
     */
    machineLearningFunctionDescriptor(): _MTL4FunctionDescriptor | null;
    setMachineLearningFunctionDescriptor$(value: _MTL4FunctionDescriptor | null): void;
}
