import { ImageFormat, TileMatrixSet, VectorFormat } from '@basemaps/geo';
import { LambdaHttpRequest } from '@linzjs/lambda';
import { TileXyzGet } from '../routes/tile.xyz';
export interface TileXyz {
    tile: {
        x: number;
        y: number;
        z: number;
    };
    tileSet: string;
    tileMatrix: TileMatrixSet;
    tileType: VectorFormat | ImageFormat;
}
export interface TileMatrixRequest {
    Params: {
        tileMatrix?: string;
    };
}
export declare const Validate: {
    /**
     * Validate that the api key exists and is valid
     * @throws if api key is not valid
     */
    apiKey(req: LambdaHttpRequest): string;
    getTileMatrixSet(str?: string): TileMatrixSet | null;
    /** Read in all image formats specified in the query parameters "format" or "tileFormat" */
    getRequestedFormats(req: LambdaHttpRequest): ImageFormat[] | null;
    getTileFormat(tileType: string): ImageFormat | VectorFormat | null;
    /**
     * Validate that the tile request is somewhat valid
     * - Valid projection
     * - Valid range
     *
     * @throws LambdaHttpResponse for tile requests that are not valid
     *
     * @param req request to validate
     * @param xyzData
     */
    xyz(req: LambdaHttpRequest<TileXyzGet>): TileXyz;
};
//# sourceMappingURL=validate.d.ts.map