import { _API } from "./API";
import { ICameraView } from "./Types";
interface IPostprocessingOptions {
    /** switch postprocessing on/off globally */
    globalEnable: boolean;
    /** timeout in milliseconds before postprocessing kicks in */
    timeout: number;
    /** callback to reset postprocessing when API.RedrawScene is called */
    handlePostprocessingBeforeRender: () => void;
}
export declare enum ELoadGeometryPreviews {
    PreviewOnly = "PreviewOnly",
    Staged = "Staged",
    Default = "Default"
}
export declare const State: ICoreState;
export interface ICoreState {
    API: _API;
    /** Array of camera views, updated in the render loop */
    cameraViews: ICameraView[];
    /** Maximal bounding box overlap, used in LinearAlgebra */
    maxBBoxOverlap: number;
    /** Load igxc with GeometryPreviews in 2 stages */
    loadGeometryPreviews: ELoadGeometryPreviews;
    /** Keep calculate RegExps to prevent expensive calculations */
    regexCache: {
        [key: string]: RegExp;
    };
    /** combines postprocessing options */
    postprocessingOptions: IPostprocessingOptions;
    /**
     * maximal texture size, defaults to 4096,
     * should be overridden when a renderer is instanced
     * e.g. using ThreeJS.CreateDefaultWebGLRenderer
     * */
    maxTextureSize: number;
}
export {};
