import { EPSG } from '@basemaps/geo'; import { DynamoDB } from 'aws-sdk'; import { BaseDynamoTable } from './aws.dynamo.table'; import { TileMetadataImagery } from './tile.metadata.imagery'; import { TileMetadataTileSet } from './tile.metadata.tileset'; export declare enum TileSetTag { /** Version to render by default */ Production = "production", /** Most recent version */ Head = "head", /** Pre release testing version */ Beta = "beta" } /** * The database format for the ApiKey Table */ export declare type TileMetadataRecord = TileMetadataImageryRecord | TileMetadataSetRecord; export interface TileMetadataImageryRecord extends BaseDynamoTable { /** Imagery set name */ name: string; projection: EPSG.Google; /** Year the imagery was acquired */ year: number; /** Resolution of imagery in MM */ resolution: number; /** list of quad keys the imagery contains */ quadKeys: string[]; } export interface TileMetadataImageRule { /** Unique imagery id (prefix: im_)*/ id: string; /** Minimal zoom to show the layer @default 0 */ minZoom: number; /** Max zoom to show the layer @default 32 */ maxZoom: number; /** Rendering priority, lower numbers are rendered onto the canvas first */ priority: number; } export interface TileMetadataSetRecord extends BaseDynamoTable { /** TileSet set name */ name: string; /** Use for WMTS ows:title */ title?: string; /** Use for WMTS ows:abstract */ description?: string; projection: EPSG.Google; /** the rendering rules for imagery in this tileset */ imagery: Record; /** Current version number */ version: number; /** Total number of revisions */ revisions?: number; /** Background to render for areas where there is no data */ background?: { r: number; g: number; b: number; alpha: number; }; } export interface TileSetRuleImagery { rule: TileMetadataImageRule; imagery: TileMetadataImageryRecord; } export declare enum RecordPrefix { Imagery = "im", TileSet = "ts" } export declare class TileMetadataTable { dynamo: DynamoDB; TileSet: TileMetadataTileSet; Imagery: TileMetadataImagery; constructor(); /** * Prefix a dynamoDb id with the provided prefix if it doesnt already start with it. */ static prefix(prefix: RecordPrefix, id: string): string; /** * Remove the prefix from a dynamoDb id */ static unprefix(prefix: RecordPrefix, id: string): string; get(key: string): Promise; /** * Fetch imagery from the store * @param keys Imagery ids (already prefixed `im_${key}`) * @param output Adds fetched imagery to output */ batchGet(keys: Set): Promise>; put(record: TileMetadataRecord): Promise; } //# sourceMappingURL=tile.metadata.d.ts.map