import React, { CSSProperties, HTMLProps } from 'react'; interface BaseReader { read: () => Promise; } interface UrlReaderOptions { chunkSize?: number; url: string; reqOptions?: RequestInit; } declare type LineType = 'extrude' | 'travel'; interface GPoint { x: number; y: number; z: number; e: number; type: LineType; } interface GCodeParseProgress { points: GPoint[]; read: number; baseCenter: { x: number; y: number; }; max: { x: number; y: number; z: number; }; min: { x: number; y: number; z: number; }; filamentLength: number; } interface CameraInitialPosition { latitude: number; longitude: number; distance: number; } interface FloorProps { gridWidth?: number; gridLength?: number; } interface GCodeViewerContentProps { reader: BaseReader; cameraInitialPosition?: CameraInitialPosition; layerColor?: CSSProperties['color']; topLayerColor?: CSSProperties['color']; floorProps?: FloorProps; visible?: number; showAxes?: boolean; orbitControls?: boolean; quality?: number; onProgress?: (progress: GCodeParseProgress) => any; onFinishLoading?: (finish: GCodeParseProgress) => any; onError?: (err: Error) => any; } interface GCodeViewerProps extends Omit, 'onError' | 'onProgress'>, Omit { url: UrlReaderOptions['url']; reqOptions?: RequestInit; canvasId?: string; } declare const GCodeViewer: React.FC; export { CameraInitialPosition, FloorProps, GCodeParseProgress, GCodeViewer, GCodeViewerProps, GPoint };