import type { ElementRect } from "../rect.js"; import type { EffectDims } from "../types.js"; import type { Transition, TransitionEase, TransitionEffectContext, TransitionRun, TransitionUniforms } from "./types.js"; /** * A transition made of one shader. * `frag` defines `vec4 transition(vec2 uv, float t)` and reads the two sides with `readFrom` / `readTo`. */ export declare abstract class ShaderTransition

implements Transition { #private; abstract readonly name: string; abstract readonly frag: string; ease?: TransitionEase; overflow?: true | number; params: P; constructor(params?: P); /** Uniforms for this frame. Read `this.params` here. */ uniforms(_ctx: TransitionEffectContext): TransitionUniforms; start(run: TransitionRun): void; end(): void; outputRect(dims: EffectDims): ElementRect | undefined; render(ctx: TransitionEffectContext): void; }