import type { _NSData } from "../Foundation/NSData.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { NSRange } from "../structs/NSRange.js";
import type { MTL4CounterHeapType } from "./MTL4CounterHeapType.js";
export interface _MTL4CounterHeap {
    /**
     * Resolves heap data on the CPU timeline. This method resolves heap data in the CPU timeline. Your app needs to ensure the GPU work has completed in order to retrieve the data correctly. You can alternatively resolve the heap data in the GPU timeline by calling ``MTL4CommandBuffer/resolveCounterHeap:withRange:intoBuffer:waitFence:updateFence:``. - Note: When resolving counters in the CPU timeline, signaling an instance of ``MTLSharedEvent`` after any workloads write counters (and waiting on that signal on the CPU) is sufficient to ensure synchronization. - Parameter range: The range in the heap to resolve. - Returns a newly allocated autoreleased NSData containing tightly packed resolved heap counter values.
     */
    resolveCounterRange$?(range: NSRange): _NSData | null;
    /**
     * Invalidates a range of entries in this counter heap. The effect of this call is immediate on the CPU timeline. You are responsible for ensuring that this counter heap is not currently in use on the GPU. - Note: Invalidated entries produce 0 when resolved. - Parameters: - range: A heap index range to invalidate.
     */
    invalidateCounterRange$?(range: NSRange): void;
    /** Assigns a label for later inspection or visualization. */
    label?(): _NSString | null;
    setLabel$?(value: _NSString | null): void;
    /** Queries the number of entries in the heap. */
    count?(): number;
    /** Queries the type of the heap. */
    type?(): MTL4CounterHeapType;
}
