@bowmark/web 1.15.0 → 1.16.1

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.
@@ -5,8 +5,8 @@
5
5
  // rather than imported. An `import` or `export` at the top level of this file would
6
6
  // turn it into a module and every declaration below would stop being global.
7
7
  //
8
- // Manifest version: 23b6633ded987b433276311bd6c89f96297649a628b9687bc4fbd8d39745a4ee
9
- // 43 capabilities, 331 providers, 833 typed functions, 20 refused.
8
+ // Manifest version: ab1045c2b0a9094f69fd97b6a8be00087ae7b8871ef4e274bb3bb248203dbcea
9
+ // 44 capabilities, 348 providers, 874 typed functions, 20 refused.
10
10
  // 51,715 family members, sharing 2 interface(s) — declared once and pointed at, never repeated per member.
11
11
  //
12
12
  // REFUSED — these functions are real and callable, and their declared arguments
@@ -1928,6 +1928,49 @@ type CallOptions = {
1928
1928
  }
1929
1929
  }
1930
1930
 
1931
+ declare namespace BowmarkCapability_prospect_screening {
1932
+ // ── Prospect screening — mid-market + a public interactive flow — the unit's own declarations, verbatim ──
1933
+
1934
+ type InteractiveFlowKind =
1935
+ | "booking" | "quote" | "configurator" | "checkout" | "application" | "scheduling" | "other"
1936
+
1937
+ interface InteractiveFlowSignal {
1938
+ found: boolean
1939
+ kind: InteractiveFlowKind | null
1940
+ url: string | null // the homepage itself, or a link found off it
1941
+ evidence: string | null // the text/attribute that matched, for an audit trail
1942
+ }
1943
+
1944
+ interface CompanySizeSignal {
1945
+ employeeCount: number | null
1946
+ employeeCountText: string | null // e.g. "201-500 employees"
1947
+ source: "schema-org" | "unknown"
1948
+ }
1949
+
1950
+ interface ProspectScreeningResult {
1951
+ domain: string
1952
+ fetchedUrl: string
1953
+ sizeSignal: CompanySizeSignal
1954
+ interactiveFlow: InteractiveFlowSignal
1955
+ verdict: "candidate" | "no-interactive-flow" | "not-mid-market" | "insufficient-size-data"
1956
+ warnings: string[]
1957
+ }
1958
+
1959
+ /**
1960
+ * Given a company's domain, checks whether its own site publishes a mid-market employee-count
1961
+ * signal and a public interactive goal flow (booking, quote, configurator, checkout) — a fast
1962
+ * screen before spending outbound research time on a candidate.
1963
+ */
1964
+ interface Unit {
1965
+ /**
1966
+ * Fetches the homepage, reads any schema.org employee-count signal and any
1967
+ * booking/quote/configurator/checkout link or form, and returns a verdict for outbound
1968
+ * qualification.
1969
+ */
1970
+ screenCompany(domain: string): Promise<ProspectScreeningResult>;
1971
+ }
1972
+ }
1973
+
1931
1974
  declare namespace BowmarkCapability_read {
1932
1975
  // ── Read any page (markdown, text or HTML) — the unit's own declarations, verbatim ──
1933
1976
 
@@ -2204,10 +2247,14 @@ type CallOptions = {
2204
2247
  * Searches news coverage and returns stories with the headline, the outlet's own article URL,
2205
2248
  * a summary, the publisher's name and a real publication timestamp. Use this rather than `web`
2206
2249
  * whenever the question is about what happened or when — `web`'s dates are commonly the
2207
- * engine's crawl stamp, and these are the story's own. NOT MEASURED on the two limits `web`
2208
- * declares: nobody has checked whether this feed returns an empty list for a query with no
2209
- * coverage, or whether it honours operators. Treat both as unknown rather than as working
2210
- * `web`'s answers are the ones with fixtures behind them.
2250
+ * engine's crawl stamp, and these are the story's own. ZERO RESULTS HERE ARE NOT EVIDENCE OF
2251
+ * ABSENCE, and this is the opposite of `web`: unlike the web feed, the news feed CAN return an
2252
+ * empty list, so a zero is a real possible answer but it is also what a thin or throttled
2253
+ * response looks like. Measured 2026-09-08: five identical calls for one query on one route
2254
+ * inside ten seconds returned 4, 3, 2, 3 and 0 rows, and two exits disagreed (0 against 3) on
2255
+ * that query in the same minute. Every zero therefore arrives carrying a warning saying so;
2256
+ * RETRY before reporting that nothing has been written about something. Still NOT MEASURED:
2257
+ * whether this feed honours search operators — treat that as unknown.
2211
2258
  */
2212
2259
  news(query: string | { query: string, limit?: number }, limit?: number, options?: CallOptions): Promise<SearchNewsResult>;
2213
2260
  }
@@ -2639,6 +2686,70 @@ type CallOptions = {
2639
2686
  }
2640
2687
  }
2641
2688
 
