import type * as THREEType from 'three';
import type { Material, Pattern, Texture } from '@playdrop/boxel-core';
import type { PrimitiveBuilderContext } from './context.js';
type TextureArray = Uint8Array<ArrayBuffer>;
export interface TextureBundle {
    color: THREEType.DataTexture;
    emissive?: THREEType.DataTexture;
}
export declare function buildTexturePixels(context: PrimitiveBuilderContext, textureDef: Texture, pattern: Pattern, materialsById: Map<string, Material>): {
    color: TextureArray;
    emissive: TextureArray | null;
};
export declare function ensureTextureInstance(context: PrimitiveBuilderContext, textureDef: Texture): TextureBundle | null;
export declare function createPatternPlaceholderTexture(context: PrimitiveBuilderContext, pattern: Pattern): THREEType.DataTexture;
export declare function createTextureMaterial(context: PrimitiveBuilderContext, textureId: string | undefined): THREEType.MeshStandardMaterial;
export declare function toThreeColorRGB(context: PrimitiveBuilderContext, rgb: number[]): THREEType.Color;
export {};
