@bowmark/web 1.16.1 → 1.18.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.
- package/dist/generated/library.d.ts +901 -2
- package/dist/generated/validators.js +908 -55
- package/package.json +1 -1
|
@@ -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:
|
|
9
|
-
//
|
|
8
|
+
// Manifest version: 12940343b1f8c9228a6b145e3e5125fe143419901694198fcc8789af04b5dc2e
|
|
9
|
+
// 45 capabilities, 367 providers, 913 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
|
|
@@ -2610,6 +2610,27 @@ interface ForecastResult {
|
|
|
2610
2610
|
}
|
|
2611
2611
|
}
|
|
2612
2612
|
|
|
2613
|
+
declare namespace BowmarkCapability_web_form_fields {
|
|
2614
|
+
// ── Inspect a web form and count its fields — the unit's own declarations, verbatim ──
|
|
2615
|
+
|
|
2616
|
+
interface FormField { name: string | null; label: string | null; type: string; required: boolean }
|
|
2617
|
+
interface InspectedForm { action: string | null; method: string; fields: FormField[] }
|
|
2618
|
+
interface FormInspectionResult { url: string; title: string | null; forms: InspectedForm[]; fieldCount: number; warnings: string[] }
|
|
2619
|
+
|
|
2620
|
+
/**
|
|
2621
|
+
* Fetches a public web page and inventories every visible form field: its label, name, type
|
|
2622
|
+
* and required-ness. Read-only: it never fills or submits a form.
|
|
2623
|
+
*/
|
|
2624
|
+
interface Unit {
|
|
2625
|
+
/**
|
|
2626
|
+
* Reads a public page and returns its forms plus a total field count. Each field includes its
|
|
2627
|
+
* label when the markup supplies one, name, type and required-ness. It never fills, clicks or
|
|
2628
|
+
* submits anything; a page with client-rendered forms or no HTML form gets an honest warning.
|
|
2629
|
+
*/
|
|
2630
|
+
getFields(url: string): Promise<FormInspectionResult>;
|
|
2631
|
+
}
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2613
2634
|
declare namespace BowmarkCapability_wireless {
|
|
2614
2635
|
// ── wireless plan all-in price — the unit's own declarations, verbatim ──
|
|
2615
2636
|
interface CarrierAllInPrice {
|
|
@@ -5323,6 +5344,47 @@ interface BcParksAvailabilityResult {
|
|
|
5323
5344
|
}
|
|
5324
5345
|
}
|
|
5325
5346
|
|
|
5347
|
+
declare namespace BowmarkProvider_beaconfunding {
|
|
5348
|
+
// ── Beacon Funding — the unit's own declarations, verbatim ──
|
|
5349
|
+
type BeaconfundingLoanType = "equipmentFinancing" | "preApproval" | "cashForBusiness";
|
|
5350
|
+
|
|
5351
|
+
interface BeaconfundingFieldOption {
|
|
5352
|
+
value: string;
|
|
5353
|
+
label: string;
|
|
5354
|
+
}
|
|
5355
|
+
|
|
5356
|
+
interface BeaconfundingApplicationField {
|
|
5357
|
+
name: string;
|
|
5358
|
+
label: string;
|
|
5359
|
+
inputType: "text" | "email" | "tel" | "textarea" | "select";
|
|
5360
|
+
required: boolean;
|
|
5361
|
+
maxLength: number | null;
|
|
5362
|
+
pattern: string | null;
|
|
5363
|
+
options: BeaconfundingFieldOption[] | null;
|
|
5364
|
+
}
|
|
5365
|
+
|
|
5366
|
+
interface BeaconfundingApplicationFields {
|
|
5367
|
+
loanType: BeaconfundingLoanType;
|
|
5368
|
+
helpPhone: string | null;
|
|
5369
|
+
fields: BeaconfundingApplicationField[];
|
|
5370
|
+
}
|
|
5371
|
+
|
|
5372
|
+
/**
|
|
5373
|
+
* Equipment-financing lender. getApplicationFields reads beaconfunding.com's own credit
|
|
5374
|
+
* application and returns, as typed data, exactly which fields it will ask for once a caller
|
|
5375
|
+
* picks a loan type — never fills or submits the application itself.
|
|
5376
|
+
*/
|
|
5377
|
+
interface Unit {
|
|
5378
|
+
/**
|
|
5379
|
+
* Reads beaconfunding.com's own credit application and returns the fields it declares for one
|
|
5380
|
+
* loan type — "equipmentFinancing", "preApproval", or "cashForBusiness" — with each field's
|
|
5381
|
+
* label, whether it is required, its validation pattern/max length, and (for a select) every
|
|
5382
|
+
* option value+label. Never fills in or submits the application.
|
|
5383
|
+
*/
|
|
5384
|
+
getApplicationFields(loanType: BeaconfundingLoanType): Promise<BeaconfundingApplicationFields>;
|
|
5385
|
+
}
|
|
5386
|
+
}
|
|
5387
|
+
|
|
5326
5388
|
declare namespace BowmarkProvider_beatthebomb {
|
|
5327
5389
|
// ── Beat The Bomb — the unit's own declarations, verbatim ──
|
|
5328
5390
|
interface BeatthebombMission {
|
|
@@ -6149,6 +6211,46 @@ interface BluehavenSiteFeasibility {
|
|
|
6149
6211
|
}
|
|
6150
6212
|
}
|
|
6151
6213
|
|
|
6214
|
+
declare namespace BowmarkProvider_blueribbonhomewarranty_com {
|
|
6215
|
+
// ── Blue Ribbon Home Warranty — the unit's own declarations, verbatim ──
|
|
6216
|
+
interface blueribbonhomewarranty_comPage {
|
|
6217
|
+
url: string;
|
|
6218
|
+
title: string;
|
|
6219
|
+
}
|
|
6220
|
+
interface blueribbonhomewarranty_comPageContent {
|
|
6221
|
+
url: string;
|
|
6222
|
+
title: string | null;
|
|
6223
|
+
description: string | null;
|
|
6224
|
+
headings: string[];
|
|
6225
|
+
body: string;
|
|
6226
|
+
hasApplicationForm: boolean;
|
|
6227
|
+
applicationFormQuestions: string[];
|
|
6228
|
+
}
|
|
6229
|
+
|
|
6230
|
+
/**
|
|
6231
|
+
* Finds and reads Blue Ribbon Home Warranty's own public pages — the apply/quote, claim and
|
|
6232
|
+
* renewal flows, pricing and support pages — as clean structured content, including what a
|
|
6233
|
+
* page's own Gravity Forms application asks for.
|
|
6234
|
+
*/
|
|
6235
|
+
interface Unit {
|
|
6236
|
+
/**
|
|
6237
|
+
* Finds Blue Ribbon Home Warranty's own pages by matching query words against the site's
|
|
6238
|
+
* sitemap (e.g. "apply online", "file a claim", "renew warranty", "pricing") — ranked by how
|
|
6239
|
+
* many words matched, up to 10 results. Returns [] when nothing matches.
|
|
6240
|
+
*/
|
|
6241
|
+
search(query: string): Promise<blueribbonhomewarranty_comPage[]>;
|
|
6242
|
+
|
|
6243
|
+
/**
|
|
6244
|
+
* Reads one Blue Ribbon Home Warranty page (a url returned by search) and returns its title,
|
|
6245
|
+
* meta description, headings and clean body text. When the page embeds one of the site's
|
|
6246
|
+
* Gravity Forms application/claim/renewal flows, also returns that form's own section headings
|
|
6247
|
+
* and top-level question labels. THROWS if the page does not exist (404) or names a host other
|
|
6248
|
+
* than blueribbonhomewarranty.com.
|
|
6249
|
+
*/
|
|
6250
|
+
getPage(url: string): Promise<blueribbonhomewarranty_comPageContent>;
|
|
6251
|
+
}
|
|
6252
|
+
}
|
|
6253
|
+
|
|
6152
6254
|
declare namespace BowmarkProvider_bluesignal {
|
|
6153
6255
|
// ── Blue Signal Search — the unit's own declarations, verbatim ──
|
|
6154
6256
|
interface BlueSignalJobSummary {
|
|
@@ -8059,6 +8161,46 @@ interface CasaDragonesNearbyRetailers {
|
|
|
8059
8161
|
}
|
|
8060
8162
|
}
|
|
8061
8163
|
|
|
8164
|
+
declare namespace BowmarkProvider_cascadiaseniorliving_com {
|
|
8165
|
+
// ── Cascadia Senior Living — the unit's own declarations, verbatim ──
|
|
8166
|
+
interface cascadiaseniorliving_comPage {
|
|
8167
|
+
id: number;
|
|
8168
|
+
title: string;
|
|
8169
|
+
url: string;
|
|
8170
|
+
slug: string;
|
|
8171
|
+
parent: number; // parent page id, or 0 for a top-level page
|
|
8172
|
+
}
|
|
8173
|
+
interface cascadiaseniorliving_comPageDetail {
|
|
8174
|
+
id: number;
|
|
8175
|
+
title: string;
|
|
8176
|
+
url: string;
|
|
8177
|
+
slug: string;
|
|
8178
|
+
body: string; // plain text, markup stripped
|
|
8179
|
+
hasContactForm: boolean; // a Gravity Forms contact/inquiry form is embedded
|
|
8180
|
+
}
|
|
8181
|
+
|
|
8182
|
+
/**
|
|
8183
|
+
* Reads Cascadia Senior Living's own site (why-us, living options, communities overview,
|
|
8184
|
+
* contact) — a full page index and any one page's own content as plain text, off the site's
|
|
8185
|
+
* own WordPress REST API rather than a scrape.
|
|
8186
|
+
*/
|
|
8187
|
+
interface Unit {
|
|
8188
|
+
/**
|
|
8189
|
+
* Lists every page cascadiaseniorliving.com publishes — title, url, slug and parent — off the
|
|
8190
|
+
* site's own WordPress REST API page index.
|
|
8191
|
+
*/
|
|
8192
|
+
listSitePages(): Promise<cascadiaseniorliving_comPage[]>;
|
|
8193
|
+
|
|
8194
|
+
/**
|
|
8195
|
+
* Reads one page by its url (from a `listSitePages` result) or bare slug (e.g.
|
|
8196
|
+
* "living-options") and returns its title and body as plain text, plus whether it embeds one
|
|
8197
|
+
* of the site's own contact/inquiry forms. THROWS if no page matches, or if a url names a host
|
|
8198
|
+
* other than cascadiaseniorliving.com.
|
|
8199
|
+
*/
|
|
8200
|
+
getSitePage(pageRef: string): Promise<cascadiaseniorliving_comPageDetail>;
|
|
8201
|
+
}
|
|
8202
|
+
}
|
|
8203
|
+
|
|
8062
8204
|
declare namespace BowmarkProvider_cbhhomes {
|
|
8063
8205
|
// ── CBH Homes — the unit's own declarations, verbatim ──
|
|
8064
8206
|
interface CbhListing {
|
|
@@ -9227,6 +9369,25 @@ interface claudeMarketplacesListingLink {
|
|
|
9227
9369
|
}
|
|
9228
9370
|
}
|
|
9229
9371
|
|
|
9372
|
+
declare namespace BowmarkProvider_clboyd {
|
|
9373
|
+
// ── CL Boyd — the unit's own declarations, verbatim ──
|
|
9374
|
+
interface CLBoydSearchArgs { category: string; manufacturer?: string; minYear?: number; maxYear?: number; minPrice?: number; maxPrice?: number; minHours?: number; maxHours?: number; sort?: string; }
|
|
9375
|
+
interface CLBoydEquipment { id: string; name: string; url: string; price: number | null; location: string | null; year: number | null; hours: number | null; stockNumber: string | null; }
|
|
9376
|
+
interface CLBoydSearchResult { equipment: CLBoydEquipment[]; }
|
|
9377
|
+
|
|
9378
|
+
/**
|
|
9379
|
+
* CL Boyd's live used-equipment inventory filter with current price, hours, stock number and
|
|
9380
|
+
* detail-page handoff.
|
|
9381
|
+
*/
|
|
9382
|
+
interface Unit {
|
|
9383
|
+
/**
|
|
9384
|
+
* Runs CL Boyd's live used-equipment filter and returns current matching machines with price,
|
|
9385
|
+
* hours, stock number and a detail-page handoff.
|
|
9386
|
+
*/
|
|
9387
|
+
searchUsedEquipment(args: CLBoydSearchArgs): Promise<CLBoydSearchResult>;
|
|
9388
|
+
}
|
|
9389
|
+
}
|
|
9390
|
+
|
|
9230
9391
|
declare namespace BowmarkProvider_cleanairlawncare {
|
|
9231
9392
|
// ── Clean Air Lawn Care — the unit's own declarations, verbatim ──
|
|
9232
9393
|
interface CleanAirEstimateAvailability {
|
|
@@ -9589,6 +9750,45 @@ interface CouponFollowOffer {
|
|
|
9589
9750
|
}
|
|
9590
9751
|
}
|
|
9591
9752
|
|
|
9753
|
+
declare namespace BowmarkProvider_credibly_com {
|
|
9754
|
+
// ── Credibly business-financing application — the unit's own declarations, verbatim ──
|
|
9755
|
+
interface CrediblyApplicationField {
|
|
9756
|
+
name: string;
|
|
9757
|
+
label: string;
|
|
9758
|
+
type: string;
|
|
9759
|
+
required: boolean;
|
|
9760
|
+
options: Array<{ label: string; value: string }>;
|
|
9761
|
+
}
|
|
9762
|
+
interface CrediblyApplicationForm {
|
|
9763
|
+
applicationUrl: string;
|
|
9764
|
+
submitText: string;
|
|
9765
|
+
fields: CrediblyApplicationField[];
|
|
9766
|
+
}
|
|
9767
|
+
interface CrediblyEligibilityRequirements {
|
|
9768
|
+
applicationUrl: string;
|
|
9769
|
+
requirements: string[];
|
|
9770
|
+
}
|
|
9771
|
+
|
|
9772
|
+
/**
|
|
9773
|
+
* Reads the public Credibly application form's visible questions and its published eligibility
|
|
9774
|
+
* requirements, without filling or submitting anything.
|
|
9775
|
+
*/
|
|
9776
|
+
interface Unit {
|
|
9777
|
+
/**
|
|
9778
|
+
* Returns every visible question on Credibly's public business-financing application — label,
|
|
9779
|
+
* field type, required flag and select choices — plus the page URL and submit text. It only
|
|
9780
|
+
* reads the published form definition; it never fills or submits an application.
|
|
9781
|
+
*/
|
|
9782
|
+
getApplicationForm(): Promise<CrediblyApplicationForm>;
|
|
9783
|
+
|
|
9784
|
+
/**
|
|
9785
|
+
* Returns Credibly's own published eligibility requirements for its small-business financing
|
|
9786
|
+
* (time in business, credit score, monthly revenue) from its public FAQ, verbatim.
|
|
9787
|
+
*/
|
|
9788
|
+
getEligibilityRequirements(): Promise<CrediblyEligibilityRequirements>;
|
|
9789
|
+
}
|
|
9790
|
+
}
|
|
9791
|
+
|
|
9592
9792
|
declare namespace BowmarkProvider_cruiselakegeneva {
|
|
9593
9793
|
// ── Cruise Lake Geneva — the unit's own declarations, verbatim ──
|
|
9594
9794
|
interface CruiseLakeGenevaTour {
|
|
@@ -9819,6 +10019,87 @@ interface CyberpowerpcPriceResult {
|
|
|
9819
10019
|
}
|
|
9820
10020
|
}
|
|
9821
10021
|
|
|
10022
|
+
declare namespace BowmarkProvider_dahlconsulting {
|
|
10023
|
+
// ── Dahl Consulting — the unit's own declarations, verbatim ──
|
|
10024
|
+
// Dahl Consulting's OWN shapes — not a capability contract.
|
|
10025
|
+
|
|
10026
|
+
interface dahlconsultingJobSummary {
|
|
10027
|
+
title: string;
|
|
10028
|
+
url: string; // the id getJob takes
|
|
10029
|
+
postId: string; // the numeric id every job URL ends with
|
|
10030
|
+
city: string; state: string;
|
|
10031
|
+
employmentType: string; // e.g. "CONTRACTOR"
|
|
10032
|
+
payMin: number | null; payMax: number | null; payUnit: string | null; // e.g. "HOUR"
|
|
10033
|
+
datePosted: string; // ISO date
|
|
10034
|
+
}
|
|
10035
|
+
|
|
10036
|
+
interface dahlconsultingJob extends dahlconsultingJobSummary {
|
|
10037
|
+
industry: string;
|
|
10038
|
+
validThrough: string; // ISO date the posting expires
|
|
10039
|
+
description: string; // the full posting text
|
|
10040
|
+
applyUrl: string; // Dahl's own quick-apply page for this job — never submitted by this provider
|
|
10041
|
+
}
|
|
10042
|
+
|
|
10043
|
+
interface dahlconsultingSearchFilters { query?: string; location?: string; limit?: number }
|
|
10044
|
+
|
|
10045
|
+
/**
|
|
10046
|
+
* Searches Dahl Consulting's own live job board and reads a job's full posting — real title,
|
|
10047
|
+
* location, pay range, employment type and description off the site's own structured data —
|
|
10048
|
+
* plus a ready-to-open apply link, the way ChatGPT's web_search can find the listing but
|
|
10049
|
+
* cannot fill or submit the form.
|
|
10050
|
+
*/
|
|
10051
|
+
interface Unit {
|
|
10052
|
+
/**
|
|
10053
|
+
* Searches Dahl Consulting's live job board — every open role, optionally narrowed by keyword
|
|
10054
|
+
* and/or city/state — off the site's own sitemap and each matching posting's structured data.
|
|
10055
|
+
* Returns the url/postId getJob takes. No filter returns the most recently posted openings.
|
|
10056
|
+
*/
|
|
10057
|
+
searchJobs(filters?: dahlconsultingSearchFilters): Promise<dahlconsultingJobSummary[]>;
|
|
10058
|
+
|
|
10059
|
+
/**
|
|
10060
|
+
* Reads one job posting's full detail off its own page — complete description, industry,
|
|
10061
|
+
* posted/expiry dates and pay — plus a ready-to-open applyUrl on Dahl's own careers site.
|
|
10062
|
+
* THROWS on an unknown/removed url — call searchJobs() first.
|
|
10063
|
+
*/
|
|
10064
|
+
getJob(url: string): Promise<dahlconsultingJob>;
|
|
10065
|
+
}
|
|
10066
|
+
}
|
|
10067
|
+
|
|
10068
|
+
declare namespace BowmarkProvider_dansons {
|
|
10069
|
+
// ── Dansons (Pit Boss) — the unit's own declarations, verbatim ──
|
|
10070
|
+
interface dansonsRegisterableProduct {
|
|
10071
|
+
productId: string;
|
|
10072
|
+
title: string;
|
|
10073
|
+
sku: string;
|
|
10074
|
+
price: number;
|
|
10075
|
+
imageUrl: string | null;
|
|
10076
|
+
}
|
|
10077
|
+
|
|
10078
|
+
/**
|
|
10079
|
+
* Identifies which Pit Boss grill/smoker a free-text description matches, and lists the
|
|
10080
|
+
* products eligible for warranty registration — read live off Pit Boss's own registration-page
|
|
10081
|
+
* catalog.
|
|
10082
|
+
*/
|
|
10083
|
+
interface Unit {
|
|
10084
|
+
/**
|
|
10085
|
+
* Lists every Pit Boss product eligible for warranty registration — the exact catalog the
|
|
10086
|
+
* registration page's own product-search reads from. Each row carries the real title, SKU,
|
|
10087
|
+
* current price and product image, direct from Pit Boss's Storefront API.
|
|
10088
|
+
*/
|
|
10089
|
+
listRegisterableProducts(): Promise<dansonsRegisterableProduct[]>;
|
|
10090
|
+
|
|
10091
|
+
/**
|
|
10092
|
+
* Identifies which Pit Boss product(s) a free-text description matches — the same normalized
|
|
10093
|
+
* substring match the registration page's own typeahead performs when a shopper types e.g.
|
|
10094
|
+
* 'PB1230' or 'Lockhart Platinum'. Returns every registerable product whose title, SKU or
|
|
10095
|
+
* product id contains the (normalized) query; empty when nothing matches. Use this before
|
|
10096
|
+
* registering a product to confirm the exact model, without needing the shopper's serial
|
|
10097
|
+
* number or purchase info.
|
|
10098
|
+
*/
|
|
10099
|
+
identifyProduct(query: string): Promise<dansonsRegisterableProduct[]>;
|
|
10100
|
+
}
|
|
10101
|
+
}
|
|
10102
|
+
|
|
9822
10103
|
declare namespace BowmarkProvider_davidsonhomes {
|
|
9823
10104
|
// ── Davidson Homes — the unit's own declarations, verbatim ──
|
|
9824
10105
|
// Davidson Homes' OWN shapes — not a capability contract.
|
|
@@ -10208,6 +10489,176 @@ interface DdCartHandoff {
|
|
|
10208
10489
|
}
|
|
10209
10490
|
}
|
|
10210
10491
|
|
|
10492
|
+
declare namespace BowmarkProvider_deltadentalma {
|
|
10493
|
+
// ── Delta Dental of Massachusetts — the unit's own declarations, verbatim ──
|
|
10494
|
+
// Delta Dental of Massachusetts's OWN shapes — not a capability contract.
|
|
10495
|
+
|
|
10496
|
+
interface deltadentalmaDentist {
|
|
10497
|
+
providerServiceOfficeId: string; // the site's own composite id
|
|
10498
|
+
npi: string | null;
|
|
10499
|
+
firstName: string; lastName: string;
|
|
10500
|
+
specialty: string[]; // e.g. ["General Dentist"]
|
|
10501
|
+
languages: string[]; // e.g. ["English", "Portuguese"]
|
|
10502
|
+
acceptsNewPatients: boolean; // true on ANY in-network product returned
|
|
10503
|
+
networks: string[]; // in-network product names, e.g. ["Delta Dental PPO"]
|
|
10504
|
+
businessName: string; address: string; city: string; state: string; zip: string;
|
|
10505
|
+
phone: string | null;
|
|
10506
|
+
rating: number | null; // 1-5, the site's own patient-experience score
|
|
10507
|
+
distanceMiles: number | null;
|
|
10508
|
+
}
|
|
10509
|
+
|
|
10510
|
+
interface deltadentalmaSearchFilters {
|
|
10511
|
+
zip: string; // a ZIP or city/town, free text — the site's own field
|
|
10512
|
+
radiusMiles?: number; // default 25
|
|
10513
|
+
network?: string; // a network code, e.g. "PPOPlusPremier"; omit for all
|
|
10514
|
+
specialty?: string; // a specialty code, e.g. "000" (General Dentist); omit for all
|
|
10515
|
+
language?: string; // a language code, e.g. "POR" (Portuguese); omit for none
|
|
10516
|
+
gender?: "F" | "M";
|
|
10517
|
+
limit?: number; // default 20, max 100
|
|
10518
|
+
}
|
|
10519
|
+
|
|
10520
|
+
/**
|
|
10521
|
+
* Searches Delta Dental of Massachusetts's own Find-a-Dentist directory for in-network
|
|
10522
|
+
* dentists and clinics near a ZIP — the same live provider data the site's `/fad/search`
|
|
10523
|
+
* widget renders, filterable by network, specialty, language and gender.
|
|
10524
|
+
*/
|
|
10525
|
+
interface Unit {
|
|
10526
|
+
/**
|
|
10527
|
+
* Searches Delta Dental of Massachusetts's live Find-a-Dentist directory near a ZIP, filtered
|
|
10528
|
+
* by network, specialty, language and/or gender. Returns real in-network providers with
|
|
10529
|
+
* address, phone, distance and accepts-new-patients status.
|
|
10530
|
+
*/
|
|
10531
|
+
search(filters: deltadentalmaSearchFilters): Promise<deltadentalmaDentist[]>;
|
|
10532
|
+
|
|
10533
|
+
/**
|
|
10534
|
+
* Returns the ISO timestamp the directory data was last refreshed, so a caller can say how
|
|
10535
|
+
* fresh a search result set is.
|
|
10536
|
+
*/
|
|
10537
|
+
lastUpdated(): Promise<{ lastUpdated: string }>;
|
|
10538
|
+
}
|
|
10539
|
+
}
|
|
10540
|
+
|
|
10541
|
+
declare namespace BowmarkProvider_dentalplans {
|
|
10542
|
+
// ── DentalPlans.com — the unit's own declarations, verbatim ──
|
|
10543
|
+
// DentalPlans.com's OWN shapes — not a capability contract.
|
|
10544
|
+
|
|
10545
|
+
interface DentalplansPlanListing {
|
|
10546
|
+
planId: string;
|
|
10547
|
+
name: string;
|
|
10548
|
+
carrier: string;
|
|
10549
|
+
planType: "savings" | "insurance";
|
|
10550
|
+
annualPrice: number;
|
|
10551
|
+
monthlyPrice: number;
|
|
10552
|
+
dentistsNearYou: number | null;
|
|
10553
|
+
detailUrl: string;
|
|
10554
|
+
checkoutUrl: string | null;
|
|
10555
|
+
}
|
|
10556
|
+
|
|
10557
|
+
interface DentalplansSearchResult {
|
|
10558
|
+
zip: string;
|
|
10559
|
+
plans: DentalplansPlanListing[];
|
|
10560
|
+
resultCount: number;
|
|
10561
|
+
}
|
|
10562
|
+
|
|
10563
|
+
interface DentalplansProcedureSaving {
|
|
10564
|
+
description: string;
|
|
10565
|
+
code: string;
|
|
10566
|
+
priceWithoutPlan: number;
|
|
10567
|
+
priceWithPlan: number;
|
|
10568
|
+
savingsPercent: number;
|
|
10569
|
+
}
|
|
10570
|
+
|
|
10571
|
+
interface DentalplansPlanDetail {
|
|
10572
|
+
name: string;
|
|
10573
|
+
description: string;
|
|
10574
|
+
url: string;
|
|
10575
|
+
procedures: DentalplansProcedureSaving[];
|
|
10576
|
+
}
|
|
10577
|
+
|
|
10578
|
+
/**
|
|
10579
|
+
* DentalPlans.com's own live, location-filtered plan search (/plan-search-results/?zip=) off
|
|
10580
|
+
* the site's server-rendered results — real matched dental savings plans and dental insurance
|
|
10581
|
+
* plans with real pricing and in-network dentist counts, not a stale mirror — plus one plan's
|
|
10582
|
+
* own full detail and sample procedure-savings table.
|
|
10583
|
+
*/
|
|
10584
|
+
interface Unit {
|
|
10585
|
+
/**
|
|
10586
|
+
* Runs DentalPlans.com's own live plan search for a 5-digit US zip and returns the real
|
|
10587
|
+
* matched dental savings plans and dental insurance plans it currently lists, in the site's
|
|
10588
|
+
* own order, with real pricing and in-network dentist counts. The query ChatGPT's fit-check
|
|
10589
|
+
* (agents/prospector-2/packets/dentalplans.com/angle.md) could not actually run: it cannot
|
|
10590
|
+
* submit the site's own ZIP-entry form.
|
|
10591
|
+
*/
|
|
10592
|
+
search(zip: string): Promise<DentalplansSearchResult>;
|
|
10593
|
+
|
|
10594
|
+
/**
|
|
10595
|
+
* Reads one plan's own detail page — its marketing description and the site's own 'Common
|
|
10596
|
+
* Procedures' sample savings table (real per-procedure price with vs. without the plan). `url`
|
|
10597
|
+
* is a plan URL from a `search` result.
|
|
10598
|
+
*/
|
|
10599
|
+
getPlan(url: string): Promise<DentalplansPlanDetail>;
|
|
10600
|
+
}
|
|
10601
|
+
}
|
|
10602
|
+
|
|
10603
|
+
declare namespace BowmarkProvider_detailxperts {
|
|
10604
|
+
// ── DetailXPerts — the unit's own declarations, verbatim ──
|
|
10605
|
+
interface DetailxpertsServiceArea {
|
|
10606
|
+
serviced: boolean;
|
|
10607
|
+
driveTimeMinutes: number | null;
|
|
10608
|
+
driveDistanceMiles: number | null;
|
|
10609
|
+
driveFeeAmount: number | null;
|
|
10610
|
+
message: string | null;
|
|
10611
|
+
}
|
|
10612
|
+
interface DetailxpertsVehicleType {
|
|
10613
|
+
position: number;
|
|
10614
|
+
title: string;
|
|
10615
|
+
imageUrl: string;
|
|
10616
|
+
}
|
|
10617
|
+
interface DetailxpertsQuotePackage {
|
|
10618
|
+
title: string;
|
|
10619
|
+
points: string[];
|
|
10620
|
+
price: number;
|
|
10621
|
+
timeMinutes: number;
|
|
10622
|
+
}
|
|
10623
|
+
interface DetailxpertsQuote {
|
|
10624
|
+
vehicleTitle: string;
|
|
10625
|
+
dirtUpcharge: number;
|
|
10626
|
+
hairUpcharge: number;
|
|
10627
|
+
dirtInteriorUpcharge: number;
|
|
10628
|
+
packages: DetailxpertsQuotePackage[];
|
|
10629
|
+
}
|
|
10630
|
+
|
|
10631
|
+
/**
|
|
10632
|
+
* Whether an address falls inside a DetailXPerts mobile-detailing franchise's real service
|
|
10633
|
+
* area (with the site's own computed drive time/distance/fee), and a real, input-varying price
|
|
10634
|
+
* quote for a vehicle type and dirt/pet-hair/interior condition — read off the same
|
|
10635
|
+
* admin-ajax.php actions the site's own booking flow calls.
|
|
10636
|
+
*/
|
|
10637
|
+
interface Unit {
|
|
10638
|
+
/**
|
|
10639
|
+
* Checks whether an address is inside a DetailXPerts franchise's real mobile service area, and
|
|
10640
|
+
* when it is, returns the site's own computed drive time (minutes), distance (miles) and drive
|
|
10641
|
+
* fee. Returns serviced: false with the site's own message when it's outside every franchise's
|
|
10642
|
+
* territory.
|
|
10643
|
+
*/
|
|
10644
|
+
checkServiceArea(args: { address1: string; address2?: string; city: string; state: string; zip: string }): Promise<DetailxpertsServiceArea>;
|
|
10645
|
+
|
|
10646
|
+
/**
|
|
10647
|
+
* Lists the site's own vehicle-size categories (Micro, Hatchback, Sedan, SUV, Van, …), each
|
|
10648
|
+
* with the 1-based position getQuote's vehiclePosition takes.
|
|
10649
|
+
*/
|
|
10650
|
+
listVehicleTypes(): Promise<DetailxpertsVehicleType[]>;
|
|
10651
|
+
|
|
10652
|
+
/**
|
|
10653
|
+
* Prices a mobile detail for one vehicle type and a dirt/pet-hair/interior-dirt condition (1
|
|
10654
|
+
* light to 3 heavy, per the site's own scale), returning the real 4-package ladder (title,
|
|
10655
|
+
* checklist, price, time) with the condition upcharges applied. Call listVehicleTypes() for
|
|
10656
|
+
* real vehiclePosition values.
|
|
10657
|
+
*/
|
|
10658
|
+
getQuote(args: { vehiclePosition: number; dirtLevel: number; hairLevel: number; dirtInteriorLevel: number }): Promise<DetailxpertsQuote>;
|
|
10659
|
+
}
|
|
10660
|
+
}
|
|
10661
|
+
|
|
10211
10662
|
declare namespace BowmarkProvider_developersopenai {
|
|
10212
10663
|
// ── OpenAI Developer Docs — the unit's own declarations, verbatim ──
|
|
10213
10664
|
interface DevelopersOpenaiDocPage {
|
|
@@ -10950,6 +11401,78 @@ interface ebayItem {
|
|
|
10950
11401
|
}
|
|
10951
11402
|
}
|
|
10952
11403
|
|
|
11404
|
+
declare namespace BowmarkProvider_elase {
|
|
11405
|
+
// ── Elase Med Spa — the unit's own declarations, verbatim ──
|
|
11406
|
+
interface ElaseLocationLink {
|
|
11407
|
+
slug: string;
|
|
11408
|
+
url: string;
|
|
11409
|
+
}
|
|
11410
|
+
|
|
11411
|
+
interface ElaseLocation {
|
|
11412
|
+
slug: string;
|
|
11413
|
+
name: string;
|
|
11414
|
+
url: string;
|
|
11415
|
+
centerId: string; // the id listServices and checkAvailability take
|
|
11416
|
+
phone: string | null;
|
|
11417
|
+
address: string | null;
|
|
11418
|
+
hours: string | null;
|
|
11419
|
+
}
|
|
11420
|
+
|
|
11421
|
+
interface ElaseService {
|
|
11422
|
+
id: string; // the id checkAvailability takes
|
|
11423
|
+
name: string;
|
|
11424
|
+
description: string | null;
|
|
11425
|
+
durationMinutes: number | null;
|
|
11426
|
+
price: number | null;
|
|
11427
|
+
}
|
|
11428
|
+
|
|
11429
|
+
interface ElaseSlot {
|
|
11430
|
+
time: string; // an ISO-ish "YYYY-MM-DDTHH:mm:ss" local time
|
|
11431
|
+
}
|
|
11432
|
+
|
|
11433
|
+
interface ElaseAvailability {
|
|
11434
|
+
centerId: string;
|
|
11435
|
+
serviceId: string;
|
|
11436
|
+
date: string;
|
|
11437
|
+
slots: ElaseSlot[]; // verbatim — empty is a real answer (fully booked / closed)
|
|
11438
|
+
}
|
|
11439
|
+
|
|
11440
|
+
/**
|
|
11441
|
+
* Elase Med Spa's real location directory, live per-location service catalog, and real
|
|
11442
|
+
* open-slot appointment availability — the same Zenoti booking backend the site's own widget
|
|
11443
|
+
* calls. Rung 9/11, no browser.
|
|
11444
|
+
*/
|
|
11445
|
+
interface Unit {
|
|
11446
|
+
/**
|
|
11447
|
+
* Reads the live list of every Elase Med Spa location (slug + page URL) off the site's own
|
|
11448
|
+
* /locations/ directory.
|
|
11449
|
+
*/
|
|
11450
|
+
listLocations(): Promise<ElaseLocationLink[]>;
|
|
11451
|
+
|
|
11452
|
+
/**
|
|
11453
|
+
* Resolves a slug/neighborhood query (e.g. "sugar-house") to the matching real Elase
|
|
11454
|
+
* location(s) — name, address, phone, hours, and the Zenoti centerId listServices and
|
|
11455
|
+
* checkAvailability need. Call listLocations() first for the real slugs.
|
|
11456
|
+
*/
|
|
11457
|
+
findLocation(query: string): Promise<ElaseLocation[]>;
|
|
11458
|
+
|
|
11459
|
+
/**
|
|
11460
|
+
* Reads one location's real, live service catalog — pass a `centerId` from findLocation(), and
|
|
11461
|
+
* an optional search string (e.g. "botox", "consultation") to narrow it; omit it for the full
|
|
11462
|
+
* catalog.
|
|
11463
|
+
*/
|
|
11464
|
+
listServices(centerId: string, query?: string): Promise<ElaseService[]>;
|
|
11465
|
+
|
|
11466
|
+
/**
|
|
11467
|
+
* Checks real, live open time slots for one service at one location on one "YYYY-MM-DD" date —
|
|
11468
|
+
* the same live check Elase's own Zenoti booking widget makes before showing bookable times.
|
|
11469
|
+
* An empty `slots` array is the site's real answer (fully booked or closed that day), not an
|
|
11470
|
+
* error.
|
|
11471
|
+
*/
|
|
11472
|
+
checkAvailability(centerId: string, serviceId: string, date: string): Promise<ElaseAvailability>;
|
|
11473
|
+
}
|
|
11474
|
+
}
|
|
11475
|
+
|
|
10953
11476
|
declare namespace BowmarkProvider_elevenlabs {
|
|
10954
11477
|
// ── ElevenLabs — the unit's own declarations, verbatim ──
|
|
10955
11478
|
interface elevenlabsSynthesisResult {
|
|
@@ -11157,6 +11680,34 @@ interface Eq3SofaConfiguration {
|
|
|
11157
11680
|
}
|
|
11158
11681
|
}
|
|
11159
11682
|
|
|
11683
|
+
declare namespace BowmarkProvider_equinox_hotels {
|
|
11684
|
+
// ── Equinox Hotels — the unit's own declarations, verbatim ──
|
|
11685
|
+
interface EquinoxRoom { code: string; name: string; description: string | null; maxOccupants: number | null; bookingUrl: string; }
|
|
11686
|
+
|
|
11687
|
+
interface SearchEquinoxRatesArgs { checkIn: string; checkOut: string; adults?: number; }
|
|
11688
|
+
|
|
11689
|
+
interface EquinoxRate { roomCode: string; rateCode: string; description: string | null; currency: string; nightlyBeforeTax: number; nightlyAfterTax: number; stayBeforeTax: number | null; stayAfterTax: number | null; cancellationText: string | null; bookingUrl: string; }
|
|
11690
|
+
|
|
11691
|
+
/**
|
|
11692
|
+
* Equinox Hotel New York's own live room inventory and direct booking rates, including nightly
|
|
11693
|
+
* and stay-total tax-inclusive prices before any guest details are required.
|
|
11694
|
+
*/
|
|
11695
|
+
interface Unit {
|
|
11696
|
+
/**
|
|
11697
|
+
* Lists Equinox Hotel New York's live room inventory, including the booking engine's room
|
|
11698
|
+
* code, description, and occupancy limit.
|
|
11699
|
+
*/
|
|
11700
|
+
listRooms(): Promise<EquinoxRoom[]>;
|
|
11701
|
+
|
|
11702
|
+
/**
|
|
11703
|
+
* Searches Equinox Hotel New York's own live booking engine for direct rates on
|
|
11704
|
+
* check-in/check-out dates and an adult count. Returns every room/rate plan with nightly and
|
|
11705
|
+
* stay-total prices, not an OTA estimate.
|
|
11706
|
+
*/
|
|
11707
|
+
searchRates(args: SearchEquinoxRatesArgs): Promise<EquinoxRate[]>;
|
|
11708
|
+
}
|
|
11709
|
+
}
|
|
11710
|
+
|
|
11160
11711
|
declare namespace BowmarkProvider_erieinsurance {
|
|
11161
11712
|
// ── ERIE Insurance — the unit's own declarations, verbatim ──
|
|
11162
11713
|
interface ErieAgentQuery {
|
|
@@ -11367,6 +11918,31 @@ type ShadeQuizAnswerResult =
|
|
|
11367
11918
|
}
|
|
11368
11919
|
}
|
|
11369
11920
|
|
|
11921
|
+
declare namespace BowmarkProvider_evolvemedspa {
|
|
11922
|
+
// ── Evolve Med Spa — the unit's own declarations, verbatim ──
|
|
11923
|
+
interface EvolveMedSpaLocation { id: string; name: string; address: string | null; phone: string | null; }
|
|
11924
|
+
interface EvolveMedSpaService { id: string; name: string; description: string | null; durationMinutes: number | null; price: number | null; }
|
|
11925
|
+
interface EvolveMedSpaAvailability { centerId: string; serviceId: string; date: string; slots: { time: string }[]; }
|
|
11926
|
+
|
|
11927
|
+
/**
|
|
11928
|
+
* Evolve Med Spa's live Zenoti locations, service catalog, and bookable appointment slots — no
|
|
11929
|
+
* login, no PII, and no browser.
|
|
11930
|
+
*/
|
|
11931
|
+
interface Unit {
|
|
11932
|
+
/** Lists Evolve Med Spa's real bookable Zenoti locations. */
|
|
11933
|
+
listLocations(): Promise<EvolveMedSpaLocation[]>;
|
|
11934
|
+
|
|
11935
|
+
/** Lists a location's live Zenoti services, prices, and durations. */
|
|
11936
|
+
listServices(centerId: string, query?: string): Promise<EvolveMedSpaService[]>;
|
|
11937
|
+
|
|
11938
|
+
/**
|
|
11939
|
+
* Reads real open appointment slots for a service and date; an empty list is a real
|
|
11940
|
+
* fully-booked answer.
|
|
11941
|
+
*/
|
|
11942
|
+
checkAvailability(centerId: string, serviceId: string, date: string): Promise<EvolveMedSpaAvailability>;
|
|
11943
|
+
}
|
|
11944
|
+
}
|
|
11945
|
+
|
|
11370
11946
|
declare namespace BowmarkProvider_executivehomecare {
|
|
11371
11947
|
// ── Executive Home Care — the unit's own declarations, verbatim ──
|
|
11372
11948
|
interface ExecutivehomecareOffice {
|
|
@@ -11726,6 +12302,70 @@ interface FieldstonehomesPreparedAppointment { valid: boolean; errors: string[];
|
|
|
11726
12302
|
}
|
|
11727
12303
|
}
|
|
11728
12304
|
|
|
12305
|
+
declare namespace BowmarkProvider_firstamericahomes {
|
|
12306
|
+
// ── First America Homes — the unit's own declarations, verbatim ──
|
|
12307
|
+
// First America Homes' OWN shapes — not a capability contract.
|
|
12308
|
+
|
|
12309
|
+
interface FirstamericahomesCommunitySummary {
|
|
12310
|
+
name: string;
|
|
12311
|
+
url: string; // the key getCommunity takes
|
|
12312
|
+
city: string;
|
|
12313
|
+
state: string;
|
|
12314
|
+
zip: string;
|
|
12315
|
+
streetAddress: string;
|
|
12316
|
+
phone: string; // the community's own sales-office number, e.g. "+12106102362"
|
|
12317
|
+
description: string;
|
|
12318
|
+
priceFrom: number | null; // lowest currently-listed floor-plan price, or null
|
|
12319
|
+
}
|
|
12320
|
+
|
|
12321
|
+
interface FirstamericahomesFloorPlanRange { min: number; max: number }
|
|
12322
|
+
|
|
12323
|
+
interface FirstamericahomesFloorPlan {
|
|
12324
|
+
name: string;
|
|
12325
|
+
url: string;
|
|
12326
|
+
description: string;
|
|
12327
|
+
price: number | null;
|
|
12328
|
+
sqft: number | null;
|
|
12329
|
+
beds: FirstamericahomesFloorPlanRange | null;
|
|
12330
|
+
fullBaths: FirstamericahomesFloorPlanRange | null;
|
|
12331
|
+
halfBaths: FirstamericahomesFloorPlanRange | null;
|
|
12332
|
+
}
|
|
12333
|
+
|
|
12334
|
+
interface FirstamericahomesCommunityDetail extends FirstamericahomesCommunitySummary {
|
|
12335
|
+
latitude: number | null;
|
|
12336
|
+
longitude: number | null;
|
|
12337
|
+
floorPlans: FirstamericahomesFloorPlan[];
|
|
12338
|
+
}
|
|
12339
|
+
|
|
12340
|
+
interface FirstamericahomesSearchFilters {
|
|
12341
|
+
city?: string; state?: string; minPrice?: number; maxPrice?: number;
|
|
12342
|
+
}
|
|
12343
|
+
|
|
12344
|
+
/**
|
|
12345
|
+
* Reads First America Homes' own live community list across Houston and San Antonio — real
|
|
12346
|
+
* address, real sales-office phone number, real starting price and every current floor plan
|
|
12347
|
+
* (price, sqft, beds/baths) per community — the discoverable door into the site's
|
|
12348
|
+
* contact/tour/financing intake, which is keyed on a community rather than a single company
|
|
12349
|
+
* phone line.
|
|
12350
|
+
*/
|
|
12351
|
+
interface Unit {
|
|
12352
|
+
/**
|
|
12353
|
+
* Searches First America Homes' current live community list (Houston and San Antonio metros)
|
|
12354
|
+
* by city, state, or price range. Real address, real sales-office phone number and real
|
|
12355
|
+
* starting price per community.
|
|
12356
|
+
*/
|
|
12357
|
+
searchCommunities(filters?: FirstamericahomesSearchFilters): Promise<FirstamericahomesCommunitySummary[]>;
|
|
12358
|
+
|
|
12359
|
+
/**
|
|
12360
|
+
* Reads one community's full detail: address, sales-office phone, description,
|
|
12361
|
+
* geo-coordinates, and every floor plan it currently offers. `url` is a community's own url
|
|
12362
|
+
* from `searchCommunities()`. THROWS on an unknown url, naming `searchCommunities()` as the
|
|
12363
|
+
* way to find current ones.
|
|
12364
|
+
*/
|
|
12365
|
+
getCommunity(url: string): Promise<FirstamericahomesCommunityDetail>;
|
|
12366
|
+
}
|
|
12367
|
+
}
|
|
12368
|
+
|
|
11729
12369
|
declare namespace BowmarkProvider_firstdibs {
|
|
11730
12370
|
// ── 1stDibs — the unit's own declarations, verbatim ──
|
|
11731
12371
|
interface FirstdibsSearchResult {
|
|
@@ -15014,6 +15654,63 @@ interface HellotendService {
|
|
|
15014
15654
|
}
|
|
15015
15655
|
}
|
|
15016
15656
|
|
|
15657
|
+
declare namespace BowmarkProvider_highlandhomes {
|
|
15658
|
+
// ── Highland Homes — the unit's own declarations, verbatim ──
|
|
15659
|
+
interface HighlandHomesSearchFilter {
|
|
15660
|
+
city?: string;
|
|
15661
|
+
bedsMin?: number;
|
|
15662
|
+
bathsMin?: number;
|
|
15663
|
+
priceMin?: number;
|
|
15664
|
+
priceMax?: number;
|
|
15665
|
+
sqftMin?: number;
|
|
15666
|
+
sqftMax?: number;
|
|
15667
|
+
garageSpacesMin?: number;
|
|
15668
|
+
status?: string; // the site's own labels — read the values off a result, never guess one from prose
|
|
15669
|
+
hasDen?: boolean;
|
|
15670
|
+
hasLoft?: boolean;
|
|
15671
|
+
hasInLawSuite?: boolean;
|
|
15672
|
+
hasOwnersRetreat?: boolean;
|
|
15673
|
+
isOver55?: boolean;
|
|
15674
|
+
}
|
|
15675
|
+
interface HighlandHomesHome {
|
|
15676
|
+
id: number;
|
|
15677
|
+
lot: string;
|
|
15678
|
+
address: string;
|
|
15679
|
+
city: string;
|
|
15680
|
+
state: string;
|
|
15681
|
+
zip: string;
|
|
15682
|
+
beds: number;
|
|
15683
|
+
baths: number;
|
|
15684
|
+
halfBaths: number;
|
|
15685
|
+
garage: number;
|
|
15686
|
+
sqft: number;
|
|
15687
|
+
price: number;
|
|
15688
|
+
status: string; // the site's own labels — read the values off a result, never guess one from prose
|
|
15689
|
+
moveInDate: string | null;
|
|
15690
|
+
planName: string;
|
|
15691
|
+
planUrl: string;
|
|
15692
|
+
communityName: string;
|
|
15693
|
+
communityUrl: string;
|
|
15694
|
+
communityPhone: string | null;
|
|
15695
|
+
url: string;
|
|
15696
|
+
imageUrl: string | null;
|
|
15697
|
+
}
|
|
15698
|
+
|
|
15699
|
+
/**
|
|
15700
|
+
* Highland Homes' live new-construction inventory across Florida, filterable by city, price,
|
|
15701
|
+
* beds, sqft, garage spaces and build status — off the site's own undocumented filter-form
|
|
15702
|
+
* API.
|
|
15703
|
+
*/
|
|
15704
|
+
interface Unit {
|
|
15705
|
+
/**
|
|
15706
|
+
* Searches Highland Homes' live new-construction inventory (Florida only) by city, price,
|
|
15707
|
+
* beds, sqft, garage spaces, status ("Move-In Ready" / "Under Construction") and a handful of
|
|
15708
|
+
* feature flags. Pass no filter to get the full live inventory.
|
|
15709
|
+
*/
|
|
15710
|
+
search(filter?: HighlandHomesSearchFilter): Promise<HighlandHomesHome[]>;
|
|
15711
|
+
}
|
|
15712
|
+
}
|
|
15713
|
+
|
|
15017
15714
|
declare namespace BowmarkProvider_hilton {
|
|
15018
15715
|
// ── Hilton — the unit's own declarations, verbatim ──
|
|
15019
15716
|
interface hiltonRoomOffer {
|
|
@@ -17447,6 +18144,32 @@ interface KayakCar {
|
|
|
17447
18144
|
}
|
|
17448
18145
|
}
|
|
17449
18146
|
|
|
18147
|
+
declare namespace BowmarkProvider_kbb {
|
|
18148
|
+
// ── Kelley Blue Book — the unit's own declarations, verbatim ──
|
|
18149
|
+
interface KbbTrimPricing {
|
|
18150
|
+
trimName: string;
|
|
18151
|
+
trimId: number;
|
|
18152
|
+
msrp: number;
|
|
18153
|
+
fairPurchasePrice: number;
|
|
18154
|
+
fairPurchasePriceRange: { low: number; high: number };
|
|
18155
|
+
}
|
|
18156
|
+
|
|
18157
|
+
/**
|
|
18158
|
+
* Reads kbb.com's own per-trim MSRP and Fair Purchase Price for a make/model/year — an
|
|
18159
|
+
* independent, browserless read on what a vehicle costs, for when the manufacturer's own site
|
|
18160
|
+
* is unreachable.
|
|
18161
|
+
*/
|
|
18162
|
+
interface Unit {
|
|
18163
|
+
/**
|
|
18164
|
+
* Reads kbb.com's own per-trim MSRP and Fair Purchase Price for a make and model, e.g.
|
|
18165
|
+
* "Tesla", "Model 3" — kbb.com's own URL slugging, so a caller's ordinary make/model words
|
|
18166
|
+
* work directly. Optional model year defaults to kbb.com's current year. THROWS on a
|
|
18167
|
+
* make/model kbb.com has no page for, rather than returning an empty array.
|
|
18168
|
+
*/
|
|
18169
|
+
getTrimPricing(make: string, model: string, year?: number): Promise<KbbTrimPricing[]>;
|
|
18170
|
+
}
|
|
18171
|
+
}
|
|
18172
|
+
|
|
17450
18173
|
declare namespace BowmarkProvider_keepa {
|
|
17451
18174
|
// ── Keepa — the unit's own declarations, verbatim ──
|
|
17452
18175
|
interface KeepaProductResult { product: KeepaProduct; tokensLeft: number | null; tokensConsumed: number | null; refillRate: number | null; }
|
|
@@ -20553,6 +21276,62 @@ interface MixbookPromotion {
|
|
|
20553
21276
|
}
|
|
20554
21277
|
}
|
|
20555
21278
|
|
|
21279
|
+
declare namespace BowmarkProvider_modernize_com {
|
|
21280
|
+
// ── Modernize — the unit's own declarations, verbatim ──
|
|
21281
|
+
interface ModernizeProjectType {
|
|
21282
|
+
value: string; // the site's own POST value, e.g. "ROOFING"
|
|
21283
|
+
label: string;
|
|
21284
|
+
slug: string; // pass this as getQuoteFlow's projectType
|
|
21285
|
+
hasQuoteFlow: boolean;
|
|
21286
|
+
}
|
|
21287
|
+
interface ModernizeQuoteFlowOption {
|
|
21288
|
+
value: string;
|
|
21289
|
+
label: string;
|
|
21290
|
+
}
|
|
21291
|
+
interface ModernizeQuoteFlowField {
|
|
21292
|
+
name: string;
|
|
21293
|
+
label: string;
|
|
21294
|
+
inputType: "text" | "email" | "tel" | "textarea" | "select" | "radio";
|
|
21295
|
+
required: boolean;
|
|
21296
|
+
maxLength: number | null;
|
|
21297
|
+
options: ModernizeQuoteFlowOption[] | null; // present on select/radio only
|
|
21298
|
+
}
|
|
21299
|
+
interface ModernizeQuoteFlowStep {
|
|
21300
|
+
name: string;
|
|
21301
|
+
title: string;
|
|
21302
|
+
fields: ModernizeQuoteFlowField[];
|
|
21303
|
+
}
|
|
21304
|
+
interface ModernizeQuoteFlow {
|
|
21305
|
+
projectType: string;
|
|
21306
|
+
steps: ModernizeQuoteFlowStep[];
|
|
21307
|
+
}
|
|
21308
|
+
|
|
21309
|
+
/**
|
|
21310
|
+
* Home-improvement lead-gen site — listProjectTypes returns every trade its homeowner quote
|
|
21311
|
+
* flow covers (roofing, HVAC, windows, …), and getQuoteFlow reads the multi-step quote wizard
|
|
21312
|
+
* for one of them (project scope, address, personal/contact info) as typed steps and fields,
|
|
21313
|
+
* never fills or submits it.
|
|
21314
|
+
*/
|
|
21315
|
+
interface Unit {
|
|
21316
|
+
/**
|
|
21317
|
+
* Reads modernize.com's own trade radio group — every home-improvement project type its quote
|
|
21318
|
+
* flow covers (roofing, HVAC, windows, solar, doors, …), each with the site's own value, label
|
|
21319
|
+
* and URL slug, and whether that trade also carries a dedicated quote wizard getQuoteFlow can
|
|
21320
|
+
* read.
|
|
21321
|
+
*/
|
|
21322
|
+
listProjectTypes(): Promise<ModernizeProjectType[]>;
|
|
21323
|
+
|
|
21324
|
+
/**
|
|
21325
|
+
* Reads modernize.com's own multi-step homeowner quote wizard for one project type —
|
|
21326
|
+
* "roofing", "hvac", "windows", "siding", "solar", "doors", "home-security" or "home-warranty"
|
|
21327
|
+
* — and returns every step (ZIP, address, project scope, personal/contact info) with each
|
|
21328
|
+
* field's name, label, whether it is required, and (for a select or radio group) every option.
|
|
21329
|
+
* Never fills in or submits the wizard.
|
|
21330
|
+
*/
|
|
21331
|
+
getQuoteFlow(projectType: string): Promise<ModernizeQuoteFlow>;
|
|
21332
|
+
}
|
|
21333
|
+
}
|
|
21334
|
+
|
|
20556
21335
|
declare namespace BowmarkProvider_modularclosets {
|
|
20557
21336
|
// ── Modular Closets — the unit's own declarations, verbatim ──
|
|
20558
21337
|
// Modular Closets' OWN shapes — not a capability contract.
|
|
@@ -23668,6 +24447,50 @@ interface ProxmoxIsoDownload {
|
|
|
23668
24447
|
}
|
|
23669
24448
|
}
|
|
23670
24449
|
|
|
24450
|
+
declare namespace BowmarkProvider_puls_com {
|
|
24451
|
+
// ── Puls — the unit's own declarations, verbatim ──
|
|
24452
|
+
interface PulsApplianceCategory {
|
|
24453
|
+
deviceId: number;
|
|
24454
|
+
name: string;
|
|
24455
|
+
slug: string;
|
|
24456
|
+
}
|
|
24457
|
+
|
|
24458
|
+
interface GetRepairQuoteResult {
|
|
24459
|
+
device: PulsApplianceCategory;
|
|
24460
|
+
zipCode: string;
|
|
24461
|
+
isValidZipCode: boolean;
|
|
24462
|
+
marketId: number | null;
|
|
24463
|
+
marketName: string | null;
|
|
24464
|
+
serviceCallFee: number | null;
|
|
24465
|
+
}
|
|
24466
|
+
|
|
24467
|
+
/**
|
|
24468
|
+
* On-demand home-appliance and electronics repair booking. listApplianceCategories lists the
|
|
24469
|
+
* nine appliance categories the booking funnel offers; getRepairQuote checks whether Puls
|
|
24470
|
+
* services a ZIP and, if so, returns the real service-call (diagnostic) fee for an appliance
|
|
24471
|
+
* in that market — the same two facts the site's own /create-appointment form reveals after
|
|
24472
|
+
* picking an appliance and entering a ZIP.
|
|
24473
|
+
*/
|
|
24474
|
+
interface Unit {
|
|
24475
|
+
/**
|
|
24476
|
+
* Lists the nine appliance categories Puls' booking funnel offers (Refrigerator, Dryer, Oven,
|
|
24477
|
+
* Washer, Dishwasher, Cooktop, Freezer, Microwave, Washer dryer combo) with each one's
|
|
24478
|
+
* site-internal deviceId, name and URL slug. Call this first — the deviceId (or the name) is
|
|
24479
|
+
* what getRepairQuote's `device` argument takes.
|
|
24480
|
+
*/
|
|
24481
|
+
listApplianceCategories(): Promise<PulsApplianceCategory[]>;
|
|
24482
|
+
|
|
24483
|
+
/**
|
|
24484
|
+
* Checks whether Puls services a ZIP code and, if so, returns the real "Service Call Fee" (the
|
|
24485
|
+
* diagnostic fee a technician charges to show up) for the given appliance in that market.
|
|
24486
|
+
* `device` is an appliance name from listApplianceCategories (e.g. "Refrigerator") or its
|
|
24487
|
+
* numeric deviceId; `zipCode` is a 5-digit US ZIP. `serviceCallFee` and
|
|
24488
|
+
* `marketName`/`marketId` are `null` when the ZIP is outside Puls' service area.
|
|
24489
|
+
*/
|
|
24490
|
+
getRepairQuote(args: { device: string | number, zipCode: string }): Promise<GetRepairQuoteResult>;
|
|
24491
|
+
}
|
|
24492
|
+
}
|
|
24493
|
+
|
|
23671
24494
|
declare namespace BowmarkProvider_reddit {
|
|
23672
24495
|
// ── Reddit — the unit's own declarations, verbatim ──
|
|
23673
24496
|
interface RedditSearchPost {
|
|
@@ -28077,6 +28900,62 @@ interface uspsRateOption {
|
|
|
28077
28900
|
}
|
|
28078
28901
|
}
|
|
28079
28902
|
|
|
28903
|
+
declare namespace BowmarkProvider_vbt {
|
|
28904
|
+
// ── VBT Vacations — the unit's own declarations, verbatim ──
|
|
28905
|
+
interface VbtTourListing {
|
|
28906
|
+
slug: string; // e.g. "dolomites-self-guided-bike-tour"
|
|
28907
|
+
url: string; // full https://www.vbt.com/... tour page URL
|
|
28908
|
+
region: string; // e.g. "europe"
|
|
28909
|
+
country: string; // e.g. "italy"
|
|
28910
|
+
lastmod: string | null;
|
|
28911
|
+
}
|
|
28912
|
+
interface VbtPackageOption {
|
|
28913
|
+
durationDays: number;
|
|
28914
|
+
fromPrice: number; // per-person starting price, USD
|
|
28915
|
+
}
|
|
28916
|
+
interface VbtDeparture {
|
|
28917
|
+
id: string;
|
|
28918
|
+
departureDate: string; // ISO date
|
|
28919
|
+
returnDate: string | null; // ISO date
|
|
28920
|
+
stopSellFlag: boolean; // VBT's own "sales closed" signal, not live seat count
|
|
28921
|
+
status: string | null; // the site's own labels — read the values off a result, never guess one from prose
|
|
28922
|
+
deposit: string | null;
|
|
28923
|
+
finalPaymentDate: string | null;
|
|
28924
|
+
}
|
|
28925
|
+
interface VbtTourDepartures {
|
|
28926
|
+
tourId: string;
|
|
28927
|
+
tourName: string;
|
|
28928
|
+
tourUrl: string;
|
|
28929
|
+
packageOptions: { tour: VbtPackageOption; tourPlusTravelPackage: VbtPackageOption };
|
|
28930
|
+
departures: VbtDeparture[];
|
|
28931
|
+
bookingUrl: string; // the same page — VBT's own "View Dates & Book" is client-rendered here
|
|
28932
|
+
}
|
|
28933
|
+
|
|
28934
|
+
/**
|
|
28935
|
+
* Reads VBT's own tour pages — every self-guided/guided bike and walking tour it sells — and
|
|
28936
|
+
* returns its current departure dates, stop-sell flags and Tour-Only / Tour+Travel-Package
|
|
28937
|
+
* starting prices straight out of the page's own server-rendered data, no browser.
|
|
28938
|
+
*/
|
|
28939
|
+
interface Unit {
|
|
28940
|
+
/**
|
|
28941
|
+
* Lists every tour VBT publishes today, straight off vbt.com's own sitemap.xml — slug, full
|
|
28942
|
+
* tour URL and region/country for every /destinations/<region>/<country>/<slug> entry (108
|
|
28943
|
+
* tours measured 2026-09-11). The entry point: pass any returned `url` or `slug` into
|
|
28944
|
+
* `getTourDepartures`.
|
|
28945
|
+
*/
|
|
28946
|
+
listTours(): Promise<{ tours: VbtTourListing[] }>;
|
|
28947
|
+
|
|
28948
|
+
/**
|
|
28949
|
+
* Reads one VBT tour's own page (full URL from `listTours`, or just its slug, e.g.
|
|
28950
|
+
* `"dolomites-self-guided-bike-tour"`) and returns its Tour-Only and Tour+Travel-Package
|
|
28951
|
+
* starting prices plus every listed departure — date, VBT's own stop-sell flag, return date,
|
|
28952
|
+
* deposit and final-payment date — exactly as published today, with the page URL as the
|
|
28953
|
+
* booking handoff. Throws if the slug does not resolve to a real tour.
|
|
28954
|
+
*/
|
|
28955
|
+
getTourDepartures(tourUrlOrSlug: string): Promise<VbtTourDepartures>;
|
|
28956
|
+
}
|
|
28957
|
+
}
|
|
28958
|
+
|
|
28080
28959
|
declare namespace BowmarkProvider_vervecoffee {
|
|
28081
28960
|
// ── Verve Coffee Roasters — the unit's own declarations, verbatim ──
|
|
28082
28961
|
interface VervecoffeeSubscription {
|
|
@@ -30192,6 +31071,7 @@ interface BowmarkProviders {
|
|
|
30192
31071
|
barnesfoundation: BowmarkProvider_barnesfoundation.Unit;
|
|
30193
31072
|
baublebar: BowmarkProvider_baublebar.Unit;
|
|
30194
31073
|
bcparkscamping: BowmarkProvider_bcparkscamping.Unit;
|
|
31074
|
+
beaconfunding: BowmarkProvider_beaconfunding.Unit;
|
|
30195
31075
|
beatthebomb: BowmarkProvider_beatthebomb.Unit;
|
|
30196
31076
|
bellwethercoffee: BowmarkProvider_bellwethercoffee.Unit;
|
|
30197
31077
|
beltservice: BowmarkProvider_beltservice.Unit;
|
|
@@ -30207,6 +31087,7 @@ interface BowmarkProviders {
|
|
|
30207
31087
|
blackstoneproducts: BowmarkProvider_blackstoneproducts.Unit;
|
|
30208
31088
|
blenderseyewear: BowmarkProvider_blenderseyewear.Unit;
|
|
30209
31089
|
bluehaven: BowmarkProvider_bluehaven.Unit;
|
|
31090
|
+
blueribbonhomewarranty_com: BowmarkProvider_blueribbonhomewarranty_com.Unit;
|
|
30210
31091
|
bluesignal: BowmarkProvider_bluesignal.Unit;
|
|
30211
31092
|
bmwusa: BowmarkProvider_bmwusa.Unit;
|
|
30212
31093
|
boglewinery: BowmarkProvider_boglewinery.Unit;
|
|
@@ -30235,6 +31116,7 @@ interface BowmarkProviders {
|
|
|
30235
31116
|
cars: BowmarkProvider_cars.Unit;
|
|
30236
31117
|
carusohomes: BowmarkProvider_carusohomes.Unit;
|
|
30237
31118
|
casadragones: BowmarkProvider_casadragones.Unit;
|
|
31119
|
+
cascadiaseniorliving_com: BowmarkProvider_cascadiaseniorliving_com.Unit;
|
|
30238
31120
|
cbhhomes: BowmarkProvider_cbhhomes.Unit;
|
|
30239
31121
|
champxpress: BowmarkProvider_champxpress.Unit;
|
|
30240
31122
|
chantecaille: BowmarkProvider_chantecaille.Unit;
|
|
@@ -30251,20 +31133,27 @@ interface BowmarkProviders {
|
|
|
30251
31133
|
claude_com: BowmarkProvider_claude_com.Unit;
|
|
30252
31134
|
claude_support: BowmarkProvider_claude_support.Unit;
|
|
30253
31135
|
claudemarketplaces_com: BowmarkProvider_claudemarketplaces_com.Unit;
|
|
31136
|
+
clboyd: BowmarkProvider_clboyd.Unit;
|
|
30254
31137
|
cleanairlawncare: BowmarkProvider_cleanairlawncare.Unit;
|
|
30255
31138
|
cloudflare: BowmarkProvider_cloudflare.Unit;
|
|
30256
31139
|
clubchampion: BowmarkProvider_clubchampion.Unit;
|
|
30257
31140
|
code_claude_com: BowmarkProvider_code_claude_com.Unit;
|
|
30258
31141
|
consultnet: BowmarkProvider_consultnet.Unit;
|
|
30259
31142
|
couponfollow: BowmarkProvider_couponfollow.Unit;
|
|
31143
|
+
credibly_com: BowmarkProvider_credibly_com.Unit;
|
|
30260
31144
|
cruiselakegeneva: BowmarkProvider_cruiselakegeneva.Unit;
|
|
30261
31145
|
culturefly: BowmarkProvider_culturefly.Unit;
|
|
30262
31146
|
curiocity: BowmarkProvider_curiocity.Unit;
|
|
30263
31147
|
cyberpowerpc: BowmarkProvider_cyberpowerpc.Unit;
|
|
31148
|
+
dahlconsulting: BowmarkProvider_dahlconsulting.Unit;
|
|
31149
|
+
dansons: BowmarkProvider_dansons.Unit;
|
|
30264
31150
|
davidsonhomes: BowmarkProvider_davidsonhomes.Unit;
|
|
30265
31151
|
deangroup: BowmarkProvider_deangroup.Unit;
|
|
30266
31152
|
decked: BowmarkProvider_decked.Unit;
|
|
30267
31153
|
decksdirect: BowmarkProvider_decksdirect.Unit;
|
|
31154
|
+
deltadentalma: BowmarkProvider_deltadentalma.Unit;
|
|
31155
|
+
dentalplans: BowmarkProvider_dentalplans.Unit;
|
|
31156
|
+
detailxperts: BowmarkProvider_detailxperts.Unit;
|
|
30268
31157
|
developersopenai: BowmarkProvider_developersopenai.Unit;
|
|
30269
31158
|
dice: BowmarkProvider_dice.Unit;
|
|
30270
31159
|
dickssportinggoods: BowmarkProvider_dickssportinggoods.Unit;
|
|
@@ -30275,18 +31164,22 @@ interface BowmarkProviders {
|
|
|
30275
31164
|
doordash: BowmarkProvider_doordash.Unit;
|
|
30276
31165
|
dumpsters: BowmarkProvider_dumpsters.Unit;
|
|
30277
31166
|
ebay: BowmarkProvider_ebay.Unit;
|
|
31167
|
+
elase: BowmarkProvider_elase.Unit;
|
|
30278
31168
|
elevenlabs: BowmarkProvider_elevenlabs.Unit;
|
|
30279
31169
|
embroker: BowmarkProvider_embroker.Unit;
|
|
30280
31170
|
epromos: BowmarkProvider_epromos.Unit;
|
|
30281
31171
|
eq3: BowmarkProvider_eq3.Unit;
|
|
31172
|
+
equinox_hotels: BowmarkProvider_equinox_hotels.Unit;
|
|
30282
31173
|
erieinsurance: BowmarkProvider_erieinsurance.Unit;
|
|
30283
31174
|
etsy: BowmarkProvider_etsy.Unit;
|
|
30284
31175
|
eventsource: BowmarkProvider_eventsource.Unit;
|
|
30285
31176
|
evolutionofsmooth: BowmarkProvider_evolutionofsmooth.Unit;
|
|
31177
|
+
evolvemedspa: BowmarkProvider_evolvemedspa.Unit;
|
|
30286
31178
|
executivehomecare: BowmarkProvider_executivehomecare.Unit;
|
|
30287
31179
|
extraspace: BowmarkProvider_extraspace.Unit;
|
|
30288
31180
|
facerealityskincare: BowmarkProvider_facerealityskincare.Unit;
|
|
30289
31181
|
fieldstonehomes: BowmarkProvider_fieldstonehomes.Unit;
|
|
31182
|
+
firstamericahomes: BowmarkProvider_firstamericahomes.Unit;
|
|
30290
31183
|
firstdibs: BowmarkProvider_firstdibs.Unit;
|
|
30291
31184
|
fivebelow: BowmarkProvider_fivebelow.Unit;
|
|
30292
31185
|
fivestarbathsolutions: BowmarkProvider_fivestarbathsolutions.Unit;
|
|
@@ -30321,6 +31214,7 @@ interface BowmarkProviders {
|
|
|
30321
31214
|
heatherwood: BowmarkProvider_heatherwood.Unit;
|
|
30322
31215
|
hellofresh: BowmarkProvider_hellofresh.Unit;
|
|
30323
31216
|
hellotend: BowmarkProvider_hellotend.Unit;
|
|
31217
|
+
highlandhomes: BowmarkProvider_highlandhomes.Unit;
|
|
30324
31218
|
hilton: BowmarkProvider_hilton.Unit;
|
|
30325
31219
|
historymaker: BowmarkProvider_historymaker.Unit;
|
|
30326
31220
|
hobie: BowmarkProvider_hobie.Unit;
|
|
@@ -30347,6 +31241,7 @@ interface BowmarkProviders {
|
|
|
30347
31241
|
kaleidescape: BowmarkProvider_kaleidescape.Unit;
|
|
30348
31242
|
kalshi: BowmarkProvider_kalshi.Unit;
|
|
30349
31243
|
kayak: BowmarkProvider_kayak.Unit;
|
|
31244
|
+
kbb: BowmarkProvider_kbb.Unit;
|
|
30350
31245
|
keepa: BowmarkProvider_keepa.Unit;
|
|
30351
31246
|
kingsdown: BowmarkProvider_kingsdown.Unit;
|
|
30352
31247
|
kitchentuneup: BowmarkProvider_kitchentuneup.Unit;
|
|
@@ -30382,6 +31277,7 @@ interface BowmarkProviders {
|
|
|
30382
31277
|
minimax: BowmarkProvider_minimax.Unit;
|
|
30383
31278
|
minted: BowmarkProvider_minted.Unit;
|
|
30384
31279
|
mixbook: BowmarkProvider_mixbook.Unit;
|
|
31280
|
+
modernize_com: BowmarkProvider_modernize_com.Unit;
|
|
30385
31281
|
modularclosets: BowmarkProvider_modularclosets.Unit;
|
|
30386
31282
|
momondo: BowmarkProvider_momondo.Unit;
|
|
30387
31283
|
mossyoak: BowmarkProvider_mossyoak.Unit;
|
|
@@ -30419,6 +31315,7 @@ interface BowmarkProviders {
|
|
|
30419
31315
|
prose: BowmarkProvider_prose.Unit;
|
|
30420
31316
|
provenwinners: BowmarkProvider_provenwinners.Unit;
|
|
30421
31317
|
proxmox: BowmarkProvider_proxmox.Unit;
|
|
31318
|
+
puls_com: BowmarkProvider_puls_com.Unit;
|
|
30422
31319
|
reddit: BowmarkProvider_reddit.Unit;
|
|
30423
31320
|
reliancepartners: BowmarkProvider_reliancepartners.Unit;
|
|
30424
31321
|
resy: BowmarkProvider_resy.Unit;
|
|
@@ -30478,6 +31375,7 @@ interface BowmarkProviders {
|
|
|
30478
31375
|
ulrichlifestyle: BowmarkProvider_ulrichlifestyle.Unit;
|
|
30479
31376
|
ups: BowmarkProvider_ups.Unit;
|
|
30480
31377
|
usps: BowmarkProvider_usps.Unit;
|
|
31378
|
+
vbt: BowmarkProvider_vbt.Unit;
|
|
30481
31379
|
vervecoffee: BowmarkProvider_vervecoffee.Unit;
|
|
30482
31380
|
vessi: BowmarkProvider_vessi.Unit;
|
|
30483
31381
|
viewrail: BowmarkProvider_viewrail.Unit;
|
|
@@ -82262,6 +83160,7 @@ interface BowmarkLibrary {
|
|
|
82262
83160
|
text_to_speech: BowmarkCapability_text_to_speech.Unit;
|
|
82263
83161
|
theme_park_tickets: BowmarkCapability_theme_park_tickets.Unit;
|
|
82264
83162
|
weather: BowmarkCapability_weather.Unit;
|
|
83163
|
+
web_form_fields: BowmarkCapability_web_form_fields.Unit;
|
|
82265
83164
|
wireless: BowmarkCapability_wireless.Unit;
|
|
82266
83165
|
yoga_outfit_shopping: BowmarkCapability_yoga_outfit_shopping.Unit;
|
|
82267
83166
|
providers: BowmarkProviders;
|