import type * as THREEType from 'three';
import type { BoxelDefinition } from '@playdrop/boxel-core';
export type VoxChunk = {
    palette: number[];
    size: {
        x: number;
        y: number;
        z: number;
    };
    data: Uint8Array;
};
export interface RenderVoxImageOptions {
    THREE: typeof THREEType;
    renderer: THREEType.WebGLRenderer;
    input: ArrayBuffer | ArrayBufferView;
    width?: number;
    height?: number;
}
export declare function assertValidVoxBuffer(input: ArrayBuffer | ArrayBufferView): ArrayBuffer;
export declare function extractVoxChunks(result: unknown): VoxChunk[];
export declare function parseVoxChunks(input: ArrayBuffer | ArrayBufferView): Promise<VoxChunk[]>;
export declare function convertVoxChunksToBoxel(chunks: VoxChunk[], id?: string): BoxelDefinition;
export declare function convertVoxToBoxel(input: ArrayBuffer | ArrayBufferView, id?: string): Promise<BoxelDefinition>;
export declare function buildVoxGroupFromChunks(chunks: VoxChunk[], three: typeof THREEType): THREEType.Group;
export declare function buildVoxGroup(input: ArrayBuffer | ArrayBufferView, three?: typeof THREEType): Promise<THREEType.Group<THREEType.Object3DEventMap>>;
export declare function renderVoxToDataURL(options: RenderVoxImageOptions): Promise<string>;
