import { CoreRenderOp } from '../CoreRenderOp.js';
import type { WebGlCtxTexture } from './WebGlCtxTexture.js';
import type { WebGlRenderer } from './WebGlRenderer.js';
import type { BufferCollection } from './internal/BufferCollection.js';
import type { WebGlShaderNode } from './WebGlShaderNode.js';
import type { QuadOptions } from '../CoreRenderer.js';
import type { CoreTextNode } from '../../CoreTextNode.js';
import type { RectWithValid } from '../../lib/utils.js';
import type { Dimensions } from '../../../common/CommonTypes.js';
type ReqQuad = 'alpha' | 'shader' | 'parentHasRenderTexture' | 'rtt' | 'clippingRect' | 'height' | 'width';
type RenderOpQuadOptions = Pick<QuadOptions, ReqQuad> & Partial<Omit<QuadOptions, ReqQuad>> & {
    sdfShaderProps?: Record<string, unknown>;
    sdfBuffers?: BufferCollection;
};
/**
 * Can render multiple quads with multiple textures (up to vertex shader texture limit)
 *
 */
export declare class WebGlRenderOp extends CoreRenderOp {
    readonly renderer: WebGlRenderer;
    readonly bufferIdx: number;
    numQuads: number;
    textures: WebGlCtxTexture[];
    /**
     * need to improve this when TextRenderers are refactored
     */
    readonly sdfShaderProps: Record<string, unknown> | undefined;
    readonly sdfNode: CoreTextNode | undefined;
    readonly maxTextures: number;
    readonly buffers: BufferCollection;
    readonly shader: WebGlShaderNode;
    readonly width: number;
    readonly height: number;
    readonly clippingRect: RectWithValid;
    readonly rtt: boolean;
    readonly parentHasRenderTexture: boolean;
    readonly framebufferDimensions?: Dimensions | null;
    readonly alpha: number;
    readonly pixelRatio: number;
    constructor(renderer: WebGlRenderer, quad: RenderOpQuadOptions, bufferIdx: number);
    addTexture(texture: WebGlCtxTexture): number;
    draw(): void;
}
export {};
