order3000 1.8.0 → 1.9.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/client.d.cts CHANGED
@@ -92,14 +92,27 @@ interface components {
92
92
  disabledVenueKeywords: (string | number | boolean | (null)) | {
93
93
  [key: string]: unknown;
94
94
  } | unknown[];
95
+ disabledVenueNegativeKeywords: (string | number | boolean | (null)) | {
96
+ [key: string]: unknown;
97
+ } | unknown[];
95
98
  dismissedKeywords: (string | number | boolean | (null)) | {
96
99
  [key: string]: unknown;
97
100
  } | unknown[];
101
+ keywordMetrics: (string | number | boolean | (null)) | {
102
+ [key: string]: unknown;
103
+ } | unknown[];
104
+ websitePageIds: (string | number | boolean | (null)) | {
105
+ [key: string]: unknown;
106
+ } | unknown[];
107
+ calloutIds: (string | number | boolean | (null)) | {
108
+ [key: string]: unknown;
109
+ } | unknown[];
98
110
  publishedContentHash: string | null;
99
111
  publishedAt: unknown;
100
112
  pushedKeywords: ((string | number | boolean | (null)) | {
101
113
  [key: string]: unknown;
102
114
  } | unknown[]) | null;
115
+ dailyBudget: number | null;
103
116
  createdBy: string | null;
104
117
  updatedBy: string | null;
105
118
  createdAt: unknown;
@@ -135,14 +148,27 @@ interface components {
135
148
  disabledVenueKeywords: (string | number | boolean | (null)) | {
136
149
  [key: string]: unknown;
137
150
  } | unknown[];
151
+ disabledVenueNegativeKeywords: (string | number | boolean | (null)) | {
152
+ [key: string]: unknown;
153
+ } | unknown[];
138
154
  dismissedKeywords: (string | number | boolean | (null)) | {
139
155
  [key: string]: unknown;
140
156
  } | unknown[];
157
+ keywordMetrics: (string | number | boolean | (null)) | {
158
+ [key: string]: unknown;
159
+ } | unknown[];
160
+ websitePageIds: (string | number | boolean | (null)) | {
161
+ [key: string]: unknown;
162
+ } | unknown[];
163
+ calloutIds: (string | number | boolean | (null)) | {
164
+ [key: string]: unknown;
165
+ } | unknown[];
141
166
  publishedContentHash: string | null;
142
167
  publishedAt: unknown;
143
168
  pushedKeywords: ((string | number | boolean | (null)) | {
144
169
  [key: string]: unknown;
145
170
  } | unknown[]) | null;
171
+ dailyBudget: number | null;
146
172
  createdBy: string | null;
147
173
  updatedBy: string | null;
148
174
  createdAt: unknown;
@@ -191,14 +217,27 @@ interface components {
191
217
  disabledVenueKeywords: (string | number | boolean | (null)) | {
192
218
  [key: string]: unknown;
193
219
  } | unknown[];
220
+ disabledVenueNegativeKeywords: (string | number | boolean | (null)) | {
221
+ [key: string]: unknown;
222
+ } | unknown[];
194
223
  dismissedKeywords: (string | number | boolean | (null)) | {
195
224
  [key: string]: unknown;
196
225
  } | unknown[];
226
+ keywordMetrics: (string | number | boolean | (null)) | {
227
+ [key: string]: unknown;
228
+ } | unknown[];
229
+ websitePageIds: (string | number | boolean | (null)) | {
230
+ [key: string]: unknown;
231
+ } | unknown[];
232
+ calloutIds: (string | number | boolean | (null)) | {
233
+ [key: string]: unknown;
234
+ } | unknown[];
197
235
  publishedContentHash: string | null;
198
236
  publishedAt: unknown;
199
237
  pushedKeywords: ((string | number | boolean | (null)) | {
200
238
  [key: string]: unknown;
201
239
  } | unknown[]) | null;
240
+ dailyBudget: number | null;
202
241
  createdBy: string | null;
203
242
  updatedBy: string | null;
204
243
  createdAt: unknown;
@@ -262,14 +301,27 @@ interface components {
262
301
  disabledVenueKeywords: (string | number | boolean | (null)) | {
263
302
  [key: string]: unknown;
264
303
  } | unknown[];
304
+ disabledVenueNegativeKeywords: (string | number | boolean | (null)) | {
305
+ [key: string]: unknown;
306
+ } | unknown[];
265
307
  dismissedKeywords: (string | number | boolean | (null)) | {
266
308
  [key: string]: unknown;
267
309
  } | unknown[];
310
+ keywordMetrics: (string | number | boolean | (null)) | {
311
+ [key: string]: unknown;
312
+ } | unknown[];
313
+ websitePageIds: (string | number | boolean | (null)) | {
314
+ [key: string]: unknown;
315
+ } | unknown[];
316
+ calloutIds: (string | number | boolean | (null)) | {
317
+ [key: string]: unknown;
318
+ } | unknown[];
268
319
  publishedContentHash: string | null;
269
320
  publishedAt: unknown;
270
321
  pushedKeywords: ((string | number | boolean | (null)) | {
271
322
  [key: string]: unknown;
272
323
  } | unknown[]) | null;
324
+ dailyBudget: number | null;
273
325
  createdBy: string | null;
274
326
  updatedBy: string | null;
275
327
  createdAt: unknown;
@@ -336,14 +388,27 @@ interface components {
336
388
  disabledVenueKeywords: (string | number | boolean | (null)) | {
337
389
  [key: string]: unknown;
338
390
  } | unknown[];
391
+ disabledVenueNegativeKeywords: (string | number | boolean | (null)) | {
392
+ [key: string]: unknown;
393
+ } | unknown[];
339
394
  dismissedKeywords: (string | number | boolean | (null)) | {
340
395
  [key: string]: unknown;
341
396
  } | unknown[];
397
+ keywordMetrics: (string | number | boolean | (null)) | {
398
+ [key: string]: unknown;
399
+ } | unknown[];
400
+ websitePageIds: (string | number | boolean | (null)) | {
401
+ [key: string]: unknown;
402
+ } | unknown[];
403
+ calloutIds: (string | number | boolean | (null)) | {
404
+ [key: string]: unknown;
405
+ } | unknown[];
342
406
  publishedContentHash: string | null;
343
407
  publishedAt: unknown;
344
408
  pushedKeywords: ((string | number | boolean | (null)) | {
345
409
  [key: string]: unknown;
346
410
  } | unknown[]) | null;
411
+ dailyBudget: number | null;
347
412
  createdBy: string | null;
348
413
  updatedBy: string | null;
349
414
  createdAt: unknown;
@@ -364,6 +429,105 @@ interface components {
364
429
  dismissedKeywords: string[];
365
430
  disabledVenueKeywords: string[];
366
431
  };
432
+ /** SaveAdCalloutsRequest */
433
+ SaveAdCalloutsRequest: {
434
+ venueAccessor: string;
435
+ adId: string;
436
+ calloutIds: string[];
437
+ };
438
+ /** SaveAdCalloutsResponse */
439
+ SaveAdCalloutsResponse: {
440
+ success: boolean;
441
+ calloutIds: string[];
442
+ };
443
+ /** SaveAdNegativeKeywordsRequest */
444
+ SaveAdNegativeKeywordsRequest: {
445
+ venueAccessor: string;
446
+ adId: string;
447
+ negativeKeywords: string[];
448
+ /** @default [] */
449
+ disabledVenueNegativeKeywords: string[];
450
+ };
451
+ /** SaveAdNegativeKeywordsResponse */
452
+ SaveAdNegativeKeywordsResponse: {
453
+ success: boolean;
454
+ negativeKeywords: string[];
455
+ disabledVenueNegativeKeywords: string[];
456
+ syncedToGoogle: boolean;
457
+ };
458
+ /** SaveAdWebsitePagesRequest */
459
+ SaveAdWebsitePagesRequest: {
460
+ venueAccessor: string;
461
+ adId: string;
462
+ websitePageIds: string[];
463
+ };
464
+ /** SaveAdWebsitePagesResponse */
465
+ SaveAdWebsitePagesResponse: {
466
+ success: boolean;
467
+ websitePageIds: string[];
468
+ };
469
+ /** SetAdBudgetRequest */
470
+ SetAdBudgetRequest: {
471
+ venueAccessor: string;
472
+ adId: string;
473
+ dailyBudget: number;
474
+ };
475
+ /** SetAdBudgetResponse */
476
+ SetAdBudgetResponse: {
477
+ id: string;
478
+ venueId: string;
479
+ ownerEntityType: components["schemas"]["AdOwnerType"];
480
+ ownerEntityId: string;
481
+ channel: components["schemas"]["AdChannel"];
482
+ status: components["schemas"]["AdStatus"];
483
+ campaignId: string | null;
484
+ content: (string | number | boolean | (null)) | {
485
+ [key: string]: unknown;
486
+ } | unknown[];
487
+ metaContent: ((string | number | boolean | (null)) | {
488
+ [key: string]: unknown;
489
+ } | unknown[]) | null;
490
+ metaRefs: ((string | number | boolean | (null)) | {
491
+ [key: string]: unknown;
492
+ } | unknown[]) | null;
493
+ servedMarket: ((string | number | boolean | (null)) | {
494
+ [key: string]: unknown;
495
+ } | unknown[]) | null;
496
+ keywords: (string | number | boolean | (null)) | {
497
+ [key: string]: unknown;
498
+ } | unknown[];
499
+ negativeKeywords: (string | number | boolean | (null)) | {
500
+ [key: string]: unknown;
501
+ } | unknown[];
502
+ disabledVenueKeywords: (string | number | boolean | (null)) | {
503
+ [key: string]: unknown;
504
+ } | unknown[];
505
+ disabledVenueNegativeKeywords: (string | number | boolean | (null)) | {
506
+ [key: string]: unknown;
507
+ } | unknown[];
508
+ dismissedKeywords: (string | number | boolean | (null)) | {
509
+ [key: string]: unknown;
510
+ } | unknown[];
511
+ keywordMetrics: (string | number | boolean | (null)) | {
512
+ [key: string]: unknown;
513
+ } | unknown[];
514
+ websitePageIds: (string | number | boolean | (null)) | {
515
+ [key: string]: unknown;
516
+ } | unknown[];
517
+ calloutIds: (string | number | boolean | (null)) | {
518
+ [key: string]: unknown;
519
+ } | unknown[];
520
+ publishedContentHash: string | null;
521
+ publishedAt: unknown;
522
+ pushedKeywords: ((string | number | boolean | (null)) | {
523
+ [key: string]: unknown;
524
+ } | unknown[]) | null;
525
+ dailyBudget: number | null;
526
+ createdBy: string | null;
527
+ updatedBy: string | null;
528
+ createdAt: unknown;
529
+ updatedAt: unknown;
530
+ };
367
531
  /** DeleteAdResponse */
368
532
  DeleteAdResponse: {
369
533
  id: string;
@@ -394,14 +558,27 @@ interface components {
394
558
  disabledVenueKeywords: (string | number | boolean | (null)) | {
395
559
  [key: string]: unknown;
396
560
  } | unknown[];
561
+ disabledVenueNegativeKeywords: (string | number | boolean | (null)) | {
562
+ [key: string]: unknown;
563
+ } | unknown[];
397
564
  dismissedKeywords: (string | number | boolean | (null)) | {
398
565
  [key: string]: unknown;
399
566
  } | unknown[];
567
+ keywordMetrics: (string | number | boolean | (null)) | {
568
+ [key: string]: unknown;
569
+ } | unknown[];
570
+ websitePageIds: (string | number | boolean | (null)) | {
571
+ [key: string]: unknown;
572
+ } | unknown[];
573
+ calloutIds: (string | number | boolean | (null)) | {
574
+ [key: string]: unknown;
575
+ } | unknown[];
400
576
  publishedContentHash: string | null;
401
577
  publishedAt: unknown;
402
578
  pushedKeywords: ((string | number | boolean | (null)) | {
403
579
  [key: string]: unknown;
404
580
  } | unknown[]) | null;
581
+ dailyBudget: number | null;
405
582
  createdBy: string | null;
406
583
  updatedBy: string | null;
407
584
  createdAt: unknown;
@@ -991,6 +1168,70 @@ interface components {
991
1168
  count: number;
992
1169
  }[];
993
1170
  };
1171
+ /** GetCalloutsResponse */
1172
+ GetCalloutsResponse: {
1173
+ id: string;
1174
+ venueId: string;
1175
+ label: (string | number | boolean | (null)) | {
1176
+ [key: string]: unknown;
1177
+ } | unknown[];
1178
+ createdBy: string | null;
1179
+ updatedBy: string | null;
1180
+ createdAt: unknown;
1181
+ updatedAt: unknown;
1182
+ }[];
1183
+ /** CreateCalloutRequest */
1184
+ CreateCalloutRequest: {
1185
+ venueAccessor: string;
1186
+ id?: string;
1187
+ label: {
1188
+ [key: string]: string;
1189
+ };
1190
+ };
1191
+ /** CreateCalloutResponse */
1192
+ CreateCalloutResponse: {
1193
+ id: string;
1194
+ venueId: string;
1195
+ label: (string | number | boolean | (null)) | {
1196
+ [key: string]: unknown;
1197
+ } | unknown[];
1198
+ createdBy: string | null;
1199
+ updatedBy: string | null;
1200
+ createdAt: unknown;
1201
+ updatedAt: unknown;
1202
+ };
1203
+ /** UpdateCalloutRequest */
1204
+ UpdateCalloutRequest: {
1205
+ venueAccessor: string;
1206
+ id: string;
1207
+ label: {
1208
+ [key: string]: string;
1209
+ };
1210
+ };
1211
+ /** UpdateCalloutResponse */
1212
+ UpdateCalloutResponse: {
1213
+ id: string;
1214
+ venueId: string;
1215
+ label: (string | number | boolean | (null)) | {
1216
+ [key: string]: unknown;
1217
+ } | unknown[];
1218
+ createdBy: string | null;
1219
+ updatedBy: string | null;
1220
+ createdAt: unknown;
1221
+ updatedAt: unknown;
1222
+ };
1223
+ /** DeleteCalloutResponse */
1224
+ DeleteCalloutResponse: {
1225
+ id: string;
1226
+ venueId: string;
1227
+ label: (string | number | boolean | (null)) | {
1228
+ [key: string]: unknown;
1229
+ } | unknown[];
1230
+ createdBy: string | null;
1231
+ updatedBy: string | null;
1232
+ createdAt: unknown;
1233
+ updatedAt: unknown;
1234
+ };
994
1235
  /** FetchEventsResponse */
995
1236
  FetchEventsResponse: {
996
1237
  id: string;
@@ -2621,6 +2862,90 @@ interface components {
2621
2862
  createdAt: unknown;
2622
2863
  updatedAt: unknown;
2623
2864
  };
2865
+ /** GetWebsitePagesResponse */
2866
+ GetWebsitePagesResponse: {
2867
+ id: string;
2868
+ venueId: string;
2869
+ ownerType: components["schemas"]["WebsitePageOwnerType"];
2870
+ ownerId: string | null;
2871
+ label: ((string | number | boolean | (null)) | {
2872
+ [key: string]: unknown;
2873
+ } | unknown[]) | null;
2874
+ path: string | null;
2875
+ externalUrl: string | null;
2876
+ createdBy: string | null;
2877
+ updatedBy: string | null;
2878
+ createdAt: unknown;
2879
+ updatedAt: unknown;
2880
+ }[];
2881
+ /** CreateWebsitePageRequest */
2882
+ CreateWebsitePageRequest: {
2883
+ venueAccessor: string;
2884
+ id?: string;
2885
+ ownerType?: components["schemas"]["WebsitePageOwnerType"];
2886
+ ownerId?: string | null;
2887
+ label?: {
2888
+ [key: string]: string;
2889
+ } | null;
2890
+ target: string;
2891
+ };
2892
+ /** CreateWebsitePageResponse */
2893
+ CreateWebsitePageResponse: {
2894
+ id: string;
2895
+ venueId: string;
2896
+ ownerType: components["schemas"]["WebsitePageOwnerType"];
2897
+ ownerId: string | null;
2898
+ label: ((string | number | boolean | (null)) | {
2899
+ [key: string]: unknown;
2900
+ } | unknown[]) | null;
2901
+ path: string | null;
2902
+ externalUrl: string | null;
2903
+ createdBy: string | null;
2904
+ updatedBy: string | null;
2905
+ createdAt: unknown;
2906
+ updatedAt: unknown;
2907
+ };
2908
+ /** UpdateWebsitePageRequest */
2909
+ UpdateWebsitePageRequest: {
2910
+ venueAccessor: string;
2911
+ id: string;
2912
+ label?: {
2913
+ [key: string]: string;
2914
+ } | null;
2915
+ target: string;
2916
+ };
2917
+ /** UpdateWebsitePageResponse */
2918
+ UpdateWebsitePageResponse: {
2919
+ id: string;
2920
+ venueId: string;
2921
+ ownerType: components["schemas"]["WebsitePageOwnerType"];
2922
+ ownerId: string | null;
2923
+ label: ((string | number | boolean | (null)) | {
2924
+ [key: string]: unknown;
2925
+ } | unknown[]) | null;
2926
+ path: string | null;
2927
+ externalUrl: string | null;
2928
+ createdBy: string | null;
2929
+ updatedBy: string | null;
2930
+ createdAt: unknown;
2931
+ updatedAt: unknown;
2932
+ };
2933
+ /** DeleteWebsitePageResponse */
2934
+ DeleteWebsitePageResponse: {
2935
+ id: string;
2936
+ venueId: string;
2937
+ ownerType: components["schemas"]["WebsitePageOwnerType"];
2938
+ ownerId: string | null;
2939
+ label: ((string | number | boolean | (null)) | {
2940
+ [key: string]: unknown;
2941
+ } | unknown[]) | null;
2942
+ path: string | null;
2943
+ externalUrl: string | null;
2944
+ createdBy: string | null;
2945
+ updatedBy: string | null;
2946
+ createdAt: unknown;
2947
+ updatedAt: unknown;
2948
+ };
2624
2949
  /** @enum {string} */
2625
2950
  ActorType: "human" | "robot";
2626
2951
  /** @enum {string} */
@@ -2706,7 +3031,7 @@ interface components {
2706
3031
  /** @enum {string} */
2707
3032
  AdChannel: "google" | "facebook" | "instagram";
2708
3033
  /** @enum {string} */
2709
- AdOwnerType: "event" | "ritual";
3034
+ AdOwnerType: "event" | "ritual" | "venue" | "dish" | "beverage" | "menu";
2710
3035
  /** @enum {string} */
2711
3036
  AdStatus: "draft" | "ready" | "archived";
2712
3037
  /** @enum {string} */
@@ -2746,6 +3071,8 @@ interface components {
2746
3071
  /** @enum {string} */
2747
3072
  MentionFieldFormatter: "text" | "currency" | "integer" | "percentage" | "boolean";
2748
3073
  /** @enum {string} */
3074
+ KeywordPolarity: "positive" | "negative";
3075
+ /** @enum {string} */
2749
3076
  PromotionBenefitType: "free_item" | "discount_percentage" | "discount_amount" | "buy_x_get_y";
2750
3077
  /** @enum {string} */
2751
3078
  ReservationPromotionStatus: "applied" | "redeemed" | "expired";
@@ -2756,6 +3083,8 @@ interface components {
2756
3083
  /** @enum {string} */
2757
3084
  VenueEmailSenderStatus: "pending" | "verified" | "failed" | "temporary_failure";
2758
3085
  /** @enum {string} */
3086
+ WebsitePageOwnerType: "venue" | "menu" | "dish" | "beverage" | "ingredient" | "event" | "ritual";
3087
+ /** @enum {string} */
2759
3088
  VenueAssetType: "logomark" | "wordmark" | "combinationmark_horizontal" | "combinationmark_vertical";
2760
3089
  /** @enum {string} */
2761
3090
  VenueUserStatus: "pending" | "confirmed" | "revoked";
@@ -2812,8 +3141,28 @@ type PatchAdResponse = schemas['EditAdResponse'];
2812
3141
  type DeleteAdResponse = schemas['DeleteAdResponse'];
2813
3142
  type EditMetaAdRequest = schemas['EditMetaAdRequest'];
2814
3143
  type EditMetaAdResponse = schemas['EditMetaAdResponse'];
3144
+ type SaveAdCalloutsRequest = schemas['SaveAdCalloutsRequest'];
3145
+ type SaveAdCalloutsResponse = schemas['SaveAdCalloutsResponse'];
2815
3146
  type SaveAdKeywordsRequest = schemas['SaveAdKeywordsRequest'];
2816
3147
  type SaveAdKeywordsResponse = schemas['SaveAdKeywordsResponse'];
3148
+ type SaveAdNegativeKeywordsRequest = schemas['SaveAdNegativeKeywordsRequest'];
3149
+ type SaveAdNegativeKeywordsResponse = schemas['SaveAdNegativeKeywordsResponse'];
3150
+ type SaveAdWebsitePagesRequest = schemas['SaveAdWebsitePagesRequest'];
3151
+ type SaveAdWebsitePagesResponse = schemas['SaveAdWebsitePagesResponse'];
3152
+ type SetAdBudgetRequest = schemas['SetAdBudgetRequest'];
3153
+ type SetAdBudgetResponse = schemas['SetAdBudgetResponse'];
3154
+ type GetCalloutsResponse = schemas['GetCalloutsResponse'];
3155
+ type CreateCalloutRequest = schemas['CreateCalloutRequest'];
3156
+ type CreateCalloutResponse = schemas['CreateCalloutResponse'];
3157
+ type UpdateCalloutRequest = schemas['UpdateCalloutRequest'];
3158
+ type UpdateCalloutResponse = schemas['UpdateCalloutResponse'];
3159
+ type DeleteCalloutResponse = schemas['DeleteCalloutResponse'];
3160
+ type GetWebsitePagesResponse = schemas['GetWebsitePagesResponse'];
3161
+ type CreateWebsitePageRequest = schemas['CreateWebsitePageRequest'];
3162
+ type CreateWebsitePageResponse = schemas['CreateWebsitePageResponse'];
3163
+ type UpdateWebsitePageRequest = schemas['UpdateWebsitePageRequest'];
3164
+ type UpdateWebsitePageResponse = schemas['UpdateWebsitePageResponse'];
3165
+ type DeleteWebsitePageResponse = schemas['DeleteWebsitePageResponse'];
2817
3166
  /**
2818
3167
  * Optional filters for `client.ads.list()`. Each narrows the venue's ad
2819
3168
  * set; omit all to list every ad. Client ergonomics, mapped to the wire
@@ -3241,6 +3590,40 @@ declare class AdsResource extends BaseResource {
3241
3590
  * cleaned, persisted sets.
3242
3591
  */
3243
3592
  saveKeywords(adId: string, body: SaveAdKeywordsRequest): Promise<SaveAdKeywordsResponse>;
3593
+ /**
3594
+ * Replace the ad's owner-chosen callout set in one shot — the highlights
3595
+ * pushed to Google as CALLOUT assets. The set references the venue's callout
3596
+ * pool by id; it is de-duplicated while preserving order, and an empty array
3597
+ * clears callouts. Only ids belonging to the venue's pool survive. Call
3598
+ * {@link get} first and resend the full set to preserve existing entries.
3599
+ * Returns the cleaned, persisted ids.
3600
+ */
3601
+ saveCallouts(adId: string, body: SaveAdCalloutsRequest): Promise<SaveAdCalloutsResponse>;
3602
+ /**
3603
+ * Replace the ad's owner-curated NEGATIVE keyword set (and the venue
3604
+ * negatives toggled off for this ad) in one shot. An empty `negativeKeywords`
3605
+ * array clears the set. Texts are trimmed + de-duplicated server-side; the
3606
+ * set is pushed to a linked live campaign immediately. Call {@link get} first
3607
+ * and resend the full set to preserve existing entries.
3608
+ */
3609
+ saveNegativeKeywords(adId: string, body: SaveAdNegativeKeywordsRequest): Promise<SaveAdNegativeKeywordsResponse>;
3610
+ /**
3611
+ * Replace the ad's owner-chosen website-page set in one shot — the pages
3612
+ * pushed to Google as SITELINK assets. The set references the venue's
3613
+ * website-page pool by id; it is de-duplicated while preserving order, and
3614
+ * an empty array clears sitelinks. Only ids belonging to the venue's pool
3615
+ * survive. Call {@link get} first and resend the full set to preserve
3616
+ * existing entries. Returns the cleaned, persisted ids.
3617
+ */
3618
+ saveWebsitePages(adId: string, body: SaveAdWebsitePagesRequest): Promise<SaveAdWebsitePagesResponse>;
3619
+ /**
3620
+ * Persist the ad's order3000-side daily budget, in CENTS (the app-wide money
3621
+ * unit). This writes `ads.dailyBudget` and pushes NOTHING to Google — it lets
3622
+ * the owner set + refine a budget on a DRAFT ad before any campaign exists;
3623
+ * `createCampaign` reads it as the default at launch (converting cents→micros
3624
+ * at the Google boundary). Returns the updated ad row.
3625
+ */
3626
+ setBudget(adId: string, body: SetAdBudgetRequest): Promise<SetAdBudgetResponse>;
3244
3627
  /**
3245
3628
  * Write paste-ready Meta (Facebook/Instagram) ad copy + creative onto the
3246
3629
  * ad's `metaContent` document — the Meta analog of {@link patch} (which writes
@@ -3417,6 +3800,36 @@ declare class BasketsResource extends BaseResource {
3417
3800
  }>;
3418
3801
  }
3419
3802
 
3803
+ /**
3804
+ * The venue's callout pool — the localized "highlight" phrases (≤25 chars per
3805
+ * locale, Google's CalloutAsset limit) an ad references by id and that publish
3806
+ * to Google as CALLOUT assets on campaign create. This resource manages the
3807
+ * POOL itself; an ad's pick from it is `client.ads.saveCallouts(...)`.
3808
+ */
3809
+ declare class CalloutsResource extends BaseResource {
3810
+ constructor(tokenManager: TokenManager, baseUrl: string);
3811
+ /**
3812
+ * List the venue's whole callout pool, ordered by `createdAt`.
3813
+ */
3814
+ list(): Promise<GetCalloutsResponse>;
3815
+ /**
3816
+ * Add a callout to the venue pool. `label` is the localized text (`{ de,
3817
+ * en }`); each locale value ≤25 chars and at least one must be non-empty.
3818
+ * Returns the created callout row.
3819
+ */
3820
+ create(body: CreateCalloutRequest): Promise<CreateCalloutResponse>;
3821
+ /**
3822
+ * Replace a pool callout's localized `label` (each locale value ≤25 chars;
3823
+ * at least one non-empty). Returns the updated callout row.
3824
+ */
3825
+ update(calloutId: string, body: UpdateCalloutRequest): Promise<UpdateCalloutResponse>;
3826
+ /**
3827
+ * Permanently remove a callout from the venue pool. Returns the deleted row.
3828
+ * (Ads still referencing the id simply drop it on their next save.)
3829
+ */
3830
+ delete(calloutId: string): Promise<DeleteCalloutResponse>;
3831
+ }
3832
+
3420
3833
  /** Element type of an expanded event's `assets[]` array. */
3421
3834
  type EventAssetEntry = NonNullable<EventByAccessor['assets']>[number];
3422
3835
  declare class EventsResource extends BaseResource {
@@ -4142,6 +4555,37 @@ declare class VenuesResource {
4142
4555
  get(idOrAccessor: string): Promise<Venue>;
4143
4556
  }
4144
4557
 
4558
+ /**
4559
+ * The venue's website-page pool — link targets (a localized `label` plus an
4560
+ * internal `path` or `externalUrl`) an ad references by id and that publish to
4561
+ * Google as SITELINK assets on campaign create. This resource manages the POOL
4562
+ * itself; an ad's pick from it is `client.ads.saveWebsitePages(...)`.
4563
+ */
4564
+ declare class WebsitePagesResource extends BaseResource {
4565
+ constructor(tokenManager: TokenManager, baseUrl: string);
4566
+ /**
4567
+ * List the venue's whole website-page pool, ordered by `createdAt`.
4568
+ */
4569
+ list(): Promise<GetWebsitePagesResponse>;
4570
+ /**
4571
+ * Add a website page to the venue pool. `target` is the raw reference the
4572
+ * owner typed — an internal path (`/speisekarte`) or a full URL — classified
4573
+ * server-side against the venue website. `label` is the localized link text.
4574
+ * Returns the created page row.
4575
+ */
4576
+ create(body: CreateWebsitePageRequest): Promise<CreateWebsitePageResponse>;
4577
+ /**
4578
+ * Replace a pool page's `target` (re-classified into a path or external URL)
4579
+ * and/or localized `label`. Returns the updated page row.
4580
+ */
4581
+ update(pageId: string, body: UpdateWebsitePageRequest): Promise<UpdateWebsitePageResponse>;
4582
+ /**
4583
+ * Permanently remove a website page from the venue pool. Returns the deleted
4584
+ * row. (Ads still referencing the id simply drop it on their next save.)
4585
+ */
4586
+ delete(pageId: string): Promise<DeleteWebsitePageResponse>;
4587
+ }
4588
+
4145
4589
  type RealtimeEvent = 'INSERT' | 'UPDATE' | 'DELETE' | '*';
4146
4590
  type RealtimeRow = {
4147
4591
  [key: string]: any;
@@ -4352,6 +4796,7 @@ declare class O3KClient {
4352
4796
  articles: ArticlesResource;
4353
4797
  assets: AssetsResource;
4354
4798
  baskets: BasketsResource;
4799
+ callouts: CalloutsResource;
4355
4800
  events: EventsResource;
4356
4801
  menus: MenusResource;
4357
4802
  orders: OrdersResource;
@@ -4361,6 +4806,7 @@ declare class O3KClient {
4361
4806
  subscriptions: SubscriptionsResource;
4362
4807
  teamOrders: TeamOrdersResource;
4363
4808
  venues: VenuesResource;
4809
+ websitePages: WebsitePagesResource;
4364
4810
  realtime: RealtimeManager;
4365
4811
  private readonly baseUrl;
4366
4812
  private readonly tokenManager;