export declare class ImageProcessUtils {
    static createTempCanvas(width: number, height: number, dpr?: number): HTMLCanvasElement;
    static cloneImageData(imageData: ImageData): ImageData;
    static lerp(start: number, end: number, t: number): number;
    static smoothstep(edge0: number, edge1: number, x: number): number;
    static distance(x1: number, y1: number, x2: number, y2: number): number;
    static normalizeAngle(angle: number): number;
    static pixelNoise(x: number, y: number, pixelSize: number): number;
    static generateNoiseTexture(width: number, height: number): Uint8Array;
    static applyCSSFilter(canvas: HTMLCanvasElement, filter: string): HTMLCanvasElement;
    static extractChannel(imageData: ImageData, channelIndex: number): ImageData;
    static blendImageData(imageData1: ImageData, imageData2: ImageData, ratio: number): ImageData;
    static getLuminance(r: number, g: number, b: number): number;
    static applySepiaToPixel(r: number, g: number, b: number): [number, number, number];
    static calculateDynamicStrength(baseStrength: number, animationTime: number): number;
}
export declare class ShaderLibrary {
    static readonly STANDARD_VERTEX_SHADER = "\n    attribute vec2 a_position;\n    attribute vec2 a_texCoord;\n    varying vec2 v_texCoord;\n\n    void main() {\n      gl_Position = vec4(a_position, 0.0, 1.0);\n      v_texCoord = a_texCoord;\n    }\n  ";
    static readonly SHADER_FUNCTIONS = "\n    // \u4EAE\u5EA6\u8BA1\u7B97\u51FD\u6570\n    float luminance(vec3 color) {\n      return dot(color, vec3(0.299, 0.587, 0.114));\n    }\n\n    // \u8910\u8272\u8C03\u51FD\u6570\n    vec3 sepia(vec3 color) {\n      float r = color.r * 0.393 + color.g * 0.769 + color.b * 0.189;\n      float g = color.r * 0.349 + color.g * 0.686 + color.b * 0.168;\n      float b = color.r * 0.272 + color.g * 0.534 + color.b * 0.131;\n      return vec3(r, g, b);\n    }\n\n    // \u7EBF\u6027\u63D2\u503C\u51FD\u6570\n    float lerp(float a, float b, float t) {\n      return a * (1.0 - t) + b * t;\n    }\n\n\n    // \u7B80\u5355\u566A\u58F0\u51FD\u6570\n    float pixelNoise(vec2 coord, float pixelSize) {\n      vec2 gridCoord = floor(coord / pixelSize) * pixelSize;\n      return fract(sin(dot(gridCoord, vec2(12.9898, 78.233))) * 43758.5453123);\n    }\n\n    // \u52A8\u6001\u5F3A\u5EA6\u8BA1\u7B97\n    float calculateDynamicStrength(float baseStrength, float time) {\n      return baseStrength * (time / 6.28318531); // 2\u03C0\n    }\n  ";
}
