import { type SceneMaterial, type SceneMaterialId, type WallNode } from '@pascal-app/core'; import { type Material } from 'three'; import { type ColorPreset, type RenderShading } from '../../lib/materials'; type SceneMaterials = Record | undefined; export type WallMaterialArray = Material[]; export interface WallMaterials { visible: WallMaterialArray; invisible: WallMaterialArray; translucent: WallMaterialArray; deleteVisible: WallMaterialArray; deleteInvisible: WallMaterialArray; deleteTranslucent: WallMaterialArray; materialHash: string; ownedVisible?: Material[]; } export type WallMaterialOverride = { hash: string; create: () => { visible: WallMaterialArray; owned?: Material[]; }; }; export type WallMaterialsResolver = (wallNode: WallNode, shading?: RenderShading, textures?: boolean, colorPreset?: ColorPreset, sceneTheme?: string, sceneMaterials?: SceneMaterials, finishRefs?: readonly string[]) => WallMaterials; /** Lazy light-emissive selection variant of a wall's material array (keeps texture). */ export declare function getSelectionHighlightMaterials(materials: WallMaterialArray): WallMaterialArray; /** * Softer hover sibling of the selection variant — the affordance for a * hovered HIDDEN wall (`WallCutout` applies it to the invisible stipple * film so the wall the click would select reads under the cursor). */ export declare function getHoverHighlightMaterials(materials: WallMaterialArray): WallMaterialArray; export declare function getWallMaterialHash(wallNode: WallNode, shading: RenderShading, sceneMaterials?: SceneMaterials, finishRefs?: readonly string[], overrideHash?: string): string; /** * A wall's material palette: 0 caps/edges (themed role), 1 face a, 2 face b, * then one entry per `finishRefs` — the region and room finishes the built * geometry's groups point at (`getWallFinishRefs(mesh.geometry)`). */ export declare function getMaterialsForWall(wallNode: WallNode, shading?: RenderShading, textures?: boolean, colorPreset?: ColorPreset, sceneTheme?: string, sceneMaterials?: SceneMaterials, finishRefs?: readonly string[], override?: WallMaterialOverride): WallMaterials; export declare function getVisibleWallMaterials(wallNode: WallNode, shading?: RenderShading, textures?: boolean, colorPreset?: ColorPreset, sceneTheme?: string, sceneMaterials?: SceneMaterials, finishRefs?: readonly string[]): WallMaterialArray; export {}; //# sourceMappingURL=wall-materials.d.ts.map