import { TgdContext } from "../../context";
import { TgdPainter } from "../painter";
import { TgdShaderFragment } from "../../shader/fragment";
import { TgdProgram } from "../../program";
export interface TgdPainterFragmentShaderOptions {
    /**
     * The fragment shader have access to these uniforms and varyings:
     *
     * ```glsl
     * uniform float uniAspectRatio;        // Screen W/H
     * uniform float uniAspectRatioInverse; // Screen H/W
     * uniform float uniTime;               // Time in seconds.
     * in vec2 varUV;
     * in vec2 varPoint;
     * ```
     */
    shader: TgdShaderFragment;
    flipY?: boolean;
    name?: string;
    /**
     * If this function is defined, it will be called at each frame.
     * Most of the time, it is used tu update the uniforms.
     */
    setUniforms?(options: {
        context: TgdContext;
        program: TgdProgram;
        time: number;
        delta: number;
    }): void;
}
export declare class TgdPainterFragmentShader extends TgdPainter {
    readonly context: TgdContext;
    private readonly options;
    private readonly program;
    private readonly vao;
    constructor(context: TgdContext, options: TgdPainterFragmentShaderOptions);
    delete(): void;
    paint(time: number, delta: number): void;
}
//# sourceMappingURL=fragment-shader.d.ts.map