import { RequestLike } from 'itty-router'; import { Reader } from './reader.js'; import { IttyRouter } from 'itty-router/IttyRouter'; import 'stream'; import './types-yLQy3AKR.js'; import '@maplibre/maplibre-gl-style-spec'; import 'geojson'; import 'type-fest'; import 'readable-stream'; import 'events'; import 'yauzl-promise'; /** * Create a server for serving styled map packages (SMP) over http. The server * is a `fetch` handler that must be provided a WHATWG `Request` and a SMP * `Reader` instance. Use `@whatwg-node/server` to use with Node.js HTTP server. * * To handle errors, catch errors from `fetch` and return appropriate HTTP responses. * You can use `itty-router/error` for this. * * @example * ```js * import { createServer } from 'node:http' * import { error } from 'itty-router/error' * import { createServerAdapter } from '@whatwg-node/server' * import { createServer as createSMPServer } from 'styled-map-package/server' * import { Reader } from 'styled-map-package/reader' * * const reader = new Reader('path/to/your-style.smp') * const smpServer = createSMPServer() * const httpServer = createServer(createServerAdapter((request) => { * return smpServer.fetch(request, reader).catch(error) * })) * ``` * * @param {object} [options] * @param {string} [options.base='/'] Base path for the server routes * @returns {{ fetch: (request: RequestLike, reader: ReaderLike) => Promise }} server instance */ declare function createServer({ base }?: { base?: string | undefined; }): { fetch: (request: RequestLike, reader: ReaderLike) => Promise; }; type ReaderLike = Pick; type RouterType = typeof IttyRouter; export { type ReaderLike, type RouterType, createServer };