@propertysimple/client 0.1.0 → 0.2.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.
Files changed (41) hide show
  1. package/API.md +27 -73
  2. package/README.md +200 -57
  3. package/client/src/index.d.ts +257 -2422
  4. package/client/src/index.js +6 -69
  5. package/contracts/src/index.d.ts +0 -7
  6. package/contracts/src/index.js +0 -7
  7. package/contracts/src/openapi.js +1 -1
  8. package/contracts/src/operations.d.ts +950 -4678
  9. package/contracts/src/operations.js +6 -36
  10. package/contracts/src/opportunity-events.d.ts +2 -1
  11. package/contracts/src/opportunity-events.js +6 -1
  12. package/contracts/src/property-features.d.ts +2 -2
  13. package/contracts/src/property-features.js +62 -19
  14. package/contracts/src/routes.d.ts +28 -305
  15. package/contracts/src/routes.js +82 -354
  16. package/contracts/src/schemas.d.ts +1114 -1355
  17. package/contracts/src/schemas.js +45 -223
  18. package/contracts/src/search.d.ts +1366 -253
  19. package/contracts/src/search.js +117 -2
  20. package/openapi.json +19288 -38596
  21. package/package.json +1 -9
  22. package/client/src/directory-sync.d.ts +0 -123
  23. package/client/src/directory-sync.js +0 -404
  24. package/client/src/managed-sync.d.ts +0 -129
  25. package/client/src/managed-sync.js +0 -410
  26. package/contracts/src/directory-execution.d.ts +0 -320
  27. package/contracts/src/directory-execution.js +0 -122
  28. package/contracts/src/directory-identity.d.ts +0 -1255
  29. package/contracts/src/directory-identity.js +0 -129
  30. package/contracts/src/directory-sales.d.ts +0 -333
  31. package/contracts/src/directory-sales.js +0 -102
  32. package/contracts/src/directory.d.ts +0 -1088
  33. package/contracts/src/directory.js +0 -179
  34. package/contracts/src/intelligence.d.ts +0 -366
  35. package/contracts/src/intelligence.js +0 -157
  36. package/contracts/src/professional-intelligence.d.ts +0 -256
  37. package/contracts/src/professional-intelligence.js +0 -90
  38. package/contracts/src/publication.d.ts +0 -44
  39. package/contracts/src/publication.js +0 -42
  40. package/contracts/src/smart-feed.d.ts +0 -3731
  41. package/contracts/src/smart-feed.js +0 -109
