import type { EasingType } from '@visactor/vrender-core';
import { DisappearAnimateBase } from './DisappearAnimateBase';
export declare abstract class WebGLEffectBase extends DisappearAnimateBase {
    constructor(from: null, to: null, duration: number, easing: EasingType, params: any);
    protected abstract getShaderSources(): {
        vertex: string;
        fragment: string;
    };
    protected abstract applyWebGLEffect(canvas: HTMLCanvasElement): HTMLCanvasElement;
    protected applyCanvas2DEffect(canvas: HTMLCanvasElement): HTMLCanvasElement;
}
export declare abstract class Canvas2DEffectBase extends DisappearAnimateBase {
    constructor(from: null, to: null, duration: number, easing: EasingType, params: any);
    protected abstract applyCanvas2DEffect(canvas: HTMLCanvasElement): HTMLCanvasElement;
    protected getShaderSources(): {
        vertex: string;
        fragment: string;
    } | null;
    protected applyWebGLEffect(canvas: HTMLCanvasElement): HTMLCanvasElement | null;
}
export declare class HybridEffectBase extends DisappearAnimateBase {
    constructor(from: null, to: null, duration: number, easing: EasingType, params: any);
    protected getShaderSources(): {
        vertex: string;
        fragment: string;
    } | null;
    protected applyWebGLEffect(canvas: HTMLCanvasElement): HTMLCanvasElement | null;
    protected applyCanvas2DEffect(canvas: HTMLCanvasElement): HTMLCanvasElement | null;
    protected supportsWebGL(): boolean;
    protected supportsCanvas2D(): boolean;
    protected afterStageRender(stage: any, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false;
}
