index.tstypescript
import "../css/og.css";

import * as jd from "./astro/jd";
import * as math from "./math";
import * as mercator from "./mercator";
import * as utils from "./utils/shared";
import * as bv from "./bv/index";
import * as control from "./control/index";
import * as scene from "./scene/index";
import * as terrain from "./terrain/index";
import * as layer from "./layer/index";
import * as ui from "./ui/index";
import * as webgl from "./webgl/index";

export * from "./control/Control";
export * from "./entity/index";
export * from "./layer/index";
export * from "./Globe";

export type { IControlParams } from "./control/Control";
export type { IMouseState, ITouchState } from "./renderer/RendererEvents";
export type { IDeferredShadingPass } from "./renderer/IDeferredShadingPass";
export type { ITransparencyPass } from "./renderer/ITransparencyPass";
export type { ProjectorSourceType, ProjectorRenderMode, IProjectorParams } from "./renderer/projectors/Projector";
export { Projector } from "./renderer/projectors/Projector";
export type { IShadowMapParams } from "./renderer/shadows/ShadowMap";
export { ShadowMap } from "./renderer/shadows/ShadowMap";
export { CascadeShadowMap } from "./renderer/cascadeShadows/CascadeShadowMap";
export type { IDepthCameraParams } from "./control/depthCamera/DepthCamera";
export { DepthCamera } from "./control/depthCamera/DepthCamera";
export type { IDepthCameraHandlerParams } from "./control/depthCamera/DepthCameraHandler";
export { DepthCameraHandler } from "./control/depthCamera/DepthCameraHandler";
export { PhongDeferredShading } from "./renderer/PhongDeferredShading";
export { AtmosphereDeferredShading } from "./renderer/AtmosphereDeferredShading";
export { WOITPass } from "./renderer/WOITPass";
export { ProjectorsPass } from "./renderer/projectors/ProjectorsPass";
export { ProjectorManager } from "./renderer/projectors/ProjectorManager";
export { ShadowManager } from "./renderer/shadows/ShadowManager";
export { SHADE_UNLIT, SHADE_PHONG, SHADE_PBR, type ShadeMode, type ShadeModeInput } from "./shadeModeConstants";
export type { CameraFootprintCorners, ICameraFootprintParams } from "./utils/cameraFootprint";
export { CameraFootprint, getCameraFootprint } from "./utils/cameraFootprint";
export type {
    ILightSpaceBounds,
    IOrthoBounds,
    IShadowCameraFitParams,
    IShadowCameraFitStats
} from "./utils/shadowCameraFit";
export { ShadowCameraFit } from "./utils/shadowCameraFit";
export type { ITimeZoneData, ITimeZoneFeature, ITimeZoneProviderParams } from "./utils/tz";
export { TimeZoneProvider, tzOffsetMinutes } from "./utils/tz";

declare const __OG_VERSION__: string;
export const version = __OG_VERSION__;
((globalThis as any).og ??= {}).version = __OG_VERSION__;

import { Geoid } from "./terrain/Geoid";

import { input } from "./input/input";

import { Ellipsoid, wgs84, moon, mars } from "./ellipsoid/index";

import { Camera, PlanetCamera } from "./camera/index";

import { Line2, Line3, Mat3, Mat4, Plane, Quat, Ray, Vec2, Vec3, Vec4 } from "./math/index";

import { Renderer } from "./renderer/Renderer";
import { Clock } from "./Clock";
import { TimelineModel } from "./control/timeline/TimelineModel";
import { Events, type EventsHandler, createEvents } from "./Events";
import { Extent } from "./Extent";
import { LonLat } from "./LonLat";
import { Scene } from "./scene/Scene";
import { Planet } from "./scene/Planet";
import { Popup } from "./Popup";
import { Loader, type IResponse } from "./utils/Loader";

import {
    EarthQuadTreeStrategy,
    EquiQuadTreeStrategy,
    QuadTreeStrategy,
    quadTreeStrategyType,
    Wgs84QuadTreeStrategy
} from "./quadTree/index";

import { Object3d } from "./Object3d";

import { Handler, ShaderProgram, Framebuffer, Multisample } from "./webgl/index";

import {
    EmptyTerrain,
    GlobusTerrain,
    RgbTerrain,
    BilTerrain,
    GlobusRgbTerrain,
    MapterhornTerrain,
    rgbToHeightByEncoding,
    rgbToHeightRgb,
    rgbToHeightTerrarium,
    resolveRgbToHeightFunc
} from "./terrain/index";

import { MoveAxisEntity } from "./control/entityEditor/MoveAxisEntity";
import { Gltf } from "./utils/gltf/gltfParser";
import { Easing } from "./utils/easing";
import type { EasingFunction } from "./utils/easing";

export {
    bv,
    jd,
    math,
    mercator,
    utils,
    input,
    control,
    scene,
    quadTreeStrategyType,
    wgs84,
    moon,
    mars,
    terrain,
    layer,
    ui,
    webgl,
    Easing,
    EasingFunction,
    Framebuffer,
    EmptyTerrain,
    GlobusTerrain,
    RgbTerrain,
    GlobusRgbTerrain,
    MapterhornTerrain,
    rgbToHeightByEncoding,
    rgbToHeightRgb,
    rgbToHeightTerrarium,
    resolveRgbToHeightFunc,
    BilTerrain,
    Camera,
    Ellipsoid,
    Planet,
    PlanetCamera,
    ShaderProgram,
    Handler,
    Multisample,
    Renderer,
    Clock,
    TimelineModel,
    Events,
    EventsHandler,
    createEvents,
    Extent,
    LonLat,
    Scene,
    Line2,
    Line3,
    Mat3,
    Mat4,
    Plane,
    Quat,
    Ray,
    Vec2,
    Vec3,
    Vec4,
    Geoid,
    Popup,
    QuadTreeStrategy,
    EquiQuadTreeStrategy,
    EarthQuadTreeStrategy,
    Wgs84QuadTreeStrategy,
    Object3d,
    Gltf,
    MoveAxisEntity,
    Loader,
    IResponse
};