import { NodeAutocompletion } from "./autocompletions" export interface Basemap extends BasemapNodeBase { dimensions: BasemapDimension[] sources: BasemapSource[] topoJson?: any type: BasemapNodeType.Basemap } export interface BasemapDimension { /// Correspondences between a field in TopoJSON map and the same field in dataset correspondences: [string, string][] /// Path of dataset path: string } export interface BasemapGroup extends BasemapNodeBase { childrenAutocompletion?: NodeAutocompletion[] type: BasemapNodeType.Group } export type BasemapNode = Basemap | BasemapGroup export interface BasemapNodeBase { description?: string name: string path: string type: BasemapNodeType } export enum BasemapNodeType { Basemap = "BASEMAP", Group = "GROUP", } export interface BasemapSource { borders?: BasemapSourceBorder[] projection?: string rawMapPath: string scale?: number transforms?: BasemapSourceTransform zoning?: [[number, number], [number, number]] } export enum BasemapSourceBorder { Bottom = "b", Left = "l", Right = "r", Top = "t", } export interface BasemapSourceTransform { parallels?: [number, number] rotate?: [number, number] }