export declare class RayMarching extends HTMLElement {
    $canvas: HTMLCanvasElement;
    gl: WebGLRenderingContext | WebGL2RenderingContext;
    program?: WebGLProgram;
    attribLocation?: number;
    uniformLocation?: {
        resolution: WebGLUniformLocation | null;
        mouse: WebGLUniformLocation | null;
        time: WebGLUniformLocation | null;
    };
    requestID?: number;
    beginAt?: number;
    resizeObserver?: ResizeObserver;
    intersectionObserver?: IntersectionObserver;
    childObserver?: MutationObserver;
    isIntersecting: boolean;
    static get observedAttributes(): string[];
    get time(): number;
    constructor();
    attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    handleResize(entries: ResizeObserverEntry[]): void;
    handleIntersection(entries: IntersectionObserverEntry[]): void;
    handleMousemove(e: MouseEvent): void;
    setupShader(): void;
    template(): string;
    createShader(type: GLenum, source: string): WebGLShader | null;
    createProgramObject(vs: WebGLShader, fs: WebGLShader): WebGLProgram | null;
    once(time: number): void;
    render(): void;
}
