import * as THREE from "three"; import { CBARSurfaceAsset, CBARSurfaceAssetProperties } from "./CBARSurfaceAsset"; import { CBARStandardMaterial } from "../components/CBARStandardMaterial"; import { CBARMaterialProperties, CBARSurface, RenderOptions } from "../components"; import { CBARContext } from "../CBARContext"; import { CBARAssetType, CBMaterialProperties } from "../CBARTypes"; import { CBARTile } from "./CBARTile"; export declare enum TiledGridType { Monolithic = "monolithic", Ashlar = "ashlar", Stagger = "stagger", Herringbone = "herringbone", Brick = "brick", Basketweave = "basketweave" } export interface CBARTiledAssetProperties extends CBARSurfaceAssetProperties { materials: CBARMaterialProperties[] | CBMaterialProperties[]; gridType?: TiledGridType; } export declare abstract class CBARTiledAsset extends CBARSurfaceAsset { protected _container: THREE.Object3D; sharedMaterials: CBARStandardMaterial[]; constructor(context: CBARContext); abstract get type(): CBARAssetType; private _gridType; get gridType(): TiledGridType; set gridType(value: TiledGridType); private _shape; get shape(): CBARRugShape; set shape(value: CBARRugShape); load(basePath: string | undefined, json: CBARTiledAssetProperties): Promise; unload(): void; data(): any; get description(): string; protected subTiles: CBARTile[]; protected get individualTileSize(): THREE.Vector2; protected abstract get tiledCount(): THREE.Vector2; protected getGridRange(bounds: THREE.Box2, tileSize: THREE.Vector2): THREE.Box2; protected getPositionAndRotation(x: number, y: number, tileSize: THREE.Vector2): [THREE.Vector2, number]; protected generateTile(material: CBARStandardMaterial): CBARTile; protected layoutSubTiles(): Promise; render(options: RenderOptions): void; private setupMasking; addedToSurface(surface: CBARSurface): void; get receiveShadow(): boolean; set receiveShadow(value: boolean); get castShadow(): boolean; set castShadow(value: boolean); protected _dimensions: THREE.Vector2; get dimensions(): THREE.Vector2; set dimensions(value: THREE.Vector2); } export declare class CBARSingleTile extends CBARTiledAsset { get type(): CBARAssetType; protected get tiledCount(): THREE.Vector2; get description(): string; } export declare class CBARTiledRectangle extends CBARTiledAsset { get type(): CBARAssetType; protected get tiledCount(): THREE.Vector2; get description(): string; } export declare class CBARFilledTiledAsset extends CBARSingleTile { get type(): CBARAssetType; get dimensions(): THREE.Vector2; set dimensions(value: THREE.Vector2); get description(): string; } export declare enum CBARRugShape { Rectangle = "rectangle", Ellipse = "ellipse" } export interface CBARRugAssetProperties extends CBARTiledAssetProperties { shape?: CBARRugShape; } export declare class CBARRugAsset extends CBARSingleTile { get type(): CBARAssetType; get description(): string; }