import type { ColorRepresentation } from 'three'; import type Context from '../core/Context'; import type Extent from '../core/geographic/Extent'; import type { EntityUserData } from './Entity'; import type { Entity3DOptions, Entity3DEventMap } from './Entity3D'; import { type GetMemoryUsageContext } from '../core/MemoryUsage'; import Entity3D from './Entity3D'; /** * The grid step values. */ export interface Ticks { /** The tick distance on the x axis. */ x: number; /** The tick distance on the y axis. */ y: number; /** The tick distance on the z (vertical) axis. */ z: number; } /** * The grid volume. */ export interface Volume { /** The grid volume extent. */ extent: Extent; /** The elevation of the grid floor. */ floor: number; /** The elevation of the grid ceiling. */ ceiling: number; } /** * The grid formatting options. */ export interface Style { /** The grid line and label colors. */ color: ColorRepresentation; /** The fontsize, in points (pt). */ fontSize: number; /** The number format for the labels. */ numberFormat: Intl.NumberFormat; } export declare const DEFAULT_STYLE: Style; /** * Describes the starting point of the ticks. */ export declare enum TickOrigin { /** * Tick values represent distances to the grid's lower left corner */ Relative = 0, /** * Tick values represent coordinates in the CRS of the scene. */ Absolute = 1 } export interface AxisGridEventMap extends Entity3DEventMap { /** * Raised when a new label is created. */ 'label-created': { /** * The label DOM element. */ label: HTMLSpanElement; }; } /** * Constructor options for the {@link AxisGrid} entity. */ export interface AxisGridOptions extends Entity3DOptions { /** * The grid volume */ volume: Volume; /** * The origin of the ticks volume * @defaultValue {@link TickOrigin.Relative} */ origin?: TickOrigin; /** * The distance between grid lines. * @defaultValue 100 on each axis. */ ticks?: Ticks; /** * The style to apply to lines and labels. */ style?: Partial