import type { GPUVegaCanvasContext } from '../types/context.js'; /** Every shader source, by the name marks ask for. */ declare const BUILDERS: { BlendComposite: (blend: string) => string; Curve: (blend: string, kind?: string) => string; GradientFill: (blend: string) => string; Image: (blend: string) => string; MaskComposite: (blend: string) => string; Rect: (blend: string) => string; Rule: (blend: string) => string; SLine: (blend: string) => string; SolidFill: (blend: string) => string; Symbol: (blend: string) => string; SymbolSdf: (blend: string, shape?: string) => string; SymbolShape: (blend: string) => string; Text: (blend: string) => string; }; /** A builder name, optionally followed by a sub-variant after a colon. */ export type ShaderKey = keyof typeof BUILDERS | `${keyof typeof BUILDERS}:${string}`; /** * The compiled module for one shader variant, built on first use and cached on * the context for the life of the device. `key` names a builder, optionally * followed by a sub-variant after a colon. * * Building on demand rather than up front matters: a chart uses a handful of * these, and compiling every blend mode of every shader would put the cost of * shaders nobody draws into the first frame. */ export declare function shaderModule(ctx: GPUVegaCanvasContext, device: GPUDevice, key: ShaderKey, blend: string): GPUShaderModule; export {};