///
import { ModuleRegistry } from "wgsl-linker";
export type BindingEntry = Pick | Pick | Pick | Pick | Pick;
export interface ComputePipelineArgs {
device: GPUDevice;
/** shader main module name or path, defaults to "main" */
mainModule?: string;
/** portion of a GPUBindGroupLayoutEntry, for defining binding layout */
bindings: BindingEntry[];
/** string substititions for wgsl templating */
wgslParams?: Record;
/** registry of modules available for linking */
registry: ModuleRegistry;
/** debug label */
label?: string;
/** use binding 11 for a debug buffer */
debugBuffer?: boolean;
/** constants for wgsl override variables */
constants?: Record;
/** (for debug) log the linked shader to the javascript console */
logShader?: boolean;
}
export interface ComputePipelineResults {
pipeline: GPUComputePipeline;
}
/** Create a cached GPUComputePipeline */
export declare const computePipeline: (paramsObj: ComputePipelineArgs, memoCache?: (() => import("thimbleberry").Cache) | undefined) => ComputePipelineResults;