import { type AssetReference, type EnvironmentConfig, type GroundConfig, type LightConfig, type MaterialOverride, type MaterialTextureSlot, type PostProcessConfig, type EntityRecord, type ModelAlignmentConfig, type TransformValue } from "@skenora/contracts"; export interface SceneModelEntityOptions { id?: string; name?: string; parentId?: string | null; transform?: TransformValue; alignment?: Partial; } /** A normal model entity, ready for any multi-model document consumer. */ export declare function createSceneModel(asset: AssetReference, options?: SceneModelEntityOptions): { assets: readonly AssetReference[]; entity: EntityRecord; }; export type ScenePresentationId = "soft-studio-v1" | "daylight-v1"; export interface ScenePresentationOptions { idPrefix?: string; /** Explicit IBL resource. The pure recipe never downloads or installs it. */ environmentAsset?: AssetReference | null; environment?: Partial> & { background?: Partial; }; lights?: readonly LightConfig[]; ground?: Partial; postProcess?: Partial> & { ssao?: Partial; colorCurves?: Partial; }; } export interface ScenePresentation { assets: readonly AssetReference[]; environment: EnvironmentConfig; lights: LightConfig[]; ground: GroundConfig; postProcess: PostProcessConfig; } /** Ordinary, independently usable document fields. Coordinates are scene meters. */ export declare function createScenePresentation(id: ScenePresentationId, options?: ScenePresentationOptions): ScenePresentation; export type SurfaceMaterialId = "matte-v1" | "ceramic-v1" | "brushed-metal-v1" | "oak-v1" | "fabric-v1"; export interface SurfaceMaterialOptions { id?: string; color?: string; /** Texture resources are supplied explicitly, using existing PBR slots. */ textures?: Partial>; /** A full [0,1] UV range represents this many meters. Never inferred from models. */ uvSpanMeters?: { u: number; v: number; }; /** Physical coverage of one tile. Default: 1 meter on each axis. */ tileMeters?: { u: number; v: number; }; overrides?: Omit, "id" | "creation" | "textures" | "targetEntityId" | "targetName">; } export declare function createSurfaceMaterial(preset: SurfaceMaterialId, options?: SurfaceMaterialOptions): { assets: readonly AssetReference[]; material: MaterialOverride; }; //# sourceMappingURL=essentials.d.ts.map