import type { _MPSGraphObject } from "./MPSGraphObject.js";
import type { _MTLDevice } from "../Metal/MTLDevice.js";
import type { MPSGraphDeviceType } from "./MPSGraphDeviceType.js";
export declare class _MPSGraphDevice extends _MPSGraphObject {
    static alloc(): _MPSGraphDevice;
    static new(): _MPSGraphDevice;
    init(): _MPSGraphDevice;
    /**
     * Creates a device from a given Metal device. - Parameters: - metalDevice: `MTLDevice` to create an MPSGraphDevice from. - Returns: A valid device.
     */
    static deviceWithMTLDevice$(metalDevice: _MTLDevice): _MPSGraphDevice;
    /** Device of the MPSGraphDevice. */
    type(): MPSGraphDeviceType;
    /** If device type is Metal then returns the corresponding MTLDevice else nil. */
    metalDevice(): _MTLDevice | null;
}