2689
+ declare namespace BowmarkProvider_a1storage {
2690
+ // ── A-1 Self Storage — the unit's own declarations, verbatim ──
2691
+ // A-1 Self Storage's OWN shapes — not a capability contract.
2692
+
2693
+ interface a1storageFacility {
2694
+ facilityId: string; // the id getFacilityUnits/getMoveInCost take
2695
+ name: string; address: string; city: string; state: string; zip: string;
2696
+ phone: string; email: string;
2697
+ lat: number | null; lng: number | null;
2698
+ locationUrl: string; // the facility's public page, verified against A-1's own sitemap
2699
+ }
2700
+
2701
+ interface a1storageFacilitySearchFilters { state?: string; city?: string }
2702
+
2703
+ interface a1storageUnitGroup {
2704
+ unitId: string; // the id getMoveInCost's unitId takes
2705
+ length: number; width: number; areaSqFt: number;
2706
+ categoryName: string; // e.g. "Medium"
2707
+ features: string[]; // the site's own labels — read the values off a result, never guess one from prose
2708
+ availableCount: number;
2709
+ regularPrice: number | null;
2710
+ promoPrice: number | null; // null when no promo is currently active
2711
+ promoLabel: string | null;
2712
+ }
2713
+
2714
+ interface a1storageCharge { description: string; charge: number; tax: number; total: number }
2715
+
2716
+ interface a1storageMoveInCost {
2717
+ charges: a1storageCharge[];
2718
+ subtotal: number; taxes: number; total: number;
2719
+ firstMonthRent: number;
2720
+ promotionName: string | null;
2721
+ }
2722
+
2723
+ /**
2724
+ * Reads A-1 Self Storage's own live unit availability, pricing and per-unit itemized move-in
2725
+ * cost — real size, category, live rate and any active promo, and the exact pre-rental total
2726
+ * for a selected unit — off the site's own Storage Essentials REST API, the way its facility
2727
+ * pages compute the same numbers client-side.
2728
+ */
2729
+ interface Unit {
2730
+ /**
2731
+ * Lists every A-1 Self Storage facility (51 today), optionally narrowed by US state or city.
2732
+ * Each row carries the facilityId getFacilityUnits/getMoveInCost take, plus address, phone,
2733
+ * email, lat/lng and a public locationUrl.
2734
+ */
2735
+ listFacilities(filters?: a1storageFacilitySearchFilters): Promise<a1storageFacility[]>;
2736
+
2737
+ /**
2738
+ * Reads one facility's live unit inventory by size group: real dimensions, category, current
2739
+ * availability, the standard web rate and any active promo rate. THROWS on an unknown
2740
+ * facilityId — call listFacilities() first.
2741
+ */
2742
+ getFacilityUnits(facilityId: string): Promise<a1storageUnitGroup[]>;
2743
+
2744
+ /**
2745
+ * Computes the itemized pre-rental move-in cost for one selected unit — rent, admin fee,
2746
+ * deposit, subtotal and total — before any tenant, ID or payment step. THROWS on an unknown
2747
+ * facilityId/unitId pair — call getFacilityUnits() first.
2748
+ */
2749
+ getMoveInCost(facilityId: string, unitId: string): Promise<a1storageMoveInCost>;
2750
+ }
2751
+ }
2752
+
2642
2753
  declare namespace BowmarkProvider_aa {
2643
2754
  // ── American Airlines — the unit's own declarations, verbatim ──
2644
2755
  interface aaFlight {
@@ -2694,7 +2805,7 @@ interface aaFlightStatusResult {
2694
2805
 
2695
2806
  interface aaReservation {
2696
2807
  recordLocator: string;
2697
- status: string | null;
2808
+ status: string | null; // the site's own labels — read the values off a result, never guess one from prose
2698
2809
  bookingTime: string | null;
2699
2810
  passengers: aaReservationPassenger[];
2700
2811
  itinerary: aaReservationSlice[];
@@ -2717,7 +2828,7 @@ interface aaReservationSegment {
2717
2828
  flightNumber: string | null;
2718
2829
  marketingCarrierCode: string | null;
2719
2830
  operatingCarrierCode: string | null;
2720
- cabinType: string | null;
2831
+ cabinType: string | null; // the site's own labels — read the values off a result, never guess one from prose
2721
2832
  bookingCode: string | null;
2722
2833
  departureDateTime: string | null;
2723
2834
  legs: aaReservationLeg[];
@@ -2956,7 +3067,7 @@ interface abercrombieProduct {
2956
3067
  listPriceHigh: number | null;
2957
3068
  currency: string;
2958
3069
  onSale: boolean;
2959
- availability: string | null;
3070
+ availability: string | null; // the site's own labels — read the values off a result, never guess one from prose
2960
3071
  rating: number | null;
2961
3072
  reviewCount: number;
2962
3073
  images: string[];
@@ -3147,6 +3258,31 @@ interface abercrombieStockQuery {
3147
3258
  }
3148
3259
  }
3149
3260
 
3261
+ declare namespace BowmarkProvider_acerentacar {
3262
+ // ── ACE Rent A Car — the unit's own declarations, verbatim ──
3263
+ interface AcerentacarSearchArgs { pickupLocationCode: string; pickupDate: string; dropoffDate: string; pickupTime?: string; dropoffTime?: string; }
3264
+ interface AcerentacarVehicle { code: string; name: string; type: string; category: string; passengers: number; baggage: number; automatic: boolean; currencyCode: string; rates: { bidId: string; baseRate: number; totalAmount: number; prepaid: boolean }[]; reservationUrl: string; }
3265
+ interface AcerentacarLocation { code: string; name: string; city: string; state: string | null; countryISO: string; }
3266
+
3267
+ /**
3268
+ * ACE Rent A Car's live public vehicle availability and rates for a location and itinerary,
3269
+ * with a reservation handoff.
3270
+ */
3271
+ interface Unit {
3272
+ /**
3273
+ * Returns ACE's live available vehicle classes and rate totals for a public pickup location
3274
+ * and itinerary, plus a reservation handoff URL.
3275
+ */
3276
+ searchAvailability(args: AcerentacarSearchArgs): Promise<AcerentacarVehicle[]>;
3277
+
3278
+ /**
3279
+ * Matches a free-text city, airport or state against ACE's public location catalog and returns
3280
+ * the location codes searchAvailability needs.
3281
+ */
3282
+ searchLocations(args: { query: string }): Promise<AcerentacarLocation[]>;
3283
+ }
3284
+ }
3285
+
3150
3286
  declare namespace BowmarkProvider_achosahw {
3151
3287
  // ── Achosa Home Warranty — the unit's own declarations, verbatim ──
3152
3288
  // Achosa's OWN shapes — not a capability contract.
@@ -3607,7 +3743,7 @@ interface AndersenDealer {
3607
3743
  name: string;
3608
3744
  address: AndersenDealerAddress;
3609
3745
  phone: string | null;
3610
- tier: string;
3746
+ tier: string; // the site's own labels — read the values off a result, never guess one from prose
3611
3747
  accountType: string;
3612
3748
  distanceMiles: number;
3613
3749
  lat: number;
@@ -3641,7 +3777,7 @@ interface AndstrSearchArgs {
3641
3777
  bedrooms?: number;
3642
3778
  priceMin?: number;
3643
3779
  priceMax?: number;
3644
- propertyType?: string;
3780
+ propertyType?: string; // the site's own labels — read the values off a result, never guess one from prose
3645
3781
  instantBook?: boolean;
3646
3782
  page?: number;
3647
3783
  }
@@ -3672,7 +3808,7 @@ interface AndstrListingDetail {
3672
3808
  maxGuests: number;
3673
3809
  listedFromPerNight: number;
3674
3810
  currency: string;
3675
- amenities: string[];
3811
+ amenities: string[]; // the site's own labels — read the values off a result, never guess one from prose
3676
3812
  cancellationPolicy: string | null;
3677
3813
  latitude: number | null;
3678
3814
  longitude: number | null;
@@ -4066,6 +4202,35 @@ interface ArchipelagoGameOptions {
4066
4202
  }
4067
4203
  }
4068
4204
 
4205
+ declare namespace BowmarkProvider_archive_org {
4206
+ // ── Wayback Machine (archive.org) — the unit's own declarations, verbatim ──
4207
+ interface archive_orgAvailability {
4208
+ query: string;
4209
+ available: boolean;
4210
+ archivedUrl: string | null;
4211
+ archivedTimestamp: string | null; // YYYYMMDDhhmmss
4212
+ archivedStatus: string | null; // the original page's own HTTP status when captured
4213
+ }
4214
+
4215
+ /**
4216
+ * The Wayback Machine's own public availability lookup — is a site or page archived, and
4217
+ * where.
4218
+ */
4219
+ interface Unit {
4220
+ /**
4221
+ * Checks the Wayback Machine's own public availability endpoint for one site or page — a bare
4222
+ * domain ("carpetlandusa.net"), a domain plus path
4223
+ * ("carpetlandusa.net/schedule-pre-measure/"), or a full URL. Returns whether ANY capture
4224
+ * exists, and — when one does — its own browsable `archivedUrl`, its `archivedTimestamp`
4225
+ * (`YYYYMMDDhhmmss`) and the original page's `archivedStatus` at capture time. `timestamp`
4226
+ * (`YYYYMMDDhhmmss`, or a shorter prefix like `20260615`) asks for the capture CLOSEST to that
4227
+ * moment; omit it for the most recent capture. This is the availability check only — it does
4228
+ * not fetch the archived page's own content.
4229
+ */
4230
+ checkAvailability(site: string, timestamp?: string): Promise<archive_orgAvailability>;
4231
+ }
4232
+ }
4233
+
4069
4234
  declare namespace BowmarkProvider_artpix3d {
4070
4235
  // ── ArtPix 3D — the unit's own declarations, verbatim ──
4071
4236
  // ArtPix 3D's OWN shapes — not a capability contract.
@@ -4095,6 +4260,12 @@ interface Artpix3dProductPricing {
4095
4260
  * labels — the way the site's own size-picker computes it, real-time.
4096
4261
  */
4097
4262
  interface Unit {
4263
+ /**
4264
+ * Lists every ArtPix 3D Photo Crystal shape currently sold (rectangle, heart, square, …), each
4265
+ * with its product page URL.
4266
+ */
4267
+ listPhotoCrystalShapes(): Promise<Artpix3dShape[]>;
4268
+
4098
4269
  /**
4099
4270
  * Lists every crystal shape ArtPix 3D currently sells (rectangle, heart, square, …), each with
4100
4271
  * its own product page URL.
@@ -4438,7 +4609,7 @@ interface AutocampRate {
4438
4609
 
4439
4610
  interface AutocampRoomAvailability {
4440
4611
  roomCategory: string | null;
4441
- roomType: string;
4612
+ roomType: string; // the site's own labels — read the values off a result, never guess one from prose
4442
4613
  bedInfo: string | null;
4443
4614
  sleeps: string | null;
4444
4615
  rates: AutocampRate[];
@@ -5295,7 +5466,7 @@ interface BeltserviceCatalogItem {
5295
5466
  catalogNumber: string;
5296
5467
  partNumber: string;
5297
5468
  name: string;
5298
- grade: string | null;
5469
+ grade: string | null; // the site's own labels — read the values off a result, never guess one from prose
5299
5470
  specSheetUrl: string | null;
5300
5471
  detailUrl: string;
5301
5472
  quoteUrl: string;
@@ -6060,7 +6231,7 @@ interface BmwusaCpoVehicle {
6060
6231
  odometer: number;
6061
6232
  price: number;
6062
6233
  drivetrain: string;
6063
- fuelType: string;
6234
+ fuelType: string; // the site's own labels — read the values off a result, never guess one from prose
6064
6235
  vdpUrl: string;
6065
6236
  photos: string[];
6066
6237
  dealer: BmwusaCpoDealer;
@@ -6082,10 +6253,11 @@ interface BmwusaModelTrim {
6082
6253
  zeroToSixty: number | null;
6083
6254
  horsepower: number | null;
6084
6255
  startingMsrp: number | null;
6256
+ buildable: boolean;
6085
6257
  engineType: string | null;
6086
6258
  drivetrain: string | null;
6087
6259
  transmission: string | null;
6088
- fuelType: string | null;
6260
+ fuelType: string | null; // the site's own labels — read the values off a result, never guess one from prose
6089
6261
  fuelEfficiency: { city: number | null; highway: number | null; combined: number | null; unit: string } | null;
6090
6262
  seatingCapacity: number | null;
6091
6263
  }
@@ -6877,7 +7049,7 @@ interface CabinsforyouCabinDetail {
6877
7049
  sleeps: number | null;
6878
7050
  parking: string | null;
6879
7051
  petsAllowed: boolean | null;
6880
- amenities: string[];
7052
+ amenities: string[]; // the site's own labels — read the values off a result, never guess one from prose
6881
7053
  rating: number | null;
6882
7054
  reviewCount: number | null;
6883
7055
  description: string;
@@ -7349,6 +7521,120 @@ interface CarePatrolFindLocalAdvisorResult {
7349
7521
  }
7350
7522
  }
7351
7523
 
7524
+ declare namespace BowmarkProvider_carlsgolfland {
7525
+ // ── Carl's Golfland — the unit's own declarations, verbatim ──
7526
+ // Carl's Golfland's OWN shapes — not a capability contract.
7527
+
7528
+ interface CglProductSummary {
7529
+ urlKey: string; // the key getProduct takes
7530
+ sku: string;
7531
+ name: string;
7532
+ url: string;
7533
+ stockStatus: string; // "IN_STOCK" | "OUT_OF_STOCK"
7534
+ basePrice: number;
7535
+ basePriceFormatted: string; // "$447.00"
7536
+ }
7537
+
7538
+ interface CglOptionChoice { label: string; valueIndex: number }
7539
+
7540
+ interface CglOption {
7541
+ groupLabel: string; // "Hand", "Driver Loft", "Shaft" — the real group name
7542
+ attributeCode: string;
7543
+ choices: CglOptionChoice[];
7544
+ }
7545
+
7546
+ interface CglVariant {
7547
+ sku: string;
7548
+ stockStatus: string; // the site's own labels — read the values off a result, never guess one from prose
7549
+ price: number;
7550
+ priceFormatted: string;
7551
+ selections: Record<string, number>; // attributeCode -> valueIndex
7552
+ }
7553
+
7554
+ interface CglProduct {
7555
+ urlKey: string;
7556
+ sku: string;
7557
+ name: string;
7558
+ url: string;
7559
+ stockStatus: string; // the site's own labels — read the values off a result, never guess one from prose
7560
+ basePrice: number;
7561
+ basePriceFormatted: string;
7562
+ options: CglOption[];
7563
+ variants: CglVariant[];
7564
+ }
7565
+
7566
+ interface CglPriceResult {
7567
+ urlKey: string;
7568
+ sku: string;
7569
+ variantSku: string | null; // null until every multi-choice group is picked
7570
+ stockStatus: string | null; // the site's own labels — read the values off a result, never guess one from prose
7571
+ price: number | null;
7572
+ priceFormatted: string | null;
7573
+ applied: { group: string; choice: string }[];
7574
+ missingGroups: string[]; // groups with >1 choice and no selection applied
7575
+ unmatched: string[]; // selections that didn't match a real group/choice
7576
+ handoffUrl: string; // the product's entry page
7577
+ }
7578
+
7579
+ interface CglCartHandoff {
7580
+ urlKey: string;
7581
+ sku: string;
7582
+ name: string;
7583
+ url: string; // the product page — Carl's Golfland publishes no query-param deep link
7584
+ applied: { group: string; choice: string }[];
7585
+ price: number | null;
7586
+ priceFormatted: string | null;
7587
+ stockStatus: string | null; // the site's own labels — read the values off a result, never guess one from prose
7588
+ missingGroups: string[];
7589
+ unmatched: string[];
7590
+ }
7591
+
7592
+ /**
7593
+ * Carl's Golfland's golf-equipment catalog — search live inventory, read one product's real
7594
+ * configurable options (hand, loft, shaft) with each combination's exact price and stock
7595
+ * status, and resolve a specific configuration to its real variant rather than a researched
7596
+ * estimate.
7597
+ */
7598
+ interface Unit {
7599
+ /**
7600
+ * Searches Carl's Golfland's golf-equipment catalog by free text (e.g. "driver", "putter") and
7601
+ * returns every match's urlKey, SKU, name, entry URL, stock status and starting price. The
7602
+ * `urlKey` on each row is what getProduct takes.
7603
+ */
7604
+ searchProducts(query: string): Promise<CglProductSummary[]>;
7605
+
7606
+ /**
7607
+ * Reads one product's full configurable-option set (e.g. Hand, Driver Loft, Shaft) with each
7608
+ * choice's real label, plus every real buildable variant's exact price and stock status.
7609
+ * THROWS on an unknown urlKey, naming searchProducts() as the way to find current ones.
7610
+ */
7611
+ getProduct(urlKey: string): Promise<CglProduct>;
7612
+
7613
+ /**
7614
+ * Resolves ONE specific configuration — selections keyed by option group (case-insensitive),
7615
+ * e.g. { "Hand": "Right", "Driver Loft": "10.5*", "Shaft": "PING ALTA CB Blue 50 Regular" } —
7616
+ * against the product's live options and returns the matching variant's real price and stock
7617
+ * status, the applied choices, and the site URL to re-pick the same choices (Carl's Golfland
7618
+ * publishes no shareable URL for a configured state). `missingGroups` names any option group
7619
+ * with more than one choice left unpicked — price is null until every such group is chosen.
7620
+ * `unmatched` names any selection that did not match a real group or choice, rather than
7621
+ * silently mispricing.
7622
+ */
7623
+ priceConfiguration(urlKey: string, selections: Record<string, string>): Promise<CglPriceResult>;
7624
+
7625
+ /**
7626
+ * Turns a configuration into the handoff you give the shopper: Carl's Golfland's own product
7627
+ * page URL plus the exact choices to click there, since this storefront does not honour a
7628
+ * query-param deep link for a configured state (measured — see the provider's reach note).
7629
+ * Same selections shape as priceConfiguration, and returns the same price, stock status and
7630
+ * applied choices alongside the URL. NOTHING IS CREATED SERVER-SIDE and nothing is bought —
7631
+ * this provider never posts to the site's own add-to-cart endpoint, which requires a
7632
+ * session-bound form key this stateless call does not hold.
7633
+ */
7634
+ addToCart(urlKey: string, selections: Record<string, string>): Promise<CglCartHandoff>;
7635
+ }
7636
+ }
7637
+
7352
7638
  declare namespace BowmarkProvider_carmelrealtycompany {
7353
7639
  // ── Carmel Realty Company — the unit's own declarations, verbatim ──
7354
7640
  interface carmelrealtycompanyListingSummary {
@@ -7780,7 +8066,7 @@ interface CbhListing {
7780
8066
  mls: number;
7781
8067
  url: string;
7782
8068
  image: string | null;
7783
- status: string;
8069
+ status: string; // the site's own labels — read the values off a result, never guess one from prose
7784
8070
  isSold: boolean;
7785
8071
  isReserved: boolean;
7786
8072
  address: string;
@@ -7801,7 +8087,7 @@ interface CbhListing {
7801
8087
  sqft: number | null;
7802
8088
  price: number;
7803
8089
  priceMonthly: number | null;
7804
- amenities: string[];
8090
+ amenities: string[]; // the site's own labels — read the values off a result, never guess one from prose
7805
8091
  salesCenter: string | null;
7806
8092
  schoolDistrict: string | null;
7807
8093
  daysOnMarket: number | null;
@@ -7984,6 +8270,90 @@ interface FoundationMatch {
7984
8270
  }
7985
8271
  }
7986
8272
 
8273
+ declare namespace BowmarkProvider_chappellet {
8274
+ // ── Chappellet — the unit's own declarations, verbatim ──
8275
+ interface ChappelletVariantInventory {
8276
+ inventoryLocationId: string;
8277
+ availableForSaleCount: number;
8278
+ }
8279
+
8280
+ interface ChappelletVariant {
8281
+ id: string;
8282
+ title: string;
8283
+ sku: string | null;
8284
+ volumeInML: number | null;
8285
+ price: number; // cents
8286
+ inventory: ChappelletVariantInventory[];
8287
+ totalAvailable: number;
8288
+ }
8289
+
8290
+ interface ChappelletWine {
8291
+ id: string;
8292
+ slug: string;
8293
+ title: string;
8294
+ webStatus: string;
8295
+ variants: ChappelletVariant[];
8296
+ inStock: boolean;
8297
+ url: string;
8298
+ }
8299
+
8300
+ interface ChappelletShippingCheck {
8301
+ stateCode: string;
8302
+ shippable: boolean;
8303
+ }
8304
+
8305
+ /**
8306
+ * Chappellet's live public wine shop — current releases, real price and stock, and destination
8307
+ * shipping eligibility, read straight off the Commerce7 storefront that powers
8308
+ * chappellet.com/shop.
8309
+ */
8310
+ interface Unit {
8311
+ /**
8312
+ * Lists the current releases in Chappellet's public shop, with live price and per-location
8313
+ * stock. Takes nothing (page defaults to 1). Example: bowmark.providers.chappellet.listWines()
8314
+ */
8315
+ listWines(page?: number): Promise<ChappelletWine[]>;
8316
+
8317
+ /**
8318
+ * Reads one wine by the slug listWines returns — full variant, price and live stock detail.
8319
+ * Example: bowmark.providers.chappellet.getWine("2023-pritchard-hill-cabernet-sauvignon")
8320
+ */
8321
+ getWine(slug: string): Promise<ChappelletWine>;
8322
+
8323
+ /**
8324
+ * Checks whether Chappellet's storefront can ship wine to a US state right now. Example:
8325
+ * bowmark.providers.chappellet.checkShippingEligibility("IL")
8326
+ */
8327
+ checkShippingEligibility(stateCode: string): Promise<ChappelletShippingCheck>;
8328
+ }
8329
+ }
8330
+
8331
+ declare namespace BowmarkProvider_charterhomes {
8332
+ // ── Charter Homes & Neighborhoods — the unit's own declarations, verbatim ──
8333
+ interface CharterhomesSearchArgs { city?: string; minBedrooms?: number; }
8334
+ interface CharterhomesListing { id: string; address: string; neighborhood: string; price: number; beds: number; baths: number; sqft: number; url: string; }
8335
+ interface CharterhomesVisitOption { neighborhood: string; label: string; calendlyUrl: string; }
8336
+
8337
+ /**
8338
+ * Live Charter Homes & Neighborhoods for-sale inventory plus real per-neighborhood Calendly
8339
+ * tour-booking links; prefer it when current price/availability or how to book a visit
8340
+ * matters.
8341
+ */
8342
+ interface Unit {
8343
+ /**
8344
+ * Searches Charter Homes' current for-sale inventory by city/neighborhood and minimum bedroom
8345
+ * count. Returns live address, neighborhood, price, beds, baths, sqft and the listing URL.
8346
+ */
8347
+ searchHomes(args?: CharterhomesSearchArgs): Promise<CharterhomesListing[]>;
8348
+
8349
+ /**
8350
+ * Reads Charter's live schedule-a-visit page and returns every neighborhood with its real
8351
+ * Calendly tour-booking URL. Never books anything.
8352
+ */
8353
+ getScheduleVisitOptions(): Promise<CharterhomesVisitOption[]>;
8354
+ }
8355
+ }
8356
+
7987
8357
  declare namespace BowmarkProvider_cheapflights {
7988
8358
  // ── Cheapflights — the unit's own declarations, verbatim ──
7989
8359
  interface KayakQuery {
@@ -8313,6 +8683,80 @@ interface ChriscraftPriceResult {
8313
8683
  }
8314
8684
  }
8315
8685
 
8686
+ declare namespace BowmarkProvider_christianbrothersauto {
8687
+ // ── Christian Brothers Automotive — the unit's own declarations, verbatim ──
8688
+ interface ChristianBrothersAutoService {
8689
+ serviceId: number;
8690
+ text: string;
8691
+ }
8692
+ interface ChristianBrothersAutoShop {
8693
+ slug: string;
8694
+ shopId: number;
8695
+ locationId: string;
8696
+ city: string;
8697
+ state: string;
8698
+ street: string;
8699
+ zip: string;
8700
+ phone: string;
8701
+ openingTime: string;
8702
+ closingTime: string;
8703
+ schedulerLive: boolean;
8704
+ isAfterHoursDropoff: boolean;
8705
+ services: ChristianBrothersAutoService[];
8706
+ schedulerUrl: string;
8707
+ }
8708
+ interface ChristianBrothersAutoSlotWindow {
8709
+ fromTime: string;
8710
+ endTime: string;
8711
+ availableSlots: number;
8712
+ totalSlots: number;
8713
+ }
8714
+ interface ChristianBrothersAutoDaySlots {
8715
+ date: string;
8716
+ availableTimes: number;
8717
+ slots: ChristianBrothersAutoSlotWindow[];
8718
+ }
8719
+ interface ChristianBrothersAutoAvailability {
8720
+ shop: ChristianBrothersAutoShop;
8721
+ service: ChristianBrothersAutoService;
8722
+ appointmentType: "dropoff" | "ahdo";
8723
+ days: ChristianBrothersAutoDaySlots[];
8724
+ schedulerUrl: string;
8725
+ }
8726
+ interface GetShopDetailsArgs {
8727
+ shop: string;
8728
+ }
8729
+ interface CheckAppointmentAvailabilityArgs {
8730
+ shop: string;
8731
+ service: string;
8732
+ appointmentType?: "dropoff" | "ahdo";
8733
+ days?: number;
8734
+ }
8735
+
8736
+ /**
8737
+ * Christian Brothers Automotive's public appointment scheduler — resolve a shop and check its
8738
+ * real open appointment slots for a service, straight from the site's own scheduler backend,
8739
+ * no vehicle/name/email/phone required.
8740
+ */
8741
+ interface Unit {
8742
+ /**
8743
+ * Resolves a Christian Brothers Automotive shop — by its scheduler slug ("liberty-lake"), a
8744
+ * plain city/franchise name ("Liberty Lake"), or a scheduler.cbac.com/cbac.com shop URL — to
8745
+ * that shop's real public details: address, hours, phone, whether its online scheduler is
8746
+ * live, and its own list of bookable services with the site's own service ids.
8747
+ */
8748
+ getShopDetails(args: GetShopDetailsArgs): Promise<ChristianBrothersAutoShop>;
8749
+
8750
+ /**
8751
+ * Checks real, currently-open appointment slots at one Christian Brothers Automotive shop for
8752
+ * a named service (matched against that shop's own service list) and visit type — reachable
8753
+ * with no vehicle info, name, email or phone. Returns real per-day open time windows plus the
8754
+ * exact scheduler URL to finish booking.
8755
+ */
8756
+ checkAppointmentAvailability(args: CheckAppointmentAvailabilityArgs): Promise<ChristianBrothersAutoAvailability>;
8757
+ }
8758
+ }
8759
+
8316
8760
  declare namespace BowmarkProvider_classichome {
8317
8761
  // ── Classic Home — the unit's own declarations, verbatim ──
8318
8762
  // Classic Home's OWN shapes — not a capability contract.
@@ -8382,6 +8826,48 @@ interface ClassicHomeCartHandoff {
8382
8826
  }
8383
8827
  }
8384
8828
 
8829
+ declare namespace BowmarkProvider_classicrockfab {
8830
+ // ── Classic Rock Fabrication — the unit's own declarations, verbatim ──
8831
+ interface ClassicRockAppointmentType {
8832
+ id: number;
8833
+ name: string;
8834
+ location: string | null;
8835
+ durationMinutes: number;
8836
+ price: string;
8837
+ bookingUrl: string;
8838
+ }
8839
+ interface ClassicRockAvailabilitySlot {
8840
+ date: string;
8841
+ time: string;
8842
+ slotsAvailable: number;
8843
+ }
8844
+ interface ClassicRockAvailability {
8845
+ appointmentTypeId: number;
8846
+ timezone: string;
8847
+ slots: ClassicRockAvailabilitySlot[];
8848
+ bookingUrl: string;
8849
+ }
8850
+
8851
+ /**
8852
+ * Classic Rock Fabrication's own public Acuity scheduler — list design-center appointment
8853
+ * types across all four locations, then read real live availability and the booking handoff
8854
+ * for one.
8855
+ */
8856
+ interface Unit {
8857
+ /**
8858
+ * Lists Classic Rock's public design-center appointment types, optionally filtered by a
8859
+ * location substring (e.g. "Mechanicsburg", "Pittsburgh").
8860
+ */
8861
+ listAppointmentTypes(locationQuery?: string): Promise<ClassicRockAppointmentType[]>;
8862
+
8863
+ /**
8864
+ * Given an appointmentTypeId from listAppointmentTypes, returns real open time slots over the
8865
+ * next several days plus the booking-handoff URL.
8866
+ */
8867
+ checkAvailability(arg: { appointmentTypeId: number, days?: number }): Promise<ClassicRockAvailability>;
8868
+ }
8869
+ }
8870
+
8385
8871
  declare namespace BowmarkProvider_classpass {
8386
8872
  // ── ClassPass — the unit's own declarations, verbatim ──
8387
8873
  /** Everything /v2/venues publishes about one studio — a superset of
@@ -8831,7 +9317,7 @@ interface CloudflareComparePlansResult {
8831
9317
 
8832
9318
  interface CloudflareDomainSuggestion {
8833
9319
  name: string;
8834
- availability: string;
9320
+ availability: string; // the site's own labels — read the values off a result, never guess one from prose
8835
9321
  premium: boolean;
8836
9322
  price: number | null;
8837
9323
  renewal: number | null;
@@ -9389,7 +9875,7 @@ interface DavidsonhomesHomeSummary {
9389
9875
  interface DavidsonhomesCommunityDetail {
9390
9876
  title: string;
9391
9877
  path: string;
9392
- status: string;
9878
+ status: string; // the site's own labels — read the values off a result, never guess one from prose
9393
9879
  priceRange: DavidsonhomesRange;
9394
9880
  sqftRange: DavidsonhomesRange;
9395
9881
  phone: string | null;
@@ -9633,7 +10119,7 @@ interface DdOption {
9633
10119
 
9634
10120
  interface DdVariant {
9635
10121
  sku: string;
9636
- stockStatus: string;
10122
+ stockStatus: string; // the site's own labels — read the values off a result, never guess one from prose
9637
10123
  price: number;
9638
10124
  priceFormatted: string;
9639
10125
  selections: Record<string, number>; // attributeCode -> valueIndex
@@ -9644,7 +10130,7 @@ interface DdProduct {
9644
10130
  sku: string;
9645
10131
  name: string;
9646
10132
  url: string;
9647
- stockStatus: string;
10133
+ stockStatus: string; // the site's own labels — read the values off a result, never guess one from prose
9648
10134
  basePrice: number;
9649
10135
  basePriceFormatted: string;
9650
10136
  options: DdOption[];
@@ -9655,7 +10141,7 @@ interface DdPriceResult {
9655
10141
  urlKey: string;
9656
10142
  sku: string;
9657
10143
  variantSku: string | null; // null until every multi-choice group is picked
9658
- stockStatus: string | null;
10144
+ stockStatus: string | null; // the site's own labels — read the values off a result, never guess one from prose
9659
10145
  price: number | null;
9660
10146
  priceFormatted: string | null;
9661
10147
  applied: { group: string; choice: string }[];
@@ -9672,7 +10158,7 @@ interface DdCartHandoff {
9672
10158
  applied: { group: string; choice: string }[];
9673
10159
  price: number | null;
9674
10160
  priceFormatted: string | null;
9675
- stockStatus: string | null;
10161
+ stockStatus: string | null; // the site's own labels — read the values off a result, never guess one from prose
9676
10162
  missingGroups: string[];
9677
10163
  unmatched: string[];
9678
10164
  }
@@ -10312,6 +10798,55 @@ interface DisneyTicketPrice {
10312
10798
  }
10313
10799
  }
10314
10800
 
10801
+ declare namespace BowmarkProvider_donsappliances {
10802
+ // ── Don's Appliances — the unit's own declarations, verbatim ──
10803
+ interface DonsAppliancesListing {
10804
+ name: string;
10805
+ url: string;
10806
+ price: number;
10807
+ sku: string;
10808
+ imageUrl: string | null;
10809
+ }
10810
+ interface DonsAppliancesProduct {
10811
+ name: string;
10812
+ modelNumber: string | null;
10813
+ sku: string;
10814
+ brand: string | null;
10815
+ price: number;
10816
+ regularPrice: number;
10817
+ inStock: boolean;
10818
+ inventoryLabel: string | null;
10819
+ url: string;
10820
+ }
10821
+ interface DonsAppliancesSearchArgs {
10822
+ category: string;
10823
+ maxPrice?: number;
10824
+ }
10825
+
10826
+ /**
10827
+ * Browses Don's Appliances' own public catalog and reads a product's live price, availability
10828
+ * and inventory-label wording straight off the site's own data — no browser.
10829
+ */
10830
+ interface Unit {
10831
+ /**
10832
+ * Browses one of Don's Appliances' catalog categories (the slug from a URL like
10833
+ * https://www.donsappliances.com/catalog/<category>, e.g.
10834
+ * "shop-all-refrigerators-upright-freezers") and returns up to 24 listed products — name,
10835
+ * product URL, current price and SKU — optionally filtered to `maxPrice` or under. Call
10836
+ * `getProduct` on a returned `url` for full detail (brand, model number, live stock).
10837
+ */
10838
+ search(args: DonsAppliancesSearchArgs): Promise<DonsAppliancesListing[]>;
10839
+
10840
+ /**
10841
+ * Reads one Don's Appliances product page (a URL search() already returned) and returns its
10842
+ * brand, model number, current sale price, regular price, live in-stock flag and the site's
10843
+ * own inventory-label wording (e.g. "Limited Stock") — the computed result a shopper checks
10844
+ * before heading to Don's own Add To Cart / checkout on that same page.
10845
+ */
10846
+ getProduct(url: string): Promise<DonsAppliancesProduct>;
10847
+ }
10848
+ }
10849
+
10315
10850
  declare namespace BowmarkProvider_doordash {
10316
10851
  // ── DoorDash — the unit's own declarations, verbatim ──
10317
10852
  interface DoordashSearchArgs {
@@ -10391,7 +10926,7 @@ interface ebayItem {
10391
10926
  itemId: string;
10392
10927
  title: string;
10393
10928
  price: { value: string; currency: string } | null;
10394
- condition: string | null;
10929
+ condition: string | null; // the site's own labels — read the values off a result, never guess one from prose
10395
10930
  buyingOptions: string[];
10396
10931
  url: string;
10397
10932
  imageUrl: string | null;
@@ -10483,6 +11018,81 @@ interface EmbrokerQuoteEntryPoint {
10483
11018
  }
10484
11019
  }
10485
11020
 
11021
+ declare namespace BowmarkProvider_epromos {
11022
+ // ── ePromos — the unit's own declarations, verbatim ──
11023
+ // ePromos' OWN shapes — not a capability contract.
11024
+
11025
+ interface EpromosProductOption {
11026
+ groupLabel: string;
11027
+ label: string;
11028
+ isDefault: boolean;
11029
+ }
11030
+
11031
+ interface EpromosCustomizationField {
11032
+ label: string;
11033
+ inputType: string;
11034
+ required: boolean;
11035
+ }
11036
+
11037
+ interface EpromosBulkPricingTier {
11038
+ minQuantity: number;
11039
+ unitPrice: number;
11040
+ }
11041
+
11042
+ interface EpromosProductConfiguration {
11043
+ name: string;
11044
+ sku: string;
11045
+ url: string;
11046
+ colorOptions: EpromosProductOption[];
11047
+ customizationFields: EpromosCustomizationField[];
11048
+ bulkPricing: EpromosBulkPricingTier[];
11049
+ }
11050
+
11051
+ interface EpromosBulkQuote {
11052
+ productUrl: string;
11053
+ requestedQuantity: number;
11054
+ tierMinQuantity: number;
11055
+ unitPrice: number;
11056
+ totalPrice: number;
11057
+ currency: "USD";
11058
+ }
11059
+
11060
+ interface EpromosCategoryProduct {
11061
+ name: string;
11062
+ url: string;
11063
+ }
11064
+
11065
+ interface EpromosCategoryListing {
11066
+ categoryUrl: string;
11067
+ products: EpromosCategoryProduct[];
11068
+ }
11069
+
11070
+ /**
11071
+ * ePromos' own product configurator and bulk-pricing tables off its live product pages — real
11072
+ * tiered per-unit prices for a caller-given quantity, not a stale mirror — plus the
11073
+ * category-page browse path to find a configurable SKU.
11074
+ */
11075
+ interface Unit {
11076
+ /**
11077
+ * Reads one ePromos product's own configurator page — color/style options, customization
11078
+ * fields, and the site's own bulk-pricing tier table.
11079
+ */
11080
+ getProductConfiguration(url: string): Promise<EpromosProductConfiguration>;
11081
+
11082
+ /**
11083
+ * Computes the real per-unit and total price for one product at a given quantity, off the
11084
+ * site's own bulk-pricing table.
11085
+ */
11086
+ quoteBulkPrice(args: { productUrl: string; quantity: number }): Promise<EpromosBulkQuote>;
11087
+
11088
+ /**
11089
+ * Lists the products ePromos features on one category landing page, with name and product-page
11090
+ * URL.
11091
+ */
11092
+ listCategoryProducts(url: string): Promise<EpromosCategoryListing>;
11093
+ }
11094
+ }
11095
+
10486
11096
  declare namespace BowmarkProvider_eq3 {
10487
11097
  // ── EQ3 — the unit's own declarations, verbatim ──
10488
11098
  interface Eq3SofaListing {
@@ -10519,7 +11129,7 @@ interface Eq3SofaConfiguration {
10519
11129
  sellingPrice: number;
10520
11130
  discountPercent: number | null; // e.g. 20 — null when no sale is running
10521
11131
  massPounds: number | null;
10522
- availability: string;
11132
+ availability: string; // the site's own labels — read the values off a result, never guess one from prose
10523
11133
  canonicalUrl: string;
10524
11134
  optionGroups: Eq3OptionGroup[]; // every alternative the configurator offers
10525
11135
  }
@@ -10842,7 +11452,7 @@ interface ExtraspaceUnit {
10842
11452
  webRate: number | null;
10843
11453
  promotions: string[];
10844
11454
  available: boolean;
10845
- features: string[];
11455
+ features: string[]; // the site's own labels — read the values off a result, never guess one from prose
10846
11456
  }
10847
11457
 
10848
11458
  interface ExtraspaceFeatures {
@@ -11081,6 +11691,41 @@ interface FaceRealitySkincareEstheticianRow {
11081
11691
  }
11082
11692
  }
11083
11693
 
11694
+ declare namespace BowmarkProvider_fieldstonehomes {
11695
+ // ── Fieldstone Homes — the unit's own declarations, verbatim ──
11696
+ interface FieldstonehomesSearchArgs { city?: string; homeType?: string; minPrice?: number; maxPrice?: number; minBeds?: number; minSqft?: number; }
11697
+ interface FieldstonehomesQuickMoveIn { id: string; address: string; city: string; state: string; price: number; homeType: string; planName: string; sqft: number; beds: number; baths: number; availability: string | null; incentive: string | null; imageUrl: string | null; url: string; }
11698
+ interface FieldstonehomesFormOption { value: string; label: string; }
11699
+ interface FieldstonehomesFormField { name: string; label: string; type: string; required: boolean; options?: FieldstonehomesFormOption[]; }
11700
+ interface FieldstonehomesAppointmentForm { action: string; fields: FieldstonehomesFormField[]; }
11701
+ interface FieldstonehomesPrepareAppointmentArgs { firstName: string; lastName: string; email: string; phone?: string; communityId: string; requestedAt: string; message?: string; pageUrl?: string; }
11702
+ interface FieldstonehomesPreparedAppointment { valid: boolean; errors: string[]; action: string; handoffUrl: string; fields: Record<string, string>; }
11703
+
11704
+ /**
11705
+ * Live Fieldstone Homes quick-move-in inventory plus a validated appointment handoff; prefer
11706
+ * it when current availability, incentives or booking details matter.
11707
+ */
11708
+ interface Unit {
11709
+ /**
11710
+ * Searches Fieldstone Homes' current quick-move-in inventory. Filter by city, exact home type,
11711
+ * price, beds or square footage; returns live availability, incentives and the listing URL.
11712
+ */
11713
+ searchQuickMoveIns(args?: FieldstonehomesSearchArgs): Promise<FieldstonehomesQuickMoveIn[]>;
11714
+
11715
+ /**
11716
+ * Reads Fieldstone's current schedule-appointment form and Community Of Interest values
11717
+ * without submitting anything.
11718
+ */
11719
+ getAppointmentFormSchema(): Promise<FieldstonehomesAppointmentForm>;
11720
+
11721
+ /**
11722
+ * Validates a requested Fieldstone appointment against the live form and returns its exact
11723
+ * handoff values. Never submits the POST.
11724
+ */
11725
+ prepareAppointment(args: FieldstonehomesPrepareAppointmentArgs): Promise<FieldstonehomesPreparedAppointment>;
11726
+ }
11727
+ }
11728
+
11084
11729
  declare namespace BowmarkProvider_firstdibs {
11085
11730
  // ── 1stDibs — the unit's own declarations, verbatim ──
11086
11731
  interface FirstdibsSearchResult {
@@ -11088,7 +11733,7 @@ interface FirstdibsSearchResult {
11088
11733
  url: string;
11089
11734
  price: number;
11090
11735
  priceCurrency: string;
11091
- availability: string;
11736
+ availability: string; // the site's own labels — read the values off a result, never guess one from prose
11092
11737
  image: string | null;
11093
11738
  }
11094
11739
  interface FirstdibsCompletingAction {
@@ -11661,6 +12306,56 @@ interface FormaxCartLink {
11661
12306
  }
11662
12307
  }
11663
12308
 
12309
+ declare namespace BowmarkProvider_forms_hubspot_com {
12310
+ // ── HubSpot Forms — the unit's own declarations, verbatim ──
12311
+ interface HubspotFormField {
12312
+ name: string;
12313
+ label: string;
12314
+ type: string;
12315
+ fieldType: string;
12316
+ required: boolean;
12317
+ hidden: boolean;
12318
+ defaultValue: string;
12319
+ placeholder: string;
12320
+ options: Array<{ label: string; value: string }>;
12321
+ }
12322
+ interface HubspotFormDefinition {
12323
+ portalId: number;
12324
+ guid: string;
12325
+ submitText: string;
12326
+ fields: HubspotFormField[];
12327
+ sourceUrl: string;
12328
+ }
12329
+ interface HubspotFormReference {
12330
+ portalId: string;
12331
+ guid: string;
12332
+ }
12333
+ interface HubspotPageForms {
12334
+ pageUrl: string;
12335
+ forms: HubspotFormReference[];
12336
+ }
12337
+
12338
+ /**
12339
+ * Reads a public HubSpot form's own field definitions off its forms.hubspot.com URL — no
12340
+ * submission, no browser.
12341
+ */
12342
+ interface Unit {
12343
+ /**
12344
+ * Fetches one page on a company's own site (a bare domain, or a domain + path) and returns
12345
+ * every HubSpot form it embeds (portalId + formId) — the door into getFormDefinition for a
12346
+ * caller who only knows the company, not a form URL.
12347
+ */
12348
+ findForms(site: string): Promise<HubspotPageForms>;
12349
+
12350
+ /**
12351
+ * Reads a public HubSpot form's own field definitions off its forms.hubspot.com URL (or a
12352
+ * "<portalId> <formGuid>" pair) — every field's name, label, type and required flag, plus the
12353
+ * form's submit text.
12354
+ */
12355
+ getFormDefinition(formUrlOrIds: string): Promise<HubspotFormDefinition>;
12356
+ }
12357
+ }
12358
+
11664
12359
  declare namespace BowmarkProvider_fourseasonsyachts {
11665
12360
  // ── Four Seasons Yachts — the unit's own declarations, verbatim ──
11666
12361
  interface FourseasonsyachtsVoyage {
@@ -13005,7 +13700,7 @@ interface GrandwelcomeRentalRow {
13005
13700
  name: string;
13006
13701
  url: string;
13007
13702
  location: string;
13008
- propertyType: string;
13703
+ propertyType: string; // the site's own labels — read the values off a result, never guess one from prose
13009
13704
  petFriendly: boolean;
13010
13705
  priceFromUsd: number | null;
13011
13706
  priceFromFormatted: string | null;
@@ -14326,7 +15021,7 @@ interface hiltonRoomOffer {
14326
15021
  roomTypeName: string;
14327
15022
  bedType: string | null;
14328
15023
  maxOccupancy: number | null;
14329
- features: string[];
15024
+ features: string[]; // the site's own labels — read the values off a result, never guess one from prose
14330
15025
  ratePlanCode: string;
14331
15026
  currencyCode: string;
14332
15027
  nightlyRate: string;
@@ -14442,7 +15137,7 @@ interface HobieDealer {
14442
15137
  carriesExactColor: boolean;
14443
15138
  carriesModel: boolean;
14444
15139
  carriesBrand: boolean;
14445
- stockStatus: string;
15140
+ stockStatus: string; // the site's own labels — read the values off a result, never guess one from prose
14446
15141
  stockDisclaimer: string;
14447
15142
  }
14448
15143
  interface HobieLocalAvailability {
@@ -14979,6 +15674,26 @@ interface ihgRow { id: string; brandCode: string; availabilityStatus: string; lo
14979
15674
  }
14980
15675
  }
14981
15676
 
15677
+ declare namespace BowmarkProvider_inspirecommunities {
15678
+ // ── Inspire Communities — the unit's own declarations, verbatim ──
15679
+ interface InspirecommunitiesSearchHomesArgs { state?: string; community?: string; minBeds?: number; minBaths?: number; minPrice?: number; maxPrice?: number; listingType?: "sale" | "rent"; limit?: number; }
15680
+ interface InspirecommunitiesHome { id: string; address: string; community: string; location: string; price: number; beds: number; baths: number; sqft: number; listingType: "sale" | "rent"; detailUrl: string; tourHandoffUrl: string | null; }
15681
+ interface InspirecommunitiesSearchHomesResult { total: number; pages: number; homes: InspirecommunitiesHome[]; }
15682
+
15683
+ /**
15684
+ * Searches Inspire Communities' live manufactured-home inventory and returns the real listing
15685
+ * plus its schedule-a-tour handoff.
15686
+ */
15687
+ interface Unit {
15688
+ /**
15689
+ * Searches Inspire Communities' current manufactured homes by state, community, beds, baths,
15690
+ * price and sale or rent status. Returns live inventory, detail URLs and a read-only
15691
+ * schedule-a-tour handoff URL.
15692
+ */
15693
+ searchHomes(args?: InspirecommunitiesSearchHomesArgs): Promise<InspirecommunitiesSearchHomesResult>;
15694
+ }
15695
+ }
15696
+
14982
15697
  declare namespace BowmarkProvider_instagram {
14983
15698
  // ── Instagram — the unit's own declarations, verbatim ──
14984
15699
  interface InstagramProfile {
@@ -16033,7 +16748,7 @@ declare namespace BowmarkProvider_iproyal {
16033
16748
  type IproyalProductType = "residential" | "datacenter" | "isp" | "mobile";
16034
16749
  interface IproyalPlanTier {
16035
16750
  productType: IproyalProductType;
16036
- tier: string;
16751
+ tier: string; // the site's own labels — read the values off a result, never guess one from prose
16037
16752
  price: number;
16038
16753
  unit: string;
16039
16754
  billingMode: "subscription" | "payAsYouGo" | null;
@@ -16531,7 +17246,7 @@ interface KalshiMarket {
16531
17246
  eventTicker: string;
16532
17247
  title: string;
16533
17248
  subtitle: string;
16534
- status: string;
17249
+ status: string; // the site's own labels — read the values off a result, never guess one from prose
16535
17250
  marketType: string;
16536
17251
  openTime: string;
16537
17252
  closeTime: string;
@@ -16547,7 +17262,7 @@ interface KalshiMarket {
16547
17262
  rules: string;
16548
17263
  }
16549
17264
  interface KalshiGetMarketsOptions {
16550
- status?: string;
17265
+ status?: string; // the site's own labels — read the values off a result, never guess one from prose
16551
17266
  series_ticker?: string;
16552
17267
  event_ticker?: string;
16553
17268
  limit?: number;
@@ -17104,7 +17819,7 @@ interface LegacyHomesalCommunity {
17104
17819
  name: string;
17105
17820
  aliases: string[];
17106
17821
  area: string | null;
17107
- status: string | null;
17822
+ status: string | null; // the site's own labels — read the values off a result, never guess one from prose
17108
17823
  repSlug: string;
17109
17824
  bookingUrl: string;
17110
17825
  }
@@ -17895,6 +18610,30 @@ interface LufthansaBaggageAllowance {
17895
18610
  }
17896
18611
  }
17897
18612
 
18613
+ declare namespace BowmarkProvider_luggageforward {
18614
+ // ── Luggage Forward — the unit's own declarations, verbatim ──
18615
+ interface LuggageforwardLuggageType { id: string; name: string; maxWeight: string | null; maxDimensions: string | null; }
18616
+ interface LuggageforwardQuoteItem { name: string; quantity: number; }
18617
+ interface LuggageforwardQuoteArgs { items?: LuggageforwardQuoteItem[]; }
18618
+ interface LuggageforwardQuoteOption { service: string; deliveryDate: string | null; businessDays: string | null; price: number; currency: string; items: LuggageforwardQuoteItem[]; handoffUrl: string; }
18619
+
18620
+ /**
18621
+ * Live Luggage Forward shipping price tiers and luggage limits; prefer it when current
18622
+ * door-to-door luggage shipping prices or delivery speeds matter.
18623
+ */
18624
+ interface Unit {
18625
+ /**
18626
+ * Returns Luggage Forward's current public shipping prices across every available speed tier
18627
+ * for selected luggage. Defaults to one Standard Bag; use listLuggageTypes for live luggage
18628
+ * names and limits.
18629
+ */
18630
+ getQuoteOptions(args?: LuggageforwardQuoteArgs): Promise<LuggageforwardQuoteOption[]>;
18631
+
18632
+ /** Lists Luggage Forward's live luggage categories with their maximum weight and dimensions. */
18633
+ listLuggageTypes(): Promise<LuggageforwardLuggageType[]>;
18634
+ }
18635
+ }
18636
+
17898
18637
  declare namespace BowmarkProvider_lululemon {
17899
18638
  // ── lululemon — the unit's own declarations, verbatim ──
17900
18639
  interface LululemonVariant {
@@ -18504,7 +19243,7 @@ interface mcdonaldsStore {
18504
19243
  openStatus: string;
18505
19244
  hours: mcdonaldsStoreHours;
18506
19245
  services: mcdonaldsStoreServices;
18507
- amenities: string[];
19246
+ amenities: string[]; // the site's own labels — read the values off a result, never guess one from prose
18508
19247
  deliveryPartners: mcdonaldsDeliveryPartner[];
18509
19248
  }
18510
19249
 
@@ -18547,7 +19286,7 @@ interface mcpRegistryEntry {
18547
19286
  version: string;
18548
19287
  repositoryUrl: string | null;
18549
19288
  remoteUrl: string | null;
18550
- status: string;
19289
+ status: string; // the site's own labels — read the values off a result, never guess one from prose
18551
19290
  }
18552
19291
 
18553
19292
  /**
@@ -19748,7 +20487,7 @@ interface MixbookProductPrice {
19748
20487
  size: string;
19749
20488
  price: number; // real Mixbook-computed price for the default configuration
19750
20489
  currency: string;
19751
- availability: string;
20490
+ availability: string; // the site's own labels — read the values off a result, never guess one from prose
19752
20491
  url: string;
19753
20492
  }
19754
20493
 
@@ -20735,6 +21474,69 @@ interface npmjsDownloads {
20735
21474
  }
20736
21475
  }
20737
21476
 
21477
+ declare namespace BowmarkProvider_nurturelife {
21478
+ // ── Nurture Life — the unit's own declarations, verbatim ──
21479
+ interface NurtureLifeMealPlan {
21480
+ slug: string;
21481
+ name: string;
21482
+ threshold: number;
21483
+ pricePerItem: number;
21484
+ shippingCost: number;
21485
+ discount: number;
21486
+ tag: string | null;
21487
+ }
21488
+
21489
+ interface GetMealPlansResult {
21490
+ plans: NurtureLifeMealPlan[];
21491
+ }
21492
+
21493
+ interface NurtureLifeBundleItem {
21494
+ sku: string;
21495
+ name: string;
21496
+ quantity: number;
21497
+ categoryName: string;
21498
+ }
21499
+
21500
+ interface NurtureLifeBundle {
21501
+ slug: string;
21502
+ name: string;
21503
+ defaultPlanSlug: string | null;
21504
+ items: NurtureLifeBundleItem[];
21505
+ }
21506
+
21507
+ interface GetMealBundleArgs {
21508
+ bundleSlug?: string;
21509
+ }
21510
+
21511
+ interface GetMealBundleResult {
21512
+ bundles: NurtureLifeBundle[];
21513
+ }
21514
+
21515
+ /**
21516
+ * Kids-meal delivery subscription. getMealPlans is live — the site's own real, current
21517
+ * per-plan pricing (7/10/14/21-meal tiers, per-meal price and discount) with no email or ZIP
21518
+ * required. getMealBundle returns the site's current curated meal bundles by real SKU and
21519
+ * name, never a stale or guessed list.
21520
+ */
21521
+ interface Unit {
21522
+ /**
21523
+ * Returns Nurture Life's real, live plan tiers (7/10/14/21 meals) with each tier's actual
21524
+ * current per-meal price, dollar discount and flat shipping cost — the same numbers the site's
21525
+ * own onboarding funnel computes, with no email or ZIP submitted. Not a marketing-page range
21526
+ * and not a guess off an old blog post.
21527
+ */
21528
+ getMealPlans(): Promise<GetMealPlansResult>;
21529
+
21530
+ /**
21531
+ * Returns Nurture Life's currently-offered curated meal bundles with their real, current meal
21532
+ * composition by SKU and name — pass `bundleSlug` (e.g. "picky-eater-bundle") for one bundle,
21533
+ * or omit it to list every bundle the site currently offers. Recovered from the site's own
21534
+ * bundle catalog API, not scraped from stale marketing copy.
21535
+ */
21536
+ getMealBundle(args: GetMealBundleArgs): Promise<GetMealBundleResult>;
21537
+ }
21538
+ }
21539
+
20738
21540
  declare namespace BowmarkProvider_nutrafol {
20739
21541
  // ── Nutrafol — the unit's own declarations, verbatim ──
20740
21542
  interface RootCause {
@@ -21002,7 +21804,7 @@ interface ottoProduct {
21002
21804
  originalPrice: number | null;
21003
21805
  discountPercent: number | null;
21004
21806
  currency: string;
21005
- availability: string | null;
21807
+ availability: string | null; // the site's own labels — read the values off a result, never guess one from prose
21006
21808
  soldOut: boolean;
21007
21809
  delivery: { text: string; minDays: number | null; maxDays: number | null } | null;
21008
21810
  rating: { value: number; count: number } | null;
@@ -22582,6 +23384,80 @@ interface ProgressiveHomeCarrier {
22582
23384
  }
22583
23385
  }
22584
23386
 
23387
+ declare namespace BowmarkProvider_prolook {
23388
+ // ── PROLOOK — the unit's own declarations, verbatim ──
23389
+ interface ProlookUniformStyle {
23390
+ id: number;
23391
+ page: number;
23392
+ brandStyleName: string;
23393
+ productName: string;
23394
+ productLineName: string;
23395
+ filterFlags: Record<string, string>;
23396
+ pricing: {
23397
+ msrpAdult: number | null;
23398
+ msrpYouth: number | null;
23399
+ brandCostAdult: number | null;
23400
+ brandCostYouth: number | null;
23401
+ };
23402
+ estimatedShippingDate: string | null;
23403
+ }
23404
+
23405
+ interface ProlookStyleListPage {
23406
+ page: number;
23407
+ lastPage: number;
23408
+ styles: ProlookUniformStyle[];
23409
+ }
23410
+
23411
+ interface ProlookTrim {
23412
+ trimId: string;
23413
+ trimName: string;
23414
+ trimType: string;
23415
+ colors: { id: number; alias: string; hex: string; code: string }[];
23416
+ }
23417
+
23418
+ interface ProlookStyleOptions {
23419
+ styleId: number;
23420
+ brandStyleName: string;
23421
+ trims: ProlookTrim[];
23422
+ }
23423
+
23424
+ interface ProlookTeamQuote {
23425
+ styleId: number;
23426
+ brandStyleName: string;
23427
+ quantity: number;
23428
+ pricePerUnit: number;
23429
+ total: number;
23430
+ brandCostPerUnit: number | null;
23431
+ }
23432
+
23433
+ /**
23434
+ * PROLOOK's real team-uniform catalog with live per-style MSRP/dealer pricing, real
23435
+ * customization options (trims and colors), and a real computed team-order total — no browser,
23436
+ * no marketing-page guesswork.
23437
+ */
23438
+ interface Unit {
23439
+ /**
23440
+ * Lists one page of PROLOOK's real uniform styles for a sport (e.g. "BSB" for baseball) with
23441
+ * real per-unit MSRP/dealer-cost pricing and cut/sleeve filter flags — the entry point every
23442
+ * other function's styleId + page come from.
23443
+ */
23444
+ listUniformStyles(sportCode: string, page?: number): Promise<ProlookStyleListPage>;
23445
+
23446
+ /**
23447
+ * Reads one style's real trim options (buttons, piping, etc.) and each trim's selectable
23448
+ * colors — the same data PROLOOK's own customizer canvas reads.
23449
+ */
23450
+ getStyleCustomizationOptions(styleId: number): Promise<ProlookStyleOptions>;
23451
+
23452
+ /**
23453
+ * Computes a real team-order total for N jerseys of one style from PROLOOK's own live per-unit
23454
+ * MSRP — not a marketing-page estimate. `sportCode` and `page` are the values
23455
+ * listUniformStyles() found this style with.
23456
+ */
23457
+ getTeamQuote(styleId: number, sportCode: string, page: number, quantity: number): Promise<ProlookTeamQuote>;
23458
+ }
23459
+ }
23460
+
22585
23461
  declare namespace BowmarkProvider_prose {
22586
23462
  // ── Prose — the unit's own declarations, verbatim ──
22587
23463
  interface ProseHaircareProduct {
@@ -23648,7 +24524,7 @@ interface SamsclubInstantSavingsItem {
23648
24524
  savingsAmount: number | null;
23649
24525
  expiresLabel: string | null;
23650
24526
  limitLabel: string | null;
23651
- availability: string | null;
24527
+ availability: string | null; // the site's own labels — read the values off a result, never guess one from prose
23652
24528
  }
23653
24529
  interface SamsclubCategoryItem {
23654
24530
  id: string;
@@ -23660,10 +24536,10 @@ interface SamsclubCategoryItem {
23660
24536
  wasPrice: string | null;
23661
24537
  rating: number | null;
23662
24538
  reviewCount: number | null;
23663
- availability: string | null;
24539
+ availability: string | null; // the site's own labels — read the values off a result, never guess one from prose
23664
24540
  }
23665
24541
  interface SamsclubFuelPrice {
23666
- grade: string;
24542
+ grade: string; // the site's own labels: "Unleaded", "Premium", "Diesel" where the club sells it
23667
24543
  pricePerGallon: number;
23668
24544
  }
23669
24545
  interface SamsclubFuelPrices {
@@ -23683,7 +24559,7 @@ interface SamsclubProduct {
23683
24559
  nonMemberPrice: string | null;
23684
24560
  rating: number | null;
23685
24561
  reviewCount: number | null;
23686
- availability: string | null;
24562
+ availability: string | null; // the site's own labels — read the values off a result, never guess one from prose
23687
24563
  description: string | null;
23688
24564
  images: string[];
23689
24565
  thumbnailUrl: string | null;
@@ -23718,7 +24594,11 @@ interface SamsclubClub {
23718
24594
  address: { addressLine1: string | null; addressLine2: string | null; city: string; state: string; postalCode: string; country: string };
23719
24595
  open24Hours: boolean;
23720
24596
  hours: SamsclubClubHours[];
23721
- services: string[];
24597
+ services: string[]; // the SITE'S OWN labels, verbatim: "Sam’s Fuel Station" (NOT "Fuel Center"),
24598
+ // "Pharmacy", "Optical Center", "Auto & Tires", "Sam’s Cafe", "Bakery", "Deli", "Liquor",
24599
+ // "Tobacco", "Photo Center", "Hearing Aid Center", "Fresh Flowers", "Wireless Mobile",
24600
+ // "Grocery Pickup and Delivery". Note the CURLY apostrophe (U+2019) — a filter written
24601
+ // with a straight one matches nothing. Read the values off a result, never guess from prose.
23722
24602
  geoPoint: { latitude: number; longitude: number } | null;
23723
24603
  }
23724
24604
  interface SamsclubMembershipBenefit {
@@ -23747,10 +24627,10 @@ interface SamsclubMembershipPlan {
23747
24627
  * availability) given the site's own numeric category id. getFuelPrices reads a specific
23748
24628
  * club's current fuel-center prices (per grade — unleaded, premium, diesel where sold) given
23749
24629
  * the site's own numeric club id. findClubs reads the site's own club locator for a zip code —
23750
- * address, phone, hours and which real departments (pharmacy, optical, tire & lube, fuel
23751
- * center, …) each nearby club has. getMembershipPlans reads the site's own published Club/Plus
23752
- * membership tiers — current price, regular price, and the full stated benefit-by-tier
23753
- * comparison. The rest is not yet built.
24630
+ * address, phone, hours and which real departments each nearby club has, as the site's own
24631
+ * label strings (“Sam’s Fuel Station”, never “Fuel Center”). getMembershipPlans reads the
24632
+ * site's own published Club/Plus membership tiers — current price, regular price, and the full
24633
+ * stated benefit-by-tier comparison. The rest is not yet built.
23754
24634
  */
23755
24635
  interface Unit {
23756
24636
  /**
@@ -23809,8 +24689,10 @@ interface SamsclubMembershipPlan {
23809
24689
 
23810
24690
  /**
23811
24691
  * Finds nearby Sam's Club warehouse locations for a 5-digit US zip — address, phone, hours,
23812
- * distance and which real customer-facing departments (pharmacy, optical, tire & lube, fuel
23813
- * center, …) each club has, the way the site's own club finder does. Resolves clubId for
24692
+ * distance and which real customer-facing departments each club has, the way the site's own
24693
+ * club finder does. `services` carries the SITE'S OWN label strings verbatim, curly
24694
+ * apostrophes included (“Sam’s Fuel Station”, never “Fuel Center”) — a caller filters on a
24695
+ * value read off a result, never one guessed from prose. Resolves clubId for
23814
24696
  * getFuelPrices/checkStock's clubId argument.
23815
24697
  */
23816
24698
  findClubs(zip: string): Promise<SamsclubClub[]>;
@@ -23879,7 +24761,7 @@ interface SeakeeperDealer {
23879
24761
  website: string;
23880
24762
  latitude: number;
23881
24763
  longitude: number;
23882
- tier: string;
24764
+ tier: string; // the site's own labels — read the values off a result, never guess one from prose
23883
24765
  tierLabel: string;
23884
24766
  }
23885
24767
  interface SeakeeperNearbyDealer extends SeakeeperDealer {
@@ -25171,7 +26053,7 @@ interface StickergiantProduct {
25171
26053
  priceUsd: string; // "$37.90" — per-100 stickers starting price
25172
26054
  priceValue: number; // Same number unformatted
25173
26055
  priceCurrency: string; // "USD"
25174
- availability: string; // Schema.org URL, e.g. "https://schema.org/InStock"
26056
+ availability: string; // Schema.org URL, e.g. "https://schema.org/InStock" — the site's own labels — read the values off a result, never guess one from prose
25175
26057
  imageUrl: string;
25176
26058
  }
25177
26059
 
@@ -25500,7 +26382,7 @@ interface TargetSearchResult {
25500
26382
  image: string | null;
25501
26383
  price: number | null;
25502
26384
  wasPrice: number | null;
25503
- availabilityStatus: string | null;
26385
+ availabilityStatus: string | null; // the site's own labels — read the values off a result, never guess one from prose
25504
26386
  inStock: boolean;
25505
26387
  rating: number | null;
25506
26388
  reviewCount: number;
@@ -25613,7 +26495,7 @@ interface teladocInsuranceCoverage {
25613
26495
  source: string;
25614
26496
  headline: string;
25615
26497
  headlinePriceUsd: number;
25616
- services: string[];
26498
+ services: string[]; // the site's own labels — read the values off a result, never guess one from prose
25617
26499
  disclaimer: string;
25618
26500
  }
25619
26501
 
@@ -26824,6 +27706,54 @@ interface TrekTravelSearchFilters {
26824
27706
  }
26825
27707
  }
26826
27708
 
27709
+ declare namespace BowmarkProvider_trojanstorage {
27710
+ // ── Trojan Storage — the unit's own declarations, verbatim ──
27711
+ // Trojan Storage's OWN shapes — not a capability contract.
27712
+
27713
+ interface TrojanstorageFacility {
27714
+ facilityId: string; // the id getFacilityUnits takes
27715
+ name: string; url: string;
27716
+ street: string; city: string; state: string; zip: string; phone: string;
27717
+ lat: number | null; lng: number | null;
27718
+ }
27719
+
27720
+ interface TrojanstorageFacilitySearchFilters { state?: string; city?: string }
27721
+
27722
+ interface TrojanstorageUnit {
27723
+ unitGroupId: string;
27724
+ name: string; // e.g. "5x5 Upstairs Storage"
27725
+ features: string[]; // the site's own labels — read the values off a result, never guess one from prose
27726
+ areaSqFt: number | null;
27727
+ regularPrice: number | null;
27728
+ promoPrice: number | null; // null when no promo is currently active
27729
+ promoLabel: string | null;
27730
+ availableCount: number | null;
27731
+ moveInUrl: string; // Quikstor handoff URL, price baked in
27732
+ }
27733
+
27734
+ /**
27735
+ * Reads Trojan Storage's own live per-facility unit pricing and availability — real size,
27736
+ * features, regular and current promo price, and a pre-computed Quikstor move-in handoff URL
27737
+ * with that exact price baked in — off the site's own storage-essentials REST API, the way its
27738
+ * facility pages render the same data client-side.
27739
+ */
27740
+ interface Unit {
27741
+ /**
27742
+ * Lists every Trojan Storage facility (56 today), optionally narrowed by US state or city.
27743
+ * Each row carries the facilityId getFacilityUnits() takes, plus address, phone and lat/lng.
27744
+ */
27745
+ listFacilities(filters?: TrojanstorageFacilitySearchFilters): Promise<TrojanstorageFacility[]>;
27746
+
27747
+ /**
27748
+ * Reads one facility's live unit inventory: real size, features, regular price, any active
27749
+ * promo and its promo'd price, current availability, and a pre-computed Quikstor move-in URL
27750
+ * with that exact price baked in. THROWS on an unknown facilityId — call listFacilities()
27751
+ * first.
27752
+ */
27753
+ getFacilityUnits(facilityId: string): Promise<TrojanstorageUnit[]>;
27754
+ }
27755
+ }
27756
+
26827
27757
  declare namespace BowmarkProvider_trophysignaturehomes {
26828
27758
  // ── Trophy Signature Homes — the unit's own declarations, verbatim ──
26829
27759
  // Trophy Signature Homes' OWN shapes — not a capability contract.
@@ -26918,7 +27848,7 @@ interface TwiddyRentalDetail {
26918
27848
  streetAddress: string;
26919
27849
  town: string;
26920
27850
  petsAllowed: boolean;
26921
- amenities: string[];
27851
+ amenities: string[]; // the site's own labels — read the values off a result, never guess one from prose
26922
27852
  numberOfBedrooms: number | null;
26923
27853
  numberOfBathrooms: number | null;
26924
27854
  images: string[];
@@ -27420,7 +28350,7 @@ interface VisiblePhoneVariant {
27420
28350
  sku: string;
27421
28351
  storage: string | null;
27422
28352
  color: string | null;
27423
- condition: string | null;
28353
+ condition: string | null; // the site's own labels — read the values off a result, never guess one from prose
27424
28354
  listPrice: number | null;
27425
28355
  price: number | null;
27426
28356
  monthlyPrice: number | null;
@@ -28254,7 +29184,7 @@ declare namespace BowmarkProvider_yourarborhome {
28254
29184
  interface ArborHome {
28255
29185
  uniqueName: string;
28256
29186
  headline: string;
28257
- status: string;
29187
+ status: string; // the site's own labels — read the values off a result, never guess one from prose
28258
29188
  price: number | null;
28259
29189
  beds: number | null;
28260
29190
  bathsFull: number | null;
@@ -28273,7 +29203,7 @@ interface SearchHomesFilters {
28273
29203
  minBeds?: number;
28274
29204
  minBaths?: number;
28275
29205
  minSqft?: number;
28276
- status?: string;
29206
+ status?: string; // the site's own labels — read the values off a result, never guess one from prose
28277
29207
  }
28278
29208
 
28279
29209
  /**
@@ -29219,9 +30149,11 @@ interface ShopifyCart {
29219
30149
  * wire — the id in the manifest, the trace, the namespace and a script are one
29220
30150
  * string, so there is no camelCase alias to be uncertain about. */
29221
30151
  interface BowmarkProviders {
30152
+ a1storage: BowmarkProvider_a1storage.Unit;
29222
30153
  aa: BowmarkProvider_aa.Unit;
29223
30154
  aauto: BowmarkProvider_aauto.Unit;
29224
30155
  abercrombie: BowmarkProvider_abercrombie.Unit;
30156
+ acerentacar: BowmarkProvider_acerentacar.Unit;
29225
30157
  achosahw: BowmarkProvider_achosahw.Unit;
29226
30158
  acqualinaresort: BowmarkProvider_acqualinaresort.Unit;
29227
30159
  aiper: BowmarkProvider_aiper.Unit;
@@ -29242,6 +30174,7 @@ interface BowmarkProviders {
29242
30174
  aquaphoenixsci: BowmarkProvider_aquaphoenixsci.Unit;
29243
30175
  arajet: BowmarkProvider_arajet.Unit;
29244
30176
  archipelago: BowmarkProvider_archipelago.Unit;
30177
+ archive_org: BowmarkProvider_archive_org.Unit;
29245
30178
  artpix3d: BowmarkProvider_artpix3d.Unit;
29246
30179
  ashleyfurniture: BowmarkProvider_ashleyfurniture.Unit;
29247
30180
  asppoolco: BowmarkProvider_asppoolco.Unit;
@@ -29295,6 +30228,7 @@ interface BowmarkProviders {
29295
30228
  capitalbrands: BowmarkProvider_capitalbrands.Unit;
29296
30229
  caraway: BowmarkProvider_caraway.Unit;
29297
30230
  carepatrol: BowmarkProvider_carepatrol.Unit;
30231
+ carlsgolfland: BowmarkProvider_carlsgolfland.Unit;
29298
30232
  carmelrealtycompany: BowmarkProvider_carmelrealtycompany.Unit;
29299
30233
  carolefabrics: BowmarkProvider_carolefabrics.Unit;
29300
30234
  carpetlandusa: BowmarkProvider_carpetlandusa.Unit;
@@ -29304,11 +30238,15 @@ interface BowmarkProviders {
29304
30238
  cbhhomes: BowmarkProvider_cbhhomes.Unit;
29305
30239
  champxpress: BowmarkProvider_champxpress.Unit;
29306
30240
  chantecaille: BowmarkProvider_chantecaille.Unit;
30241
+ chappellet: BowmarkProvider_chappellet.Unit;
30242
+ charterhomes: BowmarkProvider_charterhomes.Unit;
29307
30243
  cheapflights: BowmarkProvider_cheapflights.Unit;
29308
30244
  chesmar: BowmarkProvider_chesmar.Unit;
29309
30245
  chipotle: BowmarkProvider_chipotle.Unit;
29310
30246
  chriscraft: BowmarkProvider_chriscraft.Unit;
30247
+ christianbrothersauto: BowmarkProvider_christianbrothersauto.Unit;
29311
30248
  classichome: BowmarkProvider_classichome.Unit;
30249
+ classicrockfab: BowmarkProvider_classicrockfab.Unit;
29312
30250
  classpass: BowmarkProvider_classpass.Unit;
29313
30251
  claude_com: BowmarkProvider_claude_com.Unit;
29314
30252
  claude_support: BowmarkProvider_claude_support.Unit;
@@ -29333,11 +30271,13 @@ interface BowmarkProviders {
29333
30271
  dillards: BowmarkProvider_dillards.Unit;
29334
30272
  discounttire: BowmarkProvider_discounttire.Unit;
29335
30273
  disney: BowmarkProvider_disney.Unit;
30274
+ donsappliances: BowmarkProvider_donsappliances.Unit;
29336
30275
  doordash: BowmarkProvider_doordash.Unit;
29337
30276
  dumpsters: BowmarkProvider_dumpsters.Unit;
29338
30277
  ebay: BowmarkProvider_ebay.Unit;
29339
30278
  elevenlabs: BowmarkProvider_elevenlabs.Unit;
29340
30279
  embroker: BowmarkProvider_embroker.Unit;
30280
+ epromos: BowmarkProvider_epromos.Unit;
29341
30281
  eq3: BowmarkProvider_eq3.Unit;
29342
30282
  erieinsurance: BowmarkProvider_erieinsurance.Unit;
29343
30283
  etsy: BowmarkProvider_etsy.Unit;
@@ -29346,12 +30286,14 @@ interface BowmarkProviders {
29346
30286
  executivehomecare: BowmarkProvider_executivehomecare.Unit;
29347
30287
  extraspace: BowmarkProvider_extraspace.Unit;
29348
30288
  facerealityskincare: BowmarkProvider_facerealityskincare.Unit;
30289
+ fieldstonehomes: BowmarkProvider_fieldstonehomes.Unit;
29349
30290
  firstdibs: BowmarkProvider_firstdibs.Unit;
29350
30291
  fivebelow: BowmarkProvider_fivebelow.Unit;
29351
30292
  fivestarbathsolutions: BowmarkProvider_fivestarbathsolutions.Unit;
29352
30293
  flightradar24: BowmarkProvider_flightradar24.Unit;
29353
30294
  ford: BowmarkProvider_ford.Unit;
29354
30295
  formax: BowmarkProvider_formax.Unit;
30296
+ forms_hubspot_com: BowmarkProvider_forms_hubspot_com.Unit;
29355
30297
  fourseasonsyachts: BowmarkProvider_fourseasonsyachts.Unit;
29356
30298
  framebridge: BowmarkProvider_framebridge.Unit;
29357
30299
  fred: BowmarkProvider_fred.Unit;
@@ -29389,6 +30331,7 @@ interface BowmarkProviders {
29389
30331
  ibuypower: BowmarkProvider_ibuypower.Unit;
29390
30332
  identitygroup: BowmarkProvider_identitygroup.Unit;
29391
30333
  ihg: BowmarkProvider_ihg.Unit;
30334
+ inspirecommunities: BowmarkProvider_inspirecommunities.Unit;
29392
30335
  instagram: BowmarkProvider_instagram.Unit;
29393
30336
  insurify: BowmarkProvider_insurify.Unit;
29394
30337
  interiordefine: BowmarkProvider_interiordefine.Unit;
@@ -29421,6 +30364,7 @@ interface BowmarkProviders {
29421
30364
  louvershop: BowmarkProvider_louvershop.Unit;
29422
30365
  lovelybride: BowmarkProvider_lovelybride.Unit;
29423
30366
  lufthansa: BowmarkProvider_lufthansa.Unit;
30367
+ luggageforward: BowmarkProvider_luggageforward.Unit;
29424
30368
  lululemon: BowmarkProvider_lululemon.Unit;
29425
30369
  maidenhome: BowmarkProvider_maidenhome.Unit;
29426
30370
  mailchimp: BowmarkProvider_mailchimp.Unit;
@@ -29450,6 +30394,7 @@ interface BowmarkProviders {
29450
30394
  newegg: BowmarkProvider_newegg.Unit;
29451
30395
  nfa_futures_org: BowmarkProvider_nfa_futures_org.Unit;
29452
30396
  npmjs: BowmarkProvider_npmjs.Unit;
30397
+ nurturelife: BowmarkProvider_nurturelife.Unit;
29453
30398
  nutrafol: BowmarkProvider_nutrafol.Unit;
29454
30399
  nvisioncenters: BowmarkProvider_nvisioncenters.Unit;
29455
30400
  oanda: BowmarkProvider_oanda.Unit;
@@ -29470,6 +30415,7 @@ interface BowmarkProviders {
29470
30415
  positivegrid: BowmarkProvider_positivegrid.Unit;
29471
30416
  premierbuildings: BowmarkProvider_premierbuildings.Unit;
29472
30417
  progressive: BowmarkProvider_progressive.Unit;
30418
+ prolook: BowmarkProvider_prolook.Unit;
29473
30419
  prose: BowmarkProvider_prose.Unit;
29474
30420
  provenwinners: BowmarkProvider_provenwinners.Unit;
29475
30421
  proxmox: BowmarkProvider_proxmox.Unit;
@@ -29525,6 +30471,7 @@ interface BowmarkProviders {
29525
30471
  travelinsured: BowmarkProvider_travelinsured.Unit;
29526
30472
  trawickinternational: BowmarkProvider_trawickinternational.Unit;
29527
30473
  trektravel: BowmarkProvider_trektravel.Unit;
30474
+ trojanstorage: BowmarkProvider_trojanstorage.Unit;
29528
30475
  trophysignaturehomes: BowmarkProvider_trophysignaturehomes.Unit;
29529
30476
  twiddy: BowmarkProvider_twiddy.Unit;
29530
30477
  uhc_smallbusiness: BowmarkProvider_uhc_smallbusiness.Unit;
@@ -81303,6 +82250,7 @@ interface BowmarkLibrary {
81303
82250
  pricing: BowmarkCapability_pricing.Unit;
81304
82251
  products: BowmarkCapability_products.Unit;
81305
82252
  promocodes: BowmarkCapability_promocodes.Unit;
82253
+ prospect_screening: BowmarkCapability_prospect_screening.Unit;
81306
82254
  read: BowmarkCapability_read.Unit;
81307
82255
  restaurant_booking: BowmarkCapability_restaurant_booking.Unit;
81308
82256
  retail: BowmarkCapability_retail.Unit;