@cenogram/mcp-server 0.1.7 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,14 +44,39 @@ export interface Transaction {
44
44
  floor: number | null;
45
45
  district: string | null;
46
46
  street: string | null;
47
+ address_source?: "rcn" | "approx_high" | "approx_low" | "none" | null;
47
48
  building_number: string | null;
48
49
  city: string | null;
49
50
  parcel_area: number | null;
50
51
  unit_function: number | null;
52
+ is_garage?: boolean | null;
53
+ area_basis?: "unit" | "building" | null;
51
54
  parcel_id: string | null;
52
55
  parcel_number: string | null;
53
56
  county_name: string | null;
54
57
  voivodeship_name: string | null;
58
+ share_basis?: "full" | "fraction" | "ambiguous" | null;
59
+ parcel_count?: number | null;
60
+ area_is_ha_converted?: boolean | null;
61
+ property_type_inferred?: boolean | null;
62
+ property_type_reclassed?: boolean | null;
63
+ ownership_type?: number | null;
64
+ ownership_share?: string | null;
65
+ seller_type?: number | null;
66
+ buyer_type?: number | null;
67
+ land_use?: string | null;
68
+ unit_price?: number | string | null;
69
+ vat?: number | string | null;
70
+ building_count?: number | null;
71
+ footprint_area_m2?: number | null;
72
+ est_total_area_m2?: number | null;
73
+ building_storeys?: number | null;
74
+ flood_risk?: "high" | "medium" | "low" | null;
75
+ flood_assessed?: boolean | null;
76
+ heritage_status?: "listed" | "zone" | null;
77
+ heritage_assessed?: boolean | null;
78
+ landslide_risk?: "landslide" | "threatened" | null;
79
+ landslide_assessed?: boolean | null;
55
80
  centroid: {
56
81
  type: string;
57
82
  coordinates: [number, number];
@@ -86,6 +111,230 @@ export interface HistogramBin {
86
111
  range_min: number;
87
112
  range_max: number;
88
113
  }
114
+ export interface Percentiles {
115
+ p10: number | null;
116
+ p25: number | null;
117
+ p50: number | null;
118
+ p75: number | null;
119
+ p90: number | null;
120
+ }
121
+ export interface LocationRef {
122
+ name: string;
123
+ country_code: "PL";
124
+ location_type: "city" | "county";
125
+ teryt: string;
126
+ }
127
+ export interface TxWindow {
128
+ from: string | null;
129
+ to: string | null;
130
+ }
131
+ export interface RentalYieldResponse {
132
+ location: LocationRef;
133
+ metric: "indicative_gross_rental_yield";
134
+ currency: "PLN";
135
+ segment: {
136
+ market_type: "primary" | "secondary" | "all";
137
+ property_type: "apartment";
138
+ area_bucket: string | null;
139
+ };
140
+ result: {
141
+ gross_yield_pct: number | null;
142
+ calculation_method: "ratio_of_market_medians";
143
+ matched_observations: false;
144
+ };
145
+ inputs: {
146
+ rent: {
147
+ median_monthly_asking_per_m2: number | null;
148
+ annualized_per_m2: number | null;
149
+ sample_n: number | null;
150
+ snapshot_date: string | null;
151
+ };
152
+ transaction: {
153
+ median_price_per_m2: number | null;
154
+ sample_n: number | null;
155
+ window: TxWindow;
156
+ };
157
+ };
158
+ distribution: {
159
+ asking_rent_monthly_per_m2: Percentiles;
160
+ transaction_price_per_m2: Percentiles;
161
+ };
162
+ assumptions: {
163
+ vacancy_included: false;
164
+ tax_included: false;
165
+ maintenance_included: false;
166
+ transaction_costs_included: false;
167
+ };
168
+ quality: {
169
+ coverage: "full" | "low_sample" | "no_rental_data" | "suppressed" | "data_stale";
170
+ confidence: "high" | "low";
171
+ as_of: string | null;
172
+ stale: boolean;
173
+ notes: string[];
174
+ };
175
+ }
176
+ export interface RentalYieldLocation {
177
+ location: string;
178
+ county_code: string;
179
+ voivodeship: string;
180
+ type: "city" | "county";
181
+ rent_sample_n: number;
182
+ confidence: "high" | "low";
183
+ }
184
+ export interface RentalYieldLocationsResponse {
185
+ data: RentalYieldLocation[];
186
+ meta: {
187
+ total: number;
188
+ snapshot_date: string | null;
189
+ };
190
+ }
191
+ export interface PriceSpreadResponse {
192
+ location: LocationRef;
193
+ metric: "asking_to_transaction_price_spread";
194
+ currency: "PLN";
195
+ segment: {
196
+ market_type: "primary" | "secondary" | "all";
197
+ property_type: "apartment";
198
+ area_bucket: string | null;
199
+ };
200
+ result: {
201
+ spread_pct: number | null;
202
+ calculation_method: "relative_difference_of_market_medians";
203
+ matched_observations: false;
204
+ };
205
+ inputs: {
206
+ asking: {
207
+ median_price_per_m2: number | null;
208
+ sample_n: number | null;
209
+ snapshot_date: string | null;
210
+ window?: TxWindow;
211
+ };
212
+ transaction: {
213
+ median_price_per_m2: number | null;
214
+ sample_n: number | null;
215
+ window: TxWindow;
216
+ };
217
+ };
218
+ distribution: {
219
+ asking_sale_per_m2: Percentiles;
220
+ transaction_price_per_m2: Percentiles;
221
+ };
222
+ quality: {
223
+ coverage: "full" | "low_sample" | "no_asking_data" | "suppressed" | "data_stale";
224
+ confidence: "high" | "low";
225
+ as_of: string | null;
226
+ stale: boolean;
227
+ notes: string[];
228
+ };
229
+ }
230
+ export interface PriceSpreadLocation {
231
+ location: string;
232
+ county_code: string;
233
+ voivodeship: string;
234
+ type: "city" | "county";
235
+ asking_sample_n: number;
236
+ confidence: "high" | "low";
237
+ }
238
+ export interface PriceSpreadLocationsResponse {
239
+ data: PriceSpreadLocation[];
240
+ meta: {
241
+ total: number;
242
+ snapshot_date: string | null;
243
+ };
244
+ }
245
+ export interface DemographicsIndicator {
246
+ name: string;
247
+ unit: string;
248
+ variable_id: number | null;
249
+ category: string;
250
+ level: string;
251
+ values: Record<string, number>;
252
+ note?: string;
253
+ derived?: boolean;
254
+ snapshot?: boolean;
255
+ snapshot_note?: string;
256
+ }
257
+ export interface DemographicsResponse {
258
+ location: {
259
+ name: string | null;
260
+ country_code: "PL";
261
+ location_type: "city" | "county" | "municipality" | "voivodeship";
262
+ teryt: string;
263
+ level: string;
264
+ hierarchy?: Record<string, {
265
+ teryt: string | null;
266
+ name: string;
267
+ }>;
268
+ };
269
+ coverage: "full" | "no_data";
270
+ indicators: Record<string, DemographicsIndicator>;
271
+ meta: {
272
+ variables_count: number;
273
+ categories: string[];
274
+ levels_included: string[];
275
+ data_source: string;
276
+ as_of: string | null;
277
+ };
278
+ demo?: boolean;
279
+ }
280
+ export declare function getDemographics(params: {
281
+ location?: string;
282
+ teryt?: string;
283
+ year?: number;
284
+ yearFrom?: number;
285
+ yearTo?: number;
286
+ category?: string;
287
+ }, apiKey?: string): Promise<ApiResponse<DemographicsResponse>>;
288
+ export interface InfraTender {
289
+ title: string;
290
+ category: string;
291
+ notice_type: string;
292
+ published_at: string;
293
+ value_pln: number | null;
294
+ value_kind: string | null;
295
+ attribution_confidence: string | null;
296
+ bzp_url: string | null;
297
+ }
298
+ export interface InfrastructureSignalsResponse {
299
+ location: {
300
+ name: string | null;
301
+ country_code: "PL";
302
+ location_type: "city" | "county" | "municipality";
303
+ teryt: string;
304
+ level: string;
305
+ };
306
+ coverage: "full" | "partial" | "no_data";
307
+ tenders: {
308
+ window_months: number;
309
+ by_category: Record<string, number>;
310
+ recent: InfraTender[];
311
+ truncated: boolean;
312
+ };
313
+ kposk: {
314
+ in_agglomeration: boolean;
315
+ agglomerations: Array<{
316
+ name: string;
317
+ rlm: number | null;
318
+ }>;
319
+ truncated: boolean;
320
+ };
321
+ capex: {
322
+ by_year: Record<string, {
323
+ value_pln: number;
324
+ doc_category: string;
325
+ resolution_date: string | null;
326
+ gmina_count: number;
327
+ }>;
328
+ };
329
+ meta: {
330
+ coverage_note: string;
331
+ as_of: string | null;
332
+ };
333
+ }
334
+ export declare function getInfrastructureSignals(params: {
335
+ location?: string;
336
+ teryt?: string;
337
+ }, apiKey?: string): Promise<ApiResponse<InfrastructureSignalsResponse>>;
89
338
  export interface CreditInfo {
90
339
  balance: number;
91
340
  cost: number;
@@ -94,18 +343,28 @@ export interface ApiResponse<T> {
94
343
  data: T;
95
344
  creditInfo: CreditInfo | null;
96
345
  }
346
+ export declare const OAUTH_CTX_PREFIX = "\u0001";
347
+ export declare function encodeOAuthCtx(userId: string, grantId: string): string;
348
+ export declare function decodeOAuthCtx(key: string): {
349
+ userId: string;
350
+ grantId: string;
351
+ } | null;
352
+ export declare function parseRetryAfterSeconds(headerValue: string | null | undefined): number | null;
353
+ export declare function formatRetryAfter(seconds: number): string;
97
354
  export declare function fetchApi<T>(path: string, params?: Record<string, string>, apiKey?: string): Promise<ApiResponse<T>>;
98
355
  export declare function fetchApiPost<T>(path: string, body: unknown, apiKey?: string): Promise<ApiResponse<T>>;
99
356
  export declare function getStats(apiKey?: string): Promise<ApiResponse<StatsResponse>>;
100
357
  export interface TransactionParams {
101
358
  district?: string;
359
+ teryt?: string;
102
360
  street?: string;
103
361
  buildingNumber?: string;
104
362
  parcelId?: string;
105
363
  propertyType?: number;
106
364
  marketType?: number;
107
- unitFunction?: number;
108
- buildingType?: number;
365
+ unitFunction?: number | string;
366
+ buildingType?: number | string;
367
+ ownershipType?: number | string;
109
368
  mpzpDesignation?: string;
110
369
  minPrice?: number;
111
370
  maxPrice?: number;
@@ -114,6 +373,12 @@ export interface TransactionParams {
114
373
  minArea?: number;
115
374
  maxArea?: number;
116
375
  bbox?: string;
376
+ transactionType?: string;
377
+ rooms?: string;
378
+ floor?: string;
379
+ floodRisk?: string;
380
+ heritageStatus?: string;
381
+ landslideRisk?: string;
117
382
  limit?: number;
118
383
  page?: number;
119
384
  sort?: string;
@@ -123,9 +388,98 @@ export declare function getTransactions(p: TransactionParams, apiKey?: string):
123
388
  export declare function getTransactionsSummary(p: TransactionParams, apiKey?: string): Promise<ApiResponse<TransactionsSummary>>;
124
389
  export declare function getPricePerM2(apiKey?: string): Promise<ApiResponse<PricePerM2Row[]>>;
125
390
  export declare function getDistricts(apiKey?: string): Promise<ApiResponse<string[]>>;
391
+ export declare function getRentalYield(params: {
392
+ location?: string;
393
+ teryt?: string;
394
+ areaBucket?: string;
395
+ }, apiKey?: string): Promise<ApiResponse<RentalYieldResponse>>;
396
+ export declare function getRentalYieldLocations(params: {
397
+ search?: string;
398
+ }, apiKey?: string): Promise<ApiResponse<RentalYieldLocationsResponse>>;
399
+ export declare function getPriceSpread(params: {
400
+ location?: string;
401
+ teryt?: string;
402
+ marketType?: string;
403
+ areaBucket?: string;
404
+ }, apiKey?: string): Promise<ApiResponse<PriceSpreadResponse>>;
405
+ export declare function getPriceSpreadLocations(params: {
406
+ search?: string;
407
+ }, apiKey?: string): Promise<ApiResponse<PriceSpreadLocationsResponse>>;
408
+ export interface ValuationComparable {
409
+ distance_m: number;
410
+ transaction_date: string;
411
+ area_m2: number;
412
+ price_per_m2: number;
413
+ rooms: number | null;
414
+ floor: number | null;
415
+ market_type: "primary" | "secondary" | null;
416
+ district: string | null;
417
+ has_unit_number: boolean;
418
+ unit_number?: string | null;
419
+ }
420
+ export interface ValuationResponse {
421
+ location: {
422
+ country_code: string;
423
+ lat: number | null;
424
+ lng: number | null;
425
+ county_code: string | null;
426
+ };
427
+ metric: string;
428
+ currency: string;
429
+ segment: {
430
+ property_type: string;
431
+ market_type: "primary" | "secondary" | "all";
432
+ area_m2: number;
433
+ rooms: number | null;
434
+ };
435
+ result: {
436
+ estimated_value: number | null;
437
+ price_per_m2: number | null;
438
+ value_range_likely: {
439
+ low: number | null;
440
+ high: number | null;
441
+ };
442
+ value_range_wide: {
443
+ low: number | null;
444
+ high: number | null;
445
+ };
446
+ confidence: number | null;
447
+ confidence_band: "high" | "medium" | "low" | null;
448
+ };
449
+ inputs: {
450
+ comps_total: number;
451
+ radius_m: number | null;
452
+ window_months: number;
453
+ comparables: ValuationComparable[] | null;
454
+ };
455
+ quality: {
456
+ coverage: "covered" | "no_data" | "not_covered";
457
+ as_of: string | null;
458
+ price_basis: "apartment" | "deed";
459
+ ess: number | null;
460
+ accuracy_segment: "wwa" | "duze" | "srednie" | "male" | null;
461
+ note: string;
462
+ };
463
+ }
464
+ export declare function getValuation(params: {
465
+ lat?: number;
466
+ lng?: number;
467
+ parcelId?: string;
468
+ area: number;
469
+ rooms?: number;
470
+ market?: "primary" | "secondary";
471
+ includeComps?: boolean;
472
+ }, apiKey?: string): Promise<ApiResponse<ValuationResponse>>;
473
+ export interface LocationItem {
474
+ code: string;
475
+ name: string;
476
+ typeName: string | null;
477
+ level: "voivodeship" | "county" | "municipality" | "precinct";
478
+ }
479
+ export declare function getLocations(parent?: string, apiKey?: string): Promise<ApiResponse<LocationItem[]>>;
126
480
  export declare function getPriceHistogram(bins?: number, max?: number, apiKey?: string): Promise<ApiResponse<HistogramBin[]>>;
127
481
  export interface ParcelSearchResult {
128
- parcel_id: string;
482
+ parcel_id?: string;
129
483
  district: string | null;
130
484
  area_m2: number | null;
131
485
  lat: number;
@@ -135,6 +489,140 @@ export interface ParcelSearchResponse {
135
489
  results: ParcelSearchResult[];
136
490
  }
137
491
  export declare function searchParcels(q: string, limit?: number, apiKey?: string): Promise<ApiResponse<ParcelSearchResponse>>;
492
+ export interface ParcelResolveMatch {
493
+ id: string;
494
+ parcel_id: string | null;
495
+ parcel_key: string | null;
496
+ district: string | null;
497
+ county_code: string | null;
498
+ parcel_number: string | null;
499
+ area_m2: number | null;
500
+ has_geometry: boolean;
501
+ centroid: {
502
+ lat: number;
503
+ lng: number;
504
+ } | null;
505
+ }
506
+ export interface ParcelResolveResponse {
507
+ query: {
508
+ mode: string;
509
+ q?: string;
510
+ parcelId?: string;
511
+ lat?: number;
512
+ lng?: number;
513
+ };
514
+ coverage: "covered" | "not_covered";
515
+ as_of: string | null;
516
+ matches: ParcelResolveMatch[];
517
+ truncated: boolean;
518
+ }
519
+ export interface ResolveParcelParams {
520
+ q?: string;
521
+ parcelId?: string;
522
+ lat?: number;
523
+ lng?: number;
524
+ }
525
+ export declare function resolveParcel(params: ResolveParcelParams, apiKey?: string): Promise<ApiResponse<ParcelResolveResponse>>;
526
+ export interface ReportMarketLevel {
527
+ coverage: string;
528
+ median_price_per_m2: number | null;
529
+ n: number;
530
+ county_code?: string | null;
531
+ district?: string | null;
532
+ }
533
+ export interface ReportMarketContext {
534
+ coverage: string;
535
+ as_of: string | null;
536
+ county: ReportMarketLevel;
537
+ locality: ReportMarketLevel;
538
+ note?: string | null;
539
+ }
540
+ export interface ReportDemographicsSection {
541
+ coverage: string;
542
+ as_of: string | null;
543
+ name: string | null;
544
+ indicators: Record<string, DemographicsIndicator>;
545
+ }
546
+ export interface ReportInfraSection {
547
+ coverage: string;
548
+ as_of: string | null;
549
+ gmina_name: string | null;
550
+ tenders: {
551
+ window_months: number;
552
+ by_category: Record<string, number>;
553
+ recent: InfraTender[];
554
+ truncated: boolean;
555
+ };
556
+ kposk: {
557
+ in_agglomeration: boolean;
558
+ agglomerations: Array<{
559
+ name: string;
560
+ rlm: number | null;
561
+ }>;
562
+ truncated: boolean;
563
+ };
564
+ capex: {
565
+ by_year: Record<string, unknown>;
566
+ };
567
+ note?: string | null;
568
+ }
569
+ export interface ReportLocationContext {
570
+ coverage: string;
571
+ as_of: string | null;
572
+ gmina_teryt: string | null;
573
+ demographics: ReportDemographicsSection;
574
+ infra_signals: ReportInfraSection;
575
+ note?: string | null;
576
+ }
577
+ export interface ReportSection {
578
+ coverage: string;
579
+ as_of: string | null;
580
+ note?: string | null;
581
+ [key: string]: unknown;
582
+ }
583
+ export interface ParcelReportResponse {
584
+ parcel: {
585
+ id: string | null;
586
+ parcel_id: string | null;
587
+ parcel_key: string | null;
588
+ district?: string | null;
589
+ county_code?: string | null;
590
+ county_name?: string | null;
591
+ voivodeship_name?: string | null;
592
+ parcel_number?: string | null;
593
+ area_m2?: number | null;
594
+ land_use?: string | null;
595
+ mpzp_designation?: string | null;
596
+ has_geometry?: boolean;
597
+ centroid?: {
598
+ lat: number;
599
+ lng: number;
600
+ } | null;
601
+ };
602
+ coverage: string;
603
+ as_of: string | null;
604
+ sections: {
605
+ transactions: ReportSection;
606
+ flood: ReportSection;
607
+ heritage: ReportSection;
608
+ landslide: ReportSection;
609
+ surroundings: ReportSection;
610
+ transit: ReportSection;
611
+ planning: ReportSection;
612
+ buildings: ReportSection;
613
+ permits: ReportSection;
614
+ farmland: ReportSection;
615
+ market_context: ReportMarketContext;
616
+ location_context: ReportLocationContext;
617
+ };
618
+ billing: {
619
+ charged: number;
620
+ refunded: number;
621
+ rule: string;
622
+ };
623
+ note?: string | null;
624
+ }
625
+ export declare function getParcelReport(parcelKey: string, apiKey?: string): Promise<ApiResponse<ParcelReportResponse>>;
138
626
  export interface SpatialSearchParams {
139
627
  polygon: {
140
628
  type: "Polygon";
@@ -142,8 +630,9 @@ export interface SpatialSearchParams {
142
630
  };
143
631
  propertyType?: number;
144
632
  marketType?: number;
145
- unitFunction?: number;
146
- buildingType?: number;
633
+ unitFunction?: number | string;
634
+ buildingType?: number | string;
635
+ ownershipType?: number | string;
147
636
  mpzpDesignation?: string;
148
637
  minPrice?: number;
149
638
  maxPrice?: number;
@@ -153,6 +642,9 @@ export interface SpatialSearchParams {
153
642
  maxArea?: number;
154
643
  district?: string;
155
644
  street?: string;
645
+ transactionType?: string;
646
+ rooms?: string;
647
+ floor?: string;
156
648
  limit?: number;
157
649
  }
158
650
  export interface SpatialFeatureProperties {
@@ -166,11 +658,30 @@ export interface SpatialFeatureProperties {
166
658
  rooms: number | null;
167
659
  floor: number | null;
168
660
  street: string | null;
661
+ address_source?: "rcn" | "approx_high" | "approx_low" | "none" | null;
169
662
  building_number: string | null;
170
663
  city: string | null;
171
664
  district: string | null;
172
665
  parcel_area: number | null;
173
666
  parcel_number: string | null;
667
+ share_basis?: "full" | "fraction" | "ambiguous" | null;
668
+ is_garage?: boolean | null;
669
+ area_basis?: "unit" | "building" | null;
670
+ parcel_count?: number | null;
671
+ area_is_ha_converted?: boolean | null;
672
+ property_type_inferred?: boolean | null;
673
+ property_type_reclassed?: boolean | null;
674
+ ownership_type?: number | null;
675
+ ownership_share?: string | null;
676
+ seller_type?: number | null;
677
+ buyer_type?: number | null;
678
+ land_use?: string | null;
679
+ unit_price?: number | string | null;
680
+ vat?: number | string | null;
681
+ building_count?: number | null;
682
+ footprint_area_m2?: number | null;
683
+ est_total_area_m2?: number | null;
684
+ building_storeys?: number | null;
174
685
  }
175
686
  export interface SpatialFeature {
176
687
  type: "Feature";
@@ -187,6 +698,14 @@ export interface SpatialSearchResponse {
187
698
  total: number;
188
699
  }
189
700
  export declare function searchByPolygon(p: SpatialSearchParams, apiKey?: string): Promise<ApiResponse<SpatialSearchResponse>>;
701
+ export interface CompareDemographicsIndicator {
702
+ value: number | null;
703
+ year: number | null;
704
+ unit: string;
705
+ derived?: boolean;
706
+ cross_source?: boolean;
707
+ note?: string;
708
+ }
190
709
  export interface CompareEntry {
191
710
  median_price_m2: number | null;
192
711
  avg_area: number | null;
@@ -194,14 +713,16 @@ export interface CompareEntry {
194
713
  max_date: string | null;
195
714
  total: number;
196
715
  suggestions?: string[];
716
+ demographics?: Record<string, CompareDemographicsIndicator>;
197
717
  }
198
718
  export type CompareResponse = Record<string, CompareEntry>;
199
719
  export interface CompareParams {
200
720
  districts: string;
201
721
  propertyType?: number;
202
722
  marketType?: number;
203
- unitFunction?: number;
204
- buildingType?: number;
723
+ unitFunction?: number | string;
724
+ buildingType?: number | string;
725
+ ownershipType?: number | string;
205
726
  mpzpDesignation?: string;
206
727
  minPrice?: number;
207
728
  maxPrice?: number;
@@ -210,5 +731,164 @@ export interface CompareParams {
210
731
  minArea?: number;
211
732
  maxArea?: number;
212
733
  street?: string;
734
+ transactionType?: string;
735
+ rooms?: string;
736
+ floor?: string;
737
+ include?: string;
213
738
  }
214
739
  export declare function compareLocations(p: CompareParams, apiKey?: string): Promise<ApiResponse<CompareResponse>>;
740
+ export interface BuildingBreakdownRow {
741
+ building_type: number | null;
742
+ footprint_area_m2: number | null;
743
+ footprint_area_alt_m2: number | null;
744
+ footprint_divergent: boolean | null;
745
+ storeys: number | null;
746
+ est_total_area_m2: number | null;
747
+ match_confidence: string | null;
748
+ }
749
+ export interface BuildingBreakdownResponse {
750
+ data: BuildingBreakdownRow[];
751
+ truncated: boolean;
752
+ }
753
+ export declare function getBuildingBreakdown(transactionId: string, apiKey?: string): Promise<ApiResponse<BuildingBreakdownResponse>>;
754
+ export interface FloodScenario {
755
+ scenario: string | null;
756
+ source: string | null;
757
+ returnPeriod: number | null;
758
+ severity: number;
759
+ isLeveeFailure: boolean;
760
+ depthClass: string | null;
761
+ }
762
+ export interface FloodBreakdownRow {
763
+ flood_risk: "high" | "medium" | "low" | null;
764
+ severity_rank: number | null;
765
+ worst_scenario: string | null;
766
+ source: string | null;
767
+ depth_class: string | null;
768
+ pct_in_zone: number | string | null;
769
+ nearest_zone_m: number | null;
770
+ scenarios: FloodScenario[] | null;
771
+ }
772
+ export interface FloodBreakdownResponse {
773
+ data: FloodBreakdownRow[];
774
+ truncated: boolean;
775
+ }
776
+ export declare function getTransactionFlood(transactionId: string, apiKey?: string): Promise<ApiResponse<FloodBreakdownResponse>>;
777
+ export interface HeritageSite {
778
+ category: string;
779
+ name?: string | null;
780
+ function: string | null;
781
+ period: string | null;
782
+ entry_date: string | null;
783
+ }
784
+ export interface HeritageBreakdownRow {
785
+ heritage_status: "listed" | "zone" | null;
786
+ severity_rank: number | null;
787
+ pct_in_zone: number | string | null;
788
+ site_count: number | null;
789
+ sites: HeritageSite[] | null;
790
+ }
791
+ export interface HeritageBreakdownResponse {
792
+ data: HeritageBreakdownRow[];
793
+ truncated: boolean;
794
+ }
795
+ export interface LandslideZone {
796
+ kind: string | null;
797
+ source_version_date: string | null;
798
+ }
799
+ export interface LandslideBreakdownRow {
800
+ landslide_risk: "landslide" | "threatened" | null;
801
+ severity_rank: number | null;
802
+ pct_in_zone: number | string | null;
803
+ zones: LandslideZone[] | null;
804
+ }
805
+ export interface LandslideBreakdownResponse {
806
+ data: LandslideBreakdownRow[];
807
+ truncated: boolean;
808
+ }
809
+ export interface TransitBreakdownRow {
810
+ rail_distance_m: number | null;
811
+ rail_stop_name: string | null;
812
+ metro_distance_m: number | null;
813
+ metro_stop_name: string | null;
814
+ tram_distance_m: number | null;
815
+ tram_stop_name: string | null;
816
+ bus_distance_m: number | null;
817
+ bus_stop_name: string | null;
818
+ }
819
+ export interface TransitBreakdownResponse {
820
+ data: TransitBreakdownRow[];
821
+ truncated: boolean;
822
+ }
823
+ export interface PermitRecord {
824
+ record_kind: "permit" | "notification";
825
+ intent_type: string | null;
826
+ object_category: string | null;
827
+ works_type: string | null;
828
+ status: string | null;
829
+ decision_date: string | null;
830
+ intake_date: string | null;
831
+ authority: string | null;
832
+ address_street: string | null;
833
+ address_number: string | null;
834
+ address_city: string | null;
835
+ volume_m3: number | null;
836
+ }
837
+ export interface PermitsResponse {
838
+ data: PermitRecord[];
839
+ truncated: boolean;
840
+ note?: string;
841
+ }
842
+ export declare function getTransactionHeritage(transactionId: string, apiKey?: string): Promise<ApiResponse<HeritageBreakdownResponse>>;
843
+ export declare function getTransactionLandslide(transactionId: string, apiKey?: string): Promise<ApiResponse<LandslideBreakdownResponse>>;
844
+ export interface SurroundingsRow {
845
+ assessed: boolean;
846
+ cemetery_distance_m: number | string | null;
847
+ landfill_distance_m: number | string | null;
848
+ sewage_treatment_distance_m: number | string | null;
849
+ industrial_area_distance_m: number | string | null;
850
+ industrial_plant_distance_m: number | string | null;
851
+ livestock_farm_distance_m: number | string | null;
852
+ }
853
+ export interface SurroundingsResponse {
854
+ data: SurroundingsRow[];
855
+ truncated?: boolean;
856
+ }
857
+ export declare function getTransactionSurroundings(transactionId: string, apiKey?: string): Promise<ApiResponse<SurroundingsResponse>>;
858
+ export declare function getTransactionTransit(transactionId: string, apiKey?: string): Promise<ApiResponse<TransitBreakdownResponse>>;
859
+ export declare function getTransactionPermits(transactionId: string, apiKey?: string): Promise<ApiResponse<PermitsResponse>>;
860
+ export interface PlanningRow {
861
+ parcel_ord: number;
862
+ kind: string;
863
+ zone_symbol: string | null;
864
+ zone_name: string | null;
865
+ pct_of_parcel: number | string | null;
866
+ max_building_height_m: number | string | null;
867
+ max_development_intensity: number | string | null;
868
+ max_built_up_coverage_pct: number | string | null;
869
+ min_bio_active_area_pct: number | string | null;
870
+ params_mixed: boolean;
871
+ effective_from: string | null;
872
+ }
873
+ export interface PlanningResponse {
874
+ data: PlanningRow[];
875
+ truncated: boolean;
876
+ coverage: "covered" | "covered_no_data" | "not_covered";
877
+ parcels_total: number;
878
+ parcels_covered: number;
879
+ note: string | null;
880
+ }
881
+ export declare function getTransactionPlanning(transactionId: string, apiKey?: string): Promise<ApiResponse<PlanningResponse>>;
882
+ export interface FarmlandRow {
883
+ eligible_area_m2: number;
884
+ pct_of_parcel: number | null;
885
+ feature_count: number;
886
+ }
887
+ export interface FarmlandResponse {
888
+ data: FarmlandRow[];
889
+ truncated: boolean;
890
+ parcels_total: number;
891
+ parcels_with_data: number;
892
+ as_of: string | null;
893
+ }
894
+ export declare function getTransactionFarmland(transactionId: string, apiKey?: string): Promise<ApiResponse<FarmlandResponse>>;