// Generated by sqs-script Registry; incremental P2 local contract; P0 host adapters remain for compatibility. declare function sleep(ms: number): Promise; declare module "gis" { /** 异步等待 0~60000 毫秒;计入脚本总超时,取消任务可中断。 */ export function sleep(ms: number): Promise; export interface Subscription { unsubscribe(): void; } export interface Operation extends PromiseLike { readonly id: string; status(): string; cancel(): boolean; onProgress(fn: (p: {stage:string;percent:number;message:string;fraction: number}) => void): Subscription; result(): Promise<{value: T; summary: string;warnings:unknown[];artifacts:unknown[];truncated:boolean}>; } export interface Layer { readonly id: string; readonly name: string; release(): void; } export interface Field {name: string; displayName: string | null;} export interface CodeSamples {samples: {value: string; label: string | null}[]; sampledRows: number; totalRows: number; truncated: boolean;} export interface ChangePreview {historyStorage?:'memory'|'checkpoint';undoAvailable?:boolean;selectedIssueCount?:number;remainingIssueCount?:number;beforeCount?:number;afterCount?:number;addedFeatureCount?:number;deletedFeatureCount?:number;title:string;summary:string;affectedLayers:MapLayerRef[];affectedLayerCount:number;affectedFeatureCount?:number;fileWrites:string[];fileWriteCount:number;samples:unknown[];warnings:unknown[];truncated:boolean;} export interface FileRef {readonly id:string;readonly kind:"file";readonly name:string;readonly path:string;readonly bytes:number;isValid():boolean;dispose():void;} /** 宿主运行时能力:platform 为 desktop / mobile / web;graphics 为实际图形后端(地图未初始化时为 null);localFiles 为 any(任意路径)/ sandbox(应用沙箱)/ picker(仅用户选择的 FileRef)。 */ export interface HostCapabilities {readonly platform:'desktop'|'mobile'|'web';readonly graphics:string|null;readonly computeShaders:boolean;readonly lineAnimation:boolean;readonly gaussianSplats:boolean;readonly localFiles:'any'|'sandbox'|'picker';readonly corsRestricted:boolean;readonly gdal:boolean;} export interface ChangePlan { readonly id: string; preview(): Operation; apply(): Operation; discard(): void; } export const gis: { api: {version(): string; runtime(): string;}; capabilities: {list(): readonly string[]; get(): HostCapabilities;}; tasks: TaskApi; host: { /** 列出当前矢量显示并取得本次任务的引用 */ layers(): Operation; /** 复用当前图层的面积、长度及数量统计 */ metrics(arg0: Layer, arg1?: boolean): Operation; /** 读取真实字段及已有业务名称;未知名称不推测 */ fields(arg0: Layer): Operation; /** 读取最多20行中的代码样本及已知字典含义,不代表完整代码表 */ codes(arg0: Layer, arg1: string): Operation; /** 为新文件预演导出,需宿主确认 */ exportGeoJSON(arg0: Layer, arg1: string): Operation; }; data: { /** data.fromGeoJSON — 读取内存 GeoJSON 并保留原始属性类型,不自动上图 */ fromGeoJSON(arg0: GeoJSON, arg1?: {name?: string}): Operation; /** data.open — 读取本地矢量或栅格数据,保留坐标系和字段类型 */ open(arg0: string, arg1?: DataOpenOptions): Operation; /** data.layers — 分页发现子图层;游标绑定文件及旁文件指纹 */ layers(arg0: string, arg1?: PageOptions): Operation>; info(input: TableRef): Operation; info(input: DatasetRef | RasterRef | MapLayerRef): Operation; /** data.info — 读取数据元信息与坐标系 */ info(arg0: DatasetRef | RasterRef | MapLayerRef | TableRef): Operation; fields(input: TableRef, options?: PageOptions): Operation>; /** data.fields — 分页发现字段类型;成果表保留声明类型和计量单位,原有无类型全空源字段按可空字符串描述 */ fields(arg0: DatasetRef | MapLayerRef | TableRef, arg1?: PageOptions): Operation>; /** data.codes — 仅返回已匹配代码表;无代码表时明确报告不存在 */ codes(arg0: DatasetRef | MapLayerRef, arg1: PageOptions & {field: string}): Operation>; /** data.reproject — 将二维数据真实转换到指定 EPSG 坐标系并保留字段和顺序,返回独立数据引用 */ reproject(arg0: DatasetRef | FeatureSetRef, arg1: ReprojectOptions): Operation; }; query: { /** query.metrics — 在明确的米制投影中统计数量、面积和长度 */ metrics(arg0: DatasetRef | FeatureSetRef | FeatureRef | MapLayerRef, arg1?: {scope?: 'all'|'filtered'; measurementCrs?: string}): Operation; /** query.select — 类型化筛选并保留原生要素集合,不改变地图选择 */ select(arg0: DatasetRef | MapLayerRef, arg1: SelectionOptions): Operation; /** query.rows:读取表格值或属性记录。 */ rows(input: TableRef, options?: TableRowQueryOptions): Operation>; rows(input: DatasetRef | MapLayerRef | FeatureSetRef, options?: RowQueryOptions): Operation>; /** query.features — 分页读取小要素结果,几何留在宿主且按需返回 */ features(arg0: DatasetRef | MapLayerRef, arg1?: FeatureQueryOptions): Operation>; /** query.fieldSummary — 完整统计字段缺失与唯一值;样本限制不改变统计范围 */ fieldSummary(arg0: DatasetRef | MapLayerRef, arg1: {field: string; scope?: 'all'|'filtered'; sampleLimit?: number}): Operation; /** query.groupMetrics — 按真实字段完整分组统计数量与米制度量 */ groupMetrics(arg0: DatasetRef | MapLayerRef, arg1: GroupMetricOptions): Operation; /** query.missingValues — 检查空值和空白,返回准确扫描覆盖与有限样本 */ missingValues(arg0: DatasetRef | MapLayerRef, arg1: FieldQualityOptions): Operation; /** query.duplicateValues — 按类型检查非空重复值,返回分组计数和有限样本 */ duplicateValues(arg0: DatasetRef | MapLayerRef, arg1: FieldQualityOptions): Operation; /** query.fieldQuality — 在同一版本和扫描集合上综合检查字段质量 */ fieldQuality(arg0: DatasetRef | MapLayerRef, arg1: FieldQualityOptions): Operation; /** query.parts — 按版本分页读取部件与顶点,闭合末尾不重复编号 */ parts(arg0: FeatureRef, arg1?: PageOptions): Operation>; /** query.vertices — 按版本分页读取部件与顶点,闭合末尾不重复编号 */ vertices(arg0: FeatureRef, arg1?: PageOptions): Operation>; /** query.aggregate — 按字段完整统计并返回不可变表格;groupBy 空数组为全体总计,measures 为输出别名对象;几何量算须指定适用 UTM 与单位 */ aggregate(arg0: DatasetRef | FeatureSetRef, arg1: AggregateOptions): Operation; /** query.spatialJoin — 按左相对右的空间关系关联,保留左几何;显式选择连接、匹配和字段别名,附输入快照来源索引 */ spatialJoin(arg0: DatasetRef | FeatureSetRef, arg1: DatasetRef | FeatureSetRef, arg2: SpatialJoinOptions): Operation; /** query.nearest — 按投影后几何最短距离匹配;阈值含边界,all 保留第 k 名并列,first 按右原始索引择优;返回表格距离为米 */ nearest(arg0: DatasetRef | FeatureSetRef, arg1: DatasetRef | FeatureSetRef, arg2: NearestOptions): Operation; /** query.sql — 对已有数据引用执行本地只读查询;匿名位置绑定,显式选择表格或原坐标系空间成果,不支持远程方言 */ sql(arg0: SqlOptions): Operation; }; analysis: { /** analysis.buffer — 正距离米制点、线、面缓冲,生成新数据并保留输入坐标系 */ buffer(arg0: DatasetRef | FeatureSetRef | MapLayerRef, arg1: BufferOptions): Operation; /** analysis.clip — 按明确的面边界裁剪线或面,并生成独立成果 */ clip(arg0: DatasetRef | FeatureSetRef | MapLayerRef, arg1: DatasetRef | FeatureRef | FeatureSetRef, arg2?: ResultOptions): Operation; /** analysis.erase — 按明确的面边界擦除并生成独立成果 */ erase(arg0: DatasetRef | FeatureSetRef | MapLayerRef, arg1: DatasetRef | FeatureRef | FeatureSetRef, arg2?: ResultOptions): Operation; /** analysis.split — 按面边界划分内外成果 */ split(arg0: DatasetRef | FeatureSetRef | MapLayerRef, arg1: FeatureRef | FeatureSetRef, arg2?: ResultOptions): Operation; /** analysis.merge — 融合所选面并生成无继承属性的独立成果 */ merge(arg0: DatasetRef | FeatureSetRef | MapLayerRef, arg1?: ResultOptions): Operation; /** analysis.makeValid — 修复几何有效性并生成独立成果 */ makeValid(arg0: DatasetRef | FeatureSetRef | MapLayerRef, arg1?: ResultOptions): Operation; /** analysis.simplify — 在适用米制投影中简化几何 */ simplify(arg0: DatasetRef | FeatureSetRef | MapLayerRef, arg1: SimplifyOptions): Operation; /** analysis.extractBoundary — 提取面边界为线成果 */ extractBoundary(arg0: DatasetRef | FeatureSetRef | MapLayerRef, arg1?: BoundaryOptions): Operation; /** analysis.intersect — 二维面逐对属性叠加求交;fields.left/right 显式指定源字段到输出别名,附 __leftIndex/__rightIndex 来源索引;仅边界接触返回空成果 */ intersect(arg0: DatasetRef | FeatureSetRef, arg1: DatasetRef | FeatureSetRef, arg2: IntersectOptions): Operation; /** analysis.dissolve — 按字段融合有效二维面并消除组内重叠;groupBy 必填,空数组全体融合,只保留分组属性 */ dissolve(arg0: DatasetRef | FeatureSetRef, arg1: DissolveOptions): Operation; }; export: { /** export.dataset — 为新 GeoJSON 或 GPKG 文件预演数据集导出;提交需宿主确认 */ dataset(arg0: DatasetRef | MapLayerRef | FeatureSetRef, arg1: DatasetExportOptions): ChangePlan; /** export.saveToSource — 仅对完整且可验证的单文件成果预演回源保存 */ saveToSource(arg0: MapLayerRef, arg1?: {password?:SecretRef}): ChangePlan; /** export.feature — 预演单要素成果导出,复用字段检查和宿主确认 */ feature(arg0: FeatureRef, arg1: DatasetExportOptions): ChangePlan; /** export.map — 冻结当前地图并预演 PNG 或固定 A4 横向 PDF;平面三维可选 1~4 倍离屏分辨率,不完整内容明确拒绝 */ map(arg0: MapExportOptions): ChangePlan; /** export.validate — 预检格式的字段、几何及类型限制,不写文件 */ validate(arg0: DatasetRef | MapLayerRef | FeatureSetRef, arg1: ExportValidationOptions): Operation; /** export.raster — 预演把栅格成果写出为 GeoTIFF,需宿主确认;单个文件不超过 64 MiB */ raster(arg0: RasterRef, arg1: RasterExportOptions): ChangePlan; /** export.pointCloudClassification — 预演把地面分类结果写出为 CSV,需宿主确认;原点云不改写 */ pointCloudClassification(arg0: ClassificationRef, arg1: FileExportOptions): ChangePlan; /** export.splatPreview — 预演把当前视角下的高斯资产单独渲染为 PNG(1~4 倍),需宿主确认;不含地图其他内容 */ splatPreview(arg0: MapLayerRef, arg1: SplatPreviewOptions): ChangePlan; }; edit: { /** edit.addField — 预演数据修改,确认后原子提交并同步关联显示 */ addField(arg0: MapLayerRef, arg1: AddFieldOptions): ChangePlan; /** edit.renameField — 预演数据修改,确认后原子提交并同步关联显示 */ renameField(arg0: MapLayerRef, arg1: string, arg2: string): ChangePlan; /** edit.changeFieldType — 预演数据修改,确认后原子提交并同步关联显示 */ changeFieldType(arg0: MapLayerRef, arg1: string, arg2: string): ChangePlan; /** edit.deleteField — 预演数据修改,确认后原子提交并同步关联显示 */ deleteField(arg0: MapLayerRef, arg1: string): ChangePlan; /** edit.setAttribute — 预演数据修改,确认后原子提交并同步关联显示 */ setAttribute(arg0: FeatureRef, arg1: string, arg2: string): ChangePlan; /** edit.setValues — 预演数据修改,确认后原子提交并同步关联显示 */ setValues(arg0: MapLayerRef, arg1: SetValuesOptions): ChangePlan; /** edit.fillMissing — 预演数据修改,确认后原子提交并同步关联显示 */ fillMissing(arg0: MapLayerRef, arg1: SetValuesOptions): ChangePlan; /** edit.trimValues — 预演数据修改,确认后原子提交并同步关联显示 */ trimValues(arg0: MapLayerRef, arg1: FieldScopeOptions): ChangePlan; /** edit.replaceValue — 预演数据修改,确认后原子提交并同步关联显示 */ replaceValue(arg0: MapLayerRef, arg1: ReplaceValueOptions): ChangePlan; /** edit.calculateField — 预演数据修改,确认后原子提交并同步关联显示 */ calculateField(arg0: MapLayerRef, arg1: FieldCalculatorOptions): ChangePlan; /** edit.removeEmptyGeometries — 预演数据修改,确认后原子提交并同步关联显示 */ removeEmptyGeometries(arg0: MapLayerRef): ChangePlan; /** edit.deleteFeatures — 预演数据修改,确认后原子提交并同步关联显示 */ deleteFeatures(arg0: FeatureSetRef | FeatureRef | FeatureRef[]): ChangePlan; /** edit.moveVertex — 预演显式目标的几何修改,确认后同步共享数据与显示 */ moveVertex(arg0: FeatureRef, arg1: VertexMoveOptions): ChangePlan; /** edit.insertVertex — 预演显式目标的几何修改,确认后同步共享数据与显示 */ insertVertex(arg0: FeatureRef, arg1: VertexInsertOptions): ChangePlan; /** edit.deleteVertex — 预演显式目标的几何修改,确认后同步共享数据与显示 */ deleteVertex(arg0: FeatureRef, arg1: VertexDeleteOptions): ChangePlan; /** edit.replaceGeometry — 预演显式目标的几何修改,确认后同步共享数据与显示 */ replaceGeometry(arg0: FeatureRef, arg1: GeoJSON): ChangePlan; /** edit.translate — 预演显式目标的几何修改,确认后同步共享数据与显示 */ translate(arg0: FeatureSetRef, arg1: TranslateOptions): ChangePlan; /** edit.addFeatures — 预演显式目标的几何修改,确认后同步共享数据与显示 */ addFeatures(arg0: MapLayerRef, arg1: GeoJSON | FeatureSetRef): ChangePlan; /** edit.replaceDataset — 预演显式目标的几何修改,确认后同步共享数据与显示 */ replaceDataset(arg0: MapLayerRef, arg1: DatasetRef): ChangePlan; /** edit.mergeFeatures — 预演显式目标的专项几何修改,确认后提交统一历史 */ mergeFeatures(arg0: FeatureSetRef, arg1: MergeFeatureOptions): ChangePlan; /** edit.fillHoles — 预演显式目标的专项几何修改,确认后提交统一历史 */ fillHoles(arg0: FeatureRef, arg1: FillHoleOptions): ChangePlan; /** edit.removeHole — 预演显式目标的专项几何修改,确认后提交统一历史 */ removeHole(arg0: FeatureRef, arg1: RemoveHoleOptions): ChangePlan; /** edit.clip — 预演显式目标的专项几何修改,确认后提交统一历史 */ clip(arg0: FeatureSetRef, arg1: FeatureLike): ChangePlan; /** edit.erase — 预演显式目标的专项几何修改,确认后提交统一历史 */ erase(arg0: FeatureSetRef, arg1: FeatureLike): ChangePlan; /** edit.split — 预演显式目标的专项几何修改,确认后提交统一历史 */ split(arg0: FeatureSetRef, arg1: FeatureRef): ChangePlan; /** edit.shrink — 预演显式目标的专项几何修改,确认后提交统一历史 */ shrink(arg0: FeatureRef, arg1: FeatureRef): ChangePlan; /** edit.expand — 预演显式目标的专项几何修改,确认后提交统一历史 */ expand(arg0: FeatureRef, arg1: FeatureRef): ChangePlan; /** edit.reshape — 预演显式目标的专项几何修改,确认后提交统一历史 */ reshape(arg0: FeatureRef, arg1: ReshapeOptions): ChangePlan; /** edit.bufferAdjust — 预演显式目标的专项几何修改,确认后提交统一历史 */ bufferAdjust(arg0: FeatureRef, arg1: BufferAdjustOptions): ChangePlan; /** edit.explodeParts — 把多部件面拆为独立要素,保留内洞和属性 */ explodeParts(arg0: FeatureRef): ChangePlan; }; history: { /** history.state — 读取工作台统一编辑历史状态 */ state(): Operation; /** history.undo — 预演撤销或重做,确认时核对历史版本 */ undo(): ChangePlan; /** history.redo — 预演撤销或重做,确认时核对历史版本 */ redo(): ChangePlan; }; geometry: { /** geometry.snap — 在明确米制投影中计算几何辅助结果 */ snap(arg0: Coordinate, arg1: SnapOptions): Operation; /** geometry.trace — 在明确米制投影中计算几何辅助结果 */ trace(arg0: TraceOptions): Operation; /** geometry.offset — 在明确米制投影中计算几何辅助结果 */ offset(arg0: Coordinate, arg1: OffsetOptions): Operation; /** geometry.distance3d — 计算两个三维命中或带高度位置之间的水平、垂直与空间距离;高度基准不一致时拒绝 */ distance3d(arg0: SceneHit | GeoPosition3d, arg1: SceneHit | GeoPosition3d): Operation; }; topology: { /** topology.checkOverlaps — 检查拓扑并返回绑定数据版本的可分页报告 */ checkOverlaps(arg0: DatasetRef | MapLayerRef | FeatureSetRef, arg1?: TopologyCheckOptions): Operation; /** topology.checkGaps — 检查拓扑并返回绑定数据版本的可分页报告 */ checkGaps(arg0: DatasetRef | MapLayerRef | FeatureSetRef, arg1?: TopologyCheckOptions): Operation; /** topology.checkSpikes — 检查拓扑并返回绑定数据版本的可分页报告 */ checkSpikes(arg0: DatasetRef | MapLayerRef | FeatureSetRef, arg1?: TopologyCheckOptions): Operation; /** topology.checkKinks — 检查拓扑并返回绑定数据版本的可分页报告 */ checkKinks(arg0: DatasetRef | MapLayerRef | FeatureSetRef, arg1?: TopologyCheckOptions): Operation; /** topology.repair — 预演指定问题修复并自动复检,默认生成独立成果 */ repair(arg0: TopologyReportRef, arg1?: TopologyRepairOptions): ChangePlan; }; secrets: { /** secrets.request — 由宿主安全输入凭据,仅返回不透明引用 */ request(arg0: {purpose:string;label:string}): Operation; /** secrets.get — 读取当前任务已授权的具名凭据引用,不返回明文 */ get(arg0: string): Operation; }; raster: { /** raster.buildOverviews — 在隔离副本构建影像概览,预演后确认提交旁文件 */ buildOverviews(arg0: RasterRef): ChangePlan; /** raster.elevationInfo — 读取高程波段、单位和基准说明,不加载整幅影像 */ elevationInfo(arg0: RasterRef, arg1?: ElevationOptions): Operation; /** raster.sampleElevation — 按 WGS84 经纬度查询实际高程,区分范围外和无效像元 */ sampleElevation(arg0: RasterRef, arg1: [number,number], arg2?: ElevationOptions): Operation; /** raster.profileElevation — 沿线按米制间距取高程剖面,空洞保留断段,最多返回 64 个明细点 */ profileElevation(arg0: RasterRef, arg1: [number,number][], arg2: ElevationProfileOptions): Operation; /** raster.zonalStats — 按原始像元中心统计二维面分区;边界计入,重叠独立,排除无效像元;分区编号须唯一非空,返回表格 */ zonalStats(arg0: RasterRef, arg1: DatasetRef | FeatureSetRef, arg2: ZonalStatsOptions): Operation; /** raster.warp — 按输出坐标系和显式网格转换全部波段;分类仅最近邻,原始数值及比例参数保留;结果为临时影像引用 */ warp(arg0: RasterRef, arg1: RasterWarpOptions): Operation; /** raster.readPixels — 按源网格读取有限窗口:波段从1、偏移从0开始,不裁短越界窗口;raw原值或physical比例转换,无效值为null,最多4096像元及60KiB */ readPixels(arg0: RasterRef, arg1: ReadPixelsOptions): Operation; /** raster.hillshade — 由投影米制 DEM 生成晕渲影像临时成果,不改写源文件 */ hillshade(arg0: RasterRef, arg1?: HillshadeAnalysisOptions): Operation; /** raster.slope — 由投影米制 DEM 生成坡度影像(度)临时成果 */ slope(arg0: RasterRef, arg1?: DemAnalysisOptions): Operation; /** raster.aspect — 由投影米制 DEM 生成坡向影像(度,正北顺时针,平坦为无效值)临时成果 */ aspect(arg0: RasterRef, arg1?: DemAnalysisOptions): Operation; /** raster.contours — 按米制等高距由 DEM 生成等高线矢量临时成果,高程字段为 ELEV_M */ contours(arg0: RasterRef, arg1: ContourAnalysisOptions): Operation; }; live: { /** live.connect — 注册持续采集器,随场景启停,快照原子替换 */ connect(arg0: LiveConnectOptions, arg1: SceneOwnerOptions): Operation; /** live.info — 读取采集状态、新鲜度、版本与有界队列统计 */ info(arg0: LiveFeedRef): Operation; /** live.snapshot — 冻结实时源的已显示批次,得到可分析和导出的不可变成果 */ snapshot(arg0: SourceRef): Operation; }; pointClouds: { /** pointClouds.neighbors — 在本地点云全源中按 WGS84 中心与米制半径查找最近点,最多返回 100 个样本 */ neighbors(arg0: SourceRef | string, arg1: PointNeighborOptions): Operation; /** pointClouds.toDem — 由本地 UTM 点云全源生成 DEM 临时栅格成果,可只用估计地面点 */ toDem(arg0: SourceRef | string, arg1: PointDemOptions): Operation; /** pointClouds.density — 由本地 UTM 点云全源生成点密度(点/格)临时栅格成果 */ density(arg0: SourceRef | string, arg1: PointDensityOptions): Operation; /** pointClouds.classifyGround — 对本地 UTM 点云全源做渐进形态学地面分类,结果为临时分类表,不改写原点云 */ classifyGround(arg0: SourceRef | string, arg1: GroundClassificationOptions): Operation; }; places: { /** places.search — 地名查询/地理编码:按地名、简称或区划路径查省市县乡镇候选,返回匹配度、驻地坐标与范围;重名时列出多个候选 */ search(arg0: string, arg1?: PlaceSearchOptions): Operation>; /** places.get — 按区划代码或唯一地名取得地名详情(驻地坐标、范围、上级) */ get(arg0: PlaceInput): Operation; /** places.children — 列出行政区的直属下级(省的市、市的区县、县的乡镇) */ children(arg0: PlaceInput, arg1?: PageOptions): Operation>; /** places.reverse — 逆地理编码:坐标所在的省、市、县、乡镇(按行政区边界判断,需联网取边界) */ reverse(arg0: [number,number]): Operation; /** places.nearest — 离坐标最近的地名(默认乡镇),按距离升序并给出米制距离 */ nearest(arg0: [number,number], arg1?: PlaceNearestOptions): Operation; /** places.boundary — 取得行政区边界面数据(WGS84,需联网),可上图、裁剪、统计;children:true 取全部直属下级边界 */ boundary(arg0: PlaceInput, arg1?: PlaceBoundaryOptions): Operation; /** places.parseCoordinate — 解析用户给出的经纬度文本(十进制、度分秒、东经北纬或 E/N 标记,顺序写反自动纠正) */ parseCoordinate(arg0: string): Operation<[number,number] | null>; }; files: { /** files.pick — 让用户选择本地文件(桌面系统文件对话框、网页浏览器选择框、移动端系统选择器),返回 FileRef 列表,可直接作为模型、DEM、点云、矢量、栅格、精灵图等的 path;用户取消时返回空数组 */ pick(arg0?: FilePickOptions): Operation; }; }; export const map: { /** map.open — 读取矢量文件并作为面、线或圆点显示;同时需要 project.read 和 map.write */ open(arg0: string, arg1?: MapOpenOptions): Operation; /** map.getStyle — 读取当前共同内联样式快照,包含图源数据与图层编辑;不改变地图 */ getStyle(): Operation; /** map.setStyle — 原子提交HTTP或自定义协议样式地址及内联样式;省略diff或true尝试保留兼容源与图层,false完整替换,null清空;flush确认写入而非资源就绪 */ setStyle(arg0: string | null | import("sqsmap").StyleSpecification, arg1?: import("sqsmap").StyleOptions): Operation; /** map.getAttributions — 读取当前逻辑图源署名的完整纯文本快照,包含来源与图层身份;不改变地图 */ getAttributions(): Operation; /** map.flush — 确认调用前已提交的地图操作,可选等待真实渲染;不代表图源就绪 */ flush(arg0?: import("sqsmap").FlushOptions): Operation; /** map.state — 读取当前地图的加载、图层和任务摘要 */ state(): Operation; /** map.setLocale — 设置地图控件与右键菜单语言;auto 跟随网页语言偏好,返回实际使用的语言 */ setLocale(arg0: 'auto' | 'zh' | 'en'): Operation<'zh' | 'en'>; /** map.getLocale — 读取地图控件与右键菜单实际使用的语言 */ getLocale(): Operation<'zh' | 'en'>; /** map.clear — 预演清空当前地图中的图层与脚本数据源;提交需宿主确认 */ clear(): ChangePlan; /** map.addGeoJSON — 读取 GeoJSON 并作为面或线显示;同时需要 project.read 和 map.write */ addGeoJSON(arg0: string, arg1: GeoJSON): Operation; /** map.setTerrain — 以共同raster-dem开启墨卡托真实地形表面,夸张0..20,null关闭;桌面本地DEM入口保留,状态返回差异见指南 */ setTerrain(arg0: TerrainSpecification | null): Operation; /** map.getTerrain — 读取共同地形的source/exaggeration配置或桌面本地DEM状态;未开启为null,共同加载状态读getSourceInfo */ getTerrain(): Operation; /** map.queryTerrainElevation — 共同地形按已加载DEM双线性查询米制高度并乘显示夸张,返回number或null;桌面本地DEM仍返回含原始高程/基准的TerrainElevation对象 */ queryTerrainElevation(arg0: [number,number]): Operation; /** map.setProjection — 使用 type 对象切换 geographic、mercator 或 globe;桌面 GIS 显示坐标系变更使用专有接口 */ setProjection(arg0: ProjectionSpecification): Operation; /** map.getProjection — 读取当前视图投影 */ getProjection(): Operation; listens(type:string):boolean; on(type: K, handler: (event: MapEventMap[K]) => void): Subscription; once(type: K, handler: (event: MapEventMap[K]) => void): Subscription; sources: { /** map.sources.cluster — 从点源后台建立稳定的分层聚合,统计在筛选后执行 */ cluster(arg0: string, arg1: SourceRef, arg2: ClusterOptions, arg3: SceneOwnerOptions): Operation; /** map.sources.createTransient — 创建场景持有的只读实时点源,原始文件不变 */ createTransient(arg0: TransientSourceOptions, arg1: SceneOwnerOptions): Operation; /** map.sources.add — 将数据集注册为地图数据源,不自动绘制 */ add(arg0: string, arg1: DatasetSourceSpec | GeoJSONSourceSpec | VectorFileSourceSpec | RasterFileSourceSpec | XyzSourceSpec | RasterDemSourceSpec | OnlineRasterDemSourceSpec | PointCloudSourceSpec | ModelSourceSpec | Tiles3dSourceSpec | GaussianSplatSourceSpec, arg2?: SceneOwnerOptions): Operation; /** map.sources.get — 按精确标识查找地图数据源 */ get(arg0: string): Operation; /** map.sources.remove — 预演移除未被显示图层使用的数据源 */ remove(arg0: SourceRef): ChangePlan; /** map.sources.list — 列出当前地图数据源 */ list(arg0?: PageOptions): Operation>; }; layers: { /** map.layers.add — 用已有数据源创建面、线、圆点、影像、高程晕渲/分层设色、点云、模型、3D Tiles 或高斯泼溅显示 */ add(arg0: FillLineLayerSpec | RasterLayerSpec | SymbolLayerSpec | HeatmapLayerSpec | HillshadeLayerSpec | ColorReliefLayerSpec | PointCloudLayerSpec | ModelLayerSpec | Tiles3dLayerSpec | GaussianSplatLayerSpec, arg1?: SceneOwnerOptions): Operation; /** map.layers.get — 按精确标识或名称查找显示图层 */ get(arg0: string): Operation; /** map.layers.removeMany — 统一预演并确认移除多个显示图层;源文件不变 */ removeMany(arg0: MapLayerRef[]): ChangePlan; /** map.layers.remove — 预演移除显示图层 */ remove(arg0: MapLayerRef): ChangePlan; /** map.layers.rename — 更改显示图层名称 */ rename(arg0: MapLayerRef, arg1: string): Operation; /** map.layers.move — 更改显示图层的叠加顺序 */ move(arg0: MapLayerRef, arg1: MapLayerMoveOptions): Operation; /** map.layers.duplicate — 复制显示配置并复用原数据源 */ duplicate(arg0: MapLayerRef, arg1?: MapLayerDuplicateOptions): Operation; /** map.layers.list — 分页列出脚本及工作台既有矢量、影像图层摘要 */ list(arg0?: PageOptions): Operation>; /** map.layers.setVisible — 设置显示图层的可见性 */ setVisible(arg0: MapLayerRef, arg1: boolean): Operation; /** map.layers.setOpacity — 设置整层透明度乘数 */ setOpacity(arg0: MapLayerRef, arg1: number): Operation; /** map.layers.setPaint — 原子更新常量、属性和连续缩放样式 */ setPaint(arg0: MapLayerRef, arg1: FillLinePaintPatch | SymbolPaintPatch | HeatmapPaint | ElevationPaintPatch | PointCloudPaint | Tiles3dPaint): Operation; /** map.layers.setHeight — 按数字字段设置静态线图层的三维显示高度,不修改源数据;高度米=(字段值-base)*exaggeration+offset,平面基准且不贴地形。仅支持 EPSG:3857 地图中的静态实线图层及其普通颜色、线宽、透明度样式;全层字段须为有限数字,先完整校验再应用。null 清除并恢复默认高度 */ setHeight(arg0: MapLayerRef, arg1: LayerHeightOptions | null): Operation; /** map.layers.classify — 按完整源数据生成确定分类颜色与图例 */ classify(arg0: MapLayerRef, arg1: ClassificationOptions): Operation; /** map.layers.setVertexHeight — 按三维线各顶点的米制高程设置显示高度,沿线起伏且不修改源几何;支持 Web 墨卡托静态实线,先完整校验后应用,显示期间源线只读,null 清除高度 */ setVertexHeight(arg0: MapLayerRef, arg1?: VertexHeightOptions | null): Operation; /** map.layers.clearClassification — 清除分类并恢复之前的颜色样式 */ clearClassification(arg0: MapLayerRef): Operation; /** map.layers.legend — 分页读取完整源数据分类图例与业务代码说明 */ legend(arg0: MapLayerRef, arg1?: PageOptions): Operation>; /** map.layers.ready — 等待图层在当前视野加载到位后返回图层状态;不代表整个数据集已加载,超时返回当前状态 */ ready(arg0: MapLayerRef, arg1?: LayerReadyOptions): Operation; /** map.layers.setFilter — 按类型化条件筛选显示,不修改源数据 */ setFilter(arg0: MapLayerRef, arg1: Expression|boolean|null): Operation; }; camera: { /** map.camera.easeTo — 准备二维相机运动,由场景开始后接管;用户定位可打断 */ easeTo(arg0: CameraMotionOptions, arg1: SceneOwnerOptions): Operation; /** map.camera.flyTo — 准备二维相机运动,由场景开始后接管;用户定位可打断 */ flyTo(arg0: CameraMotionOptions, arg1: SceneOwnerOptions): Operation; /** map.camera.read — 按共同地图写法读取权威平面或球面相机,查询使用 await */ read(arg0: string, arg1: unknown[]): Operation; /** map.camera.write — 按共同地图写法提交完整校验的平面或球面相机设置,使用 flush 确认;球面支持动画、范围拟合、roll 和持久留白;留白保持地理姿态并调整投影主点 */ write(arg0: string, arg1: unknown[]): Operation; /** map.camera.fitLayer — 定位到显示图层范围 */ fitLayer(arg0: MapLayerRef, arg1?: CameraFitOptions): Operation; /** map.camera.fitLayers — 定位到多个指定显示图层的合并范围 */ fitLayers(arg0: MapLayerRef[], arg1?: CameraFitOptions): Operation; /** map.camera.fitFeature — 定位到本次任务的单个真实要素 */ fitFeature(arg0: FeatureRef, arg1?: CameraFitOptions): Operation; /** map.camera.state — 读取明确的坐标系和每逻辑像素分辨率 */ state(): Operation; /** map.camera.setView — 设置中心、分辨率或 EPSG:3857 标准 zoom,以及三维俯仰 pitch 与方位 bearing;pitch>0 自动进入三维视图 */ setView(arg0: CameraViewOptions): Operation; /** map.camera.fitBounds — 将 WGS84/Web Mercator 范围转换到当前视图后定位;可直接传 [minX,minY,maxX,maxY](按 WGS84) */ fitBounds(arg0: ViewBounds | [number,number,number,number], arg1?: CameraFitOptions): Operation; /** map.camera.fitAll — 定位到全部可见图层 */ fitAll(arg0?: CameraFitOptions): Operation; /** map.camera.focusWgs84 — 定位经纬度,可在 Web Mercator 视图指定标准 zoom */ focusWgs84(arg0: [number,number], arg1?: {zoom?:number}): Operation; /** map.camera.centerOn — 定位到地名、经纬度、范围或图层/数据:地名按行政级别自动缩放(省7/市11/县12/乡镇15) */ centerOn(arg0: CenterOnTarget, arg1?: CenterOnOptions): Operation; }; lighting: { /** map.lighting.state — 读取地球仪与三维建筑视图的光照设置 */ state(): Operation; /** map.lighting.set — 调整地球仪或三维建筑视图的光照方向、强度、背光亮度与太阳时间 */ set(arg0: SceneLightingOptions): Operation; }; light: { /** map.light.read — 按共同地图写法读取光照常量与历史配置,查询使用 await */ read(arg0: string, arg1: unknown[]): Operation; /** map.light.write — 原子设置共同光照颜色、方向和强度,使用 flush 确认 */ write(arg0: string, arg1: unknown[]): Operation; }; features: { /** map.features.selection — 读取当前主选要素的版本快照 */ selection(): Operation; /** map.features.selectionSet — 读取当前单一数据集的多选快照 */ selectionSet(): Operation; /** map.features.clearSelection — 清除当前要素选择 */ clearSelection(): Operation; /** map.features.select — 以指定版本要素替换当前选择 */ select(arg0: FeatureRef): Operation; /** map.features.selectSet — 以指定版本集合替换当前选择 */ selectSet(arg0: FeatureSetRef): Operation; /** map.features.get — 读取有界的类型化要素详情 */ get(arg0: FeatureRef, arg1?: FeatureReadOptions): Operation; /** map.features.query — 按地图内容区逻辑像素查询可见要素 */ query(arg0: MapFeatureQueryOptions): Operation>; }; contours: { /** map.contours.enable — 管理 Terrain-RGB 二维等高线及加载状态 */ enable(arg0: ContourOptions): Operation; /** map.contours.disable — 管理 Terrain-RGB 二维等高线及加载状态 */ disable(): Operation; /** map.contours.status — 管理 Terrain-RGB 二维等高线及加载状态 */ status(): Operation; /** map.contours.sampleElevation — 从当前 Terrain-RGB 图源查询 WGS84 点高程,透明像元返回缺测 */ sampleElevation(arg0: [number,number]): Operation; /** map.contours.snapshot — 按指定范围读取地形等高线矢量快照,返回带米制 elevation_m 字段的冻结数据引用;不读取屏幕缓存,不改变显示 */ snapshot(arg0?: ContourSnapshotOptions): Operation; /** map.contours.profileLines — 按范围从地形图源读取平行剖面线,每个顶点保留米制高程;返回冻结三维线数据引用,不改变显示 */ profileLines(arg0?: TerrainProfileOptions): Operation; }; basemap: { /** map.basemap.load — 加载样式底图,返回可等待和取消的加载任务 */ load(arg0: BasemapLoadOptions): Operation; /** map.basemap.ready — 等待底图初始视野提交并读取状态 */ ready(arg0: BasemapLoadRef): Operation; /** map.basemap.cancel — 取消尚未提交的底图加载 */ cancel(arg0: BasemapLoadRef): Operation; /** map.basemap.status — 读取当前底图加载状态 */ status(): Operation; }; scenes: { /** map.scenes.create — 准备可由宿主管理的场景,草稿不显示或启动播放 */ create(arg0: {id:string;name:string}): Operation; /** map.scenes.get — 按标识取得场景引用 */ get(arg0: string): Operation; /** map.scenes.list — 分页查看宿主场景及状态 */ list(arg0?: PageOptions): Operation>; /** map.scenes.remove — 预演移除场景及自有资源;外部依赖会阻止移除,源文件不会删除 */ remove(arg0: SceneRef): ChangePlan; /** map.scenes.start — 原子激活场景,脚本退出后由宿主管理 */ start(arg0: SceneRef): Operation; /** map.scenes.pause — 冻结场景时钟,保留显示 */ pause(arg0: SceneRef): Operation; /** map.scenes.resume — 从暂停位置恢复场景时钟 */ resume(arg0: SceneRef): Operation; /** map.scenes.stop — 停止场景,保留最后显示;再次开始从零计时 */ stop(arg0: SceneRef): Operation; /** map.scenes.info — 读取场景资源数、状态与单调播放时钟 */ info(arg0: SceneRef): Operation; }; playbacks: { /** map.playbacks.play — 控制或查看宿主播放;finished 等待当前轮完成,停止或替换会取消 */ play(arg0: PlaybackRef): Operation; /** map.playbacks.pause — 控制或查看宿主播放;finished 等待当前轮完成,停止或替换会取消 */ pause(arg0: PlaybackRef): Operation; /** map.playbacks.stop — 控制或查看宿主播放;finished 等待当前轮完成,停止或替换会取消 */ stop(arg0: PlaybackRef): Operation; /** map.playbacks.seek — 控制或查看宿主播放;finished 等待当前轮完成,停止或替换会取消 */ seek(arg0: PlaybackRef, arg1: number): Operation; /** map.playbacks.info — 控制或查看宿主播放;finished 等待当前轮完成,停止或替换会取消 */ info(arg0: PlaybackRef): Operation; /** map.playbacks.finished — 控制或查看宿主播放;finished 等待当前轮完成,停止或替换会取消 */ finished(arg0: PlaybackRef): Operation; }; images: { /** map.images.pulse — 准备原生脉冲图像,场景运行时由宿主时钟驱动 */ pulse(arg0: string, arg1: PulseImageOptions, arg2: SceneOwnerOptions): Operation; /** map.images.sprite — 后台读取本地静态 PNG/WebP 图集,播放时仅更新帧号 */ sprite(arg0: string, arg1: SpriteImageOptions, arg2: SceneOwnerOptions): Operation; /** map.images.get — 按标识取得已注册图像 */ get(arg0: string): Operation; /** map.images.info — 查看图像类型、逻辑尺寸和帧数 */ info(arg0: ImageRef): Operation; /** map.images.remove — 预演移除无符号依赖的图像 */ remove(arg0: ImageRef): ChangePlan; }; animations: { /** map.animations.route — 准备单条路线快照,按距离或逐顶点时间移动标记;源变化停止 */ route(arg0: RoutePlaybackOptions, arg1: SceneOwnerOptions): Operation; /** map.animations.line — 为同场景线图层准备流动拖尾、虚线、逐步显示、箭头、光晕和本地图案,可组合透明度和宽度变化;源变化停止 */ line(arg0: LinePlaybackOptions, arg1: SceneOwnerOptions): Operation; }; clusters: { /** map.clusters.leaves — 分页查看当前聚合的原始成员,旧层级或版本引用失效 */ leaves(arg0: ClusterRef, arg1?: PageOptions): Operation>; /** map.clusters.expansionZoom — 查询聚合首次拆分的缩放层级 */ expansionZoom(arg0: ClusterRef): Operation; /** map.clusters.expand — 平滑定位并展开当前聚合 */ expand(arg0: ClusterRef, arg1?: {durationMs?:number}): Operation; }; workspace: { /** map.workspace.save — 预演把三维工作台(地形、点云、模型/切片、高斯与视角)保存为 JSON 清单,需宿主确认 */ save(arg0: FileExportOptions): ChangePlan; /** map.workspace.load — 预演从 JSON 清单恢复三维工作台;append 追加、replace 先移除现有三维内容,确认后整批恢复 */ load(arg0: string, arg1?: WorkspaceLoadOptions): ChangePlan; }; }; export interface EditSummary {historyStorage?:'memory'|'checkpoint';geometryPrecisionMeters?:number;allocationMethod?:string;title:string;affectedFeatureCount:number;beforeCount?:number;afterCount?:number;addedFeatureCount?:number;deletedFeatureCount?:number;selectedIssueCount?:number;remainingIssueCount?:number;undoAvailable:boolean;samples:unknown[];truncated:boolean;} export interface Distance {value:number;unit:'mm'|'cm'|'m'|'km';} export interface SnapOptions {candidates:FeatureSetRef;tolerance:Distance;targets?:('vertex'|'segment')[];measurementCrs?:string;} export interface SnapResult {coordinate:Coordinate;matched:boolean;feature?:FeatureRef;partIndex?:number;vertexIndex?:number;distance?:Distance;} export interface TraceOptions {feature:FeatureRef;partIndex:number;start:Coordinate;end:Coordinate;tolerance:Distance;arc:'forward'|'backward'|'shorter';measurementCrs?:string;} export interface OffsetOptions {distance:Distance;azimuthDegrees:number;measurementCrs:string;} export interface TopologySummary {kind:'overlap'|'gap'|'spike'|'kink';issueCount:number;truncated:boolean;} export interface TopologyIssue {id:string;kind:TopologySummary['kind'];message:string;center?:Coordinate;area?:{value:number;unit:string};width?:Distance;featureRefs:FeatureRef[];featureRefsTruncated:boolean;} export interface TopologyCheckOptions {issueLimit?:number;minArea?:{value:number;unit:'m2'|'ha'|'mu'|'km2'};maxWidth?:Distance;maxAngleDegrees?:number;minLength?:Distance;} export type FeatureLike = FeatureRef | FeatureSetRef; export interface MergeFeatureOptions {retain:FeatureRef;attributes:'retain'|'largest-area'|'non-empty-first'|'empty';measurementCrs?:string;} export interface FillHoleOptions {partIndices:number[];} export interface RemoveHoleOptions {partIndex:number;} export interface ReshapeOptions {partIndex:number;path:FeatureRef;tolerance:Distance;replaceArc:'shorter'|'longer';measurementCrs?:string;} export interface BufferAdjustOptions {distance:Distance;join?:'round'|'mitre'|'bevel';shrinkPolicy?:'keep-gap'|'split-by-neighbors';neighbors?:FeatureSetRef;measurementCrs?:string;} export interface TopologyRepairOptions {issueIds?:string[];method?:'nearest-edge'|'smallest-neighbor'|'snap';snapTolerance?:Distance;keepLargest?:boolean;resultName?:string;replaceLayer?:MapLayerRef;} export interface TopologyReportRef {readonly id:string;readonly kind:'topology-report';summary():Promise;issues(options?:PageOptions):Promise>;dispose():void;} export interface Coordinate {value:[number,number];crs:string;} export interface FeaturePart {polygonIndex?:number;ringIndex?:number;partIndex:number;closed:boolean;vertexCount:number;isHole:boolean;} export interface FeatureVertex {partIndex:number;vertexIndex:number;coordinate:Coordinate;closed:boolean;} export interface VertexMoveOptions {partIndex:number;vertexIndex:number;coordinate:Coordinate;} export interface VertexInsertOptions {partIndex:number;afterVertexIndex:number;coordinate:Coordinate;} export interface VertexDeleteOptions {partIndex:number;vertexIndex:number;} export interface TranslateOptions {dx:number;dy:number;crs:string;} export interface EditHistoryState {canUndo:boolean;canRedo:boolean;undoLabel?:string;redoLabel?:string;undoCount:number;redoCount:number;} export type FieldType = 'string'|'integer'|'number'|'boolean'|'date'; export interface AddFieldOptions {name:string;type:FieldType;defaultValue?:FieldValue;} export interface FieldScopeOptions {field:string;scope?:'all'|'filtered';} export interface SetValuesOptions extends FieldScopeOptions {value:FieldValue;} export interface ReplaceValueOptions extends FieldScopeOptions {oldValue:FieldValue;newValue:FieldValue;} export interface FieldCalculatorOptions {targetField:string;expression:Expression;scope?:'all'|'filtered';create?:{type:FieldType;nullable?:boolean};measurementCrs?:string;} export interface FeatureReadOptions { fields?:string[]; geometry?:'none'|'bounds'|'geojson'; } export interface MapFeatureQueryOptions extends PageOptions { point?:[number,number]; box?:[number,number,number,number]; layers?:MapLayerRef[]; where?:Expression|boolean; } export type MapHit = FeatureHit | ClusterHit | SceneHit; export interface FeatureHit {kind?:"feature"; ref:FeatureRef; feature:FeatureRef; dataset:DatasetRef; layer:MapLayerRef; featureId:string|number; featureIndex:number; fields:Record; truncated:boolean; } export type GeoJSON = {type: string; [key: string]: unknown}; export interface PageOptions {limit?: number; cursor?: string;} export interface Page {items: T[]; totalCount: number; totalCountExact: boolean; limit: number; nextCursor?: string; truncated: boolean;} export interface TaskSummary {id:string;name:string;state:'running'|'succeeded'|'failed'|'cancelled';cancellable:boolean;progress?:{stage:string;percent:number;message:string};} export interface TaskApi {get(id:string):Promise;list(options?:PageOptions):Promise>;cancel(id:string):boolean;} export interface DatasetRef {readonly id: string; readonly kind: 'dataset'; readonly name: string; dispose(): void; info(): Operation;} export interface FeatureSetRef {readonly id: string; readonly kind: 'feature-set'; readonly count: number; dispose(): void;} export interface FeatureRef {readonly id: string; readonly kind: 'feature'; dispose(): void;} export interface DatasetInfo {name: string; geometryType: 'point'|'line'|'polygon'|'mixed'; crs: string; bounds: {bbox: [number,number,number,number]; crs: string}|null; featureCount: number; pointCount: number; truncated: boolean;} export interface DataOpenOptions {password?:SecretRef;layer?: string|number; targetCrs?: string; maxFeatures?: number; maxPoints?: number;} export interface FieldInfo {name: string; type: 'string'|'integer'|'number'|'boolean'|'date'|'time'|'datetime'; nullable: boolean; hasCodeList: boolean;} export interface FieldCodeInfo {value: string|number; label: string;} export interface SelectionOptions {where?: readonly unknown[]|boolean; scope?: 'all'|'filtered';} export interface RowQueryOptions extends SelectionOptions, PageOptions {fields?: string[]; search?: string;} export interface FeatureQueryOptions extends SelectionOptions, PageOptions {fields?: string[]; geometry?: 'none'|'bounds'|'geojson';} export interface AttributeRow {feature: FeatureRef; values: Record;} export interface FeatureResult {feature: FeatureRef; id: string|number; properties: Record; geometry?: GeoJSON|null; bounds?: DatasetInfo['bounds'];} export interface FieldSummary {field: string; type: FieldInfo['type']; rowCount: number; missingCount: number; uniqueCount: number; samples: (string|number|boolean|null)[]; truncated: boolean;} export interface ResultOptions { name?:string; scope?:'all'|'filtered'; addToMap?:boolean; } export interface SimplifyOptions extends ResultOptions { tolerance:{value:number;unit:'mm'|'cm'|'m'|'km'}; preserveTopology?:boolean; } export interface IntersectOptions { fields: {left:Record;right:Record}; workingCrs?:string; outputCrs?:string; name?:string; } export interface BoundaryOptions extends ResultOptions { exteriorOnly?:boolean; } export type Expression = readonly unknown[]; export interface MetricSummary {featureCount: number; pointCount?: number; area?: {value: number; unit: 'm2'}; length?: {value: number; unit: 'm'}; measurement?: {crs: string; method: 'planar'};} export interface BufferOptions {distance: {value: number; unit: 'mm'|'cm'|'m'|'km'}; join?: 'round'|'mitre'|'bevel'; cap?: 'round'|'flat'|'square'; dissolve?: boolean; targetCrs?: string; name?: string; scope?: 'all'|'filtered';} export interface DatasetExportOptions {path: string; format?: VectorFormat; password?:SecretRef; scope?: 'all'|'filtered'; targetCrs?: string; overwrite?: 'deny'|'ask';} export interface SourceRef {readonly id: string; readonly kind: 'source'; readonly name: string; dispose(): void;} export type Scene3dLayerType = 'hillshade'|'color-relief'|'pointcloud'|'model'|'3dtiles'|'gaussian-splat'; export interface MapLayerRef {readonly id: string; readonly kind: 'map-layer'; readonly name: string; readonly layerType: 'fill'|'line'|'circle'|'raster'|'symbol'|'heatmap'|Scene3dLayerType; dispose(): void;} export interface SourceInfo {id: string; name: string; type: 'dataset'|'raster-file'|'xyz'|'cluster'|'transient'|'raster-dem'|'pointcloud'|'model'|'3dtiles'|'gaussian-splat';} /** 三维/高程图层额外返回 state 等字段;ready 仅表示当前视野与预算下达到目标。 */ export interface MapLayerInfo {id: string; name: string; type: 'fill'|'line'|'circle'|'mixed'|'raster'|'symbol'|'heatmap'|Scene3dLayerType; source: string; visible: boolean; opacity?: number; order: number; featureCount?: number; filteredFeatureCount?: number; emptyGeometryCount?: number; hasFilter?: boolean; classificationField?:string|null; width?:number; height?:number; overviewCount?:number; buildingOverviews?:boolean;loadedTiles?:number;loadingTiles?:number;error?:string|null; styleWarnings?:string[];scriptManaged:boolean; state?:'loading'|'ready'|'degraded'|'failed'; displayedCount?:number|string; sourceCount?:number|string; cpuBytes?:number; gpuBytes?:number; verticalReference?:string|null; warnings?:string[];} export interface LayerReadyOptions {timeoutMs?:number;} /** 静态实线的数字高程字段,单位为米;仅支持 EPSG:3857 地图,平面基准不贴地形且不改变源数据。显示高度=(字段值-base)*exaggeration+offset。base/offset 默认 0,exaggeration 默认 1、范围 0~1000;完整源的所有字段值必须为有限数字。 */ export interface LayerHeightOptions {field:string; base?:number; exaggeration?:number; offset?:number;} /** 字段高度设置后的完整源摘要;传 null 清除后 mode=default、field/minHeight/maxHeight=null,base/offset=0、exaggeration=1。 */ export interface LayerHeightSummary {mode:'field'|'default'; field:string|null; featureCount:number; minHeight:number|null; maxHeight:number|null; base:number; exaggeration:number; offset:number;} /** 从各顶点的第三个坐标读取米制高程。显示高度=(Z-base)*exaggeration+offset;默认0/1/0。 */ export interface VertexHeightOptions {base?:number;exaggeration?:number;offset?:number;} export interface VertexHeightSummary {mode:'vertex'|'default';featureCount:number;vertexCount:number;minHeight:number|null;maxHeight:number|null;minElevationM:number|null;maxElevationM:number|null;base:number;exaggeration:number;offset:number;unit:'m';} /** 本地 DEM 高程源;path(本地路径或 FileRef)与 data 二选一。unit 缺失且文件未声明时,显示与地形会要求声明。 */ export interface RasterDemSourceSpec {type:'raster-dem'; path?:string|FileRef; data?:RasterRef; band?:number; unit?:'m'|'ft'; verticalReference?:string;} /** 在线 RGB 高程源:url 为 TileJSON 地址,编码取其 encoding(mapbox 或 terrarium,缺省 mapbox),仅用于 map.setTerrain;verticalReference 缺省为“服务未声明”。 */ export interface OnlineRasterDemSourceSpec {type:'raster-dem'; attribution?:string; url:string; token?:SecretRef; verticalReference?:string;} export interface HillshadePaint {'hillshade-illumination-direction'?:number|null; 'hillshade-illumination-altitude'?:number|null;} /** 固定五段地形色带;range 为物理米 [min,max],缺省取数据范围。 */ export interface ColorReliefPaint {'color-relief-range'?:[number,number]|null; 'color-relief-opacity'?:number|null;} export type ElevationPaintPatch = HillshadePaint & ColorReliefPaint; export interface HillshadeLayerSpec {id:string; name?:string; type:'hillshade'; source:SourceRef|string; visible?:boolean; paint?:HillshadePaint;} export interface ColorReliefLayerSpec {id:string; name?:string; type:'color-relief'; source:SourceRef|string; visible?:boolean; paint?:ColorReliefPaint;} export interface DemAnalysisOptions {unit?:'m'|'ft'; verticalReference?:string; addToMap?:boolean;} export interface HillshadeAnalysisOptions extends DemAnalysisOptions {azimuth?:number; altitude?:number;} export interface ContourAnalysisOptions extends DemAnalysisOptions {interval:number;} export interface RasterExportOptions {path:string; overwrite?:'deny'|'ask';} /** 本地 LAS/LAZ/COPC(path)或 HTTP COPC(url);verticalReference 必填且 Z 单位为米;crs 缺省读取文件声明。 */ export interface PointCloudSourceSpec {type:'pointcloud'; path?:string|FileRef; url?:string; crs?:string; verticalReference:string; maxPoints?:number;} /** glTF/GLB 模型;bearing 为顺时针度数,height 为锚点高度(米)。 */ export interface ModelSourceSpec {type:'model'; path:string|FileRef; lngLat:[number,number]; height?:number; verticalReference?:string; bearing?:number; scale?:number;} /** 本地或 HTTP(S) 3D Tiles 入口,path/url 二选一,使用切片自带的地理定位。在线内容按需读取,支持显式层级与 glTF/GLB/b3dm 静态网格。 */ export type Tiles3dSourceSpec = {type:'3dtiles'; path:string|FileRef; url?:never;} | {type:'3dtiles'; url:string; path?:never;}; /** 二进制 PLY(SH0~SH3)。不给 lngLat 为局部浏览;给 lngLat 时 verticalReference 与 registrationNote 必填。 */ export interface GaussianSplatSourceSpec {type:'gaussian-splat'; path:string|FileRef; lngLat?:[number,number]; height?:number; verticalReference?:string; registrationNote?:string; bearing?:number; pitch?:number; roll?:number; scale?:number; upAxis?:'auto'|'z'|'-z'|'y'|'-y'; sourceOrigin?:[number,number,number]; maxSplats?:number;} export interface PointCloudPaint {'point-size'?:number|null; 'point-color'?:'rgb'|'intensity'|'classification'|'elevation'|string|null; 'point-color-range'?:[number,number]|null; 'point-show-withheld'?:boolean|null;} export interface Tiles3dPaint {'tiles-max-screen-space-error'?:number|null;} /** filter 仅支持分类:['in',['get','classification'],['literal',[2,6]]] 或 ['==',['get','classification'],2]。 */ export interface PointCloudLayerSpec {id:string; name?:string; type:'pointcloud'; source:SourceRef|string; visible?:boolean; paint?:PointCloudPaint; filter?:Expression|null;} export interface ModelLayerSpec {id:string; name?:string; type:'model'; source:SourceRef|string; visible?:boolean;} export interface Tiles3dLayerSpec {id:string; name?:string; type:'3dtiles'; source:SourceRef|string; visible?:boolean; paint?:Tiles3dPaint;} export interface GaussianSplatLayerSpec {id:string; name?:string; type:'gaussian-splat'; source:SourceRef|string; visible?:boolean;} export interface PointNeighborOptions {center:[number,number,number]; radius:number; limit?:number;} export interface PointNeighbors {sourcePoints:number; matched:number; truncated:boolean; verticalReference:string; points:{lngLat:[number,number]|null; height:number; distanceM:number; classification:number; classificationLabel:string; intensity:number}[];} /** slope 为坡度比(米/米,0~5,默认 0.15);groundThreshold 米,默认 0.3。 */ export interface PointDemOptions {cellSize:number; estimateGround?:boolean; groundThreshold?:number; slope?:number; addToMap?:boolean;} export interface PointDensityOptions {cellSize:number; addToMap?:boolean;} export interface GroundClassificationOptions {cellSize:number; groundThreshold?:number; slope?:number;} export interface ClassificationRef {readonly id:string; readonly kind:'classification'; readonly summary:Record; dispose():void;} export interface FileExportOptions {path:string; overwrite?:'deny'|'ask';} export interface SplatPreviewOptions extends FileExportOptions {resolutionScale?:1|2|3|4; transparent?:boolean;} export interface WorkspaceLoadOptions {mode?:'append'|'replace';} /** layers 为恢复后可用 map.layers.get 取得的图层标识;地形恢复由工作台异步完成。 */ export interface WorkspaceRestoreResult {restored:{terrain:boolean; pointClouds:number; model:boolean; tileset:boolean; gaussian:boolean; camera:boolean}; layers:string[]; warnings:string[];} export interface DatasetSourceSpec {type: 'dataset'; lineMetrics?:boolean; data: DatasetRef | RasterRef;} export interface GeoJSONSourceSpec {type: 'geojson'; lineMetrics?:boolean; data: GeoJSON;} export interface VectorFileSourceSpec {type: 'vector-file'; lineMetrics?:boolean; path: string|FileRef; layer?: string|number; targetCrs?: string;} export interface MapOpenOptions {password?:SecretRef;name?: string; layer?: string|number; targetCrs?: string;} export interface MapStateSnapshot {viewCrs?:'EPSG:4326'|'EPSG:3857';loading: boolean; vectorLayerCount: number; rasterLayerCount: number; activeOperations: {id:string; name:string; state:'running'; cancellable:boolean; progress?:{stage:string;percent:number;message:string}}[]; activeOperationsTruncated: boolean; lastError?: string;} export interface MapEventMap {load: {layer:MapLayerRef}; error: {error:{code:string;message:string}}; viewchange: {camera:CameraState}; layerschange: {kind:'add'|'remove'|'move'|'update';layer?:MapLayerRef}; taskprogress: {operationId:string;progress:{stage:string;percent:number;message:string}};} export interface FillLinePaintPatch { 'fill-color'?: string|Expression|null; 'fill-opacity'?: number|Expression|null; 'fill-outline-color'?: string|Expression|null; 'line-color'?: string|Expression|null; 'line-width'?: number|Expression|null; 'line-opacity'?: number|Expression|null; 'line-gradient'?:Expression|null; 'line-dasharray'?: [number,number]|null; 'circle-color'?:string|Expression|null; 'circle-radius'?:number|Expression|null; 'circle-opacity'?:number|Expression|null; 'circle-stroke-color'?:string|Expression|null; 'circle-stroke-width'?:number|Expression|null; } export interface ClassificationOptions {field:string;maxClasses?:number;palette?:string[];missingColor?:string;} export interface ClassificationSummary {classCount:number;missingCount:number;} export interface LegendEntry {value:FieldValue;label:string;color:string;count:number;} export interface FillLineLayerSpec {id: string; name?: string; type: 'fill'|'line'|'circle'; source: SourceRef|DatasetRef; paint?: FillLinePaintPatch;} export interface MapLayerMoveOptions {before?: MapLayerRef; index?: number;} export interface MapLayerDuplicateOptions {name?: string;} export interface Wgs84Bounds {bbox: [number,number,number,number]; crs: 'EPSG:4326';} export interface ViewBounds {bbox:[number,number,number,number];crs:'EPSG:4326'|'EPSG:3857';} export interface CameraState {center:{value:[number,number];crs:'EPSG:4326'|'EPSG:3857'};resolution:number;zoom?:number;bounds:ViewBounds;mode:'2d'|'3d'|'globe';pitch:number;bearing:number;surfaceCenter?:{value:[number,number];crs:'EPSG:4326'};} /** center 缺省保持当前中心;pitch 0~60 度(>0 自动进入三维视图,0 且无三维内容时回到平面),bearing 顺时针度数,二维、三维与球面均可用。 */ export type CameraViewOptions = {center?:{value:[number,number];crs:string}|[number,number];pitch?:number;bearing?:number} & ({resolution?:number;zoom?:never}|{zoom:number;resolution?:never}); /** source 为 raster-dem 数据源标识或引用;共同exaggeration 0~20,默认1;桌面本地DEM保持0.1~20。 */ export interface TerrainSpecification {source:string|SourceRef; exaggeration?:number;} export interface TerrainState {source:string|null; online:boolean; exaggeration:number; visible:boolean; state:'loading'|'ready'|'degraded'|'failed'; readyTiles:number; missingTiles:number; failedTiles:number; detailLimited:boolean; verticalReference:string|null; error:string|null;} export interface TerrainElevation {elevation:number|null; unit:'m'; verticalReference:string; missingReason:'outsideCoverage'|'noData'|null; lngLat:[number,number];} export interface ProjectionSpecification {type:'geographic'|'mercator'|'globe';} export interface GeoPosition3d {lngLat:[number,number]; height:number; verticalReference:string;} /** 三维命中:terrain 为地表,point 为已显示点(非最近全源点),model/tile 为模型节点,splat 为可视近似。 */ export type SceneHit = {kind:'terrain'; layer:null; lngLat:[number,number]; elevation:number|null; approximateElevation:number; height:number; verticalReference:string; source:string} | {kind:'point'; layer:MapLayerRef; lngLat:[number,number]; height:number; verticalReference:string; classification:number|null; classificationLabel:string|null; intensity:number|null; fields:Record} | {kind:'model'|'tile'; layer:MapLayerRef; lngLat:[number,number]|null; height:number|null; verticalReference:string|null; node:string|null; fields:Record; identityStable:boolean} | {kind:'splat'; layer:MapLayerRef; lngLat:[number,number]|null; height:number|null; approximate:true}; export interface Distance3d {horizontalM:number; verticalM:number; distanceM:number; verticalReference:string; method:string;} export interface CameraFitOptions {padding?:number;maxZoom?:number;} export interface SceneLightSettings {mode:'default'|'fixed'|'sun';azimuth:number;elevation:number;strength:number;ambient:number;sunTime:'now'|number;utcOffsetMinutes:number;mapLight:import('sqsmap').ResolvedLightSpecification|null;} export interface SceneLightingState {globe:SceneLightSettings;building:SceneLightSettings;active:'globe'|'building'|null;} export type SceneLightingOptions = {view?:'globe'|'building';reset?:boolean} & Partial>; export const expr: { lineProgress():Expression; heatmapDensity():Expression; intersects(target:DatasetRef|FeatureRef|FeatureSetRef|MapLayerRef|GeoJSON):Expression; within(target:DatasetRef|FeatureRef|FeatureSetRef|MapLayerRef|GeoJSON):Expression; containsGeometry(target:DatasetRef|FeatureRef|FeatureSetRef|MapLayerRef|GeoJSON):Expression; distanceWithin(target:DatasetRef|FeatureRef|FeatureSetRef|MapLayerRef|GeoJSON,distance:{value:number;unit:'mm'|'cm'|'m'|'km'}):Expression; geometryArea(unit?:'m2'|'ha'|'mu'|'km2'):Expression; geometryLength(unit?:'mm'|'cm'|'m'|'km'):Expression; geometryPerimeter(unit?:'mm'|'cm'|'m'|'km'):Expression; zoom():Expression; case(...values:unknown[]):Expression; match(input:unknown,...values:unknown[]):Expression; coalesce(...values:unknown[]):Expression; step(input:unknown,base:unknown,...stops:unknown[]):Expression; interpolate(curve:Expression,input:unknown,...stops:unknown[]):Expression; linear():Expression; exponential(base?:number):Expression; add(...values:unknown[]):Expression; sub(a:unknown,b:unknown):Expression; mul(...values:unknown[]):Expression; div(a:unknown,b:unknown):Expression; min(...values:unknown[]):Expression; max(...values:unknown[]):Expression; clamp(value:unknown,min:number,max:number):Expression; concat(...values:unknown[]):Expression; toNumber(value:unknown):Expression; toString(value:unknown):Expression; toBoolean(value:unknown):Expression; toColor(value:unknown):Expression; literal(value: unknown): Expression; get(field: string): Expression; has(field: string): Expression; id(): Expression; geometryType(): Expression; eq(a: unknown,b: unknown): Expression; ne(a: unknown,b: unknown): Expression; gt(a: unknown,b: unknown): Expression; gte(a: unknown,b: unknown): Expression; lt(a: unknown,b: unknown): Expression; lte(a: unknown,b: unknown): Expression; all(...values: unknown[]): Expression; any(...values: unknown[]): Expression; not(value: unknown): Expression; in(value: unknown,items: unknown[]): Expression; contains(a: unknown,b: unknown): Expression; startsWith(a: unknown,b: unknown): Expression; endsWith(a: unknown,b: unknown): Expression; isNull(value: unknown): Expression; isBlank(value: unknown): Expression; }; export type FieldValue = string | number | boolean | null; export interface QueryCoverage {scopeCount?:number;scannedCount:number;complete:boolean;sourceTruncated:boolean;} export interface GroupMetricOptions {field:string;scope?:'all'|'filtered';groupLimit?:number;measurementCrs?:string;} export interface FieldQualityOptions {field:string;scope?:'all'|'filtered';scanLimit?:number;sampleLimit?:number;groupLimit?:number;} export interface MetricGroup {value:FieldValue;metrics:MetricSummary;} export interface GroupMetricSummary {field:string;coverage:QueryCoverage;groupCount:number;groups:MetricGroup[];truncated:boolean;} export interface MissingValueSummary {field:string;coverage:QueryCoverage;missingCount:number;samples:FeatureRef[];truncated:boolean;} export interface DuplicateValueGroup {value:FieldValue;count:number;samples:FeatureRef[];truncated:boolean;} export interface DuplicateValueSummary {field:string;coverage:QueryCoverage;duplicateValueCount:number;duplicateRecordCount:number;groups:DuplicateValueGroup[];truncated:boolean;} export interface FieldQualitySummary {field:string;coverage:QueryCoverage;missingCount:number;uniqueCount:number;duplicateValueCount:number;duplicateRecordCount:number;samples:AttributeRow[];truncated:boolean;} export interface DataLayerInfo {index:number;name:string;kind:"vector"|"raster";geometryType?:string;crs?:string;featureCount?:number;writable:boolean;} export interface SecretRef {readonly id:string;readonly kind:"secret";dispose():void;} export interface RasterRef {readonly id:string;readonly kind:"raster";readonly name:string;info():Operation;dispose():void;} export interface RasterInfo {name:string;kind:"raster";width:number;height:number;bands:number;crs?:string;bounds:{bbox:[number,number,number,number];crs:"EPSG:4326"}|null;overviewCount:number;bandInfo:RasterBandInfo[];geoTransform:[number,number,number,number,number,number]|null;nativeBounds:{bbox:[number,number,number,number];crs:string}|null;} export interface ElevationOptions {band?:number;unit?:'m'|'ft';verticalReference?:string;method?:'nearest'|'bilinear';} export interface ElevationProfileOptions extends ElevationOptions {spacingM:number;} export interface ElevationInfo {source:string;band:number;width:number;height:number;dataType:string;unit:string;verticalReference:string|null;horizontalCrs:string;scale:number;offset:number;pixelIsPoint:boolean;} export interface ElevationSampleResult {source:string;band:number;unit:string;verticalReference:string|null;method:'nearest'|'bilinear';value:number|null;metres:number|null;missingReason:'outsideCoverage'|'noData'|null;resolution:[number,number];horizontalCrs:string;} export interface ElevationProfileResult {source:string;band:number;unit:string;verticalReference:string|null;method:'nearest'|'bilinear';sampleCount:number;missingCount:number;min:number|null;max:number|null;points:{distanceM:number;lngLat:[number,number];value:number|null;metres:number|null;missingReason:'outsideCoverage'|'noData'|null}[];truncated:boolean;} export type VectorFormat = 'geojson'|'gpkg'|'shapefile'|'kml'|'sjs'; export interface ExportValidationOptions {format:VectorFormat;issueLimit?:number;} export interface ExportValidationSummary {valid:boolean;issueCount:number;issues:{field?:string;message:string}[];truncated:boolean;} export interface RasterFileSourceSpec {type:'raster-file';path:string|FileRef;} export interface RasterLayerSpec {id:string;name?:string;type:'raster';source:SourceRef|RasterRef;visible?:boolean;paint?:{'raster-opacity'?:number};} export interface OverviewResult {overviewCount:number;built:boolean;} export interface ContourOptions { url: string; token?: SecretRef } export interface ContourStatus { enabled: boolean; state: "disabled" | "loading" | "ready" | "failed"; loadedTiles: number; loadingTiles: number; error?: string | null } /** 按范围新读取地形数据,不依赖屏幕缓存;省略 bounds 使用当前视野,zoom 默认当前级别向下取整,intervalM 默认实际瓦片级别对应的等高距。 */ export interface ContourSnapshotOptions {bounds?:[number,number,number,number];zoom?:number;intervalM?:number;maxPoints?:number;targetCrs?:'EPSG:3857'|'EPSG:4326';} /** WGS84范围;间距为以范围中心纬度估算的地面米数。东西向剖面沿南北方向排列。 */ export interface TerrainProfileOptions {bounds?:[number,number,number,number];zoom?:number;rowSpacingM?:number;pointSpacingM?:number;maxPoints?:number;} /** 冻结XYZ线数据;XY为EPSG:3857,第三坐标为米制高程。几何仅留在宿主。 */ export interface TerrainProfileSnapshot {data:DatasetRef;source:string;bounds:[number,number,number,number];zoom:number;rowSpacingM:number;pointSpacingM:number;crs:'EPSG:3857';unit:'m';verticalReference:string;featureCount:number;pointCount:number;tileCount:number;noDataPointCount:number;minElevationM:number|null;maxElevationM:number|null;warnings:string[];truncated:false;} /** 冻结矢量快照;data 包含米制 elevation_m 字段。featureCount 是 MultiLineString 高程分组数,pointCount 包含共享端点,noDataPixelCount 包括边界插值邻近像元;无等高线时最小/最大高程为 null。几何仅存于宿主数据引用中。 */ export interface ContourSnapshot {data:DatasetRef;source:string;bounds:[number,number,number,number];zoom:number;intervalM:number;crs:'EPSG:3857'|'EPSG:4326';unit:'m';verticalReference:string;featureCount:number;pointCount:number;tileCount:number;minElevationM:number|null;maxElevationM:number|null;noDataPixelCount:number;warnings:string[];truncated:false;} export interface OnlineElevationSample {source:string;valueM:number|null;missingReason:'noData'|null;resolutionM:number;zoom:number;verticalReference:string;lngLat:[number,number];} export interface XyzSourceSpec { type: "xyz"; url: string; token?: SecretRef; tileSize?: 256 | 512; scheme?: "xyz" | "tms"; maxZoom?: number; attribution?: string } export interface BasemapStatus {state:'idle'|'authorizing'|'fetching_style'|'compiling'|'fetching_resources'|'preparing_gpu'|'ready'|'degraded'|'cancelled'|'failed';generation:string;visibleTiles:number;readyTiles:number;pendingGlyphRanges:number;warnings:{code:string;message:string}[];} export interface BasemapLoadOptions {url:string;camera?:'preserve'|'style';initialView?:{center:[number,number];zoom:number};compatibility?:'strict';} export interface BasemapLoadRef {readonly id:string;readonly kind:'basemap-load';ready():Promise;cancel():Promise;dispose():void;} /** completeness:'loaded' 按当前已加载内容导出(允许缺块);'targetView' 固定视角等待目标细节,超时 timeoutMs(默认 30000,上限 120000),未允许不完整时缺块即失败。 */ export interface MapExportOptions { path: string; format?: "png" | "pdf"; title?: string; legend?: boolean; scaleBar?: boolean; northArrow?: boolean; overwrite?: "deny" | "ask"; allowIncomplete?: boolean; resolutionScale?: 1 | 2 | 3 | 4; completeness?: "loaded" | "targetView"; timeoutMs?: number } export interface SceneOwnerOptions {owner: SceneRef;} export interface SceneRef {readonly id:string;readonly kind:'scene';readonly name:string;dispose():void;start():Operation;pause():Operation;resume():Operation;stop():Operation;info():Operation;} export interface SceneInfo {id:string;name:string;state:'draft'|'running'|'paused'|'stopped'|'error';elapsedMs:number;resourceCount:number;activePlaybackCount:number;activeFeedCount:number;warnings:unknown[];truncated:boolean;} export type CameraMotionOptions = CameraViewOptions & {durationMs?:number;easing?:"linear"|"ease-in-out"}; export interface PlaybackInfo {state:"ready"|"playing"|"paused"|"completed"|"stopped"|"failed";positionMs:number;durationMs:number;loop:boolean;error?:{code:string;message:string};} export interface PlaybackRef {readonly id:string;dispose():void;readonly kind:"playback";play():Operation;pause():Operation;seek(positionMs:number):Operation;stop():Operation;info():Operation;finished():Operation;} export interface ImageRef {readonly id:string;readonly kind:"image";dispose():void;info():Operation;} export interface ImageInfo {id:string;kind:"pulse"|"sprite";width:number;height:number;frameCount:number;owner:string;} export interface PulseImageOptions {color:string;radiusPx?:number;outerRadiusPx?:number;periodMs?:number;} export interface SpriteImageOptions {path:string|FileRef;frameWidth:number;frameHeight:number;frameCount:number;fps?:number;pixelRatio?:number;} export interface SymbolLayerSpec {id:string;name?:string;type:"symbol";source:SourceRef;layout:{"icon-image"?:ImageRef;"icon-size"?:number;"icon-anchor"?:"center"|"top"|"bottom"|"left"|"right";"icon-rotate"?:number;"text-field"?:number|string|["get",string];"text-size"?:number;};paint?:{"icon-opacity"?:number;"text-color"?:string;"text-opacity"?:number;};} export interface SymbolPaintPatch {"icon-opacity"?:number|null;"text-color"?:string|null;"text-opacity"?:number|null;} export type RouteTiming = {mode:"duration";durationMs:number}|{mode:"timestamps";offsetsMs:readonly number[]}; export interface RoutePlaybackOptions {route:FeatureRef; timing:RouteTiming; loop?:boolean; marker:{imageId:string;size?:number;rotateWithRoute?:boolean};} /** 沿线比例或逻辑像素;每个动画周期移动一个图案间隔。 */ export type LineEffectUnit = "progress"|"pixels"; export type LineEffect = | {id?:string;type:"flow";unit?:LineEffectUnit;spacing?:number;trailLength?:number;fade?:"linear"|"none";phase?:number} | {id?:string;type:"dash";unit?:LineEffectUnit;on:number;gap:number} | {id?:string;type:"reveal";start?:number;end?:number} | {id?:string;type:"arrows";unit?:LineEffectUnit;spacing?:number;length?:number} | {id?:string;type:"glow";radius?:number;intensity?:number} | {id?:string;type:"pattern";path:string|FileRef;unit?:LineEffectUnit;spacing?:number}; /** 每条轨道 2~32 个关键帧,offset 从 0 到 1 严格递增并包含首尾。 */ export interface LineKeyframe {offset:number;value:number;} /** value 仅支持 #RRGGBB 或 #RRGGBBAA,按 RGBA 乘法调制底色;白色保持原色。 */ export interface LineColorKeyframe {offset:number;value:string;} /** 单程 durationMs 为 1~86400000 毫秒;alternate 的完整往返周期为两倍。 */ export interface LineTiming {durationMs:number;loop?:boolean;direction?:"forward"|"reverse"|"alternate";easing?:"linear"|"ease-in-out";delayMs?:number;fill?:"forwards"|"none";} /** 同层最多一个活动控制器;六类效果各最多一次。数据改变会停止播放。 */ export interface LinePlaybackOptions {layer:MapLayerRef;timing:LineTiming;effects:readonly LineEffect[];cap?:"butt"|"round";stagger?:boolean;phaseField?:string;speedField?:string;tracks?:{opacity?:readonly LineKeyframe[];widthScale?:readonly LineKeyframe[];color?:readonly LineColorKeyframe[]};} export interface HeatmapPaint {"heatmap-radius"?:number|Expression|null;"heatmap-weight"?:number|Expression|null;"heatmap-intensity"?:number|Expression|null;"heatmap-opacity"?:number|Expression|null;"heatmap-color"?:Expression|null;} export interface HeatmapLayerSpec {id:string;name?:string;type:"heatmap";source:SourceRef;paint?:HeatmapPaint;} export interface ClusterOptions {radiusPx?:number;maxZoom?:number;minPoints?:number;where?:Expression|boolean;aggregates?:Record;} export interface ClusterRef {readonly id:string;readonly kind:"cluster";dispose():void;} export interface TransientSourceOptions {id:string;geometryType:"point";crs:"EPSG:4326";fields:Record;} export interface LiveConnectOptions {source:SourceRef;protocol:"gis-live-v1";transport:{type:"http-poll";url:string;intervalMs?:number}|{type:"websocket";url:string};credential?:SecretRef;} export interface LiveFeedRef {readonly id:string;readonly kind:"live-feed";info():Operation;dispose():void;} export interface LiveFeedInfo {state:"ready"|"connecting"|"live"|"paused"|"reconnecting"|"stopped"|"failed";lastReceivedAt:string|null;lastVerifiedAt:string|null;lastAppliedAt:string|null;sourceRevision:string;featureCount:number;pendingBytes:number;coalescedSnapshots:number;stale:boolean;lastError:{code:string;message:string;retryable:boolean}|null;} export interface ClusterHit {kind:"cluster";ref:ClusterRef;count:number;coordinate:{value:readonly [number,number];crs:"EPSG:3857"};layer:MapLayerRef;} export interface FeatureSummary {feature:FeatureRef;id:string|number;properties:Record;truncated:boolean;} export type PlaceLevel = 'province'|'city'|'county'|'town'; /** 选项中的级别也可写中文:省/市/县/乡镇(及省级、市级、县级、区县、乡、镇、街道)。 */ export type PlaceLevelInput = PlaceLevel|'省'|'省级'|'市'|'市级'|'地级'|'县'|'县级'|'区县'|'乡镇'|'乡'|'镇'|'街道'|'乡级'; /** 地名:code 为 6 位省/市/县或 9 位乡镇代码;center 驻地优先,centerIsSeat=false 时为区域内代表点;bbox 为 [minX,minY,maxX,maxY]。 */ export interface Place {code:string;name:string;fullName:string;level:PlaceLevel;center:[number,number];centerIsSeat:boolean;bbox:[number,number,number,number];parentCode:string|null;score?:number;exact?:boolean;} /** Place 对象、区划代码(字符串或数字)或唯一的地名;地名不唯一时以 AMBIGUOUS_NAME 失败并列出候选。 */ export type PlaceInput = Place | string | number; export interface PlaceSearchOptions {limit?:number;level?:PlaceLevelInput;within?:PlaceInput;} export interface PlaceHierarchy {province:Place|null;city:Place|null;county:Place|null;town:Place|null;} export interface NearbyPlace extends Place {distanceM:number;} export interface PlaceNearestOptions {level?:PlaceLevelInput;limit?:number;} export interface PlaceBoundaryOptions {children?:boolean;} /** 选择文件:accept 为扩展名列表(如 ["glb","tif"],可带点);multiple 允许多选;title 为对话框标题。 */ export interface FilePickOptions {accept?:string[];multiple?:boolean;title?:string;} /** 地名(Place/代码/唯一地名)、[lng,lat]、[minX,minY,maxX,maxY](WGS84)或 MapLayerRef;数据集请先上图再传图层引用。 */ export type CenterOnTarget = PlaceInput | [number,number] | [number,number,number,number] | MapLayerRef; /** zoom 为地图显示级别;地名默认按行政级别缩放,经纬度默认保持当前级别;padding 为像素留白。 */ export interface CenterOnOptions {zoom?:number;padding?:number;} export interface TableRef {readonly id:string; readonly kind:'table'; readonly name:string; info():Operation; dispose():void;} export interface TableFieldInfo extends FieldInfo {unit?:string;} export interface TableRow {values:Record;} export interface TableRowQueryOptions extends PageOptions {fields?:string[];} export interface TableInfo {kind:'table';name:string;rowCount:number;fieldCount:number;truncated:false;rasterValues?:RasterValueInfo;measurement?:{crs:string;method:'planar';unit:'m'};} export interface DissolveOptions {groupBy:string[];workingCrs?:string;outputCrs?:string;name?:string;} export type AggregateMeasure = {op:'count'} | {op:'sum'|'min'|'max'|'mean';field:string} | {op:'sumArea';unit:'m2'|'ha'|'mu'|'km2'} | {op:'sumLength';unit:'mm'|'cm'|'m'|'km'}; export interface AggregateOptions {groupBy:string[];measures:Record;measurementCrs?:string;name?:string;} export interface SpatialJoinOptions {relation:'intersects'|'within'|'contains';join:'left'|'inner';match:'all'|'first';fields:{left:Record;right:Record};workingCrs?:string;outputCrs?:string;name?:string;} export interface NearestOptions {k:number;maxDistance:Distance;measurementCrs:string;ties:'all'|'first';name?:string;} export interface ScriptErrorDetails {path?:string;expected?:string;actualType?:string;candidates?:string[];hint?:string;} export interface ScriptApiError {code:string;message:string;retryable:boolean;details?:ScriptErrorDetails;} export interface RasterBandInfo {index:number;dataType:string;noData:number|"nan"|null;scale:number;offset:number;unit:string|null;} export interface ReprojectOptions {outputCrs:string;name?:string;} export interface RasterGrid {bounds:[number,number,number,number];width:number;height:number;} export interface RasterWarpOptions {outputCrs:string;grid:RasterGrid;resampling:"nearest"|"bilinear";dataKind:"continuous"|"categorical";cutline?:DatasetRef|FeatureSetRef;name?:string;} export interface PixelWindow {xOffset:number;yOffset:number;width:number;height:number;} export interface ReadPixelsOptions {band:number;window:PixelWindow;values:"raw"|"physical";} export interface PixelBlock {band:number;window:PixelWindow;width:number;height:number;values:(number|null)[];mode:"raw"|"physical";} export interface RasterValueInfo {band:number;mode:'raw'|'physical';sourceUnit:string|null;unit:string|null;scale:number;offset:number;} export interface ZonalStatsOptions {zoneIdField:string;band:number;statistics:('min'|'max'|'mean'|'sum'|'count')[];values:'raw'|'physical';nodata:'exclude';pixelInclusion:'center';name?:string;} /** Local SQLite only. Anonymous ? placeholders; sources are immutable snapshots. */ export type SqlOptions = { text: string; sources: Record; bindings: Array; dialect: 'sqlite'; result: {type:'table'} | {type:'features';geometryColumn:string;crs:string}; name?: string }; } // 新门面的实际实现范围;完整设计中的其余地图方法尚未发布。 declare module "sqsmap" { /** Session-local event payload; type/target are assigned by each receiving node. */ export interface EventedEvent {readonly type:string;readonly target:Evented|Map;[key:string]:unknown} export type EventedParentData=Record|(()=>Record); /** Local bounded events; no host RPC or DOM is required. */ export class Evented { constructor(); on(type:string,listener:(event:EventedEvent)=>void|Promise):Subscription; off(type:string,listener:(event:EventedEvent)=>void|Promise):this; once(type:string,listener:(event:EventedEvent)=>void|Promise):this; once(type:string):Promise; listens(type:string):boolean; fire(type:string,data?:Record):this; fire(event:{type:string;[key:string]:unknown}):this; setEventedParent(parent:Evented|Map|null|undefined,data?:EventedParentData):this; /** SqsMap extension: cancel waits, release listeners and detach parent/children. */ destroy():void; } export interface ProtocolAbortSignal { readonly aborted: boolean; throwIfAborted(): void; addEventListener(type: 'abort', listener: () => void, options?: {once?: boolean}): void; removeEventListener(type: 'abort', listener: () => void): void; } export type ProtocolHandler = (request: Readonly<{url: string; resourceType: string; maxBytes: number; method: 'GET'}>, controller: Readonly<{signal: ProtocolAbortSignal}>) => {data: ArrayBuffer | Uint8Array} | Promise<{data: ArrayBuffer | Uint8Array}>; /** Web script host connected; await registration before loading resources. Desktop/mobile app hosts are pending. */ export function addProtocol(scheme: string, handler: ProtocolHandler): Promise; export function removeProtocol(scheme: string): Promise; /** Scene ownership is independent of a script session and of manual receiver pause. */ export interface SceneIdentity {readonly id:string;readonly sceneInstanceId:string} export type SceneStatus='draft'|'running'|'paused'|'stopped'; export interface SceneReceiver {readonly source:SourceIdentity;readonly receiverInstanceId:string} export interface SceneClockSnapshot extends SceneIdentity {readonly state:SceneStatus;readonly elapsedMs:number} export interface SceneSnapshot extends SceneIdentity {readonly name:string;readonly state:SceneStatus;readonly revision:string;readonly resourceCount:number;readonly receivers:readonly SceneReceiver[];readonly sources:readonly SourceIdentity[];readonly playbacks:readonly PlaybackIdentity[]} export interface Scene extends SceneIdentity {getState():Promise;getClock():Promise;start():Promise;pause():Promise;resume():Promise;stop():Promise;attachSource(source:SourceIdentity):Promise;detachSource(source:SourceIdentity):Promise} export interface ScenesAPI {create(options:{id:string;name?:string}):Promise;get(id:string):Promise;list():Promise;remove(scene:SceneIdentity):Promise} export interface LightTransition {duration?:number;delay?:number} export interface LightSpecification {anchor?:'map'|'viewport';position?:readonly [number,number,number];color?:string;intensity?:number;'position-transition'?:LightTransition;'color-transition'?:LightTransition;'intensity-transition'?:LightTransition} export interface ResolvedLightSpecification {readonly anchor:'map'|'viewport';readonly position:readonly [number,number,number];readonly color:string;readonly intensity:number} export interface LightSetterOptions {validate?:boolean} export interface LightingChangeEvent {readonly type:'sqs.lightingchange';readonly method:'setLight'|'sqs.lighting.set';readonly lightingState:import('gis').SceneLightingState} export interface SceneChangeEvent {readonly type:'sqs.scenechange';readonly reason:string;readonly scene:SceneSnapshot} export interface PlaybackIdentity {readonly id:string;readonly playbackInstanceId:string} export type PlaybackState='ready'|'playing'|'paused'|'stopped'|'completed'|'failed'; export interface PlaybackSnapshotBase extends PlaybackIdentity { readonly owner:SceneIdentity;readonly ownerState:SceneStatus;readonly source:SourceIdentity;readonly sourceRevision:string; readonly state:PlaybackState;readonly epoch:string;readonly elapsedMs:number;readonly positionMs:number; readonly durationMs:number;readonly loop:boolean;readonly delayRemainingMs:number; readonly error:{readonly code:string;readonly message:string}|null; } export interface RoutePlaybackSnapshot extends PlaybackSnapshotBase { readonly kind:'route';readonly target:SourceIdentity;readonly targetRevision:string; readonly position:readonly [number,number];readonly headingRadians:number; } export interface LineFrameSnapshot {readonly phase:number;readonly reveal:number;readonly opacity:number;readonly widthScale:number;readonly color:readonly [number,number,number,number]} export interface LinePlaybackSnapshot extends PlaybackSnapshotBase { readonly kind:'line';readonly layer:LayerIdentity;readonly sourceStateRevision:string;readonly frame:LineFrameSnapshot; /** Retained effect; layer and scene visibility still apply. */ readonly visibleEffect:boolean; readonly pattern?:{readonly id:string;readonly imageInstanceId:string;readonly revision:string}; } export type PlaybackSnapshot=RoutePlaybackSnapshot|LinePlaybackSnapshot; export interface RoutePlaybackOptions {id:string;source:SourceIdentity;target:SourceIdentity;duration?:number;offsets?:readonly number[];loop?:boolean;delay?:number} export type LineUnit='progress'|'pixels'; export type LineEffect = | {type:'flow';id?:string;unit?:LineUnit;spacing?:number;trailLength?:number;fade?:'linear'|'none';phase?:number} | {type:'dash';id?:string;unit?:LineUnit;on:number;gap:number} | {type:'reveal';id?:string;start?:number;end?:number} | {type:'arrows';id?:string;unit?:LineUnit;spacing?:number;length?:number} | {type:'glow';id?:string;radius?:number;intensity?:number} | {type:'pattern';id?:string;image:string;unit?:LineUnit;spacing?:number}; export interface LineKeyframe {offset:number;value:T} export interface LineTracks {color?:readonly LineKeyframe[];opacity?:readonly LineKeyframe[];widthScale?:readonly LineKeyframe[]} export interface LineTiming {duration:number;delay?:number;loop?:boolean;direction?:'forward'|'reverse'|'alternate';easing?:'linear'|'ease-in-out';fill?:'forwards'|'none'} export interface LinePlaybackOptions {id:string;layer:string|LayerIdentity;timing:LineTiming;effects:readonly LineEffect[];tracks?:LineTracks;stagger?:boolean;cap?:'butt'|'round';phaseField?:string;speedField?:string} export interface Playback extends PlaybackIdentity { getState():Promise;play():Promise;pause():Promise;stop():Promise;seek(timeMs:number):Promise; /** Resolves after the endpoint was accepted; loop waits require explicit cancellation. */ finished():Promise; } export interface PlaybacksAPI {get(id:string):Promise;list():Promise;remove(playback:PlaybackIdentity):Promise} export interface AnimationsAPI { route(options:RoutePlaybackOptions,owner:{owner:SceneIdentity}):Promise>; line(options:LinePlaybackOptions,owner:{owner:SceneIdentity}):Promise>; } export interface PlaybackChangeEvent {readonly type:'sqs.playbackchange';readonly reason:string;readonly playback:PlaybackSnapshot} export interface AttributionItem {readonly scope:'style'|'common'|'host';readonly kind:'style'|'vector'|'geojson'|'raster'|'terrain-rgb'|'raster-dem';readonly sourceId:string|null;readonly sourceInstanceId:string|null;readonly layerIds:readonly string[];readonly text:string;} export interface AttributionSnapshot {readonly text:string;readonly items:readonly AttributionItem[];} export interface MapImageData {width:number;height:number;data:Uint8Array|Uint8ClampedArray|readonly number[]} export interface MapImageLoadResult {readonly data:{readonly width:number;readonly height:number;readonly data:Uint8Array}} export type MapImageTextFit='stretchOrShrink'|'stretchOnly'|'proportional'; export interface MapImageStretchMetadata {stretchX?:readonly (readonly [number,number])[];stretchY?:readonly (readonly [number,number])[];content?:readonly [number,number,number,number];textFitWidth?:MapImageTextFit;textFitHeight?:MapImageTextFit} export interface StyleImageInterface extends MapImageData {onAdd?(map:Map,id:string):void;render?():boolean|undefined;onRemove?():void;} export interface MapImageOptions extends MapImageStretchMetadata {pixelRatio?:number;sdf?:boolean} export interface MapImageSnapshot extends Readonly {readonly data:{readonly width:number;readonly height:number;readonly data:Uint8Array};readonly pixelRatio:number;readonly sdf:boolean} export type ResourceType='Style'|'Source'|'Tile'|'Glyphs'|'SpriteJSON'|'SpriteImage'|'Image'|'Unknown'; export interface ResourceFallback {prefix:string;replacements:string[];resourceTypes?:ResourceType[];attemptTimeoutMs?:number;forwardQuery?:boolean} export interface ResourcePolicy {maxConcurrentRequests?:number;attemptTimeoutMs?:number;retries?:number;retryDelayMs?:number;cache?:'default'|'no-store'|'reload'|'no-cache'|'force-cache';fallbacks?:ResourceFallback[]} export interface ResourceConfiguration {resourceTimeoutMs?:number;resourcePolicy?:ResourcePolicy} export interface ResourceQuery {url:string;resourceType:ResourceType;maxBytes:number;method?:string;forceNoStore?:boolean} export interface ResourcePlan {readonly version:1;readonly urls:readonly string[];readonly method:string;readonly resourceType:ResourceType;readonly maxBytes:number;readonly maxConcurrentRequests:number;readonly resourceTimeoutMs:number;readonly attemptTimeoutMs:number;readonly retries:number;readonly retryDelayMs:number;readonly cache?:ResourcePolicy['cache'];readonly retryOn:Readonly<{network:boolean;attemptTimeout:boolean;httpStatuses:readonly number[];serverErrors:boolean}>} export interface ResourcesAPI {configure(configuration:ResourceConfiguration):Promise>>;getConfiguration():Promise>>;plan(query:ResourceQuery):Promise} export interface MapImageInfo extends Readonly {readonly id:string;readonly source:'runtime'|'sprite';readonly imageInstanceId:string;readonly revision:string;readonly width:number;readonly height:number;readonly byteLength:number;readonly pixelRatio:number;readonly sdf:boolean} export interface FeatureStateTarget {source:string;id:string|number;sourceLayer?:string;sqs?:{sourceInstanceId?:string;dataRevision?:string};[member:string]:unknown} export { gis, expr, sleep } from "gis"; export interface Subscription { unsubscribe(): void; } export type CameraEventType = "movestart" | "move" | "moveend" | "zoomstart" | "zoom" | "zoomend" | "rotatestart" | "rotate" | "rotateend" | "pitchstart" | "pitch" | "pitchend" | "rollstart" | "roll" | "rollend"; export type PointerEventType = "click"|"dblclick"|"mousedown"|"mouseup"|"mousemove"|"mouseenter"|"mouseleave"|"contextmenu"; export type MapLayerSelector = string|readonly string[]; export type AvailableMapEvent = "remove"|"load"|"render"|"idle"|PointerEventType | CameraEventType | "terrain" | "sourcedataloading" | "sourcedata" | "sourcedataabort" | "error" | "sqs.viewchange" | "sqs.layerschange" | "sqs.scenechange" | "sqs.playbackchange" | "sqs.lightingchange" | "sqs.sourceschange" | "sqs.resourceschange" | "sqs.imageschange" | "styleimagemissing" | "sqs.gestureschange" | "sqs.attributionschange" | "sqs.taskprogress"; export interface MapEvent { readonly type: AvailableMapEvent; readonly terrain?:Readonly|null; readonly target: Map; readonly mapInstanceId: string; readonly sequence: number; readonly camera?: import("gis").CameraState; /** Present on move; authoritative applied common planar camera snapshot. */ readonly cameraState?: MapCameraState; readonly animation?:CameraAnimationTag; readonly reason?:string;readonly scene?:SceneSnapshot;readonly playback?:PlaybackSnapshot; readonly sourceCount?: number; readonly gestures?:GesturePolicy; readonly attributions?:AttributionSnapshot;readonly context?:"attributions"|"resourcePolicy";readonly resourceConfiguration?:Readonly>; readonly sqsLive?:LiveSourceState;readonly sqsLiveReceiver?:LiveReceiverState; readonly sourceId?:string;readonly sourceInstanceId?:string;readonly dataType?:'source';readonly sourceDataType?:'content'; readonly isSourceLoaded?:boolean;readonly loading?:boolean;readonly hasData?:boolean;readonly dataRevision?:string;readonly requestRevision?:string;readonly loadError?:SourceLoadError|null; readonly styleGeneration?:string;readonly imageCount?:number;readonly runtimeByteLength?:number; readonly layerCount?:number; readonly method?:string; readonly id?:string; readonly kind?: "add" | "remove" | "move" | "update"; readonly error?: { code: string; message: string }; readonly operationId?: string; readonly progress?: { stage: string; percent: number; message: string }; } export interface MapPointerEvent extends MapEvent { readonly type:PointerEventType;readonly point:Readonly<{x:number;y:number}>;readonly lngLat:Readonly<{lng:number;lat:number}>|null; readonly features:readonly QueriedRenderedFeature[];readonly cameraState:MapCameraState; readonly input:Readonly<{pointerType:'mouse'|'pen'|'touch';button:number;buttons:number;altKey:boolean;ctrlKey:boolean;metaKey:boolean;shiftKey:boolean}>; } export interface MapStyleImageMissingEvent extends MapEvent {readonly type:"styleimagemissing";readonly id:string;readonly styleGeneration:string;} export interface MapResourcePolicyEvent extends MapEvent {readonly type:"sqs.resourceschange";readonly context:"resourcePolicy";readonly resourceConfiguration:Readonly>;} export interface MapImagesEvent extends MapEvent {readonly type:"sqs.imageschange";readonly method:"addImage"|"updateImage"|"removeImage";readonly id:string;readonly imageCount:number;readonly runtimeByteLength:number;} export interface MapGestureEvent extends MapEvent {readonly type:"sqs.gestureschange";readonly gestures:GesturePolicy;} export interface MapAttributionEvent extends MapEvent {readonly type:"sqs.attributionschange";readonly attributions:AttributionSnapshot;} export interface MapCameraEvent extends MapEvent {readonly type:CameraEventType;readonly cameraState:MapCameraState;} export interface MapMoveEvent extends MapEvent { readonly type:"move"; readonly cameraState:MapCameraState; } export interface FlushOptions { render?: boolean; since?: number; } export interface MapCommitResult { readonly mapInstanceId: string; readonly submittedSequence: number; readonly appliedSequence: number; readonly stage: 'applied' | 'rendered'; readonly camera: { focus: [number, number]; scale: number; bearing: number; width: number; height: number; mercator: boolean }; readonly frameSequence?: number; readonly cameraState?:MapCameraState; } export type LngLatLike = [number,number] | {lng:number;lat:number}; export type PointLike = [number,number] | {x:number;y:number}; export type BoundsLike = [number,number,number,number] | [LngLatLike,LngLatLike]; export interface GlobeCameraPose {center:[number,number];zoom:number;bearing:number;pitch:number;roll:number;padding:CameraPadding;} export interface GlobeCameraState {camera:GlobeCameraPose;projection:'globe';viewport:{width:number;height:number;pixelRatio:number};} export type MapCameraState=PlanarCameraState|GlobeCameraState; export interface ScaleAtOptions {point?:PointLike;maxWidth?:number} export interface ScaleAtResult {point:{x:number;y:number};position:{lng:number;lat:number};projection:'geographic'|'mercator'|'globe';metersPerPixel:number;distance:number;width:number;maxWidth:number;unit:'m';pixelUnit:'css';model:'sphere-local';earthRadius:6371008.8;approximate:true} export interface CameraPadding {top:number;right:number;bottom:number;left:number;} export interface AnimationOptions {duration?:number;animate?:boolean;linear?:boolean;easing?:(t:number)=>number;essential?:boolean} export interface EaseToOptions extends CameraOptions,AnimationOptions {around?:LngLatLike;offset?:PointLike;sqsShortestWorldCopy?:boolean} export interface FlyToOptions extends CameraOptions,AnimationOptions {offset?:PointLike;curve?:number;speed?:number;screenSpeed?:number;minZoom?:number;maxDuration?:number;sqsShortestWorldCopy?:boolean} export interface CameraAnimationTag {readonly id:string;readonly status:'running'|'completed'|'cancelled'|'failed';readonly reason:string|null} export interface CameraAnimationState {readonly active:boolean;readonly animation:CameraAnimationTag|null;readonly reducedMotion:boolean;readonly elapsed?:number;readonly duration?:number;readonly target?:CameraPose|GlobeCameraPose} export interface ImmediateNavigationOptions {around?:LngLatLike;offset?:PointLike;animate?:boolean;duration?:number;linear?:boolean;easing?:(t:number)=>number;essential?:boolean} export interface ImmediatePanOptions {offset?:PointLike;animate?:boolean;duration?:number;linear?:boolean;easing?:(t:number)=>number;essential?:boolean} export interface ImmediatePanByOptions {animate?:boolean;duration?:number;linear?:boolean;easing?:(t:number)=>number;essential?:boolean} export interface CameraOptions {center?:LngLatLike;zoom?:number;bearing?:number;pitch?:number;roll?:number;padding?:number|Partial;} export interface CameraFitOptions {padding?:number|Partial;offset?:PointLike;bearing?:number;minZoom?:number;maxZoom?:number;animate?:boolean;duration?:number;linear?:boolean;easing?:(t:number)=>number;essential?:boolean;} export interface CameraPose {center:[number,number];zoom:number;bearing:number;pitch:number;roll:0;padding:CameraPadding;} export interface PlanarCameraState {camera:CameraPose;projection:'geographic'|'mercator';viewport:{width:number;height:number;pixelRatio:number};} export interface StyleSpecification {version:8;state?:Record;sources:Record;layers:readonly unknown[];name?:string;metadata?:Record} export interface StyleOptions {diff?:boolean;} /** Inline WGS84 GeoJSON source subset, shared with native scripts. No source UI is created. */ export type FeatureId = string | number; export type Position = [number,number] | [number,number,number]; export type GeoJSONGeometry = | {type:'Point';coordinates:Position} | {type:'MultiPoint'|'LineString';coordinates:Position[]} | {type:'MultiLineString'|'Polygon';coordinates:Position[][]} | {type:'MultiPolygon';coordinates:Position[][][]} | {type:'GeometryCollection';geometries:GeoJSONGeometry[]}; export interface GeoJSONFeature {type:'Feature';id?:FeatureId;properties:Record|null;geometry:GeoJSONGeometry|null;[member:string]:unknown} export interface GeoJSONFeatureCollection {type:'FeatureCollection';features:GeoJSONFeature[];[member:string]:unknown} export type GeoJSON = GeoJSONGeometry | GeoJSONFeature | GeoJSONFeatureCollection; export type QueryPixel=[number,number]|{x:number;y:number}; export interface QueryRenderedFeatureOptions {layers?:string[];filter?:unknown[];validate?:true} export interface QueriedRenderedFeature extends QueriedSourceFeature {state:Record; layer:GeoJSONLayerSpecification; sqs:{sourceInstanceId:string;dataRevision:string;featureIndex:number;layerInstanceId:string;cacheRevision:string;stateRevision:string}; } export interface QuerySourceFeatureOptions { filter?:unknown[]; validate?:true; sourceLayer?:string; sqs?:{offset?:number;limit?:number;sourceInstanceId?:string;dataRevision?:string}; } export interface QueriedSourceFeature extends GeoJSONFeature { sourceLayer?:string; source:string; sqs:{sourceInstanceId:string;dataRevision:string;featureIndex:number}; } export type ClusterPropertySpecification = ['+'|'-'|'*'|'/'|'min'|'max'|'all'|'any'|'concat'|unknown[], unknown[]|number|boolean|string]; export interface GetClusterOptions {cluster:boolean;clusterRadius:number;clusterMaxZoom:number} export interface SetClusterOptions {cluster?:boolean;clusterRadius?:number;clusterMaxZoom?:number} export interface LiveSourceOptions {fields:Record;allowDelta?:boolean} export interface LivePoint {id:string;coordinate:[number,number];properties:Record} export type LiveUpdate = {kind:'snapshot';epoch:string;sequence:string;points:LivePoint[]} | {kind:'delta';epoch:string;baseSequence:string;sequence:string;upserts:LivePoint[];deletes:string[]}; export interface LiveSourceState {initialized:boolean;epoch:string|null;sequence:string|null;protocolRevision:string;pointCount:number;allowDelta:boolean;fields:Record} export interface LiveUpdateResult {applied:boolean;state:LiveSourceState;dataRevision:string} export interface LiveSourceSnapshot {source:SourceIdentity;state:LiveSourceState;data:GeoJSONFeatureCollection} export interface LiveReceiverOptions {owner?:SceneIdentity;protocol?:'gis-live-v1';transport:{type:'http-poll';url:string;intervalMs?:number}|{type:'websocket';url:string;reconnectDelayMs?:number}} export interface LiveReceiverIdentity extends SourceIdentity {receiverInstanceId:string} export interface LiveReceiverState {owner?:SceneIdentity;ownerState?:SceneStatus;source:SourceIdentity;receiverInstanceId:string;transport:'http-poll'|'websocket';connection?:'connecting'|'open'|'retrying'|'paused'|'stopped';status:'running'|'paused'|'stopped';loading:boolean;intervalMs:number;lastError:SourceLoadError|null;dataRevision:string} export interface LiveReceiver extends Readonly {getState():Promise;pause():Promise;resume():Promise;stop():Promise;attachSource(source:SourceIdentity):Promise;detachSource(source:SourceIdentity):Promise} export interface LiveSourceAPI {connectLive(options:LiveReceiverOptions):Promise;getLiveReceiver():Promise;applyLiveUpdate(frame:LiveUpdate):Promise;getLiveState():Promise;freezeLiveSnapshot():Promise} export interface GeoJSONSourceOptions {sqsLive?:LiveSourceOptions;type:'geojson';lineMetrics?:boolean;data:GeoJSON|string;attribution?:string;promoteId?:string;generateId?:boolean;cluster?:boolean;clusterRadius?:number;clusterMaxZoom?:number;clusterMinPoints?:number;clusterProperties?:Record} export interface GeoJSONFeatureDiff {id:FeatureId;newGeometry?:GeoJSONGeometry|null;removeAllProperties?:boolean;removeProperties?:string[];addOrUpdateProperties?:{key:string;value:unknown}[]} export interface GeoJSONSourceDiff {removeAll?:boolean;remove?:FeatureId[];add?:GeoJSONFeature[];update?:GeoJSONFeatureDiff[]} export interface SourceIdentity {id:string;sourceInstanceId:string} export interface SourceLoadError {readonly code:string;readonly message:string} export interface SourceDataEvent { readonly sourceId:string;readonly sourceInstanceId:string;readonly dataType:'source';readonly sourceDataType:'content'|'metadata'; readonly isSourceLoaded:boolean;readonly loading:boolean;readonly hasData:boolean;readonly dataRevision:string;readonly requestRevision:string; readonly loadError:SourceLoadError|null;readonly error?:SourceLoadError; } export interface SourceInfo extends SourceIdentity {sqsLiveReceiver?:LiveReceiverState;sqsLive?:LiveSourceState;type:'geojson'|'image'|'video'|'canvas'|'vector'|'raster'|'raster-dem';mediaState?:MediaState;tileMetadata?:TileSourceMetadata;tileState?:TileSourceState;dataRevision:string;stateRevision:string;loaded:boolean;loading:boolean;hasData:boolean;requestRevision:string;loadError:SourceLoadError|null;featureCount:number;bounds:[number,number,number,number]|null;attribution:string;promoteId:string|Record|null;generateId:boolean;lineMetrics:boolean;cluster:boolean;supportsUpdateData:boolean;referenceCount:number} /** Bound to one map and one source generation; deleting/re-adding its id invalidates this handle. */ export interface GeoJSONSource extends Readonly { readonly sqs:LiveSourceAPI; readonly type:'geojson'; readonly dataRevision:string; getData():Promise; setData(data:GeoJSON|string):Promise; updateData(diff:GeoJSONSourceDiff):Promise; getClusterOptions():Promise; setClusterOptions(options:SetClusterOptions):Promise; getClusterChildren(clusterId:number):Promise; getClusterLeaves(clusterId:number,limit?:number,offset?:number):Promise; getClusterExpansionZoom(clusterId:number):Promise; } export interface GeoJSONLayerSpecification { id:string; type:'circle'|'line'|'fill'|'fill-extrusion'|'hillshade'|'color-relief'|'raster'|'heatmap'|'background'|'symbol'; 'source-layer'?:string; source?:string|CommonSourceOptions; minzoom?:number; maxzoom?:number; paint?:Record; layout?:{visibility?:'visible'|'none';'icon-image'?:string|unknown[];'icon-size'?:number|unknown[];'icon-rotate'?:number|unknown[];'icon-offset'?:[number,number]|unknown[];'icon-anchor'?:'center'|'top'|'bottom'|'left'|'right'|'top-left'|'top-right'|'bottom-left'|'bottom-right'|unknown[];'symbol-placement'?:'point';'icon-allow-overlap'?:boolean|unknown[];'icon-ignore-placement'?:boolean|unknown[];'icon-optional'?:boolean|unknown[];'text-optional'?:boolean|unknown[];'icon-padding'?:number|unknown[];'symbol-sort-key'?:number|unknown[];'symbol-z-order'?:'auto'|'source'|'viewport-y';'text-field'?:string|unknown[];'text-size'?:number|unknown[];'text-max-width'?:number|unknown[];'text-line-height'?:number|unknown[];'text-letter-spacing'?:number|unknown[];'text-justify'?:'auto'|'left'|'center'|'right'|unknown[];'text-transform'?:'none'|'uppercase'|'lowercase'|unknown[];'text-font'?:readonly string[];'text-anchor'?:'center'|'top'|'bottom'|'left'|'right'|'top-left'|'top-right'|'bottom-left'|'bottom-right'|unknown[];'text-offset'?:[number,number]|unknown[];'text-rotate'?:number|unknown[];'text-padding'?:number|unknown[];'text-allow-overlap'?:boolean|unknown[];'text-ignore-placement'?:boolean}; filter?:unknown[]; metadata?:Record; } export interface LayerIdentity {readonly id:string;readonly layerInstanceId:string} export interface GeoJSONLayerInfo extends LayerIdentity { id:string; name:string; layerInstanceId:string; source:{id:string;sourceInstanceId:string}|null; sourceRevision:string; cacheRevision:string; type:'circle'|'line'|'fill'|'fill-extrusion'|'hillshade'|'color-relief'|'raster'|'heatmap'|'background'|'symbol'; visible:boolean; featureCount:number; warningCount:number; specification:GeoJSONLayerSpecification; } export interface GesturePolicy {readonly dragPan:boolean;readonly scrollZoom:boolean;readonly doubleClickZoom:boolean;readonly keyboard:boolean;readonly keyboardRotation:boolean;readonly touchZoomRotate:boolean;readonly touchPitch:boolean;readonly touchRotation:boolean;} export interface KeyboardHandler extends GestureHandler {enableRotation():Promise;disableRotation():Promise;} export interface TouchZoomRotateHandler extends KeyboardHandler {} export interface GestureHandler {enable():Promise;disable():Promise;isEnabled():Promise;isActive():Promise;} export interface LifecycleWork {readonly pendingResources:number;readonly pendingSources:number;readonly animating:boolean;readonly pendingRender:boolean;readonly failed:boolean;} export interface LifecycleState {readonly initialized:boolean;readonly firstLoadCompleted:boolean;readonly frameSequence:number;readonly idle:boolean;readonly work:LifecycleWork;} export interface StyleDataEvent extends MapEvent {readonly dataType:"style";readonly styleState:Readonly<{generation:number;revision:number;loaded:boolean}>;} export interface MapLifecycleEvent extends MapEvent {readonly lifecycle:LifecycleState;readonly cameraState:MapCameraState;} export interface Map { loaded():Promise; readonly dragPan:GestureHandler;readonly scrollZoom:GestureHandler;readonly doubleClickZoom:GestureHandler;readonly keyboard:KeyboardHandler;readonly touchZoomRotate:TouchZoomRotateHandler;readonly touchPitch:GestureHandler; /** Replace a URL or inline style, or clear it; flush confirms commands, not network readiness. */ getStyle():Promise; setStyle(style:string|null|StyleSpecification,options?:StyleOptions):this; addLayer(specification:GeoJSONLayerSpecification,beforeId?:string):this; removeLayer(id:string):this; moveLayer(id:string,beforeId?:string):this; addImage(id:string,image:MapImageData|StyleImageInterface,options?:MapImageOptions):this; triggerRepaint():void; updateImage(id:string,image:MapImageData):this;removeImage(id:string):this; getGlyphs():Promise;setGlyphs(url:string|null|undefined,options?:{validate?:true}):this; loadImage(url:string):Promise;getImage(id:string):Promise;hasImage(id:string):Promise;listImages():Promise; getLayer(id:string):Promise; queryRenderedFeatures(geometryOrOptions?:QueryPixel|[QueryPixel,QueryPixel]|QueryRenderedFeatureOptions,options?:QueryRenderedFeatureOptions):Promise; setPaintProperty(id:string,name:string,value:unknown,options?:{validate?:true}):this; getPaintProperty(id:string,name:string):Promise; setLayoutProperty(id:string,name:string,value:unknown,options?:{validate?:true}):this; getLayoutProperty(id:string,name:string):Promise; setFilter(id:string,filter:unknown[]|null,options?:{validate?:true}):this; getFilter(id:string):Promise; setLayerZoomRange(id:string,minzoom:number,maxzoom:number):this; addSource(id:string,options:CommonSourceOptions):this; getSource(id:string):Promise; setFeatureState(target:FeatureStateTarget|QueriedSourceFeature,state:Record):this; getFeatureState(target:FeatureStateTarget|QueriedSourceFeature):Promise>; removeFeatureState(target:Omit & {source:string;id?:string|number},key?:string):this; getGlobalState():Promise>>; setGlobalStateProperty(name:string,value:unknown):this; querySourceFeatures(id:string,options?:QuerySourceFeatureOptions):Promise; removeSource(id:string):this; isSourceLoaded(id:string):Promise; /** 权威相机查询统一异步,不读取猜测或乐观状态。 */ getLight():Promise; setLight(light:LightSpecification,options?:LightSetterOptions):this; readonly lighting:{state():Promise;set(options:import('gis').SceneLightingOptions):Promise}; getCenter():Promise<{lng:number;lat:number}>; getZoom():Promise; getMinZoom():Promise;getMaxZoom():Promise; getBearing():Promise; getPitch():Promise; getRoll():Promise; getPadding():Promise; getBounds():Promise<[[number,number],[number,number]]>; getProjection():Promise; setProjection(projection:import('gis').ProjectionSpecification):this; project(position:LngLatLike):Promise<{x:number;y:number}>; unproject(point:PointLike):Promise<{lng:number;lat:number}>; cameraForBounds(bounds:BoundsLike,options?:CameraFitOptions):Promise; easeTo(options:EaseToOptions):this;flyTo(options:FlyToOptions):this;stop():this; isEasing():Promise;isMoving():Promise;isZooming():Promise;isRotating():Promise; jumpTo(options:CameraOptions):this; fitBounds(bounds:BoundsLike,options?:CameraFitOptions):this; setCenter(center:LngLatLike):this; setZoom(zoom:number):this; setBearing(bearing:number):this; setPitch(pitch:number):this; setPadding(padding:number|Partial):this; resetNorth(options?:ImmediateNavigationOptions):this; resetNorthPitch(options?:ImmediateNavigationOptions):this; setRoll(roll:number):this; zoomTo(zoom:number,options?:ImmediateNavigationOptions):this; rotateTo(bearing:number,options?:ImmediateNavigationOptions):this; panTo(center:LngLatLike,options?:ImmediatePanOptions):this; panBy(offset:PointLike,options?:ImmediatePanByOptions):this; zoomIn(options?:ImmediateNavigationOptions):this; zoomOut(options?:ImmediateNavigationOptions):this; /** 同步查询本脚本门面拥有的普通、once或图层监听。 */ listens(type:string):boolean; fire(type:string,data?:Record):this; fire(event:{type:string;[key:string]:unknown}):this; setEventedParent(parent:Evented|Map|null|undefined,data?:EventedParentData):this; on(type:"styledata"|"style.load",listener:(event:StyleDataEvent)=>void|Promise):Subscription; off(type:"styledata"|"style.load",listener:(event:StyleDataEvent)=>void|Promise):this; once(type:"styledata"|"style.load",listener:(event:StyleDataEvent)=>void|Promise):this; once(type:"styledata"|"style.load"):Promise; on(type:"remove"|"load"|"render"|"idle",listener:(event:MapLifecycleEvent)=>void|Promise):Subscription; off(type:"remove"|"load"|"render"|"idle",listener:(event:MapLifecycleEvent)=>void|Promise):this; once(type:"remove"|"load"|"render"|"idle",listener:(event:MapLifecycleEvent)=>void|Promise):this; once(type:"remove"|"load"|"render"|"idle"):Promise; on(type:PointerEventType,listener:(event:MapPointerEvent)=>void|Promise):Subscription; on(type:PointerEventType,layers:MapLayerSelector,listener:(event:MapPointerEvent)=>void|Promise):Subscription; off(type:PointerEventType,listener:(event:MapPointerEvent)=>void|Promise):this; off(type:PointerEventType,layers:MapLayerSelector,listener:(event:MapPointerEvent)=>void|Promise):this; once(type:PointerEventType,listener:(event:MapPointerEvent)=>void|Promise):this; once(type:PointerEventType,layers:MapLayerSelector,listener:(event:MapPointerEvent)=>void|Promise):this; once(type:PointerEventType):Promise; once(type:PointerEventType,layers:MapLayerSelector):Promise; on(type:"move",listener:(event:MapMoveEvent)=>void|Promise):Subscription; off(type:"move",listener:(event:MapMoveEvent)=>void|Promise):this; once(type:"move",listener:(event:MapMoveEvent)=>void|Promise):this; once(type:"move"):Promise; on(type:CameraEventType,listener:(event:MapCameraEvent)=>void|Promise):Subscription; off(type:CameraEventType,listener:(event:MapCameraEvent)=>void|Promise):this; once(type:CameraEventType,listener:(event:MapCameraEvent)=>void|Promise):this; once(type:CameraEventType):Promise; on(type:"sqs.resourceschange",listener:(event:MapResourcePolicyEvent)=>void|Promise):Subscription; off(type:"sqs.resourceschange",listener:(event:MapResourcePolicyEvent)=>void|Promise):this; once(type:"sqs.resourceschange",listener:(event:MapResourcePolicyEvent)=>void|Promise):this; once(type:"sqs.resourceschange"):Promise; on(type:"sqs.gestureschange",listener:(event:MapGestureEvent)=>void|Promise):Subscription; off(type:"sqs.gestureschange",listener:(event:MapGestureEvent)=>void|Promise):this; once(type:"sqs.gestureschange",listener:(event:MapGestureEvent)=>void|Promise):this; once(type:"sqs.gestureschange"):Promise; on(type:"sqs.attributionschange",listener:(event:MapAttributionEvent)=>void|Promise):Subscription; off(type:"sqs.attributionschange",listener:(event:MapAttributionEvent)=>void|Promise):this; once(type:"sqs.attributionschange",listener:(event:MapAttributionEvent)=>void|Promise):this; once(type:"sqs.attributionschange"):Promise; on(type:"sqs.lightingchange",listener:(event:MapEvent & LightingChangeEvent)=>void|Promise):Subscription; off(type:"sqs.lightingchange",listener:(event:MapEvent & LightingChangeEvent)=>void|Promise):this; once(type:"sqs.lightingchange",listener:(event:MapEvent & LightingChangeEvent)=>void|Promise):this; once(type:"sqs.lightingchange"):Promise; on(type:"sqs.playbackchange",listener:(event:MapEvent & PlaybackChangeEvent)=>void|Promise):Subscription; off(type:"sqs.playbackchange",listener:(event:MapEvent & PlaybackChangeEvent)=>void|Promise):this; once(type:"sqs.playbackchange",listener:(event:MapEvent & PlaybackChangeEvent)=>void|Promise):this; once(type:"sqs.playbackchange"):Promise; on(type: AvailableMapEvent, listener: (event: MapEvent) => void | Promise): Subscription; off(type: AvailableMapEvent, listener: (event: MapEvent) => void | Promise): this; once(type: AvailableMapEvent, listener: (event: MapEvent) => void | Promise): this; once(type: AvailableMapEvent): Promise; on(type:string,listener:(event:EventedEvent)=>void|Promise):Subscription; off(type:string,listener:(event:EventedEvent)=>void|Promise):this; once(type:string,listener:(event:EventedEvent)=>void|Promise):this; once(type:string):Promise; readonly sqs: { /** 标签放置渐变时长(毫秒),默认300,与材质和栅格渐变独立。 */ getLabelFadeDuration():Promise; /** 有限非负且最多3600000毫秒;用flush确认写入。 */ setLabelFadeDuration(ms:number):void; /** 整数缩放材质渐变窗口(毫秒),默认300。 */ getMaterialFadeDuration():Promise; /** 有限非负且最多3600000毫秒;不改变手动图案/虚线时序,用flush确认写入。 */ setMaterialFadeDuration(ms:number):void; lifecycleState():Promise; readonly resources:ResourcesAPI; animations:AnimationsAPI;playbacks:PlaybacksAPI;scenes:ScenesAPI;getCapabilities():Promise>>; getImageInfo(id:string):Promise;gesturesState():Promise; getAttributions():Promise; getSourceInfo(id:string):Promise; scaleAt(options?:ScaleAtOptions):Promise; viewModeState():Promise>; cameraState():Promise; animationState():Promise;setReducedMotion(value:boolean):Map; /** 确认此前地图操作;render 等待真实帧,不等待网络图源。 */ flush(options?: FlushOptions): Promise; /** 宿主已接入地图的会话;不代表网络图源或渲染空闲。 */ ready(): Promise; /** 宿主实际转发的事件,网页目前不含任务进度。 */ getLayers():Promise; getLayerMetadata(id:string):Promise>; setLayerMetadata(id:string,metadata:Record|null):Map; events(): readonly AvailableMapEvent[]; disposeSession(): Promise; }; } export const map: Map; } export type MediaCoordinates=[[number,number],[number,number],[number,number],[number,number]]; export interface MediaSourceOptions {type:'image'|'video';coordinates:MediaCoordinates;attribution?:string;url?:string;urls?:string[]} export interface ImageSourceUpdate {url:string;coordinates?:MediaCoordinates} export interface CanvasSourceOptions {type:'canvas';canvas:string;coordinates:MediaCoordinates;animate?:boolean;attribution?:string} export type CommonSourceOptions=GeoJSONSourceOptions|MediaSourceOptions|CanvasSourceOptions|TileSourceOptions; export interface MediaState {kind:'image'|'video'|'canvas';coordinates:MediaCoordinates;revision:number;frameSequence:number;paused:boolean;width:number;height:number;byteLength:number;duration?:number;currentTime?:number;canvas?:string} export interface MediaFrame {sequence:number;width:number;height:number;data:number[]} export interface MediaSource extends Readonly {readonly type:'image'|'video'|'canvas';readonly dataRevision:string;updateImage(options:ImageSourceUpdate):Promise;setCoordinates(coordinates:MediaCoordinates):Promise;play():Promise;pause():Promise;readonly sqs:{getState():Promise;fail(reason:{code:string;message:string}):Promise;submitFrame(frame:MediaFrame):Promise<{applied:boolean;state:SourceInfo}>}} export type CommonMapSource=GeoJSONSource|MediaSource|TileSource; export interface TileSourceMetadata {tiles:string[];minzoom:number;maxzoom:number;bounds:[number,number,number,number];scheme:'xyz'|'tms';attribution:string;tileSize:number|null;metadataLoaded:boolean;volatile:boolean;encoding?:'mapbox'|'terrarium'|'custom'} export interface TileSourceOptions {type:'vector'|'raster'|'raster-dem';url?:string;tiles?:string[];minzoom?:number;maxzoom?:number;bounds?:[number,number,number,number];scheme?:'xyz'|'tms';attribution?:string;tileSize?:256|512;encoding?:'mvt'|'mapbox'|'terrarium'|'custom';redFactor?:number;greenFactor?:number;blueFactor?:number;baseShift?:number;promoteId?:string|Record;volatile?:boolean} export interface TileSource extends Readonly {readonly type:'vector'|'raster'|'raster-dem';readonly dataRevision:string;setTiles(tiles:string[]):Promise;setUrl(url:string):Promise;readonly sqs:{getTileMetadata():Promise}} export interface TileSourceState {visibleTiles:number;readyTiles:number;fallbackTiles:number;pendingTiles:number;cachedTiles:number;byteLength:number}