export interface RGB {
    red: number;
    green: number;
    blue: number;
}
/**
 * Viewer options interface.
 */
export interface IOptions {
    /**
     * Show the world coordinate system axes in the bottom-left corner of the viewer.
     *
     * @defaultValue true
     */
    showWCS?: boolean;
    /**
     * Enable camera animation.
     *
     * @defaultValue true
     */
    cameraAnimation?: boolean;
    /**
     * Enable anti-aliasing using FXAA.
     *
     * @defaultValue true
     */
    antialiasing?: boolean;
    /**
     * Show ground shadows below the model.
     *
     * @defaultValue false
     */
    groundShadow?: boolean;
    /**
     * Enable ambient shadows.
     *
     * @defaultValue false
     */
    shadows?: boolean;
    /**
     * Camera speed on X axis.
     *
     * @defaultValue 4
     */
    cameraAxisXSpeed?: number;
    /**
     * Camera speed on Y axis.
     *
     * @defaultValue 1
     */
    cameraAxisYSpeed?: number;
    /**
     * Enable ambient occlusion.
     *
     * @defaultValue false
     */
    ambientOcclusion?: boolean;
    /**
     * Enable streaming of drawings from the server.
     *
     * If streaming is disabled, the file/assembly will be loaded in one go. The viewer will only update
     * once the loading is complete, which may take a while.
     *
     * If streaming is enabled, {@link enablePartialMode | partial streaming} mode may be enabled as well.
     *
     * @defaultValue true
     */
    enableStreamingMode?: boolean;
    /**
     * Enable partial streaming mode to be able open large drawing.
     *
     * In partial streaming mode, the viewer keeps only visible objects in memory and loads other objects
     * when the camera changes.
     *
     * Only used if {@link enableStreamingMode | streaming} is enabled. If partial streaming is enabled,
     * then {@link sceneGraph | scene graph} will be disabled.
     *
     * @defaultValue false
     */
    enablePartialMode?: boolean;
    /**
     * The size of the memory buffer for graphics data, in bytes.
     *
     * @defaultValue 3294967296
     */
    memoryLimit?: number;
    /**
     * Cutting planes fill color.
     *
     * @defaultValue { red: 0xff, green: 0x98, blue: 0x00 }
     */
    cuttingPlaneFillColor?: RGB;
    /**
     * Edges highlight color.
     */
    edgesColor?: {
        r: number;
        g: number;
        b: number;
    };
    /**
     * Faces highlight color.
     */
    facesColor?: {
        r: number;
        g: number;
        b: number;
    };
    /**
     * Show highlighted edges.
     */
    edgesVisibility?: boolean;
    /**
     * Show highlighted edges over drawing.
     */
    edgesOverlap?: boolean;
    /**
     * Show highlighted faces over drawing.
     */
    facesOverlap?: boolean;
    /**
     * Highlighted faces transparency value, from 0 to 255.
     */
    facesTransparancy?: number;
    /**
     * Enable custom highlight settings.
     */
    enableCustomHighlight?: boolean;
    /**
     * Enable scene graph.
     *
     * Scene graph increases perfomance improvement, but consumes memory. If scene graph is enabled, then
     * {@link enablePartialMode | partial streaming} mode will be disabled.
     */
    sceneGraph: boolean;
    /**
     * Show the edges of the model:
     *
     * - `false` - No model edges are displayed. Usefull for less memory consumption.
     * - `true` - Display isolines.
     */
    edgeModel: boolean;
    /**
     * Reverse the mouse wheel direction for zooming:
     *
     * - `false` - Moving the wheel up zooms in, moving down zooms out.
     * - `true` - Moving the wheel up zooms out, moving down zooms in.
     */
    reverseZoomWheel: boolean;
    /**
     * Enable mouse wheel zooming.
     */
    enableZoomWheel: boolean;
    /**
     * Enable touch gestures.
     *
     * This option will be ignored when {@link enableZoomWheel | mouse wheel zooming} is disabled, since
     * gestures contains touch zoom.
     */
    enableGestures: boolean;
    /**
     * Deprecated since `25.8`.
     */
    geometryType?: string;
    /**
     * Ruler unit.
     *
     * Available values: Default, Millimeters, Centimeters, Meters, Feet, Inches, Yards, Kilometers, Miles,
     * Micrometers, MicroInches
     *
     * @defaultValue Default
     */
    rulerUnit: string;
    /**
     * Resets options to default values.
     *
     * @param fields - Name of fields to be reset.
     */
    resetToDefaults?: (fields?: string[]) => void;
}
export declare function defaultOptions(): IOptions;
