import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { MTLCompareFunction } from "./MTLCompareFunction.js";
import type { MTLStencilOperation } from "./MTLStencilOperation.js";
export declare class _MTLStencilDescriptor extends _NSObject {
    static alloc(): _MTLStencilDescriptor;
    static new(): _MTLStencilDescriptor;
    init(): _MTLStencilDescriptor;
    stencilCompareFunction(): MTLCompareFunction;
    setStencilCompareFunction$(value: MTLCompareFunction): void;
    /**
     * Stencil is tested first. stencilFailureOperation declares how the stencil buffer is updated when the stencil test fails.
     */
    stencilFailureOperation(): MTLStencilOperation;
    setStencilFailureOperation$(value: MTLStencilOperation): void;
    /**
     * If stencil passes, depth is tested next. Declare what happens when the depth test fails.
     */
    depthFailureOperation(): MTLStencilOperation;
    setDepthFailureOperation$(value: MTLStencilOperation): void;
    /**
     * If both the stencil and depth tests pass, declare how the stencil buffer is updated.
     */
    depthStencilPassOperation(): MTLStencilOperation;
    setDepthStencilPassOperation$(value: MTLStencilOperation): void;
    readMask(): number;
    setReadMask$(value: number): void;
    writeMask(): number;
    setWriteMask$(value: number): void;
}
export interface _MTLStencilDescriptor extends _NSCopying {
}
