UNPKG

@vepler/area-reference-types

Version:

TypeScript type definitions for Vepler Area Reference API

104 lines (103 loc) 2.51 kB
/** * Coverage API Types * * /api/areas/coverage endpoint */ import { GeographicEntityType } from '../../common'; /** * Coverage endpoint query parameters */ export interface CoverageQueryParams { /** * Source geography code to analyse coverage for */ sourceCode: string; /** * Source geography type (ward, lsoa21, country, etc.) */ sourceType: GeographicEntityType; /** * Target geography code (for geography-to-geography coverage) * Mutually exclusive with coverageType */ targetCode?: string; /** * Target geography type (for geography-to-geography coverage) * Required when targetCode is provided */ targetType?: GeographicEntityType; /** * Coverage layer type (flood_risk, noise_pollution, etc.) * Mutually exclusive with targetCode/targetType */ coverageType?: string; /** * Filter by specific coverage value (high, medium, low) * Only applicable with coverageType */ coverageValue?: string; /** * Result aggregation method * - total: Single coverage percentage * - breakdown: Coverage by value/category */ aggregation?: 'total' | 'breakdown'; } /** * Individual coverage result */ export interface CoverageResult { /** * Identifier for the coverage area (targetCode OR coverageValue) */ identifier: string; /** * Area covered in square metres */ area: number; /** * Coverage percentage (0-100) */ percentage: number; /** * Additional metadata about the coverage result */ metadata?: Record<string, any>; } /** * Coverage endpoint response */ export interface CoverageResponse { /** * Source geography code that was analysed */ sourceCode: string; /** * Source geography type */ sourceType: GeographicEntityType; /** * Total area of source geography in square metres */ totalArea: number; /** * Target geography code (for geography-to-geography queries) */ targetCode?: string; /** * Target geography type (for geography-to-geography queries) */ targetType?: GeographicEntityType; /** * Coverage layer type (for geography-to-type queries) */ coverageType?: string; /** * Coverage value filter applied (for geography-to-type queries) */ coverageValue?: string; /** * Array of coverage results */ coverage: CoverageResult[]; }