import { WebglEnumStencilFunction, WebglEnumStencilOperation } from "../../types";
export interface WebglStencilOptions {
    enabled: boolean;
    maskBack: number;
    maskFront: number;
    functionBack: WebglEnumStencilFunction;
    functionBackMask: number;
    functionBackRef: number;
    functionFront: WebglEnumStencilFunction;
    functionFrontMask: number;
    functionFrontRef: number;
    operationBack1FailStencil: WebglEnumStencilOperation;
    operationBack2FailDepth: WebglEnumStencilOperation;
    operationBack3Pass: WebglEnumStencilOperation;
    operationFront1FailStencil: WebglEnumStencilOperation;
    operationFront2FailDepth: WebglEnumStencilOperation;
    operationFront3Pass: WebglEnumStencilOperation;
}
export declare const webglPresetStencil: {
    off: {
        enabled: boolean;
        maskBack: number;
        maskFront: number;
        functionBack: WebglEnumStencilFunction;
        functionBackMask: number;
        functionBackRef: number;
        functionFront: WebglEnumStencilFunction;
        functionFrontMask: number;
        functionFrontRef: number;
        operationBack1FailStencil: WebglEnumStencilOperation;
        operationBack2FailDepth: WebglEnumStencilOperation;
        operationBack3Pass: WebglEnumStencilOperation;
        operationFront1FailStencil: WebglEnumStencilOperation;
        operationFront2FailDepth: WebglEnumStencilOperation;
        operationFront3Pass: WebglEnumStencilOperation;
    };
    /** Set the stencil to `value` for each fragment. */
    write: (value: number) => {
        enabled: boolean;
        maskBack: number;
        maskFront: number;
        functionBack: WebglEnumStencilFunction;
        functionBackRef: number;
        functionBackMask: number;
        functionFront: WebglEnumStencilFunction;
        functionFrontRef: number;
        functionFrontMask: number;
        operationBack1FailStencil: WebglEnumStencilOperation;
        operationBack2FailDepth: WebglEnumStencilOperation;
        operationBack3Pass: WebglEnumStencilOperation;
        operationFront1FailStencil: WebglEnumStencilOperation;
        operationFront2FailDepth: WebglEnumStencilOperation;
        operationFront3Pass: WebglEnumStencilOperation;
    };
    /** Paint only if the stencil is equal to `value` */
    paintIfEqual: (value: number) => {
        enabled: boolean;
        maskBack: number;
        maskFront: number;
        functionBack: WebglEnumStencilFunction;
        functionBackRef: number;
        functionBackMask: number;
        functionFront: WebglEnumStencilFunction;
        functionFrontRef: number;
        functionFrontMask: number;
        operationBack1FailStencil: WebglEnumStencilOperation;
        operationBack2FailDepth: WebglEnumStencilOperation;
        operationBack3Pass: WebglEnumStencilOperation;
        operationFront1FailStencil: WebglEnumStencilOperation;
        operationFront2FailDepth: WebglEnumStencilOperation;
        operationFront3Pass: WebglEnumStencilOperation;
    };
};
export declare function webglStencilSet(gl: WebGL2RenderingContext, stencil: WebglStencilOptions): void;
export declare function webglStencilGet(gl: WebGL2RenderingContext): WebglStencilOptions;
export declare function webglStencilExec(gl: WebGL2RenderingContext, stencil: WebglStencilOptions, action: () => void): void;
export declare function webglDebugStencil(gl: WebGL2RenderingContext, caption?: string): void;
//# sourceMappingURL=stencil.d.ts.map