import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _MTLPointerType } from "./MTLPointerType.js";
import type { _MTLStructType } from "./MTLStructType.js";
import type { MTLArgumentType } from "./MTLArgumentType.js";
import type { MTLBindingAccess } from "./MTLBindingAccess.js";
import type { MTLDataType } from "./MTLDataType.js";
import type { MTLTextureType } from "./MTLTextureType.js";
export declare class _MTLArgument extends _NSObject {
    static alloc(): _MTLArgument;
    static new(): _MTLArgument;
    init(): _MTLArgument;
    name(): _NSString;
    type(): MTLArgumentType;
    access(): MTLBindingAccess;
    index(): number;
    active(): boolean;
    /** min alignment of starting offset in the buffer */
    bufferAlignment(): number;
    /** sizeof(T) for T *argName */
    bufferDataSize(): number;
    /** MTLDataTypeFloat, MTLDataTypeFloat4, MTLDataTypeStruct, ... */
    bufferDataType(): MTLDataType;
    bufferStructType(): _MTLStructType | null;
    bufferPointerType(): _MTLPointerType | null;
    /** for threadgroup memory arguments */
    threadgroupMemoryAlignment(): number;
    /** sizeof(T) for T *argName */
    threadgroupMemoryDataSize(): number;
    /** texture1D, texture2D... */
    textureType(): MTLTextureType;
    /** half, float, int, or uint. */
    textureDataType(): MTLDataType;
    /** true for depth textures */
    isDepthTexture(): boolean;
    arrayLength(): number;
}
