import type { _MTLDevice } from "./MTLDevice.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { MTLResourceID } from "../structs/MTLResourceID.js";
import type { NSRange } from "../structs/NSRange.js";
export interface _MTLResourceViewPool {
    /**
     * Copies a range of resource views from a source view pool to a destination location in this view pool. - Parameters: - sourcePool: resource view pool from which to copy resource views. - sourceRange: The range in the source resource view pool to copy. - destinationIndex: The starting index in this destination view pool into which to copy the source range of resource views. - Returns: The ``MTLResourceID`` of the resource view corresponding to `destinationIndex` of the copy in this resource view pool.
     */
    copyResourceViewsFromPool$sourceRange$destinationIndex$?(sourcePool: _MTLResourceViewPool, sourceRange: NSRange, destinationIndex: number): MTLResourceID;
    /**
     * Obtains the resource ID corresponding to the resource view at index 0 in this resource view pool.
     */
    baseResourceID?(): MTLResourceID;
    /** Queries the number of resource views that this pool contains. */
    resourceViewCount?(): number;
    /** Obtains a reference to the GPU device this pool belongs to. */
    device?(): _MTLDevice;
    /** Queries the optional debug label of this resource view pool. */
    label?(): _NSString | null;
}
