import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _MTLStencilDescriptor } from "./MTLStencilDescriptor.js";
import type { MTLCompareFunction } from "./MTLCompareFunction.js";
export declare class _MTLDepthStencilDescriptor extends _NSObject {
    static alloc(): _MTLDepthStencilDescriptor;
    static new(): _MTLDepthStencilDescriptor;
    init(): _MTLDepthStencilDescriptor;
    /** Defaults to MTLCompareFuncAlways, which effectively skips the depth test */
    depthCompareFunction(): MTLCompareFunction;
    setDepthCompareFunction$(value: MTLCompareFunction): void;
    /** Defaults to NO, so no depth writes are performed */
    depthWriteEnabled(): boolean;
    setDepthWriteEnabled$(value: boolean): void;
    /**
     * Separate stencil state for front and back state. Both front and back can be made to track the same state by assigning the same MTLStencilDescriptor to both.
     */
    frontFaceStencil(): _MTLStencilDescriptor;
    setFrontFaceStencil$(value: _MTLStencilDescriptor): void;
    backFaceStencil(): _MTLStencilDescriptor;
    setBackFaceStencil$(value: _MTLStencilDescriptor): void;
    /** A string to help identify the created object. */
    label(): _NSString | null;
    setLabel$(value: _NSString | null): void;
}
export interface _MTLDepthStencilDescriptor extends _NSCopying {
}
