import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _MLOptimizationHints } from "./MLOptimizationHints.js";
import type { _MTLDevice } from "../Metal/MTLDevice.js";
import type { MLComputeUnits } from "./MLComputeUnits.js";
export declare class _MLModelConfiguration extends _NSObject {
    static alloc(): _MLModelConfiguration;
    static new(): _MLModelConfiguration;
    init(): _MLModelConfiguration;
    /**
     * A human readable name of a MLModel instance for display purposes. Use this property to set a name of a model instance so that runtime analysis tools (e.g. Instruments and os_log) can display that name in the user interface. CoreML framework doesn't parse nor filter the text. It is the client's responsibility to use appropriate text, which may involve localization and privacy considerations. When the property is nil, CoreML framework provides a default.
     */
    modelDisplayName(): _NSString | null;
    setModelDisplayName$(value: _NSString | null): void;
    computeUnits(): MLComputeUnits;
    setComputeUnits$(value: MLComputeUnits): void;
    /** A group of hints for CoreML to optimize */
    optimizationHints(): _MLOptimizationHints;
    setOptimizationHints$(value: _MLOptimizationHints): void;
    /**
     * Set to YES to allow low precision accumulation on GPU when available. Defaults to NO
     */
    allowLowPrecisionAccumulationOnGPU(): boolean;
    setAllowLowPrecisionAccumulationOnGPU$(value: boolean): void;
    /**
     * Set to specify a preferred Metal device. Defaults to nil which indicates automatic selection
     */
    preferredMetalDevice(): _MTLDevice | null;
    setPreferredMetalDevice$(value: _MTLDevice | null): void;
    /** Optional dictionary with any requested changes to model or update parameters */
    parameters(): _NSDictionary | null;
    setParameters$(value: _NSDictionary | null): void;
    /**
     * Function name that `MLModel` will use. Some model types (e.g. ML Program) supports multiple functions in a model asset, where each `MLModel` instance is associated with a particular function. Use `MLModelAsset` to get the list of available functions. Use `nil` to use a default function. ```swift let configuration = MLModelConfiguration() configuration.functionName = "my_function" ```
     */
    functionName(): _NSString | null;
    setFunctionName$(value: _NSString | null): void;
}
export interface _MLModelConfiguration extends _NSCopying, _NSSecureCoding {
}
