import { ConfigTileSetRaster, ConfigTileSetRasterOutput } from '@basemaps/config';
import { LatLon, TileMatrixSet } from '@basemaps/geo';
import { LambdaHttpRequest, LambdaHttpResponse } from '@linzjs/lambda';
export interface PreviewGet {
    Params: {
        tileSet: string;
        tileMatrix: string;
        outputType?: string;
        lat: string;
        lon: string;
        z: string;
    };
}
/**
 * Serve a preview of a imagery set
 *
 * /v1/preview/:tileSet/:tileMatrixSet/:z/:lon/:lat
 * /v1/preview/:tileSet/:tileMatrixSet/:z/:lon/:lat/:outputType
 *
 * @example
 * Raster Tile `/v1/preview/aerial/WebMercatorQuad/12/177.3998405/-39.0852555`
 *
 */
export declare function tilePreviewGet(req: LambdaHttpRequest<PreviewGet>): Promise<LambdaHttpResponse>;
interface PreviewRenderContext {
    /** Imagery to use */
    tileSet: ConfigTileSetRaster;
    /** output tilematrix to use */
    tileMatrix: TileMatrixSet;
    /** Center point of the preview */
    location: LatLon;
    /** Image format to render the preview as */
    output: ConfigTileSetRasterOutput;
    /** Zom level to be use, must be a integer */
    z: number;
}
/**
 * Render the preview!
 *
 * All the parameter validation is done in {@link tilePreviewGet} this function expects everything to align
 *
 * @returns 304 not modified if the ETag matches or 200 ok with the content of the image
 */
export declare function renderPreview(req: LambdaHttpRequest, ctx: PreviewRenderContext): Promise<LambdaHttpResponse>;
export interface CheckerBoard {
    /** Output image width in pixels */
    width: number;
    /** Output image height in pixels */
    height: number;
    colors: {
        /** Color of the checker board eg 0xef */
        fill: number;
        /** Color of the background eg 0xff */
        background: number;
    };
    /** Size of the checkers */
    size: number;
}
export {};
