import type { Geometry } from 'geojson'; import type { LayerProps } from '@opengeoweb/webmap'; interface Properties { datetime: string | null; 'proj:wkt2'?: string; } interface STACAsset { href: string; type: string; created: string; } export interface STACExtent { spatial?: { bbox?: number[][]; }; temporal?: { interval?: (string | null)[][]; }; } export interface STACLink { href: string; rel: string; } export interface STACItem { type: 'Feature'; stac_version: string; id: string; geometry: Geometry | null; bbox: number[]; properties: Properties; links: STACLink[]; assets: Record; } export type STACColormapEntry = [number, number, number, number]; export interface STACRenderEntry { title?: string; assets: string[]; rescale?: number[][]; colormap?: Record; } export interface STACCollection { type: 'Collection'; stac_version: string; id: string; description: string; license: string; keywords?: string[]; properties?: Record; extent: STACExtent; links: STACLink[]; features: STACItem[]; renders?: Record; } export declare const STAC_ITEM_PAGE_LIMIT = 1000; export declare const STAC_TEMPORAL_STEP_SAMPLE_LIMIT = 11; export declare const getStacItemsUrl: (stacBaseUrlWithCollection: string, startDate?: string, endDate?: string) => string; export declare const fetchStacCollection: (stacBaseUrlWithCollection: string) => Promise; export declare const fetchStacItem: (stacItemUrl: string) => Promise; export declare const fetchStacItems: (collectionUrl: string) => Promise; export declare const fetchStacItemsPage: (baseUrl: string, itemLimit?: number, offset?: number) => Promise; /** * Fetches STAC items with pagination support to handle cases where results exceed limit. * Uses STAC next links when available, otherwise falls back to offset pagination * until a page returns fewer items than the limit. * * @param baseUrl - Base URL with collection and query params (without offset/limit) * @param itemLimit - Max items per page (default: 1000) * @returns Array of all fetched STAC items */ export declare const fetchStacItemsWithPagination: (baseUrl: string, itemLimit?: number) => Promise; export interface STACCatalogCollection { id: string; title?: string; description?: string; extent?: STACExtent; keywords?: string[]; links: STACLink[]; renders?: Record; } export interface STACCatalogRoot { type?: string; stac_version?: string; id?: string; title?: string; description?: string; links: STACLink[]; conformsTo?: string[]; } export declare const fetchStacCatalogRoot: (url: string) => Promise; export declare const fetchStacCatalogCollections: (baseUrl: string) => Promise; export declare const stacCatalogCollectionToLayerProps: (collection: STACCatalogCollection) => LayerProps; export {};