@@ -38,7 +38,7 @@ export declare class ListingsClient {
38
38
  definition: string;
39
39
  type: "string" | "number" | "boolean";
40
40
  synonyms: string[];
41
- applicability: "any" | "rental" | "dwelling" | "sale";
41
+ applicability: "any" | "dwelling" | "sale" | "rental";
42
42
  source_paths: string[];
43
43
  operators: ("in" | "eq" | "neq" | "not_in" | "gt" | "gte" | "lt" | "lte")[];
44
44
  availability: "source_and_interpretation" | "source_only";
@@ -375,7 +375,7 @@ export declare class ListingsClient {
375
375
  has_more: boolean;
376
376
  meta: {
377
377
  backend: "typesense" | "postgres";
378
- consistency: "degraded" | "current_index" | "completed_snapshot";
378
+ consistency: "current_index" | "completed_snapshot" | "degraded";
379
379
  generation: string;
380
380
  checkpoint: string;
381
381
  query_hash: string;
@@ -432,7 +432,159 @@ export declare class ListingsClient {
432
432
  }[];
433
433
  meta: {
434
434
  backend: "typesense" | "postgres";
435
- consistency: "degraded" | "current_index" | "completed_snapshot";
435
+ consistency: "current_index" | "completed_snapshot" | "degraded";
436
+ generation: string;
437
+ checkpoint: string;
438
+ query_hash: string;
439
+ checked_at: string;
440
+ total: number | null;
441
+ total_relation: "unavailable" | "exact";
442
+ search_time_ms: number;
443
+ warnings: string[];
444
+ inventory?: {
445
+ state: "partial" | "complete";
446
+ source_observed_at: string | null;
447
+ expected_source_records: number | null;
448
+ processed_source_records: number | null;
449
+ valid_until: string;
450
+ } | undefined;
451
+ snapshot?: {
452
+ published_through_at: string;
453
+ max_lag_seconds: number;
454
+ updates_pending: boolean;
455
+ excluded_count: number;
456
+ } | undefined;
457
+ timings?: {
458
+ authorization_ms: number;
459
+ provider_ms: number;
460
+ hydration_ms: number;
461
+ total_ms: number;
462
+ } | undefined;
463
+ };
464
+ }>;
465
+ stats: (input: InputRequest<"searchStats">, options?: RequestOptions) => Promise<{
466
+ stats: {
467
+ count: number;
468
+ price: {
469
+ listings: number;
470
+ min: string;
471
+ max: string;
472
+ avg: string;
473
+ period: string | null;
474
+ currency: string;
475
+ } | {
476
+ listings: number;
477
+ min: string;
478
+ max: string;
479
+ avg: string;
480
+ period: string | null;
481
+ currency: string;
482
+ } | {
483
+ listings: number;
484
+ min: string;
485
+ max: string;
486
+ avg: string;
487
+ area_unit: "sqft" | "sqm";
488
+ currency: string;
489
+ } | {
490
+ listings: number;
491
+ min: string;
492
+ max: string;
493
+ avg: string;
494
+ area_unit: "sqft" | "sqm";
495
+ currency: string;
496
+ } | null;
497
+ price_per_area: {
498
+ listings: number;
499
+ min: string;
500
+ max: string;
501
+ avg: string;
502
+ period: string | null;
503
+ currency: string;
504
+ } | {
505
+ listings: number;
506
+ min: string;
507
+ max: string;
508
+ avg: string;
509
+ period: string | null;
510
+ currency: string;
511
+ } | {
512
+ listings: number;
513
+ min: string;
514
+ max: string;
515
+ avg: string;
516
+ area_unit: "sqft" | "sqm";
517
+ currency: string;
518
+ } | {
519
+ listings: number;
520
+ min: string;
521
+ max: string;
522
+ avg: string;
523
+ area_unit: "sqft" | "sqm";
524
+ currency: string;
525
+ } | null;
526
+ days_on_market: {
527
+ listings: number;
528
+ min: number;
529
+ max: number;
530
+ avg: number;
531
+ } | null;
532
+ };
533
+ meta: {
534
+ backend: "typesense" | "postgres";
535
+ consistency: "current_index" | "completed_snapshot" | "degraded";
536
+ generation: string;
537
+ checkpoint: string;
538
+ query_hash: string;
539
+ checked_at: string;
540
+ total: number | null;
541
+ total_relation: "unavailable" | "exact";
542
+ search_time_ms: number;
543
+ warnings: string[];
544
+ inventory?: {
545
+ state: "partial" | "complete";
546
+ source_observed_at: string | null;
547
+ expected_source_records: number | null;
548
+ processed_source_records: number | null;
549
+ valid_until: string;
550
+ } | undefined;
551
+ snapshot?: {
552
+ published_through_at: string;
553
+ max_lag_seconds: number;
554
+ updates_pending: boolean;
555
+ excluded_count: number;
556
+ } | undefined;
557
+ timings?: {
558
+ authorization_ms: number;
559
+ provider_ms: number;
560
+ hydration_ms: number;
561
+ total_ms: number;
562
+ } | undefined;
563
+ };
564
+ }>;
565
+ index: (input: InputRequest<"searchIndex">, options?: RequestOptions) => Promise<{
566
+ data: {
567
+ id: string;
568
+ street: string | null;
569
+ city: string | null;
570
+ region: string | null;
571
+ postal_code: string | null;
572
+ price: {
573
+ amount: string;
574
+ currency: string;
575
+ period: string | null;
576
+ } | null;
577
+ property_type: string | null;
578
+ photo_count: number;
579
+ listed_at: string | null;
580
+ latitude: number | null;
581
+ longitude: number | null;
582
+ }[];
583
+ next: string | null;
584
+ has_more: boolean;
585
+ meta: {
586
+ backend: "typesense" | "postgres";
587
+ consistency: "current_index" | "completed_snapshot" | "degraded";
436
588
  generation: string;
437
589
  checkpoint: string;
438
590
  query_hash: string;
@@ -492,7 +644,7 @@ export declare class ListingsClient {
492
644
  valid_until: string;
493
645
  meta: {
494
646
  backend: "typesense" | "postgres";
495
- consistency: "degraded" | "current_index" | "completed_snapshot";
647
+ consistency: "current_index" | "completed_snapshot" | "degraded";
496
648
  generation: string;
497
649
  checkpoint: string;
498
650
  query_hash: string;
@@ -524,7 +676,7 @@ export declare class ListingsClient {
524
676
  }>;
525
677
  suggest: (input: InputRequest<"searchSuggest">, options?: RequestOptions) => Promise<{
526
678
  suggestions: {
527
- kind: "listing" | "feature" | "place";
679
+ kind: "feature" | "listing" | "place";
528
680
  label: string;
529
681
  value: string;
530
682
  feature?: string | undefined;
@@ -536,7 +688,7 @@ export declare class ListingsClient {
536
688
  }[];
537
689
  meta: {
538
690
  backend: "typesense" | "postgres";
539
- consistency: "degraded" | "current_index" | "completed_snapshot";
691
+ consistency: "current_index" | "completed_snapshot" | "degraded";
540
692
  generation: string;
541
693
  checkpoint: string;
542
694
  query_hash: string;
@@ -614,6 +766,24 @@ export declare class ListingsClient {
614
766
  region?: string | undefined;
615
767
  postal_code?: string | undefined;
616
768
  property_type?: string | undefined;
769
+ property_types?: string[] | undefined;
770
+ exclude_property_types?: string[] | undefined;
771
+ county?: string | undefined;
772
+ days_on_market?: {
773
+ min?: number | undefined;
774
+ max?: number | undefined;
775
+ } | undefined;
776
+ year_built?: {
777
+ min?: number | undefined;
778
+ max?: number | undefined;
779
+ } | undefined;
780
+ lot_size?: {
781
+ min?: number | undefined;
782
+ max?: number | undefined;
783
+ } | undefined;
784
+ lot_size_unit?: "sqft" | "acres" | undefined;
785
+ has_photos?: boolean | undefined;
786
+ has_virtual_tour?: boolean | undefined;
617
787
  };
618
788
  sort: "relevance" | "price_asc" | "price_desc" | "newest";
619
789
  limit: number;
@@ -624,6 +794,10 @@ export declare class ListingsClient {
624
794
  longitude: number;
625
795
  km: number;
626
796
  } | undefined;
797
+ polygon?: {
798
+ latitude: number;
799
+ longitude: number;
800
+ }[] | undefined;
627
801
  cursor?: string | undefined;
628
802
  facet_fields?: string[] | undefined;
629
803
  facet_limit?: number | undefined;
@@ -1661,6 +1835,17 @@ export declare class ListingsClient {
1661
1835
  }>;
1662
1836
  };
1663
1837
  readonly agents: {
1838
+ emailSharing: (input: InputRequest<"getAgentEmailSharing">, options?: RequestOptions) => Promise<{
1839
+ source: string;
1840
+ key: string;
1841
+ agent_id: string;
1842
+ email: string | null;
1843
+ sharing_count: number | null;
1844
+ observed_at: string;
1845
+ basis: "stored_source_agent_email";
1846
+ coverage: "known_source_agents";
1847
+ matching: "exact_stored_email";
1848
+ }>;
1664
1849
  resolveIdentity: (input: InputRequest<"resolveAgentIdentity">, options?: RequestOptions) => Promise<{
1665
1850
  source: string;
1666
1851
  key: string;
@@ -2017,168 +2202,6 @@ export declare class ListingsClient {
2017
2202
  meta: Record<string, import("zod").JSONType>;
2018
2203
  }>;
2019
2204
  };
2020
- readonly publications: {
2021
- report: (input: InputRequest<"reportPublication">, options: RequestOptions) => Promise<{
2022
- listing_id: string;
2023
- product_id: string;
2024
- sequence: string;
2025
- state: "unavailable" | "available";
2026
- expires_at: string;
2027
- }>;
2028
- destination: (input: InputRequest<"resolveDestination">, options?: RequestOptions) => Promise<{
2029
- listing_id: string;
2030
- product_id: string;
2031
- url: string | null;
2032
- available: boolean;
2033
- reason: "unavailable" | "expired" | "available" | "not_reported" | "listing_changed" | "source_stale";
2034
- checked_at: string;
2035
- }>;
2036
- };
2037
- readonly judgments: {
2038
- evaluate: (input: InputRequest<"evaluateJudgment">, options: RequestOptions) => Promise<{
2039
- id: string;
2040
- task: "claim_verification" | "meaningful_text_change" | "marketing_angle" | "preference_relevance" | "intent_routing" | "operational_triage";
2041
- task_version: string;
2042
- state: "expired" | "failed" | "running" | "succeeded";
2043
- input_fingerprint: string;
2044
- source_trust: "caller_supplied";
2045
- provenance: {
2046
- provider: "openrouter" | "vercel_gateway" | "fixture" | "disabled";
2047
- requested_model: string;
2048
- resolved_model: string | null;
2049
- model_policy: "fixture" | "pinned" | "rolling_alias";
2050
- policy_revision: string;
2051
- adapter_version: string;
2052
- execution?: "deterministic_exact_comparison" | undefined;
2053
- };
2054
- result: {
2055
- task: "claim_verification";
2056
- claims: {
2057
- id: string;
2058
- verdict: "supported" | "conflicting" | "contradicted" | "not_established";
2059
- evidence_refs: string[];
2060
- review_required: boolean;
2061
- }[];
2062
- } | {
2063
- task: "meaningful_text_change";
2064
- change: "material" | "editorial" | "unchanged" | "uncertain";
2065
- review_required: boolean;
2066
- } | {
2067
- task: "marketing_angle";
2068
- selected_candidate_id: string | null;
2069
- repeat_status: "unknown" | "novel" | "repetition";
2070
- evidence_refs: string[];
2071
- review_required: boolean;
2072
- } | {
2073
- task: "preference_relevance";
2074
- ranked: {
2075
- candidate_id: string;
2076
- score: number | null;
2077
- relevance: "unknown" | "relevant" | "not_relevant";
2078
- }[];
2079
- review_required: boolean;
2080
- } | {
2081
- task: "intent_routing";
2082
- intent: "unknown" | "property_details" | "billing" | "listing_correction" | "access_issue" | "marketing_question" | "technical_issue" | "tour_request" | "agent_help" | "unsubscribe" | "other";
2083
- urgent: boolean | null;
2084
- review_required: boolean;
2085
- } | {
2086
- task: "operational_triage";
2087
- category: "unknown" | "auth" | "source_format" | "rate_limit" | "transient_dependency";
2088
- severity: "unknown" | "informational" | "degraded" | "blocking" | "critical";
2089
- recommended_check: "credential_configuration" | "source_contract" | "retry_budget" | "dependency_health" | "manual_review";
2090
- review_required: boolean;
2091
- } | null;
2092
- error_code: string | null;
2093
- created_at: string;
2094
- completed_at: string | null;
2095
- valid_until: string;
2096
- cached: boolean;
2097
- }>;
2098
- get: (id: string, options?: RequestOptions) => Promise<{
2099
- id: string;
2100
- task: "claim_verification" | "meaningful_text_change" | "marketing_angle" | "preference_relevance" | "intent_routing" | "operational_triage";
2101
- task_version: string;
2102
- state: "expired" | "failed" | "running" | "succeeded";
2103
- input_fingerprint: string;
2104
- source_trust: "caller_supplied";
2105
- provenance: {
2106
- provider: "openrouter" | "vercel_gateway" | "fixture" | "disabled";
2107
- requested_model: string;
2108
- resolved_model: string | null;
2109
- model_policy: "fixture" | "pinned" | "rolling_alias";
2110
- policy_revision: string;
2111
- adapter_version: string;
2112
- execution?: "deterministic_exact_comparison" | undefined;
2113
- };
2114
- result: {
2115
- task: "claim_verification";
2116
- claims: {
2117
- id: string;
2118
- verdict: "supported" | "conflicting" | "contradicted" | "not_established";
2119
- evidence_refs: string[];
2120
- review_required: boolean;
2121
- }[];
2122
- } | {
2123
- task: "meaningful_text_change";
2124
- change: "material" | "editorial" | "unchanged" | "uncertain";
2125
- review_required: boolean;
2126
- } | {
2127
- task: "marketing_angle";
2128
- selected_candidate_id: string | null;
2129
- repeat_status: "unknown" | "novel" | "repetition";
2130
- evidence_refs: string[];
2131
- review_required: boolean;
2132
- } | {
2133
- task: "preference_relevance";
2134
- ranked: {
2135
- candidate_id: string;
2136
- score: number | null;
2137
- relevance: "unknown" | "relevant" | "not_relevant";
2138
- }[];
2139
- review_required: boolean;
2140
- } | {
2141
- task: "intent_routing";
2142
- intent: "unknown" | "property_details" | "billing" | "listing_correction" | "access_issue" | "marketing_question" | "technical_issue" | "tour_request" | "agent_help" | "unsubscribe" | "other";
2143
- urgent: boolean | null;
2144
- review_required: boolean;
2145
- } | {
2146
- task: "operational_triage";
2147
- category: "unknown" | "auth" | "source_format" | "rate_limit" | "transient_dependency";
2148
- severity: "unknown" | "informational" | "degraded" | "blocking" | "critical";
2149
- recommended_check: "credential_configuration" | "source_contract" | "retry_budget" | "dependency_health" | "manual_review";
2150
- review_required: boolean;
2151
- } | null;
2152
- error_code: string | null;
2153
- created_at: string;
2154
- completed_at: string | null;
2155
- valid_until: string;
2156
- cached: boolean;
2157
- }>;
2158
- capabilities: (options?: RequestOptions) => Promise<{
2159
- data: {
2160
- id: string;
2161
- description: string;
2162
- status: "implemented" | "not_implemented";
2163
- task_version: string | null;
2164
- task_id: "claim_verification" | "meaningful_text_change" | "marketing_angle" | "preference_relevance" | "intent_routing" | "operational_triage" | null;
2165
- input_kind: string;
2166
- limitations: string[];
2167
- }[];
2168
- provider: {
2169
- provider: "openrouter" | "vercel_gateway" | "fixture" | "disabled";
2170
- requested_model: string;
2171
- resolved_model: string | null;
2172
- model_policy: "fixture" | "pinned" | "rolling_alias";
2173
- policy_revision: string;
2174
- adapter_version: string;
2175
- execution?: "deterministic_exact_comparison" | undefined;
2176
- };
2177
- effects_enabled: boolean;
2178
- catalog_model: string;
2179
- taxonomy_version: string;
2180
- }>;
2181
- };
2182
2205
  readonly catalog: {
2183
2206
  health: (datasetId: string, options?: RequestOptions) => Promise<{
2184
2207
  dataset_id: string;
@@ -2188,6 +2211,7 @@ export declare class ListingsClient {
2188
2211
  last_full_enumeration_at: string | null;
2189
2212
  state: "stale" | "fresh" | "never_completed";
2190
2213
  freshness_window_seconds: number;
2214
+ last_full_refresh_at?: string | null | undefined;
2191
2215
  full_enumeration_window_seconds?: number | undefined;
2192
2216
  last_contact_at?: string | null | undefined;
2193
2217
  last_contact_status?: number | null | undefined;
@@ -2212,1596 +2236,33 @@ export declare class ListingsClient {
2212
2236
  valid_until: string;
2213
2237
  } | undefined;
2214
2238
  }>;
2215
- createSnapshot: (input: InputRequest<"createSnapshot">, options: RequestOptions) => Promise<{
2216
- id: string;
2217
- dataset_id: string;
2218
- status: "expired" | "failed" | "ready" | "building";
2219
- schema_version: string;
2220
- snapshot_sequence: string;
2221
- replay_cursor: string;
2222
- created_at: string;
2223
- expires_at: string;
2224
- count?: number | undefined;
2225
- }>;
2226
- snapshot: (id: string, options?: RequestOptions) => Promise<{
2227
- id: string;
2228
- dataset_id: string;
2229
- status: "expired" | "failed" | "ready" | "building";
2230
- schema_version: string;
2231
- snapshot_sequence: string;
2232
- replay_cursor: string;
2233
- created_at: string;
2234
- expires_at: string;
2235
- count?: number | undefined;
2236
- }>;
2237
- snapshotItems: (id: string, input?: Omit<InputRequest<"listSnapshotItems">, "id">, options?: RequestOptions) => Promise<{
2239
+ events: (input?: InputRequest<"listEvents">, options?: RequestOptions) => Promise<{
2238
2240
  data: {
2239
2241
  id: string;
2242
+ sequence: string;
2243
+ listing_id: string;
2244
+ episode_id: string;
2245
+ type: string;
2246
+ occurred_at: string;
2247
+ observed_at: string;
2248
+ evidence: Record<string, import("zod").JSONType>;
2249
+ }[];
2250
+ next_cursor: string | null;
2251
+ has_more: boolean;
2252
+ meta: Record<string, import("zod").JSONType>;
2253
+ }>;
2254
+ /** Listing changes, including removals, from a durable cursor (docs/api.md). */
2255
+ listingChanges: (input?: InputRequest<"listListingChanges">, options?: RequestOptions) => Promise<{
2256
+ data: {
2257
+ listing_id: string;
2240
2258
  episode_id: string;
2241
2259
  revision: string;
2242
2260
  source_identities: {
2243
2261
  source: string;
2244
2262
  key: string;
2245
2263
  }[];
2246
- market_status: "pending" | "unknown" | "expired" | "active" | "active_under_contract" | "sold" | "withdrawn";
2247
- source_availability: "present" | "removed_unknown";
2248
- display_eligibility: boolean;
2249
- price: {
2250
- amount: string;
2251
- currency: string;
2252
- period: string | null;
2253
- } | null;
2254
- address: {
2255
- street: string | null;
2256
- unit: string | null;
2257
- city: string | null;
2258
- region: string | null;
2259
- postal_code: string | null;
2260
- country: string | null;
2261
- };
2262
- listing_agent_ids: string[];
2263
- description: string | null;
2264
- photos: string[];
2265
- property_type: string | null;
2266
- bedrooms: number | null;
2267
- bathrooms: number | null;
2268
- living_area: number | null;
2269
- source_url: string | null;
2270
- listed_date: string | null;
2271
- listed_precision: "unknown" | "date" | "instant";
2272
- open_houses: {
2273
- id: string;
2274
- start_at: string;
2275
- end_at: string | null;
2276
- timezone: string | null;
2277
- status: "scheduled" | "cancelled";
2278
- }[];
2279
- classifications: {
2280
- attribute: string;
2281
- value: string | number | boolean | null;
2282
- evidence_state: "supported" | "not_stated" | "conflicting" | "explicitly_absent";
2283
- origin: "source_structured" | "source_text_interpreted";
2284
- evidence_refs: string[];
2285
- input_fingerprint: string;
2286
- taxonomy_version: string;
2287
- evaluation_id: string;
2288
- freshness: "pending" | "current" | "invalidated" | "failed";
2289
- }[];
2290
- display: {
2291
- address_allowed: boolean;
2292
- disclaimer: string | null;
2293
- };
2294
- freshness: {
2295
- last_seen_at: string;
2296
- published_at: string;
2297
- source_modified_at: string | null;
2298
- };
2299
- property_id?: string | null | undefined;
2300
- transaction_type?: "unknown" | "conflicting" | "for_sale" | "for_rent" | undefined;
2301
- price_period_state?: "unknown" | "supported" | "not_stated" | "conflicting" | undefined;
2302
- photo_count?: number | undefined;
2303
- media?: {
2304
- url: string;
2305
- order: number;
2306
- caption: string | null;
2307
- width: number | null;
2308
- height: number | null;
2309
- modified_at: string | null;
2310
- delivery: "source_url" | "hosted";
2311
- renditions?: {
2312
- thumbnail: {
2313
- url: string;
2314
- max_width: number;
2315
- max_height: number;
2316
- };
2317
- map: {
2318
- url: string;
2319
- max_width: number;
2320
- max_height: number;
2321
- };
2322
- card: {
2323
- url: string;
2324
- max_width: number;
2325
- max_height: number;
2326
- };
2327
- gallery: {
2328
- url: string;
2329
- max_width: number;
2330
- max_height: number;
2331
- };
2332
- } | undefined;
2333
- }[] | undefined;
2334
- attribution?: {
2335
- agent_name: string | null;
2336
- office_name: string | null;
2337
- office_key: string | null;
2338
- office_phone: string | null;
2339
- office_website: string | null;
2340
- broker_name: string | null;
2341
- originating_system: string | null;
2342
- agent_license?: string | null | undefined;
2343
- broker_phone?: string | null | undefined;
2344
- } | undefined;
2345
- property_details?: {
2346
- category: string | null;
2347
- sub_type: string | null;
2348
- bathrooms_full: number | null;
2349
- bathrooms_half: number | null;
2350
- stories: number | null;
2351
- garage_spaces: number | null;
2352
- parking_total: number | null;
2353
- county: string | null;
2354
- subdivision: string | null;
2355
- features: Record<string, string[]>;
2356
- bathrooms_one_quarter?: number | null | undefined;
2357
- bathrooms_three_quarter?: number | null | undefined;
2358
- source_flags?: Partial<Record<"AssociationYN" | "AttachedGarageYN" | "BasementYN" | "CarportYN" | "CoolingYN" | "ElectricOnPropertyYN" | "FireplaceYN" | "GarageYN" | "HeatingYN" | "NewConstructionYN" | "PoolPrivateYN" | "SpaYN" | "WaterfrontYN" | "AccessibleElevatorInstalled" | "Dock", boolean>> | undefined;
2359
- association_fees?: {
2360
- kind: "association" | "association_secondary";
2361
- amount: string | null;
2362
- amount_state: "unknown" | "supported" | "not_stated";
2363
- currency: string | null;
2364
- currency_source: "field" | "source_default" | null;
2365
- currency_state: "unknown" | "supported" | "not_stated";
2366
- period: "year" | "day" | "week" | "month" | "quarter" | "half_year" | "one_time" | null;
2367
- period_state: "unknown" | "supported" | "not_stated";
2368
- source_paths: string[];
2369
- }[] | undefined;
2370
- rooms?: {
2371
- type: string | null;
2372
- level: string | null;
2373
- features: string[];
2374
- dimensions: string | null;
2375
- length: number | null;
2376
- width: number | null;
2377
- unit: string | null;
2378
- source_paths: string[];
2379
- }[] | undefined;
2380
- year_built_effective?: number | null | undefined;
2381
- units_total?: number | null | undefined;
2382
- entry_level?: number | null | undefined;
2383
- } | undefined;
2384
- raw_status?: string | null | undefined;
2385
- living_area_unit?: string | null | undefined;
2386
- lot_size?: number | null | undefined;
2387
- lot_size_unit?: string | null | undefined;
2388
- year_built?: number | null | undefined;
2389
- latitude?: number | null | undefined;
2390
- longitude?: number | null | undefined;
2391
- location?: {
2392
- state: "source" | "pending" | "resolved" | "coarse" | "unavailable" | "stale" | "suppressed";
2393
- origin: "source" | "geocoded" | null;
2394
- precision: "source_unknown" | "parcel" | "street" | "area" | "unknown";
2395
- map_eligible: boolean;
2396
- coordinates: {
2397
- latitude: number;
2398
- longitude: number;
2399
- } | null;
2400
- accuracy_score: number | null;
2401
- accuracy_type: string | null;
2402
- match_type: string | null;
2403
- provider: string | null;
2404
- provider_version: string | null;
2405
- policy_version: string;
2406
- source: string | null;
2407
- resolved_at: string | null;
2408
- valid_until: string | null;
2409
- country_code: string | null;
2410
- region_code: string | null;
2411
- timezone: string | null;
2412
- enrichment: {
2413
- provider: string;
2414
- provider_version: string;
2415
- resolved_at: string;
2416
- valid_until: string;
2417
- fields: ("timezone" | "census2025")[];
2418
- } | null;
2419
- geography: {
2420
- census_year: number;
2421
- state_fips: string | null;
2422
- county_fips: string | null;
2423
- tract_geoid: string | null;
2424
- block_geoid: string | null;
2425
- place_fips: string | null;
2426
- cbsa_code: string | null;
2427
- source: string | null;
2428
- } | null;
2429
- issue: "pending" | "invalid_source_point" | "insufficient_address" | "unsupported_country" | "no_match" | "low_quality" | "provider_failure" | "expired" | "display_restricted" | null;
2430
- } | undefined;
2431
- mls_number?: string | null | undefined;
2432
- source_amenities?: {
2433
- version: "source-amenities-v1";
2434
- values: Record<"hardwood" | "solar" | "ev_charger" | "rv_parking" | "view", {
2435
- value: boolean | null;
2436
- state: "supported" | "not_stated" | "conflicting";
2437
- source_paths: string[];
2438
- }>;
2439
- } | undefined;
2440
- search_document?: {
2441
- version: "catalog-search-text-v1";
2442
- text: string;
2443
- } | undefined;
2444
- content_hash?: string | undefined;
2445
- source_fields?: {
2446
- listhub: Record<string, import("zod").JSONType>;
2447
- } | undefined;
2448
- source_metadata?: {
2449
- contract_version: "catalog-fields-v2";
2450
- parser_version: string;
2451
- exposure_version: string;
2452
- source_system_id: string | null;
2453
- source_system_name: string | null;
2454
- originating_system_name: string | null;
2455
- source_photo_count: number | null;
2456
- supplied_paths: string[];
2457
- } | undefined;
2458
- market_dates?: {
2459
- listing_contract: {
2460
- value: string | null;
2461
- precision: "unknown" | "date" | "instant";
2462
- };
2463
- on_market: {
2464
- value: string | null;
2465
- precision: "unknown" | "date" | "instant";
2466
- };
2467
- source_days_on_market: number | null;
2468
- source_cumulative_days_on_market: number | null;
2469
- } | undefined;
2470
- taxes?: {
2471
- annual_amount: string | null;
2472
- currency: string | null;
2473
- year: number | null;
2474
- } | undefined;
2475
- schools?: {
2476
- level: "elementary" | "middle" | "high";
2477
- name: string | null;
2478
- district: string | null;
2479
- }[] | undefined;
2480
- price_history?: {
2481
- original_amount: string | null;
2482
- previous_amount: string | null;
2483
- low_amount: string | null;
2484
- currency: string | null;
2485
- original_currency: string | null;
2486
- previous_currency: string | null;
2487
- low_currency: string | null;
2488
- changed_at: {
2489
- value: string | null;
2490
- precision: "unknown" | "date" | "instant";
2491
- };
2492
- } | undefined;
2493
- virtual_tours?: {
2494
- branded_url: string | null;
2495
- unbranded_url: string | null;
2496
- } | undefined;
2497
- additional_media?: {
2498
- url: string;
2499
- categories: string[];
2500
- order: number;
2501
- caption: string | null;
2502
- }[] | undefined;
2503
- professionals?: {
2504
- agent: {
2505
- full_name: string | null;
2506
- first_name: string | null;
2507
- last_name: string | null;
2508
- license: string | null;
2509
- };
2510
- office: {
2511
- key: string | null;
2512
- mls_id: string | null;
2513
- name: string | null;
2514
- broker_mls_id: string | null;
2515
- corporate_id: string | null;
2516
- main_office_id: string | null;
2517
- website_url: string | null;
2518
- address: {
2519
- street: string | null;
2520
- unit: string | null;
2521
- city: string | null;
2522
- region: string | null;
2523
- postal_code: string | null;
2524
- country: string | null;
2525
- };
2526
- };
2527
- brokerage: {
2528
- name: string | null;
2529
- website_url: string | null;
2530
- logo_url: string | null;
2531
- address: {
2532
- street: string | null;
2533
- unit: string | null;
2534
- city: string | null;
2535
- region: string | null;
2536
- postal_code: string | null;
2537
- country: string | null;
2538
- };
2539
- };
2540
- builder: {
2541
- name: string | null;
2542
- };
2543
- franchise: string | null;
2544
- } | undefined;
2545
- permissions?: {
2546
- internet_display: boolean | null;
2547
- entire_listing_display: boolean | null;
2548
- address_display: boolean | null;
2549
- automated_valuation_display: boolean | null;
2550
- consumer_comment: boolean | null;
2551
- } | undefined;
2552
- }[];
2553
- next_cursor: string | null;
2554
- has_more: boolean;
2555
- meta: Record<string, import("zod").JSONType>;
2556
- }>;
2557
- changes: (input?: InputRequest<"listCatalogChanges">, options?: RequestOptions) => Promise<{
2558
- data: {
2559
- id: string;
2560
- sequence: string;
2561
- listing_id: string;
2562
- revision: string;
2563
- operation: "upsert" | "remove";
2564
- listing: {
2565
- id: string;
2566
- episode_id: string;
2567
- revision: string;
2568
- source_identities: {
2569
- source: string;
2570
- key: string;
2571
- }[];
2572
- market_status: "pending" | "unknown" | "expired" | "active" | "active_under_contract" | "sold" | "withdrawn";
2573
- source_availability: "present" | "removed_unknown";
2574
- display_eligibility: boolean;
2575
- price: {
2576
- amount: string;
2577
- currency: string;
2578
- period: string | null;
2579
- } | null;
2580
- address: {
2581
- street: string | null;
2582
- unit: string | null;
2583
- city: string | null;
2584
- region: string | null;
2585
- postal_code: string | null;
2586
- country: string | null;
2587
- };
2588
- listing_agent_ids: string[];
2589
- description: string | null;
2590
- photos: string[];
2591
- property_type: string | null;
2592
- bedrooms: number | null;
2593
- bathrooms: number | null;
2594
- living_area: number | null;
2595
- source_url: string | null;
2596
- listed_date: string | null;
2597
- listed_precision: "unknown" | "date" | "instant";
2598
- open_houses: {
2599
- id: string;
2600
- start_at: string;
2601
- end_at: string | null;
2602
- timezone: string | null;
2603
- status: "scheduled" | "cancelled";
2604
- }[];
2605
- classifications: {
2606
- attribute: string;
2607
- value: string | number | boolean | null;
2608
- evidence_state: "supported" | "not_stated" | "conflicting" | "explicitly_absent";
2609
- origin: "source_structured" | "source_text_interpreted";
2610
- evidence_refs: string[];
2611
- input_fingerprint: string;
2612
- taxonomy_version: string;
2613
- evaluation_id: string;
2614
- freshness: "pending" | "current" | "invalidated" | "failed";
2615
- }[];
2616
- display: {
2617
- address_allowed: boolean;
2618
- disclaimer: string | null;
2619
- };
2620
- freshness: {
2621
- last_seen_at: string;
2622
- published_at: string;
2623
- source_modified_at: string | null;
2624
- };
2625
- property_id?: string | null | undefined;
2626
- transaction_type?: "unknown" | "conflicting" | "for_sale" | "for_rent" | undefined;
2627
- price_period_state?: "unknown" | "supported" | "not_stated" | "conflicting" | undefined;
2628
- photo_count?: number | undefined;
2629
- media?: {
2630
- url: string;
2631
- order: number;
2632
- caption: string | null;
2633
- width: number | null;
2634
- height: number | null;
2635
- modified_at: string | null;
2636
- delivery: "source_url" | "hosted";
2637
- renditions?: {
2638
- thumbnail: {
2639
- url: string;
2640
- max_width: number;
2641
- max_height: number;
2642
- };
2643
- map: {
2644
- url: string;
2645
- max_width: number;
2646
- max_height: number;
2647
- };
2648
- card: {
2649
- url: string;
2650
- max_width: number;
2651
- max_height: number;
2652
- };
2653
- gallery: {
2654
- url: string;
2655
- max_width: number;
2656
- max_height: number;
2657
- };
2658
- } | undefined;
2659
- }[] | undefined;
2660
- attribution?: {
2661
- agent_name: string | null;
2662
- office_name: string | null;
2663
- office_key: string | null;
2664
- office_phone: string | null;
2665
- office_website: string | null;
2666
- broker_name: string | null;
2667
- originating_system: string | null;
2668
- agent_license?: string | null | undefined;
2669
- broker_phone?: string | null | undefined;
2670
- } | undefined;
2671
- property_details?: {
2672
- category: string | null;
2673
- sub_type: string | null;
2674
- bathrooms_full: number | null;
2675
- bathrooms_half: number | null;
2676
- stories: number | null;
2677
- garage_spaces: number | null;
2678
- parking_total: number | null;
2679
- county: string | null;
2680
- subdivision: string | null;
2681
- features: Record<string, string[]>;
2682
- bathrooms_one_quarter?: number | null | undefined;
2683
- bathrooms_three_quarter?: number | null | undefined;
2684
- source_flags?: Partial<Record<"AssociationYN" | "AttachedGarageYN" | "BasementYN" | "CarportYN" | "CoolingYN" | "ElectricOnPropertyYN" | "FireplaceYN" | "GarageYN" | "HeatingYN" | "NewConstructionYN" | "PoolPrivateYN" | "SpaYN" | "WaterfrontYN" | "AccessibleElevatorInstalled" | "Dock", boolean>> | undefined;
2685
- association_fees?: {
2686
- kind: "association" | "association_secondary";
2687
- amount: string | null;
2688
- amount_state: "unknown" | "supported" | "not_stated";
2689
- currency: string | null;
2690
- currency_source: "field" | "source_default" | null;
2691
- currency_state: "unknown" | "supported" | "not_stated";
2692
- period: "year" | "day" | "week" | "month" | "quarter" | "half_year" | "one_time" | null;
2693
- period_state: "unknown" | "supported" | "not_stated";
2694
- source_paths: string[];
2695
- }[] | undefined;
2696
- rooms?: {
2697
- type: string | null;
2698
- level: string | null;
2699
- features: string[];
2700
- dimensions: string | null;
2701
- length: number | null;
2702
- width: number | null;
2703
- unit: string | null;
2704
- source_paths: string[];
2705
- }[] | undefined;
2706
- year_built_effective?: number | null | undefined;
2707
- units_total?: number | null | undefined;
2708
- entry_level?: number | null | undefined;
2709
- } | undefined;
2710
- raw_status?: string | null | undefined;
2711
- living_area_unit?: string | null | undefined;
2712
- lot_size?: number | null | undefined;
2713
- lot_size_unit?: string | null | undefined;
2714
- year_built?: number | null | undefined;
2715
- latitude?: number | null | undefined;
2716
- longitude?: number | null | undefined;
2717
- location?: {
2718
- state: "source" | "pending" | "resolved" | "coarse" | "unavailable" | "stale" | "suppressed";
2719
- origin: "source" | "geocoded" | null;
2720
- precision: "source_unknown" | "parcel" | "street" | "area" | "unknown";
2721
- map_eligible: boolean;
2722
- coordinates: {
2723
- latitude: number;
2724
- longitude: number;
2725
- } | null;
2726
- accuracy_score: number | null;
2727
- accuracy_type: string | null;
2728
- match_type: string | null;
2729
- provider: string | null;
2730
- provider_version: string | null;
2731
- policy_version: string;
2732
- source: string | null;
2733
- resolved_at: string | null;
2734
- valid_until: string | null;
2735
- country_code: string | null;
2736
- region_code: string | null;
2737
- timezone: string | null;
2738
- enrichment: {
2739
- provider: string;
2740
- provider_version: string;
2741
- resolved_at: string;
2742
- valid_until: string;
2743
- fields: ("timezone" | "census2025")[];
2744
- } | null;
2745
- geography: {
2746
- census_year: number;
2747
- state_fips: string | null;
2748
- county_fips: string | null;
2749
- tract_geoid: string | null;
2750
- block_geoid: string | null;
2751
- place_fips: string | null;
2752
- cbsa_code: string | null;
2753
- source: string | null;
2754
- } | null;
2755
- issue: "pending" | "invalid_source_point" | "insufficient_address" | "unsupported_country" | "no_match" | "low_quality" | "provider_failure" | "expired" | "display_restricted" | null;
2756
- } | undefined;
2757
- mls_number?: string | null | undefined;
2758
- source_amenities?: {
2759
- version: "source-amenities-v1";
2760
- values: Record<"hardwood" | "solar" | "ev_charger" | "rv_parking" | "view", {
2761
- value: boolean | null;
2762
- state: "supported" | "not_stated" | "conflicting";
2763
- source_paths: string[];
2764
- }>;
2765
- } | undefined;
2766
- search_document?: {
2767
- version: "catalog-search-text-v1";
2768
- text: string;
2769
- } | undefined;
2770
- content_hash?: string | undefined;
2771
- source_fields?: {
2772
- listhub: Record<string, import("zod").JSONType>;
2773
- } | undefined;
2774
- source_metadata?: {
2775
- contract_version: "catalog-fields-v2";
2776
- parser_version: string;
2777
- exposure_version: string;
2778
- source_system_id: string | null;
2779
- source_system_name: string | null;
2780
- originating_system_name: string | null;
2781
- source_photo_count: number | null;
2782
- supplied_paths: string[];
2783
- } | undefined;
2784
- market_dates?: {
2785
- listing_contract: {
2786
- value: string | null;
2787
- precision: "unknown" | "date" | "instant";
2788
- };
2789
- on_market: {
2790
- value: string | null;
2791
- precision: "unknown" | "date" | "instant";
2792
- };
2793
- source_days_on_market: number | null;
2794
- source_cumulative_days_on_market: number | null;
2795
- } | undefined;
2796
- taxes?: {
2797
- annual_amount: string | null;
2798
- currency: string | null;
2799
- year: number | null;
2800
- } | undefined;
2801
- schools?: {
2802
- level: "elementary" | "middle" | "high";
2803
- name: string | null;
2804
- district: string | null;
2805
- }[] | undefined;
2806
- price_history?: {
2807
- original_amount: string | null;
2808
- previous_amount: string | null;
2809
- low_amount: string | null;
2810
- currency: string | null;
2811
- original_currency: string | null;
2812
- previous_currency: string | null;
2813
- low_currency: string | null;
2814
- changed_at: {
2815
- value: string | null;
2816
- precision: "unknown" | "date" | "instant";
2817
- };
2818
- } | undefined;
2819
- virtual_tours?: {
2820
- branded_url: string | null;
2821
- unbranded_url: string | null;
2822
- } | undefined;
2823
- additional_media?: {
2824
- url: string;
2825
- categories: string[];
2826
- order: number;
2827
- caption: string | null;
2828
- }[] | undefined;
2829
- professionals?: {
2830
- agent: {
2831
- full_name: string | null;
2832
- first_name: string | null;
2833
- last_name: string | null;
2834
- license: string | null;
2835
- };
2836
- office: {
2837
- key: string | null;
2838
- mls_id: string | null;
2839
- name: string | null;
2840
- broker_mls_id: string | null;
2841
- corporate_id: string | null;
2842
- main_office_id: string | null;
2843
- website_url: string | null;
2844
- address: {
2845
- street: string | null;
2846
- unit: string | null;
2847
- city: string | null;
2848
- region: string | null;
2849
- postal_code: string | null;
2850
- country: string | null;
2851
- };
2852
- };
2853
- brokerage: {
2854
- name: string | null;
2855
- website_url: string | null;
2856
- logo_url: string | null;
2857
- address: {
2858
- street: string | null;
2859
- unit: string | null;
2860
- city: string | null;
2861
- region: string | null;
2862
- postal_code: string | null;
2863
- country: string | null;
2864
- };
2865
- };
2866
- builder: {
2867
- name: string | null;
2868
- };
2869
- franchise: string | null;
2870
- } | undefined;
2871
- permissions?: {
2872
- internet_display: boolean | null;
2873
- entire_listing_display: boolean | null;
2874
- address_display: boolean | null;
2875
- automated_valuation_display: boolean | null;
2876
- consumer_comment: boolean | null;
2877
- } | undefined;
2878
- } | null;
2879
- published_at: string;
2880
- }[];
2881
- next_cursor: string | null;
2882
- has_more: boolean;
2883
- meta: Record<string, import("zod").JSONType>;
2884
- }>;
2885
- events: (input?: InputRequest<"listEvents">, options?: RequestOptions) => Promise<{
2886
- data: {
2887
- id: string;
2888
- sequence: string;
2889
- listing_id: string;
2890
- episode_id: string;
2891
- type: string;
2892
- occurred_at: string;
2893
- observed_at: string;
2894
- evidence: Record<string, import("zod").JSONType>;
2895
- }[];
2896
- next_cursor: string | null;
2897
- has_more: boolean;
2898
- meta: Record<string, import("zod").JSONType>;
2899
- }>;
2900
- opportunityObservations: (input?: InputRequest<"listEvents">, options?: RequestOptions) => Promise<{
2901
- data: {
2902
- schema_version: "opportunity-observation-v1";
2903
- id: string;
2904
- sequence: string;
2905
- listing_id: string;
2906
- episode_id: string;
2907
- type: "new_to_market" | "price_drop" | "open_house_changed" | "market_age_milestone" | "source_removed";
2908
- received_at: string;
2909
- occurred_at: string;
2910
- evidence: Record<string, import("zod").JSONType>;
2911
- requires_current_eligibility: true;
2912
- authorizes_order: false;
2913
- }[];
2914
- next_cursor: string | null;
2915
- has_more: boolean;
2916
- meta: Record<string, import("zod").JSONType>;
2917
- }>;
2918
- };
2919
- readonly directory: {
2920
- canonicalIdentity: (input: InputRequest<"directoryGetCanonicalIdentity">, options?: RequestOptions) => Promise<{
2921
- requested_id: string;
2922
- state: "source_identity" | "canonical" | "redirected" | "split";
2923
- canonical_id: string | null;
2924
- kind: "office" | "professional" | "organization" | "team";
2925
- revision: string;
2926
- members: {
2927
- entity_id: string;
2928
- source_namespace: string;
2929
- }[];
2930
- alternatives: {
2931
- canonical_id: string;
2932
- members: {
2933
- entity_id: string;
2934
- source_namespace: string;
2935
- }[];
2936
- }[];
2937
- bindings: {
2938
- entity_id: string;
2939
- canonical_id: string | null;
2940
- revision: string;
2941
- }[];
2942
- }>;
2943
- mergeIdentities: (input: InputRequest<"directoryMergeIdentities">, options: RequestOptions) => Promise<{
2944
- operation_id: string;
2945
- identity_ids: string[];
2946
- }>;
2947
- splitIdentity: (input: InputRequest<"directorySplitIdentity">, options: RequestOptions) => Promise<{
2948
- operation_id: string;
2949
- identity_ids: string[];
2950
- }>;
2951
- inventory: (input: InputRequest<"directoryListInventory">, options?: RequestOptions) => Promise<{
2952
- data: {
2953
- id: string;
2954
- episode_id: string;
2955
- revision: string;
2956
- source_identities: {
2957
- source: string;
2958
- key: string;
2959
- }[];
2960
- market_status: "pending" | "unknown" | "expired" | "active" | "active_under_contract" | "sold" | "withdrawn";
2961
- source_availability: "present" | "removed_unknown";
2962
- display_eligibility: boolean;
2963
- price: {
2964
- amount: string;
2965
- currency: string;
2966
- period: string | null;
2967
- } | null;
2968
- address: {
2969
- street: string | null;
2970
- unit: string | null;
2971
- city: string | null;
2972
- region: string | null;
2973
- postal_code: string | null;
2974
- country: string | null;
2975
- };
2976
- listing_agent_ids: string[];
2977
- description: string | null;
2978
- photos: string[];
2979
- property_type: string | null;
2980
- bedrooms: number | null;
2981
- bathrooms: number | null;
2982
- living_area: number | null;
2983
- source_url: string | null;
2984
- listed_date: string | null;
2985
- listed_precision: "unknown" | "date" | "instant";
2986
- open_houses: {
2987
- id: string;
2988
- start_at: string;
2989
- end_at: string | null;
2990
- timezone: string | null;
2991
- status: "scheduled" | "cancelled";
2992
- }[];
2993
- classifications: {
2994
- attribute: string;
2995
- value: string | number | boolean | null;
2996
- evidence_state: "supported" | "not_stated" | "conflicting" | "explicitly_absent";
2997
- origin: "source_structured" | "source_text_interpreted";
2998
- evidence_refs: string[];
2999
- input_fingerprint: string;
3000
- taxonomy_version: string;
3001
- evaluation_id: string;
3002
- freshness: "pending" | "current" | "invalidated" | "failed";
3003
- }[];
3004
- display: {
3005
- address_allowed: boolean;
3006
- disclaimer: string | null;
3007
- };
3008
- freshness: {
3009
- last_seen_at: string;
3010
- published_at: string;
3011
- source_modified_at: string | null;
3012
- };
3013
- property_id?: string | null | undefined;
3014
- transaction_type?: "unknown" | "conflicting" | "for_sale" | "for_rent" | undefined;
3015
- price_period_state?: "unknown" | "supported" | "not_stated" | "conflicting" | undefined;
3016
- photo_count?: number | undefined;
3017
- media?: {
3018
- url: string;
3019
- order: number;
3020
- caption: string | null;
3021
- width: number | null;
3022
- height: number | null;
3023
- modified_at: string | null;
3024
- delivery: "source_url" | "hosted";
3025
- renditions?: {
3026
- thumbnail: {
3027
- url: string;
3028
- max_width: number;
3029
- max_height: number;
3030
- };
3031
- map: {
3032
- url: string;
3033
- max_width: number;
3034
- max_height: number;
3035
- };
3036
- card: {
3037
- url: string;
3038
- max_width: number;
3039
- max_height: number;
3040
- };
3041
- gallery: {
3042
- url: string;
3043
- max_width: number;
3044
- max_height: number;
3045
- };
3046
- } | undefined;
3047
- }[] | undefined;
3048
- attribution?: {
3049
- agent_name: string | null;
3050
- office_name: string | null;
3051
- office_key: string | null;
3052
- office_phone: string | null;
3053
- office_website: string | null;
3054
- broker_name: string | null;
3055
- originating_system: string | null;
3056
- agent_license?: string | null | undefined;
3057
- broker_phone?: string | null | undefined;
3058
- } | undefined;
3059
- property_details?: {
3060
- category: string | null;
3061
- sub_type: string | null;
3062
- bathrooms_full: number | null;
3063
- bathrooms_half: number | null;
3064
- stories: number | null;
3065
- garage_spaces: number | null;
3066
- parking_total: number | null;
3067
- county: string | null;
3068
- subdivision: string | null;
3069
- features: Record<string, string[]>;
3070
- bathrooms_one_quarter?: number | null | undefined;
3071
- bathrooms_three_quarter?: number | null | undefined;
3072
- source_flags?: Partial<Record<"AssociationYN" | "AttachedGarageYN" | "BasementYN" | "CarportYN" | "CoolingYN" | "ElectricOnPropertyYN" | "FireplaceYN" | "GarageYN" | "HeatingYN" | "NewConstructionYN" | "PoolPrivateYN" | "SpaYN" | "WaterfrontYN" | "AccessibleElevatorInstalled" | "Dock", boolean>> | undefined;
3073
- association_fees?: {
3074
- kind: "association" | "association_secondary";
3075
- amount: string | null;
3076
- amount_state: "unknown" | "supported" | "not_stated";
3077
- currency: string | null;
3078
- currency_source: "field" | "source_default" | null;
3079
- currency_state: "unknown" | "supported" | "not_stated";
3080
- period: "year" | "day" | "week" | "month" | "quarter" | "half_year" | "one_time" | null;
3081
- period_state: "unknown" | "supported" | "not_stated";
3082
- source_paths: string[];
3083
- }[] | undefined;
3084
- rooms?: {
3085
- type: string | null;
3086
- level: string | null;
3087
- features: string[];
3088
- dimensions: string | null;
3089
- length: number | null;
3090
- width: number | null;
3091
- unit: string | null;
3092
- source_paths: string[];
3093
- }[] | undefined;
3094
- year_built_effective?: number | null | undefined;
3095
- units_total?: number | null | undefined;
3096
- entry_level?: number | null | undefined;
3097
- } | undefined;
3098
- raw_status?: string | null | undefined;
3099
- living_area_unit?: string | null | undefined;
3100
- lot_size?: number | null | undefined;
3101
- lot_size_unit?: string | null | undefined;
3102
- year_built?: number | null | undefined;
3103
- latitude?: number | null | undefined;
3104
- longitude?: number | null | undefined;
3105
- location?: {
3106
- state: "source" | "pending" | "resolved" | "coarse" | "unavailable" | "stale" | "suppressed";
3107
- origin: "source" | "geocoded" | null;
3108
- precision: "source_unknown" | "parcel" | "street" | "area" | "unknown";
3109
- map_eligible: boolean;
3110
- coordinates: {
3111
- latitude: number;
3112
- longitude: number;
3113
- } | null;
3114
- accuracy_score: number | null;
3115
- accuracy_type: string | null;
3116
- match_type: string | null;
3117
- provider: string | null;
3118
- provider_version: string | null;
3119
- policy_version: string;
3120
- source: string | null;
3121
- resolved_at: string | null;
3122
- valid_until: string | null;
3123
- country_code: string | null;
3124
- region_code: string | null;
3125
- timezone: string | null;
3126
- enrichment: {
3127
- provider: string;
3128
- provider_version: string;
3129
- resolved_at: string;
3130
- valid_until: string;
3131
- fields: ("timezone" | "census2025")[];
3132
- } | null;
3133
- geography: {
3134
- census_year: number;
3135
- state_fips: string | null;
3136
- county_fips: string | null;
3137
- tract_geoid: string | null;
3138
- block_geoid: string | null;
3139
- place_fips: string | null;
3140
- cbsa_code: string | null;
3141
- source: string | null;
3142
- } | null;
3143
- issue: "pending" | "invalid_source_point" | "insufficient_address" | "unsupported_country" | "no_match" | "low_quality" | "provider_failure" | "expired" | "display_restricted" | null;
3144
- } | undefined;
3145
- mls_number?: string | null | undefined;
3146
- source_amenities?: {
3147
- version: "source-amenities-v1";
3148
- values: Record<"hardwood" | "solar" | "ev_charger" | "rv_parking" | "view", {
3149
- value: boolean | null;
3150
- state: "supported" | "not_stated" | "conflicting";
3151
- source_paths: string[];
3152
- }>;
3153
- } | undefined;
3154
- search_document?: {
3155
- version: "catalog-search-text-v1";
3156
- text: string;
3157
- } | undefined;
3158
- content_hash?: string | undefined;
3159
- source_fields?: {
3160
- listhub: Record<string, import("zod").JSONType>;
3161
- } | undefined;
3162
- source_metadata?: {
3163
- contract_version: "catalog-fields-v2";
3164
- parser_version: string;
3165
- exposure_version: string;
3166
- source_system_id: string | null;
3167
- source_system_name: string | null;
3168
- originating_system_name: string | null;
3169
- source_photo_count: number | null;
3170
- supplied_paths: string[];
3171
- } | undefined;
3172
- market_dates?: {
3173
- listing_contract: {
3174
- value: string | null;
3175
- precision: "unknown" | "date" | "instant";
3176
- };
3177
- on_market: {
3178
- value: string | null;
3179
- precision: "unknown" | "date" | "instant";
3180
- };
3181
- source_days_on_market: number | null;
3182
- source_cumulative_days_on_market: number | null;
3183
- } | undefined;
3184
- taxes?: {
3185
- annual_amount: string | null;
3186
- currency: string | null;
3187
- year: number | null;
3188
- } | undefined;
3189
- schools?: {
3190
- level: "elementary" | "middle" | "high";
3191
- name: string | null;
3192
- district: string | null;
3193
- }[] | undefined;
3194
- price_history?: {
3195
- original_amount: string | null;
3196
- previous_amount: string | null;
3197
- low_amount: string | null;
3198
- currency: string | null;
3199
- original_currency: string | null;
3200
- previous_currency: string | null;
3201
- low_currency: string | null;
3202
- changed_at: {
3203
- value: string | null;
3204
- precision: "unknown" | "date" | "instant";
3205
- };
3206
- } | undefined;
3207
- virtual_tours?: {
3208
- branded_url: string | null;
3209
- unbranded_url: string | null;
3210
- } | undefined;
3211
- additional_media?: {
3212
- url: string;
3213
- categories: string[];
3214
- order: number;
3215
- caption: string | null;
3216
- }[] | undefined;
3217
- professionals?: {
3218
- agent: {
3219
- full_name: string | null;
3220
- first_name: string | null;
3221
- last_name: string | null;
3222
- license: string | null;
3223
- };
3224
- office: {
3225
- key: string | null;
3226
- mls_id: string | null;
3227
- name: string | null;
3228
- broker_mls_id: string | null;
3229
- corporate_id: string | null;
3230
- main_office_id: string | null;
3231
- website_url: string | null;
3232
- address: {
3233
- street: string | null;
3234
- unit: string | null;
3235
- city: string | null;
3236
- region: string | null;
3237
- postal_code: string | null;
3238
- country: string | null;
3239
- };
3240
- };
3241
- brokerage: {
3242
- name: string | null;
3243
- website_url: string | null;
3244
- logo_url: string | null;
3245
- address: {
3246
- street: string | null;
3247
- unit: string | null;
3248
- city: string | null;
3249
- region: string | null;
3250
- postal_code: string | null;
3251
- country: string | null;
3252
- };
3253
- };
3254
- builder: {
3255
- name: string | null;
3256
- };
3257
- franchise: string | null;
3258
- } | undefined;
3259
- permissions?: {
3260
- internet_display: boolean | null;
3261
- entire_listing_display: boolean | null;
3262
- address_display: boolean | null;
3263
- automated_valuation_display: boolean | null;
3264
- consumer_comment: boolean | null;
3265
- } | undefined;
3266
- }[];
3267
- next_cursor: string | null;
3268
- has_more: boolean;
3269
- meta: {
3270
- dataset_id: string;
3271
- inventory_basis: "listing_representation" | "current_roster";
3272
- rollup: "none" | "verified_corporate";
3273
- source_namespaces: string[];
3274
- coverage: "authorized_published_listings";
3275
- calculated_at: string;
3276
- source_freshness: {
3277
- source: string;
3278
- last_completed_enumeration_at: string | null;
3279
- last_full_enumeration_at: string | null;
3280
- state: "stale" | "fresh" | "never_completed";
3281
- freshness_window_seconds: number;
3282
- full_enumeration_window_seconds?: number | undefined;
3283
- last_contact_at?: string | null | undefined;
3284
- last_contact_status?: number | null | undefined;
3285
- refresh?: {
3286
- state: "on_schedule" | "delayed" | "blocked";
3287
- cadence_seconds: number;
3288
- next_due_at: string;
3289
- phase: string | null;
3290
- last_attempt_at: string | null;
3291
- last_progress_at: string | null;
3292
- last_error_at: string | null;
3293
- error_code: string | null;
3294
- consecutive_failures: number;
3295
- } | undefined;
3296
- }[];
3297
- definition_version: "verified-inventory-v1";
3298
- rollup_policy: "verified-current-effective-operates-v1";
3299
- relationship_fingerprint: string;
3300
- listing_count?: number | undefined;
3301
- active_listing_count?: number | undefined;
3302
- };
3303
- }>;
3304
- salesCandidates: (input: InputRequest<"discoverDirectorySalesCandidates">, options?: RequestOptions) => Promise<{
3305
- data: {
3306
- id: string;
3307
- kind: "office" | "professional" | "organization";
3308
- revision: string;
3309
- }[];
3310
- next_cursor: string | null;
3311
- selection_scope: "bounded_discovery_page";
3312
- eligibility: "requires_plan_evaluation";
3313
- }>;
3314
- recordProfile: (input: InputRequest<"directoryRecordProfile">, options: RequestOptions) => Promise<{
3315
- id: string;
3316
- kind: "office" | "professional" | "organization" | "team";
3317
- source_identities: {
3318
- source: string;
3319
- key: string;
3320
- key_kind: "source" | "derived_observation";
3321
- legacy_agent_id: string | null;
3322
- }[];
3323
- revision: string;
3324
- name: string | null;
3325
- fields: Record<string, string | number | boolean | null>;
3326
- field_evidence: Record<string, {
3327
- state: "supported" | "conflicting" | "withdrawn";
3328
- observation_ids: string[];
3329
- authority: "source_listing" | "product_verified" | "operator_verified";
3330
- source_modified_at: string | null;
3331
- }>;
3332
- resolution_state: "source_identity" | "provisional";
3333
- source_availability: "present" | "unrepresented";
3334
- first_seen_at: string;
3335
- last_seen_at: string;
3336
- updated_at: string;
3337
- }>;
3338
- recordRelationship: (input: InputRequest<"directoryRecordRelationship">, options: RequestOptions) => Promise<{
3339
- id: string;
3340
- source: string;
3341
- subject_id: string;
3342
- object_id: string;
3343
- relationship: "observed_at_office" | "observed_brokerage" | "affiliated_with" | "operates" | "member_of";
3344
- evidence_state: "observed" | "verified";
3345
- authority: "source_listing" | "product_verified" | "operator_verified";
3346
- revision: string;
3347
- current: boolean;
3348
- listing_id: string | null;
3349
- observed_at: string;
3350
- effective_from: string | null;
3351
- effective_to: string | null;
3352
- evidence_ref: string;
3353
- }>;
3354
- professionals: (input?: InputRequest<"directoryListProfessionals">, options?: RequestOptions) => Promise<{
3355
- data: {
3356
- id: string;
3357
- kind: "office" | "professional" | "organization" | "team";
3358
- source_identities: {
3359
- source: string;
3360
- key: string;
3361
- key_kind: "source" | "derived_observation";
3362
- legacy_agent_id: string | null;
3363
- }[];
3364
- revision: string;
3365
- name: string | null;
3366
- fields: Record<string, string | number | boolean | null>;
3367
- field_evidence: Record<string, {
3368
- state: "supported" | "conflicting" | "withdrawn";
3369
- observation_ids: string[];
3370
- authority: "source_listing" | "product_verified" | "operator_verified";
3371
- source_modified_at: string | null;
3372
- }>;
3373
- resolution_state: "source_identity" | "provisional";
3374
- source_availability: "present" | "unrepresented";
3375
- first_seen_at: string;
3376
- last_seen_at: string;
3377
- updated_at: string;
3378
- }[];
3379
- next_cursor: string | null;
3380
- has_more: boolean;
3381
- meta: Record<string, import("zod").JSONType>;
3382
- inventory_summaries?: {
3383
- entity_id: string;
3384
- active_listing_count: number;
3385
- office_name: string | null;
3386
- }[] | undefined;
3387
- }>;
3388
- offices: (input?: InputRequest<"directoryListOffices">, options?: RequestOptions) => Promise<{
3389
- data: {
3390
- id: string;
3391
- kind: "office" | "professional" | "organization" | "team";
3392
- source_identities: {
3393
- source: string;
3394
- key: string;
3395
- key_kind: "source" | "derived_observation";
3396
- legacy_agent_id: string | null;
3397
- }[];
3398
- revision: string;
3399
- name: string | null;
3400
- fields: Record<string, string | number | boolean | null>;
3401
- field_evidence: Record<string, {
3402
- state: "supported" | "conflicting" | "withdrawn";
3403
- observation_ids: string[];
3404
- authority: "source_listing" | "product_verified" | "operator_verified";
3405
- source_modified_at: string | null;
3406
- }>;
3407
- resolution_state: "source_identity" | "provisional";
3408
- source_availability: "present" | "unrepresented";
3409
- first_seen_at: string;
3410
- last_seen_at: string;
3411
- updated_at: string;
3412
- }[];
3413
- next_cursor: string | null;
3414
- has_more: boolean;
3415
- meta: Record<string, import("zod").JSONType>;
3416
- }>;
3417
- organizations: (input?: InputRequest<"directoryListOrganizations">, options?: RequestOptions) => Promise<{
3418
- data: {
3419
- id: string;
3420
- kind: "office" | "professional" | "organization" | "team";
3421
- source_identities: {
3422
- source: string;
3423
- key: string;
3424
- key_kind: "source" | "derived_observation";
3425
- legacy_agent_id: string | null;
3426
- }[];
3427
- revision: string;
3428
- name: string | null;
3429
- fields: Record<string, string | number | boolean | null>;
3430
- field_evidence: Record<string, {
3431
- state: "supported" | "conflicting" | "withdrawn";
3432
- observation_ids: string[];
3433
- authority: "source_listing" | "product_verified" | "operator_verified";
3434
- source_modified_at: string | null;
3435
- }>;
3436
- resolution_state: "source_identity" | "provisional";
3437
- source_availability: "present" | "unrepresented";
3438
- first_seen_at: string;
3439
- last_seen_at: string;
3440
- updated_at: string;
3441
- }[];
3442
- next_cursor: string | null;
3443
- has_more: boolean;
3444
- meta: Record<string, import("zod").JSONType>;
3445
- }>;
3446
- teams: (input?: InputRequest<"directoryListTeams">, options?: RequestOptions) => Promise<{
3447
- data: {
3448
- id: string;
3449
- kind: "office" | "professional" | "organization" | "team";
3450
- source_identities: {
3451
- source: string;
3452
- key: string;
3453
- key_kind: "source" | "derived_observation";
3454
- legacy_agent_id: string | null;
3455
- }[];
3456
- revision: string;
3457
- name: string | null;
3458
- fields: Record<string, string | number | boolean | null>;
3459
- field_evidence: Record<string, {
3460
- state: "supported" | "conflicting" | "withdrawn";
3461
- observation_ids: string[];
3462
- authority: "source_listing" | "product_verified" | "operator_verified";
3463
- source_modified_at: string | null;
3464
- }>;
3465
- resolution_state: "source_identity" | "provisional";
3466
- source_availability: "present" | "unrepresented";
3467
- first_seen_at: string;
3468
- last_seen_at: string;
3469
- updated_at: string;
3470
- }[];
3471
- next_cursor: string | null;
3472
- has_more: boolean;
3473
- meta: Record<string, import("zod").JSONType>;
3474
- }>;
3475
- get: (input: InputRequest<"directoryGetEntity">, options?: RequestOptions) => Promise<{
3476
- id: string;
3477
- kind: "office" | "professional" | "organization" | "team";
3478
- source_identities: {
3479
- source: string;
3480
- key: string;
3481
- key_kind: "source" | "derived_observation";
3482
- legacy_agent_id: string | null;
3483
- }[];
3484
- revision: string;
3485
- name: string | null;
3486
- fields: Record<string, string | number | boolean | null>;
3487
- field_evidence: Record<string, {
3488
- state: "supported" | "conflicting" | "withdrawn";
3489
- observation_ids: string[];
3490
- authority: "source_listing" | "product_verified" | "operator_verified";
3491
- source_modified_at: string | null;
3492
- }>;
3493
- resolution_state: "source_identity" | "provisional";
3494
- source_availability: "present" | "unrepresented";
3495
- first_seen_at: string;
3496
- last_seen_at: string;
3497
- updated_at: string;
3498
- }>;
3499
- agent: (input: InputRequest<"directoryResolveAgent">, options?: RequestOptions) => Promise<{
3500
- id: string;
3501
- kind: "office" | "professional" | "organization" | "team";
3502
- source_identities: {
3503
- source: string;
3504
- key: string;
3505
- key_kind: "source" | "derived_observation";
3506
- legacy_agent_id: string | null;
3507
- }[];
3508
- revision: string;
3509
- name: string | null;
3510
- fields: Record<string, string | number | boolean | null>;
3511
- field_evidence: Record<string, {
3512
- state: "supported" | "conflicting" | "withdrawn";
3513
- observation_ids: string[];
3514
- authority: "source_listing" | "product_verified" | "operator_verified";
3515
- source_modified_at: string | null;
3516
- }>;
3517
- resolution_state: "source_identity" | "provisional";
3518
- source_availability: "present" | "unrepresented";
3519
- first_seen_at: string;
3520
- last_seen_at: string;
3521
- updated_at: string;
3522
- }>;
3523
- identity: (input: InputRequest<"directoryResolveIdentity">, options?: RequestOptions) => Promise<{
3524
- id: string;
3525
- kind: "office" | "professional" | "organization" | "team";
3526
- source_identities: {
3527
- source: string;
3528
- key: string;
3529
- key_kind: "source" | "derived_observation";
3530
- legacy_agent_id: string | null;
3531
- }[];
3532
- revision: string;
3533
- name: string | null;
3534
- fields: Record<string, string | number | boolean | null>;
3535
- field_evidence: Record<string, {
3536
- state: "supported" | "conflicting" | "withdrawn";
3537
- observation_ids: string[];
3538
- authority: "source_listing" | "product_verified" | "operator_verified";
3539
- source_modified_at: string | null;
3540
- }>;
3541
- resolution_state: "source_identity" | "provisional";
3542
- source_availability: "present" | "unrepresented";
3543
- first_seen_at: string;
3544
- last_seen_at: string;
3545
- updated_at: string;
3546
- }>;
3547
- relationships: (input: InputRequest<"directoryListRelationships">, options?: RequestOptions) => Promise<{
3548
- data: {
3549
- id: string;
3550
- source: string;
3551
- subject_id: string;
3552
- object_id: string;
3553
- relationship: "observed_at_office" | "observed_brokerage" | "affiliated_with" | "operates" | "member_of";
3554
- evidence_state: "observed" | "verified";
3555
- authority: "source_listing" | "product_verified" | "operator_verified";
3556
- revision: string;
3557
- current: boolean;
3558
- listing_id: string | null;
3559
- observed_at: string;
3560
- effective_from: string | null;
3561
- effective_to: string | null;
3562
- evidence_ref: string;
3563
- }[];
3564
- next_cursor: string | null;
3565
- has_more: boolean;
3566
- meta: Record<string, import("zod").JSONType>;
3567
- }>;
3568
- contacts: (input: InputRequest<"directoryGetContacts">, options?: RequestOptions) => Promise<{
3569
- entity_id: string;
3570
- revision: string;
3571
- state: "conflicting" | "not_established" | "unrepresented" | "available";
3572
- data: {
3573
- id: string;
3574
- type: "email" | "phone" | "website";
3575
- purpose: "office" | "professional" | "organization" | "lead_routing";
3576
- value: string;
3577
- original: string;
3578
- observation_ids: string[];
3579
- source_modified_at: string | null;
3580
- verified_ownership: boolean;
3581
- }[];
3582
- }>;
3583
- metrics: (input: InputRequest<"directoryGetMetrics">, options?: RequestOptions) => Promise<{
3584
- entity_id: string;
3585
- inventory_basis: "listing_representation";
3586
- definition_version: "observed-inventory-v1";
3587
- listing_count: number;
3588
- active_listing_count: number;
3589
- source_namespaces: string[];
3590
- coverage: "authorized_observed_listings";
3591
- calculated_at: string;
3592
- }>;
3593
- assess: (input: InputRequest<"requestDirectoryAssessment">, options: RequestOptions) => Promise<{
3594
- id: string;
3595
- entity_id: string;
3596
- comparison_id: string | null;
3597
- task: "entity_match" | "office_variant" | "relationship_support" | "professional_category";
3598
- definition_version: string;
3599
- evidence_hash: string;
3600
- state: "stale" | "failed" | "running" | "succeeded" | "queued";
3601
- provider: string;
3602
- model: string;
3603
- result: {
3604
- decision: "unknown" | "supported" | "conflicting" | "not_established" | "consistent" | "distinct" | "residential" | "commercial" | "rental" | "mixed";
3605
- evidence_refs: string[];
3606
- confidence: number;
3607
- authority: "semantic_assessment";
3608
- changes_account_access: false;
3609
- } | null;
3610
- error_code: string | null;
3611
- created_at: string;
3612
- completed_at: string | null;
3613
- }>;
3614
- assessment: (id: string, options?: RequestOptions) => Promise<{
3615
- id: string;
3616
- entity_id: string;
3617
- comparison_id: string | null;
3618
- task: "entity_match" | "office_variant" | "relationship_support" | "professional_category";
3619
- definition_version: string;
3620
- evidence_hash: string;
3621
- state: "stale" | "failed" | "running" | "succeeded" | "queued";
3622
- provider: string;
3623
- model: string;
3624
- result: {
3625
- decision: "unknown" | "supported" | "conflicting" | "not_established" | "consistent" | "distinct" | "residential" | "commercial" | "rental" | "mixed";
3626
- evidence_refs: string[];
3627
- confidence: number;
3628
- authority: "semantic_assessment";
3629
- changes_account_access: false;
3630
- } | null;
3631
- error_code: string | null;
3632
- created_at: string;
3633
- completed_at: string | null;
3634
- }>;
3635
- latestAssessment: (input: InputRequest<"latestDirectoryAssessment">, options?: RequestOptions) => Promise<{
3636
- state: "stale" | "failed" | "running" | "succeeded" | "queued" | "not_assessed";
3637
- assessment: {
3638
- id: string;
3639
- entity_id: string;
3640
- comparison_id: string | null;
3641
- task: "entity_match" | "office_variant" | "relationship_support" | "professional_category";
3642
- definition_version: string;
3643
- evidence_hash: string;
3644
- state: "stale" | "failed" | "running" | "succeeded" | "queued";
3645
- provider: string;
3646
- model: string;
3647
- result: {
3648
- decision: "unknown" | "supported" | "conflicting" | "not_established" | "consistent" | "distinct" | "residential" | "commercial" | "rental" | "mixed";
3649
- evidence_refs: string[];
3650
- confidence: number;
3651
- authority: "semantic_assessment";
3652
- changes_account_access: false;
3653
- } | null;
3654
- error_code: string | null;
3655
- created_at: string;
3656
- completed_at: string | null;
3657
- } | null;
3658
- }>;
3659
- createSalesPlan: (input: InputRequest<"createDirectorySalesPlan">, options: RequestOptions) => Promise<{
3660
- id: string;
3661
- profile_id: string;
3662
- policy_revision: string;
3663
- dataset_id: string;
3664
- audience_id: string;
3665
- status: "stale" | "expired" | "blocked" | "ready";
3666
- authority: "recommendation_only";
3667
- requested_count: number;
3668
- examined_count: number;
3669
- selected_count: number;
3670
- shortfall: number;
3671
- selection_scope: "explicit_bounded_subject_set";
3672
- data: {
3673
- intent_id: string;
3674
- subject: {
3675
- id: string;
3676
- kind: "office" | "professional" | "organization";
3677
- revision: string;
3678
- };
3679
- target_product_id: string;
3680
- intent: "adoption_outreach" | "expansion_review" | "reactivation_review";
3681
- authority: "recommendation_only";
3682
- reasons: string[];
3683
- metrics: {
3684
- active_listing_count: number;
3685
- represented_listing_count: number;
3686
- definition_version: "directory-sales-inventory-v1";
3687
- coverage: "authorized_observed_listings";
3688
- };
3689
- context_fingerprint: string;
3690
- adoption_status: "unknown" | "active" | "prospect" | "trial" | "paused" | "churned";
3691
- account_id: string | null;
3692
- verified_account_binding_id: string | null;
3693
- contact_resolution: {
3694
- entity_id: string;
3695
- operation: "directoryGetContacts";
3696
- purpose: "office" | "professional" | "organization";
3697
- requires_current_authorization: true;
3698
- };
3699
- expires_at: string;
3700
- }[];
3701
- exclusions: Record<string, number>;
3702
- created_at: string;
3703
- expires_at: string;
3704
- }>;
3705
- salesPlan: (id: string, options?: RequestOptions) => Promise<{
3706
- id: string;
3707
- profile_id: string;
3708
- policy_revision: string;
3709
- dataset_id: string;
3710
- audience_id: string;
3711
- status: "stale" | "expired" | "blocked" | "ready";
3712
- authority: "recommendation_only";
3713
- requested_count: number;
3714
- examined_count: number;
3715
- selected_count: number;
3716
- shortfall: number;
3717
- selection_scope: "explicit_bounded_subject_set";
3718
- data: {
3719
- intent_id: string;
3720
- subject: {
3721
- id: string;
3722
- kind: "office" | "professional" | "organization";
3723
- revision: string;
3724
- };
3725
- target_product_id: string;
3726
- intent: "adoption_outreach" | "expansion_review" | "reactivation_review";
3727
- authority: "recommendation_only";
3728
- reasons: string[];
3729
- metrics: {
3730
- active_listing_count: number;
3731
- represented_listing_count: number;
3732
- definition_version: "directory-sales-inventory-v1";
3733
- coverage: "authorized_observed_listings";
3734
- };
3735
- context_fingerprint: string;
3736
- adoption_status: "unknown" | "active" | "prospect" | "trial" | "paused" | "churned";
3737
- account_id: string | null;
3738
- verified_account_binding_id: string | null;
3739
- contact_resolution: {
3740
- entity_id: string;
3741
- operation: "directoryGetContacts";
3742
- purpose: "office" | "professional" | "organization";
3743
- requires_current_authorization: true;
3744
- };
3745
- expires_at: string;
3746
- }[];
3747
- exclusions: Record<string, number>;
3748
- created_at: string;
3749
- expires_at: string;
3750
- }>;
3751
- createSnapshot: (input: InputRequest<"createDirectorySnapshot">, options: RequestOptions) => Promise<{
3752
- id: string;
3753
- dataset_id: string;
3754
- status: "expired" | "ready";
3755
- schema_version: "smart-feed-v2";
3756
- selector: {
3757
- mode: "directory" | "combined";
3758
- inventory_basis: "listing_representation";
3759
- party_id?: string | undefined;
3760
- };
3761
- entitlement_fingerprint: string;
3762
- snapshot_sequence: string;
3763
- replay_cursor: string;
3764
- created_at: string;
3765
- expires_at: string;
3766
- }>;
3767
- snapshot: (id: string, options?: RequestOptions) => Promise<{
3768
- id: string;
3769
- dataset_id: string;
3770
- status: "expired" | "ready";
3771
- schema_version: "smart-feed-v2";
3772
- selector: {
3773
- mode: "directory" | "combined";
3774
- inventory_basis: "listing_representation";
3775
- party_id?: string | undefined;
3776
- };
3777
- entitlement_fingerprint: string;
3778
- snapshot_sequence: string;
3779
- replay_cursor: string;
3780
- created_at: string;
3781
- expires_at: string;
3782
- }>;
3783
- snapshotItems: (id: string, input?: Omit<InputRequest<"listDirectorySnapshotItems">, "id">, options?: RequestOptions) => Promise<{
3784
- data: ({
3785
- resource_type: "identity_resolution";
3786
- resource_id: string;
3787
- revision: string;
3788
- payload: {
3789
- id: string;
3790
- source_namespace: string;
3791
- kind: "office" | "professional" | "organization" | "team";
3792
- revision: string;
3793
- canonical_id: string | null;
3794
- state: "source_identity" | "canonical";
3795
- members: {
3796
- entity_id: string;
3797
- source_namespace: string;
3798
- }[];
3799
- };
3800
- } | {
3801
- resource_type: "listing";
3802
- resource_id: string;
3803
- revision: string;
3804
- payload: {
2264
+ status: "visible" | "hidden" | "removed";
2265
+ listing: {
3805
2266
  id: string;
3806
2267
  episode_id: string;
3807
2268
  revision: string;
@@ -4115,694 +2576,68 @@ export declare class ListingsClient {
4115
2576
  automated_valuation_display: boolean | null;
4116
2577
  consumer_comment: boolean | null;
4117
2578
  } | undefined;
4118
- };
4119
- } | {
4120
- resource_type: "entity";
4121
- resource_id: string;
4122
- revision: string;
4123
- payload: {
4124
- id: string;
4125
- kind: "office" | "professional" | "organization" | "team";
4126
- source_identities: {
4127
- source: string;
4128
- key: string;
4129
- key_kind: "source" | "derived_observation";
4130
- legacy_agent_id: string | null;
4131
- }[];
4132
- revision: string;
4133
- name: string | null;
4134
- fields: Record<string, string | number | boolean | null>;
4135
- field_evidence: Record<string, {
4136
- state: "supported" | "conflicting" | "withdrawn";
4137
- observation_ids: string[];
4138
- authority: "source_listing" | "product_verified" | "operator_verified";
4139
- source_modified_at: string | null;
4140
- }>;
4141
- resolution_state: "source_identity" | "provisional";
4142
- source_availability: "present" | "unrepresented";
4143
- first_seen_at: string;
4144
- last_seen_at: string;
4145
- updated_at: string;
4146
- };
4147
- } | {
4148
- resource_type: "relationship";
4149
- resource_id: string;
4150
- revision: string;
4151
- payload: {
4152
- id: string;
4153
- source: string;
4154
- subject_id: string;
4155
- object_id: string;
4156
- relationship: "observed_at_office" | "observed_brokerage" | "affiliated_with" | "operates" | "member_of";
4157
- evidence_state: "observed" | "verified";
4158
- authority: "source_listing" | "product_verified" | "operator_verified";
4159
- revision: string;
4160
- current: boolean;
4161
- listing_id: string | null;
4162
- observed_at: string;
4163
- effective_from: string | null;
4164
- effective_to: string | null;
4165
- evidence_ref: string;
4166
- };
4167
- })[];
4168
- has_more: boolean;
4169
- next_cursor: string | null;
4170
- meta: {
4171
- snapshot_sequence: string;
4172
- source_freshness: {
4173
- source: string;
4174
- last_completed_enumeration_at: string | null;
4175
- last_full_enumeration_at: string | null;
4176
- state: "stale" | "fresh" | "never_completed";
4177
- freshness_window_seconds: number;
4178
- full_enumeration_window_seconds?: number | undefined;
4179
- last_contact_at?: string | null | undefined;
4180
- last_contact_status?: number | null | undefined;
4181
- refresh?: {
4182
- state: "on_schedule" | "delayed" | "blocked";
4183
- cadence_seconds: number;
4184
- next_due_at: string;
4185
- phase: string | null;
4186
- last_attempt_at: string | null;
4187
- last_progress_at: string | null;
4188
- last_error_at: string | null;
4189
- error_code: string | null;
4190
- consecutive_failures: number;
4191
- } | undefined;
4192
- }[];
4193
- };
4194
- }>;
4195
- changes: (input: InputRequest<"listDirectoryChanges">, options?: RequestOptions) => Promise<{
4196
- data: {
4197
- sequence: string;
4198
- group_id: string;
4199
- group_end_sequence: string;
4200
- group_index: number;
4201
- group_size: number;
4202
- resource_type: "relationship" | "identity_resolution" | "listing" | "entity";
4203
- resource_id: string;
4204
- revision: string;
4205
- operation: "upsert" | "remove";
4206
- resource: {
4207
- resource_type: "identity_resolution";
4208
- resource_id: string;
4209
- revision: string;
4210
- payload: {
4211
- id: string;
4212
- source_namespace: string;
4213
- kind: "office" | "professional" | "organization" | "team";
4214
- revision: string;
4215
- canonical_id: string | null;
4216
- state: "source_identity" | "canonical";
4217
- members: {
4218
- entity_id: string;
4219
- source_namespace: string;
4220
- }[];
4221
- };
4222
- } | {
4223
- resource_type: "listing";
4224
- resource_id: string;
4225
- revision: string;
4226
- payload: {
4227
- id: string;
4228
- episode_id: string;
4229
- revision: string;
4230
- source_identities: {
4231
- source: string;
4232
- key: string;
4233
- }[];
4234
- market_status: "pending" | "unknown" | "expired" | "active" | "active_under_contract" | "sold" | "withdrawn";
4235
- source_availability: "present" | "removed_unknown";
4236
- display_eligibility: boolean;
4237
- price: {
4238
- amount: string;
4239
- currency: string;
4240
- period: string | null;
4241
- } | null;
4242
- address: {
4243
- street: string | null;
4244
- unit: string | null;
4245
- city: string | null;
4246
- region: string | null;
4247
- postal_code: string | null;
4248
- country: string | null;
2579
+ } | null;
2580
+ contacts?: {
2581
+ listing_id: string;
2582
+ agent_name: string | null;
2583
+ agent_email: string | null;
2584
+ agent_phone: string | null;
2585
+ agent_license: string | null;
2586
+ agent_website: string | null;
2587
+ lead_routing_email: string | null;
2588
+ preferred_email: string | null;
2589
+ professionals?: {
2590
+ agent: {
2591
+ email: string | null;
2592
+ preferred_phone: string | null;
2593
+ direct_phone: string | null;
2594
+ office_phone: string | null;
2595
+ fax: string | null;
2596
+ website_url: string | null;
4249
2597
  };
4250
- listing_agent_ids: string[];
4251
- description: string | null;
4252
- photos: string[];
4253
- property_type: string | null;
4254
- bedrooms: number | null;
4255
- bathrooms: number | null;
4256
- living_area: number | null;
4257
- source_url: string | null;
4258
- listed_date: string | null;
4259
- listed_precision: "unknown" | "date" | "instant";
4260
- open_houses: {
4261
- id: string;
4262
- start_at: string;
4263
- end_at: string | null;
4264
- timezone: string | null;
4265
- status: "scheduled" | "cancelled";
4266
- }[];
4267
- classifications: {
4268
- attribute: string;
4269
- value: string | number | boolean | null;
4270
- evidence_state: "supported" | "not_stated" | "conflicting" | "explicitly_absent";
4271
- origin: "source_structured" | "source_text_interpreted";
4272
- evidence_refs: string[];
4273
- input_fingerprint: string;
4274
- taxonomy_version: string;
4275
- evaluation_id: string;
4276
- freshness: "pending" | "current" | "invalidated" | "failed";
4277
- }[];
4278
- display: {
4279
- address_allowed: boolean;
4280
- disclaimer: string | null;
2598
+ office: {
2599
+ email: string | null;
2600
+ phone: string | null;
4281
2601
  };
4282
- freshness: {
4283
- last_seen_at: string;
4284
- published_at: string;
4285
- source_modified_at: string | null;
2602
+ brokerage: {
2603
+ email: string | null;
2604
+ phone: string | null;
2605
+ };
2606
+ builder: {
2607
+ email: string | null;
2608
+ phone: string | null;
2609
+ fax: string | null;
4286
2610
  };
4287
- property_id?: string | null | undefined;
4288
- transaction_type?: "unknown" | "conflicting" | "for_sale" | "for_rent" | undefined;
4289
- price_period_state?: "unknown" | "supported" | "not_stated" | "conflicting" | undefined;
4290
- photo_count?: number | undefined;
4291
- media?: {
4292
- url: string;
4293
- order: number;
4294
- caption: string | null;
4295
- width: number | null;
4296
- height: number | null;
4297
- modified_at: string | null;
4298
- delivery: "source_url" | "hosted";
4299
- renditions?: {
4300
- thumbnail: {
4301
- url: string;
4302
- max_width: number;
4303
- max_height: number;
4304
- };
4305
- map: {
4306
- url: string;
4307
- max_width: number;
4308
- max_height: number;
4309
- };
4310
- card: {
4311
- url: string;
4312
- max_width: number;
4313
- max_height: number;
4314
- };
4315
- gallery: {
4316
- url: string;
4317
- max_width: number;
4318
- max_height: number;
4319
- };
4320
- } | undefined;
4321
- }[] | undefined;
4322
- attribution?: {
4323
- agent_name: string | null;
4324
- office_name: string | null;
4325
- office_key: string | null;
4326
- office_phone: string | null;
4327
- office_website: string | null;
4328
- broker_name: string | null;
4329
- originating_system: string | null;
4330
- agent_license?: string | null | undefined;
4331
- broker_phone?: string | null | undefined;
4332
- } | undefined;
4333
- property_details?: {
4334
- category: string | null;
4335
- sub_type: string | null;
4336
- bathrooms_full: number | null;
4337
- bathrooms_half: number | null;
4338
- stories: number | null;
4339
- garage_spaces: number | null;
4340
- parking_total: number | null;
4341
- county: string | null;
4342
- subdivision: string | null;
4343
- features: Record<string, string[]>;
4344
- bathrooms_one_quarter?: number | null | undefined;
4345
- bathrooms_three_quarter?: number | null | undefined;
4346
- source_flags?: Partial<Record<"AssociationYN" | "AttachedGarageYN" | "BasementYN" | "CarportYN" | "CoolingYN" | "ElectricOnPropertyYN" | "FireplaceYN" | "GarageYN" | "HeatingYN" | "NewConstructionYN" | "PoolPrivateYN" | "SpaYN" | "WaterfrontYN" | "AccessibleElevatorInstalled" | "Dock", boolean>> | undefined;
4347
- association_fees?: {
4348
- kind: "association" | "association_secondary";
4349
- amount: string | null;
4350
- amount_state: "unknown" | "supported" | "not_stated";
4351
- currency: string | null;
4352
- currency_source: "field" | "source_default" | null;
4353
- currency_state: "unknown" | "supported" | "not_stated";
4354
- period: "year" | "day" | "week" | "month" | "quarter" | "half_year" | "one_time" | null;
4355
- period_state: "unknown" | "supported" | "not_stated";
4356
- source_paths: string[];
4357
- }[] | undefined;
4358
- rooms?: {
4359
- type: string | null;
4360
- level: string | null;
4361
- features: string[];
4362
- dimensions: string | null;
4363
- length: number | null;
4364
- width: number | null;
4365
- unit: string | null;
4366
- source_paths: string[];
4367
- }[] | undefined;
4368
- year_built_effective?: number | null | undefined;
4369
- units_total?: number | null | undefined;
4370
- entry_level?: number | null | undefined;
4371
- } | undefined;
4372
- raw_status?: string | null | undefined;
4373
- living_area_unit?: string | null | undefined;
4374
- lot_size?: number | null | undefined;
4375
- lot_size_unit?: string | null | undefined;
4376
- year_built?: number | null | undefined;
4377
- latitude?: number | null | undefined;
4378
- longitude?: number | null | undefined;
4379
- location?: {
4380
- state: "source" | "pending" | "resolved" | "coarse" | "unavailable" | "stale" | "suppressed";
4381
- origin: "source" | "geocoded" | null;
4382
- precision: "source_unknown" | "parcel" | "street" | "area" | "unknown";
4383
- map_eligible: boolean;
4384
- coordinates: {
4385
- latitude: number;
4386
- longitude: number;
4387
- } | null;
4388
- accuracy_score: number | null;
4389
- accuracy_type: string | null;
4390
- match_type: string | null;
4391
- provider: string | null;
4392
- provider_version: string | null;
4393
- policy_version: string;
4394
- source: string | null;
4395
- resolved_at: string | null;
4396
- valid_until: string | null;
4397
- country_code: string | null;
4398
- region_code: string | null;
4399
- timezone: string | null;
4400
- enrichment: {
4401
- provider: string;
4402
- provider_version: string;
4403
- resolved_at: string;
4404
- valid_until: string;
4405
- fields: ("timezone" | "census2025")[];
4406
- } | null;
4407
- geography: {
4408
- census_year: number;
4409
- state_fips: string | null;
4410
- county_fips: string | null;
4411
- tract_geoid: string | null;
4412
- block_geoid: string | null;
4413
- place_fips: string | null;
4414
- cbsa_code: string | null;
4415
- source: string | null;
4416
- } | null;
4417
- issue: "pending" | "invalid_source_point" | "insufficient_address" | "unsupported_country" | "no_match" | "low_quality" | "provider_failure" | "expired" | "display_restricted" | null;
4418
- } | undefined;
4419
- mls_number?: string | null | undefined;
4420
- source_amenities?: {
4421
- version: "source-amenities-v1";
4422
- values: Record<"hardwood" | "solar" | "ev_charger" | "rv_parking" | "view", {
4423
- value: boolean | null;
4424
- state: "supported" | "not_stated" | "conflicting";
4425
- source_paths: string[];
4426
- }>;
4427
- } | undefined;
4428
- search_document?: {
4429
- version: "catalog-search-text-v1";
4430
- text: string;
4431
- } | undefined;
4432
- content_hash?: string | undefined;
4433
- source_fields?: {
4434
- listhub: Record<string, import("zod").JSONType>;
4435
- } | undefined;
4436
- source_metadata?: {
4437
- contract_version: "catalog-fields-v2";
4438
- parser_version: string;
4439
- exposure_version: string;
4440
- source_system_id: string | null;
4441
- source_system_name: string | null;
4442
- originating_system_name: string | null;
4443
- source_photo_count: number | null;
4444
- supplied_paths: string[];
4445
- } | undefined;
4446
- market_dates?: {
4447
- listing_contract: {
4448
- value: string | null;
4449
- precision: "unknown" | "date" | "instant";
4450
- };
4451
- on_market: {
4452
- value: string | null;
4453
- precision: "unknown" | "date" | "instant";
4454
- };
4455
- source_days_on_market: number | null;
4456
- source_cumulative_days_on_market: number | null;
4457
- } | undefined;
4458
- taxes?: {
4459
- annual_amount: string | null;
4460
- currency: string | null;
4461
- year: number | null;
4462
- } | undefined;
4463
- schools?: {
4464
- level: "elementary" | "middle" | "high";
4465
- name: string | null;
4466
- district: string | null;
4467
- }[] | undefined;
4468
- price_history?: {
4469
- original_amount: string | null;
4470
- previous_amount: string | null;
4471
- low_amount: string | null;
4472
- currency: string | null;
4473
- original_currency: string | null;
4474
- previous_currency: string | null;
4475
- low_currency: string | null;
4476
- changed_at: {
4477
- value: string | null;
4478
- precision: "unknown" | "date" | "instant";
4479
- };
4480
- } | undefined;
4481
- virtual_tours?: {
4482
- branded_url: string | null;
4483
- unbranded_url: string | null;
4484
- } | undefined;
4485
- additional_media?: {
4486
- url: string;
4487
- categories: string[];
4488
- order: number;
4489
- caption: string | null;
4490
- }[] | undefined;
4491
- professionals?: {
4492
- agent: {
4493
- full_name: string | null;
4494
- first_name: string | null;
4495
- last_name: string | null;
4496
- license: string | null;
4497
- };
4498
- office: {
4499
- key: string | null;
4500
- mls_id: string | null;
4501
- name: string | null;
4502
- broker_mls_id: string | null;
4503
- corporate_id: string | null;
4504
- main_office_id: string | null;
4505
- website_url: string | null;
4506
- address: {
4507
- street: string | null;
4508
- unit: string | null;
4509
- city: string | null;
4510
- region: string | null;
4511
- postal_code: string | null;
4512
- country: string | null;
4513
- };
4514
- };
4515
- brokerage: {
4516
- name: string | null;
4517
- website_url: string | null;
4518
- logo_url: string | null;
4519
- address: {
4520
- street: string | null;
4521
- unit: string | null;
4522
- city: string | null;
4523
- region: string | null;
4524
- postal_code: string | null;
4525
- country: string | null;
4526
- };
4527
- };
4528
- builder: {
4529
- name: string | null;
4530
- };
4531
- franchise: string | null;
4532
- } | undefined;
4533
- permissions?: {
4534
- internet_display: boolean | null;
4535
- entire_listing_display: boolean | null;
4536
- address_display: boolean | null;
4537
- automated_valuation_display: boolean | null;
4538
- consumer_comment: boolean | null;
4539
- } | undefined;
4540
- };
4541
- } | {
4542
- resource_type: "entity";
4543
- resource_id: string;
4544
- revision: string;
4545
- payload: {
4546
- id: string;
4547
- kind: "office" | "professional" | "organization" | "team";
4548
- source_identities: {
4549
- source: string;
4550
- key: string;
4551
- key_kind: "source" | "derived_observation";
4552
- legacy_agent_id: string | null;
4553
- }[];
4554
- revision: string;
4555
- name: string | null;
4556
- fields: Record<string, string | number | boolean | null>;
4557
- field_evidence: Record<string, {
4558
- state: "supported" | "conflicting" | "withdrawn";
4559
- observation_ids: string[];
4560
- authority: "source_listing" | "product_verified" | "operator_verified";
4561
- source_modified_at: string | null;
4562
- }>;
4563
- resolution_state: "source_identity" | "provisional";
4564
- source_availability: "present" | "unrepresented";
4565
- first_seen_at: string;
4566
- last_seen_at: string;
4567
- updated_at: string;
4568
- };
4569
- } | {
4570
- resource_type: "relationship";
4571
- resource_id: string;
4572
- revision: string;
4573
- payload: {
4574
- id: string;
4575
- source: string;
4576
- subject_id: string;
4577
- object_id: string;
4578
- relationship: "observed_at_office" | "observed_brokerage" | "affiliated_with" | "operates" | "member_of";
4579
- evidence_state: "observed" | "verified";
4580
- authority: "source_listing" | "product_verified" | "operator_verified";
4581
- revision: string;
4582
- current: boolean;
4583
- listing_id: string | null;
4584
- observed_at: string;
4585
- effective_from: string | null;
4586
- effective_to: string | null;
4587
- evidence_ref: string;
4588
- };
4589
- } | null;
4590
- }[];
4591
- has_more: boolean;
4592
- next_cursor: string;
4593
- meta: {
4594
- published_sequence: string;
4595
- source_freshness: {
4596
- source: string;
4597
- last_completed_enumeration_at: string | null;
4598
- last_full_enumeration_at: string | null;
4599
- state: "stale" | "fresh" | "never_completed";
4600
- freshness_window_seconds: number;
4601
- full_enumeration_window_seconds?: number | undefined;
4602
- last_contact_at?: string | null | undefined;
4603
- last_contact_status?: number | null | undefined;
4604
- refresh?: {
4605
- state: "on_schedule" | "delayed" | "blocked";
4606
- cadence_seconds: number;
4607
- next_due_at: string;
4608
- phase: string | null;
4609
- last_attempt_at: string | null;
4610
- last_progress_at: string | null;
4611
- last_error_at: string | null;
4612
- error_code: string | null;
4613
- consecutive_failures: number;
4614
2611
  } | undefined;
4615
- }[];
4616
- };
4617
- }>;
4618
- };
4619
- readonly directoryActions: {
4620
- claim: (input: InputRequest<"claimDirectoryActions">, options: RequestOptions) => Promise<{
4621
- plan_id: string;
4622
- actions: {
4623
- id: string;
4624
- plan_id: string;
4625
- intent_id: string;
4626
- subject_id: string;
4627
- state: "unknown" | "invalidated" | "reserved" | "dispatching" | "accepted" | "delivered" | "rejected";
4628
- provider: string;
4629
- provider_idempotency_key: string;
4630
- created_at: string;
4631
- valid_until: string;
4632
- lease_expires_at: string;
4633
- accepted_at: string | null;
4634
- attempt_id: string | null;
4635
- simulation: boolean;
4636
- lease_token: string;
4637
- endpoint: string;
4638
- authority: "preparation_only";
4639
- }[];
4640
- exclusions: {
4641
- intent_id: string;
4642
- code: string;
4643
- }[];
4644
- }>;
4645
- startAttempt: (input: InputRequest<"startDirectoryAttempt">, options: RequestOptions) => Promise<{
4646
- id: string;
4647
- action_id: string;
4648
- provider: string;
4649
- provider_idempotency_key: string;
4650
- state: "unknown" | "invalidated" | "reserved" | "dispatching" | "accepted" | "delivered" | "rejected";
4651
- started_at: string;
4652
- replayed: boolean;
4653
- instruction: "execute_once" | "reconcile_only";
4654
- simulation: boolean;
4655
- }>;
4656
- get: (id: string, options?: RequestOptions) => Promise<{
4657
- id: string;
4658
- plan_id: string;
4659
- intent_id: string;
4660
- subject_id: string;
4661
- state: "unknown" | "invalidated" | "reserved" | "dispatching" | "accepted" | "delivered" | "rejected";
4662
- provider: string;
4663
- provider_idempotency_key: string;
4664
- created_at: string;
4665
- valid_until: string;
4666
- lease_expires_at: string;
4667
- accepted_at: string | null;
4668
- attempt_id: string | null;
4669
- simulation: boolean;
4670
- }>;
4671
- outcomes: (input: InputRequest<"recordDirectoryActionOutcomes">, options: RequestOptions) => Promise<{
4672
- results: {
4673
- event_id: string;
4674
- status: "accepted" | "rejected" | "duplicate";
4675
- code: string | null;
2612
+ source_fields?: {
2613
+ listhub: Record<string, import("zod").JSONType>;
2614
+ } | undefined;
2615
+ } | null | undefined;
4676
2616
  }[];
2617
+ next_cursor: string | null;
2618
+ has_more: boolean;
2619
+ meta: Record<string, import("zod").JSONType>;
4677
2620
  }>;
4678
- };
4679
- readonly opportunityPlans: {
4680
- create: (input: InputRequest<"createPlan">, options: RequestOptions) => Promise<{
4681
- id: string;
4682
- profile_id: string;
4683
- business_date: string;
4684
- timezone: string;
4685
- status: "expired" | "cancelled" | "failed" | "ready" | "queued" | "building";
4686
- requested_count: number;
4687
- selected_count: number;
4688
- unique_recipients: number;
4689
- reserve_count: number;
4690
- shortfall: number;
4691
- completeness: "partial" | "complete" | "pending";
4692
- decision_mode: "fixture" | "jev" | "cached_jev";
4693
- created_at: string;
4694
- expires_at: string;
4695
- policy_revision: string;
4696
- exclusions: Record<string, number>;
4697
- cutoffs: Record<string, string>;
4698
- execution_counts?: Record<string, number> | undefined;
4699
- }>;
4700
- get: (id: string, options?: RequestOptions) => Promise<{
4701
- id: string;
4702
- profile_id: string;
4703
- business_date: string;
4704
- timezone: string;
4705
- status: "expired" | "cancelled" | "failed" | "ready" | "queued" | "building";
4706
- requested_count: number;
4707
- selected_count: number;
4708
- unique_recipients: number;
4709
- reserve_count: number;
4710
- shortfall: number;
4711
- completeness: "partial" | "complete" | "pending";
4712
- decision_mode: "fixture" | "jev" | "cached_jev";
4713
- created_at: string;
4714
- expires_at: string;
4715
- policy_revision: string;
4716
- exclusions: Record<string, number>;
4717
- cutoffs: Record<string, string>;
4718
- execution_counts?: Record<string, number> | undefined;
4719
- }>;
4720
- items: (id: string, input?: Omit<InputRequest<"listPlanItems">, "id">, options?: RequestOptions) => Promise<{
2621
+ opportunityObservations: (input?: InputRequest<"listEvents">, options?: RequestOptions) => Promise<{
4721
2622
  data: {
2623
+ schema_version: "opportunity-observation-v1";
4722
2624
  id: string;
4723
- slot: number;
4724
- rank: number;
4725
- opportunity_id: string;
2625
+ sequence: string;
4726
2626
  listing_id: string;
4727
2627
  episode_id: string;
4728
- recipient_id: string;
4729
- primary_angle: string;
4730
- trigger_event_ids: string[];
4731
- supporting_evidence_refs: string[];
4732
- reason_codes: string[];
4733
- valid_until: string;
4734
- execution_state: "unknown" | "invalidated" | "reserved" | "dispatching" | "accepted" | "delivered" | "rejected" | "unclaimed";
4735
- action_id: string | null;
4736
- replacement?: {
4737
- item_id: string;
4738
- opportunity_id: string;
4739
- listing_id: string;
4740
- recipient_id: string;
4741
- reason: string;
4742
- replaced_at: string;
4743
- } | undefined;
2628
+ type: "new_to_market" | "price_drop" | "open_house_changed" | "open_house_scheduled" | "market_age_milestone" | "source_removed";
2629
+ received_at: string;
2630
+ occurred_at: string;
2631
+ evidence: Record<string, import("zod").JSONType>;
2632
+ requires_current_eligibility: true;
2633
+ authorizes_order: false;
4744
2634
  }[];
4745
2635
  next_cursor: string | null;
4746
2636
  has_more: boolean;
4747
2637
  meta: Record<string, import("zod").JSONType>;
4748
2638
  }>;
4749
- claimDispatchBatch: (input: InputRequest<"claimDispatchBatch">, options: RequestOptions) => Promise<{
4750
- id: string;
4751
- plan_id: string;
4752
- actions: {
4753
- id: string;
4754
- plan_item_id: string;
4755
- listing_id: string;
4756
- recipient_id: string;
4757
- action_kind: string;
4758
- lease_token: string;
4759
- lease_expires_at: string;
4760
- endpoint: string;
4761
- payload: Record<string, import("zod").JSONType>;
4762
- }[];
4763
- exhausted: boolean;
4764
- }>;
4765
- waitUntilReady: (id: string, options?: RequestOptions & {
4766
- maxWaitMs?: number;
4767
- }) => Promise<{
4768
- id: string;
4769
- profile_id: string;
4770
- business_date: string;
4771
- timezone: string;
4772
- status: "expired" | "cancelled" | "failed" | "ready" | "queued" | "building";
4773
- requested_count: number;
4774
- selected_count: number;
4775
- unique_recipients: number;
4776
- reserve_count: number;
4777
- shortfall: number;
4778
- completeness: "partial" | "complete" | "pending";
4779
- decision_mode: "fixture" | "jev" | "cached_jev";
4780
- created_at: string;
4781
- expires_at: string;
4782
- policy_revision: string;
4783
- exclusions: Record<string, number>;
4784
- cutoffs: Record<string, string>;
4785
- execution_counts?: Record<string, number> | undefined;
4786
- }>;
4787
- };
4788
- readonly actions: {
4789
- startAttempt: (id: string, input: Omit<InputRequest<"startAttempt">, "id">, options: RequestOptions) => Promise<{
4790
- id: string;
4791
- action_id: string;
4792
- provider_idempotency_key: string;
4793
- state: "dispatching";
4794
- started_at: string;
4795
- replayed: boolean;
4796
- }>;
4797
- outcomes: (input: InputRequest<"recordActionOutcomes">, options: RequestOptions) => Promise<{
4798
- results: {
4799
- event_id: string;
4800
- status: "accepted" | "rejected" | "duplicate";
4801
- code: string | null;
4802
- }[];
4803
- }>;
4804
2639
  };
4805
- /** Live browsing only. Use catalog snapshots for a complete, consistent inventory replica. */
2640
+ /** Live browsing over the current catalog; pages are not a point-in-time snapshot. */
4806
2641
  iterateListings(input?: InputRequest<'listListings'>, options?: RequestOptions): AsyncGenerator<{
4807
2642
  id: string;
4808
2643
  episode_id: string;