import type { Source as PMTilesSource } from 'pmtiles'; /** Low-level interface for reading byte ranges natively to fulfil RANGE_REQUEST messages from the web runtime. */ export interface NativeRangeReader { readRange: (params: { offset: number; length: number; etag?: string; }) => Promise<{ base64Data: string; etag?: string; expires?: string; cacheControl?: string; }>; } export type RangeRequestMessage = { type: 'RANGE_REQUEST'; id: string; offset: number; length: number; etag?: string; }; export type RangeResponseMessage = { type: 'RANGE_RESPONSE'; id: string; base64Data: string; etag?: string; expires?: string; cacheControl?: string; }; /** * Wraps a PMTiles `Source` object as a `NativeRangeReader` so that * RANGE_REQUEST messages from the WebView can be fulfilled by calling * `source.getBytes()` directly on the native side without requiring a * separate `offlineReader` prop. * * @example * ```ts * const source = new PMTiles('/path/to/archive.pmtiles'); * const reader = pmtilesSourceToReader(source); * * ``` */ export declare function pmtilesSourceToReader(source: PMTilesSource): NativeRangeReader; /** * Fulfils a RANGE_REQUEST bridge message by delegating to the native reader. * * @throws {Error} When `offlineReader` is not provided. */ export declare function handleRangeRequest(request: RangeRequestMessage, offlineReader?: NativeRangeReader): Promise; //# sourceMappingURL=range-reader.d.ts.map