import type { _NSObject } from "../Foundation/NSObject.js";
import type { _MDLNamed } from "../ModelIO/MDLNamed.js";
import type { _MTKMeshBufferAllocator } from "./MTKMeshBufferAllocator.js";
import type { _MTLBuffer } from "../Metal/MTLBuffer.js";
import type { MDLMeshBufferType } from "../ModelIO/MDLMeshBufferType.js";
export declare class _MTKMeshBuffer extends _NSObject {
    static alloc(): _MTKMeshBuffer;
    static new(): _MTKMeshBuffer;
    init(): _MTKMeshBuffer;
    /** Size in bytes of the buffer allocation. */
    length(): number;
    /**
     * Allocator object used to create this buffer. This allcoator is stored so that it can be used by Model I/O for copy and relayout operations (such as when a new vertex descriptor is applied to a vertex buffer).
     */
    allocator(): _MTKMeshBufferAllocator;
    /**
     * Metal Buffer backing vertex/index data. Many MTKMeshBuffers may reference the same buffer, but each with it's own offset. (i.e. Many MTKMeshBuffers may be suballocated from a single buffer)
     */
    buffer(): _MTLBuffer;
    /** Byte offset of the data within the metal buffer. */
    offset(): number;
    /** the intended type of the buffer */
    type(): MDLMeshBufferType;
}
export interface _MTKMeshBuffer extends _MDLNamed {
}
