/**
 * Append-only buffer for streaming voxelization results.
 * Stores block masks using Morton codes for efficient octree construction.
 */
declare class BlockMaskBuffer {
    /** Morton codes for mixed blocks */
    private _mixedMorton;
    /** Interleaved voxel masks for mixed blocks: [lo0, hi0, lo1, hi1, ...] */
    private _mixedMasks;
    /** Morton codes for solid blocks (mask is implicitly all 1s) */
    private _solidMorton;
    /**
     * Add a non-empty block to the buffer.
     * Automatically classifies as solid or mixed based on mask values.
     *
     * @param morton - Morton code encoding block position
     * @param lo - Lower 32 bits of voxel mask
     * @param hi - Upper 32 bits of voxel mask
     */
    addBlock(morton: number, lo: number, hi: number): void;
    /**
     * Get all mixed blocks.
     *
     * @returns Object with morton codes and interleaved masks
     */
    getMixedBlocks(): {
        morton: number[];
        masks: number[];
    };
    /**
     * Get all solid blocks.
     *
     * @returns Array of Morton codes
     */
    getSolidBlocks(): number[];
    /**
     * Get total number of blocks stored.
     *
     * @returns Count of mixed + solid blocks
     */
    get count(): number;
    /**
     * Get number of mixed blocks.
     *
     * @returns Count of mixed blocks
     */
    get mixedCount(): number;
    /**
     * Get number of solid blocks.
     *
     * @returns Count of solid blocks
     */
    get solidCount(): number;
    /**
     * Clear all buffered blocks.
     */
    clear(): void;
}
export { BlockMaskBuffer };
