import type { Ref } from '@use-gpu/live'; import type { StorageSource } from '@use-gpu/core'; import type { ShaderModule } from '@use-gpu/shader'; /** Make a uniform-backed source for a WGSL type. Returns a [source, updater] tuple that accepts key/value pairs. */ export declare const useUniformSource: (type: ShaderModule, n?: number) => [StorageSource, (values: Record | Record[]) => void]; /** Make a uniform-backed source for a WGSL type. Returns a [source, updater] tuple that accepts key/value pairs. */ export declare const getUniformSource: (device: GPUDevice, type: ShaderModule, n?: number) => [StorageSource, (values: Record | Record[]) => void]; /** Make a uniform-backed source for a WGSL type with given value refs. Returns a static binding + upload callback. */ export declare const useUniformBinding: (uniforms: Record>, module: ShaderModule, type: ShaderModule) => { binding: { module: ShaderModule; bind: () => StorageSource[]; }; upload: () => void; };