///
import { CBTextureLoadError } from "./CBTextureLoader";
import { CBMaterialProperties } from "./CBMaterial";
import { CBToolMode } from "./CBTypes";
import { CBSceneProperties } from "./CBScene";
declare let VisualizerMaterialUrl: string | null;
export { VisualizerMaterialUrl };
export declare class CBAPI {
setMaterial: any;
setFloorRotation: any;
}
export declare type CBMethods = {
captureScreenshot: () => Promise;
undoLast: () => boolean;
restoreAll: () => boolean;
clearHistory: () => boolean;
getFloorCenter: () => [number, number, number];
};
export declare type CBSceneData = {
renderCanvas: HTMLCanvasElement;
maskCanvas: HTMLCanvasElement;
};
export declare type CBSceneParams = {
scene?: CBSceneProperties | null | undefined;
onClick?: () => void;
onMaskClick?: () => void;
onAssetClick?: () => void;
fov: number;
cameraPosition: [number, number, number];
cameraRotation: [number, number, number];
floorRotation?: number;
lightingOffset?: number;
material?: CBMaterialProperties | null | undefined;
showControls?: boolean;
toolMode?: CBToolMode;
blendEdges?: boolean;
undoHistorySize?: number;
canLoad?: boolean;
onMaterialTextureChanged?: ((path: string) => void) | null;
onTextureError?: (error: CBTextureLoadError) => void;
onHistoryChanged?: (length: number) => void;
floorTransparency?: number;
onDrawingStart?: (mode: CBToolMode) => void;
onDrawingEnd?: (mode: CBToolMode) => void;
onSceneRender?: (data: CBSceneData) => void;
onSceneLoaded?: (data: CBSceneData, methods: CBMethods) => void;
floorPosition?: number[];
floorPositionUpdated?: (position: number[]) => void;
floorRotationUpdated?: (rotation: number) => void;
floorSize?: number[];
};
export declare function CBVisualizer(props: CBSceneParams): JSX.Element;