import type { NobjcObject } from "objc-js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { MTLCaptureDestination } from "./MTLCaptureDestination.js";
export declare class _MTLCaptureDescriptor extends _NSObject {
    static alloc(): _MTLCaptureDescriptor;
    static new(): _MTLCaptureDescriptor;
    init(): _MTLCaptureDescriptor;
    /**
     * @brief The object that is captured. Must be one of the following: MTLDevice captures all command queues of the device. MTLCommandQueue captures a single command queue. MTLCaptureScope captures between the next begin and end of the scope.
     */
    captureObject(): NobjcObject | null;
    setCaptureObject$(value: NobjcObject | null): void;
    /** The destination you want the GPU trace to be captured to. */
    destination(): MTLCaptureDestination;
    setDestination$(value: MTLCaptureDestination): void;
    /**
     * URL the GPU Trace document will be captured to. Must be specified when destiation is MTLCaptureDestinationGPUTraceDocument.
     */
    outputURL(): _NSURL | null;
    setOutputURL$(value: _NSURL | null): void;
}
export interface _MTLCaptureDescriptor extends _NSCopying {
}
