import { ColorRepresentation } from 'three/src/math/Color'; export declare const SIDE_MAP: { front: 0; back: 1; double: 2; }; export type SideType = 'front' | 'back' | 'double'; /** * Base material properties shared by all material types. * These control the fundamental appearance and rendering behavior. */ export interface MaterialProps { /** * Base color of the material surface. * @dial color * @dial-dtype color * @dial-default #ffffff */ color?: ColorRepresentation; /** * Opacity level from fully transparent (0) to fully opaque (1). * @dial color * @dial-label-left * @dial-dtype number * @dial-default 1 * @dial-min 0 * @dial-max 1 * @dial-step 0.01 */ opacity?: number; /** * Enable alpha blending for transparency effects. * Required when opacity < 1 or using textures with alpha. * @dial color * @dial-dtype boolean * @dial-default false */ transparent?: boolean; /** * Render geometry edges only, useful for debugging. * @dial rendering * @dial-dtype boolean * @dial-default false */ wireframe?: boolean; /** * Which face of polygons to render. * Use 'double' for thin objects visible from both sides. * @dial rendering * @dial-dtype select * @dial-options ["front", "back", "double"] * @dial-default front */ side?: SideType; /** * URL to a color/diffuse texture map. * @dial textures * @dial-dtype string */ map?: string | string[]; /** * Number of times to repeat texture in U and V directions. * @dial textures * @dial-dtype vector2 * @dial-default [1, 1] */ mapRepeat?: [number, number]; }