import type { ShaderName, ShaderParams } from "./registry.js";
import type { PlayMode, QualityOptions } from "./types.js";
/**
* A tuned shader, ready to hand to `` or `createShaderRenderer`.
* This object is the thing you actually author: the slider positions you
* settled on, in a form your editor can type-check.
*/
export interface ShaderConfig {
readonly shader: K;
readonly params?: ShaderParams;
readonly quality?: QualityOptions;
readonly play?: PlayMode;
/** Free-text note, kept so exported presets can explain themselves. */
readonly note?: string;
}
/** Identity at runtime; it exists so `params` is checked against `shader`. */
export declare function defineShader(config: ShaderConfig): ShaderConfig;
export interface ShadertownConfig {
/** Where `shadertown add` writes vendored shaders. */
readonly outDir?: string;
/** Registry base URL. Point this at a fork to serve your own catalogue. */
readonly registry?: string;
/** License key, or the name of the env var holding it. */
readonly license?: string;
/** Named presets, so a project refers to `presets.hero` rather than a slug. */
readonly presets?: Readonly>;
}
export declare function defineShadertownConfig(config: ShadertownConfig): ShadertownConfig;
//# sourceMappingURL=config.d.ts.map