import type { NobjcObject } from "objc-js";
import type { _MTLFunctionHandle } from "./MTLFunctionHandle.js";
import type { _MTLResource } from "./MTLResource.js";
import type { MTLResourceID } from "../structs/MTLResourceID.js";
import type { NSRange } from "../structs/NSRange.js";
export interface _MTLVisibleFunctionTable extends _MTLResource {
    setFunction$atIndex$?(function_: _MTLFunctionHandle | null, index: number): void;
    setFunctions$withRange$?(functions: NobjcObject | null, range: NSRange): void;
    /**
     * @property gpuResourceID @abstract Handle of the GPU resource suitable for storing in an Argument Buffer
     */
    gpuResourceID?(): MTLResourceID;
}
