import type { LC, Ref } from '@use-gpu/live'; import type { DataBounds, StorageSource, RenderPassMode, Lazy, UniformAttribute, UseGPURenderContext, VolatileAllocation } from '@use-gpu/core'; import type { ShaderModule } from '@use-gpu/shader'; import type { Update } from '@use-gpu/state'; export type DrawCallProps = { pipeline?: Update; mode?: RenderPassMode | string | null; vertexCount?: Lazy; instanceCount?: Lazy; firstVertex?: Lazy; firstInstance?: Lazy; bounds?: Lazy | null; indirect?: StorageSource | null; vertex: ShaderModule; fragment?: ShaderModule | null; globalLayout?: GPUBindGroupLayout | null; globalBinding?: (pipeline: GPURenderPipeline) => VolatileAllocation; globalDefs?: UniformAttribute[][]; globalUniforms?: Record>; pipelineKey?: string | number; customLayouts?: GPUBindGroupLayout[]; renderContext: UseGPURenderContext; shouldDispatch?: (uniforms: Record>) => boolean | number | null | undefined; onDispatch?: (uniforms: Record>) => void; defines?: Record; label?: string; }; export declare const DrawCall: LC; export declare const drawCall: (props: DrawCallProps) => (() => void) | { [x: string]: { draw: (passEncoder: GPURenderPassEncoder, countGeometry: (v: number, t: number) => void, uniforms: Record>, flip?: boolean) => void; bounds: Lazy | null | undefined; }; draw?: undefined; bounds?: undefined; } | { draw: (passEncoder: GPURenderPassEncoder, countGeometry: (v: number, t: number) => void, uniforms: Record>, flip?: boolean) => void; bounds: Lazy | null | undefined; } | null;