import { ShaderArtPlugin } from '@shader-art/plugin-base'; import { Stopwatch } from './stopwatch'; export type ShaderArtBuffer = { buffer: WebGLBuffer; recordSize: number; attribLoc: number; data: Float32Array; }; export declare class ShaderArt extends HTMLElement { buffers: Record; prefersReducedMotion: MediaQueryList; canvas: HTMLCanvasElement | null; initialized: boolean; gl: WebGLRenderingContext | WebGL2RenderingContext | null; program: WebGLProgram | null; frame: number; count: number; fragShader: WebGLShader | null; vertShader: WebGLShader | null; watch: Stopwatch; activePlugins: ShaderArtPlugin[]; constructor(); static plugins: (() => ShaderArtPlugin)[]; static register(plugins?: (() => ShaderArtPlugin)[]): void; static get observedAttributes(): string[]; connectedCallback(): void; disconnectedCallback(): void; attributeChangedCallback(name: string): void; get fragCode(): string; get vertCode(): string; get webgl2(): boolean; get devicePixelRatio(): number; set playState(state: 'running' | 'stopped'); get playState(): 'running' | 'stopped'; set autoPlay(value: boolean); get autoPlay(): boolean; private _updatePlaystate; /** * Called when the window is resized. */ onResize(): void; onChangeReducedMotion(): void; private createShader; private addBuffer; private createBuffers; render(): void; private renderLoop; private createPrograms; private setup; private addEventListeners; private deactivatePlugins; private activatePlugins; /** * Calls the setup method on each plugin * @returns a Promise */ private setupActivePlugins; reinitialize(): void; private deleteProgramAndBuffers; private dispose; }