import { BasemapsConfigProvider, ConfigTileSet } from '@basemaps/config';
import { Epsg, NamedBounds, Projection } from '@basemaps/geo';
import { BBox, MultiPolygon } from '@linzjs/geojson';
import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
/**
 * Convert the year range into full ISO date year range
 *
 * Expand to the full year of jan 1st 00:00 -> Dec 31st 23:59
 */
export declare function yearRangeToInterval(x: [number] | [number, number]): [Date, Date];
/**
 * Convert a list of COG file bounds into a MultiPolygon. If the bounds spans more than half the
 * globe then return a simple MultiPolygon for the bounding box.

 * @param bbox in WGS84
 * @param files in target projection
 * @return MultiPolygon in WGS84
 */
export declare function createCoordinates(bbox: BBox, files: NamedBounds[], proj: Projection): MultiPolygon;
export interface TileAttributionGet {
    Params: {
        tileSet: string;
        tileMatrix: string;
    };
}
/**
 * Create a LambdaHttpResponse for a attribution request
 */
export declare function tileAttributionGet(req: LambdaHttpRequest<TileAttributionGet>): Promise<LambdaHttpResponse>;
/**
 * Construct a licensor attribution for a given tileSet.
 *
 * @param provider The BasemapsConfigProvider object.
 * @param tileSet The tileset from which to build the attribution.
 * @param projection The projection to consider.
 *
 * @returns A default attribution, if the tileset has more than one layer or no such imagery for the given projection exists.
 * Otherwise, a copyright string comprising the names of the tileset's licensors.
 *
 * @example
 * "CC BY 4.0 LINZ"
 *
 * @example
 * "CC BY 4.0 Nelson City Council, Tasman District Council, Waka Kotahi"
 */
export declare function createTileSetAttribution(provider: BasemapsConfigProvider, tileSet: ConfigTileSet, projection: Epsg): Promise<string>;
