import type * as THREEType from 'three';
import type { BoxelDefinition, Material, Primitive } from '@playdrop/boxel-core';
import type { TextureBundle } from './textures.js';
export interface BuilderSettings {
    enableShadows: boolean;
}
export interface PrimitiveBuilderContext {
    THREE: typeof THREEType;
    settings: BuilderSettings;
    entity: BoxelDefinition | null;
    materialsById: Map<string, Material>;
    primitivesById: Map<string, Primitive>;
    textureCache: Map<string, TextureBundle>;
}
export interface BuilderUpdate {
    entity?: BoxelDefinition | null;
    settings?: Partial<BuilderSettings>;
}
export declare function createBuilderContext(options: {
    THREE: typeof THREEType;
    settings: BuilderSettings;
}): PrimitiveBuilderContext;
export declare function updateBuilderContext(context: PrimitiveBuilderContext, update: BuilderUpdate): void;
export declare function clearTextureCache(context: PrimitiveBuilderContext): void;
