import { WaybackConfig } from '../types'; type GetTileImageURLParams = { /** * URL template for a specific Wayback release, provided by the Wayback configuration file. * The template should include placeholders for level, row, and column. * @example 'https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WMTS/1.0.0/default028mm/MapServer/tile/10/{level}/{row}/{col}' */ urlTemplate: string | null; /** * The column coordinate for the tile. */ column: number | null; /** * The row coordinate for the tile. */ row: number | null; /** * The level of detail (zoom level) for the tile. */ level: number | null; }; /** * An array of subDomain names for production wayback service. * Using different subDomains helps to speed up tile retrieval. */ export declare const WAYBACK_SERVICE_SUB_DOMAINS_PROD: string[]; /** * The template of the wayback service root URL. */ export declare const WAYBACK_SERVICE_URL_TEMPLATE = "https://{subDomain}.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"; /** * The wayback configuration data to use instead of fetching it from the configuration file URL. */ export declare let customWaybackConfigData: WaybackConfig | null; /** * Set custom wayback configuration parameters. * This can be useful for testing with custom subDomains or a custom configuration file URL. * @param param.subDomains - An array of custom subDomain names to use instead of the default production subDomains: `['wayback', 'wayback-a', 'wayback-b']` * @param param.waybackConfigFileURL - A custom URL for the wayback configuration file to use instead of the default one for production: `https://s3-us-west-2.amazonaws.com/config.maptiles.arcgis.com/waybackconfig.json` * @param param.waybackConfigData - Custom wayback configuration data to use instead of fetching it from the configuration file URL. * @returns {void} */ export declare const setCustomWaybackConfig: (params: { subDomains?: string[]; waybackConfigFileURL?: string; waybackConfigData?: WaybackConfig; }) => void; /** * Generates the base URL for the Wayback service, replacing the subdomain placeholder * with a randomly selected subdomain from the available options. * * @returns {string} The base URL for the Wayback service with a random subdomain. */ export declare const getWaybackServiceBaseURL: () => string; /** * Generates the full URL to retrieve a tile image based on the provided column, row, and zoom level. * The function substitutes the placeholders in the URL template with the appropriate values for * level, row, and column, and it also replaces the subdomain placeholder with a randomly selected subdomain. * * @param {GetTileImageURLParams} params - The parameters for generating the tile image URL. * - `urlTemplate`: The template URL containing placeholders for level, row, and column. * - `column`: The column coordinate for the tile. * - `row`: The row coordinate for the tile. * - `level`: The level of detail (zoom level) for the tile. * @returns {string} The complete tile image URL with the correct column, row, level, and subdomain. */ export declare const getTileImageURL: ({ urlTemplate, column, row, level, }: GetTileImageURLParams) => string; /** * Get the URL of the wayback configuration file. * If a custom URL is set, use it; otherwise, use the default production URL. * @returns {string} the URL of the wayback configuration file */ export declare const getWaybackConfigFileURL: () => string; /** * Get an array of subDomain names where tiles are served to speed up tile retrieval. * @returns {string[]} array of subDomain names (e.g. `[ 'wayback-a', 'wayback-b' ]`) * * @see https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-WebTileLayer.html#subDomains */ export declare const getWaybackSubDomains: () => string[]; export {};