import type { _NSData } from "../Foundation/NSData.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _MTLBuffer } from "../Metal/MTLBuffer.js";
import type { _MDLSubmesh } from "../ModelIO/MDLSubmesh.js";
import type { NSRange } from "../structs/NSRange.js";
import type { SCNGeometryPrimitiveType } from "./SCNGeometryPrimitiveType.js";
export declare class _SCNGeometryElement extends _NSObject {
    static alloc(): _SCNGeometryElement;
    static new(): _SCNGeometryElement;
    init(): _SCNGeometryElement;
    /**
     * @method geometryElementWithData:primitiveType:primitiveCount:bytesPerIndex: @abstract Creates and returns a geometry element from the given data and data format info. @param data The data that contains element indices. You can pass nil to use an implicit vertex ordering (0,1,2,…). @param primitiveType The primitive type, as listed in the SCNGeometryPrimitiveType enumeration. @param primitiveCount The number of primitives in the data. @param bytesPerIndex The number of bytes that represent a single index value in the data.
     */
    static geometryElementWithData$primitiveType$primitiveCount$bytesPerIndex$(data: _NSData | null, primitiveType: SCNGeometryPrimitiveType, primitiveCount: number, bytesPerIndex: number): _SCNGeometryElement;
    /**
     * @method geometryElementWithData:primitiveType:primitiveCount:indicesChannelCount:interleavedIndicesChannels:bytesPerIndex: @param data The data that contains element indices. You can pass nil to use an implicit vertex ordering (0,1,2,…). @param primitiveType The primitive type, as listed in the SCNGeometryPrimitiveType enumeration. @param primitiveCount The number of primitives in the data. @param indicesChannelCount The number of channels for the vertex indices. @param interleavedIndicesChannels Whether the channels are interleaved. @param bytesPerIndex The number of bytes that represent a single index value in the data.
     */
    static geometryElementWithData$primitiveType$primitiveCount$indicesChannelCount$interleavedIndicesChannels$bytesPerIndex$(data: _NSData | null, primitiveType: SCNGeometryPrimitiveType, primitiveCount: number, indicesChannelCount: number, interleavedIndicesChannels: boolean, bytesPerIndex: number): _SCNGeometryElement;
    /**
     * @method geometryElementWithBuffer:primitiveType:primitiveCount:bytesPerIndex: @abstract Creates and returns a geometry element from the given Metal buffer and parameters. @param buffer The buffer that contains element indices. @param primitiveType The primitive type, as listed in the SCNGeometryPrimitiveType enumeration. @param primitiveCount The number of primitives in the data. @param bytesPerIndex The number of bytes that represent a single index value in the data.
     */
    static geometryElementWithBuffer$primitiveType$primitiveCount$bytesPerIndex$(buffer: _MTLBuffer, primitiveType: SCNGeometryPrimitiveType, primitiveCount: number, bytesPerIndex: number): _SCNGeometryElement;
    static geometryElementWithBuffer$primitiveType$primitiveCount$indicesChannelCount$interleavedIndicesChannels$bytesPerIndex$(buffer: _MTLBuffer, primitiveType: SCNGeometryPrimitiveType, primitiveCount: number, indicesChannelCount: number, interleavedIndicesChannels: boolean, bytesPerIndex: number): _SCNGeometryElement;
    static geometryElementWithMDLSubmesh$(mdlSubMesh: _MDLSubmesh): _SCNGeometryElement;
    /** @property data @abstract The data for the geometry element */
    data(): _NSData;
    /**
     * @property primitiveType @abstract The type of the geometry element. Possible values are listed in the SCNGeometryPrimitiveType enumeration.
     */
    primitiveType(): SCNGeometryPrimitiveType;
    /** @property primitiveCount @abstract The number of primitives in the data. */
    primitiveCount(): number;
    /**
     * @property interleavedIndicesChannels @abstract Determines whether the channels are interleaved.
     */
    interleavedIndicesChannels(): boolean;
    /**
     * @property indicesChannelCount @abstract The number of channels in the geometry element.
     */
    indicesChannelCount(): number;
    /**
     * @property bytesPerIndex @abstract The number of bytes that represent an index value
     */
    bytesPerIndex(): number;
    /**
     * @property primitiveRange @abstract Specifies the subrange of primitives to render within NSMakeRange(0, primitiveCount). Defaults to NSMakeRange(NSNotFound, 0). @discussion When the location of the range is set to NSNotFound, the entire geometry element is rendered.
     */
    primitiveRange(): NSRange;
    setPrimitiveRange$(value: NSRange): void;
    /**
     * @property pointSize @abstract Specifies the size of the point in local space. Defaults to 1
     */
    pointSize(): number;
    setPointSize$(value: number): void;
    /**
     * @property minimumPointScreenSpaceRadius @abstract Specifies the minimum size in screen-space (in pixel). Defaults to 1
     */
    minimumPointScreenSpaceRadius(): number;
    setMinimumPointScreenSpaceRadius$(value: number): void;
    /**
     * @property maximumPointScreenSpaceRadius @abstract Specifies the maximum size in screen-space (in pixel). Defaults to 1
     */
    maximumPointScreenSpaceRadius(): number;
    setMaximumPointScreenSpaceRadius$(value: number): void;
}
export interface _SCNGeometryElement extends _NSSecureCoding {
}
