@trillboards/api-client 0.3.0 → 0.4.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.
package/README.md CHANGED
@@ -33,8 +33,8 @@ const { data: earnings } = await client.earnings.get({ period: 'month' });
33
33
 
34
34
  | Resource | Methods |
35
35
  |----------|---------|
36
- | `client.screens` | `list`, `get`, `create`, `delete` |
37
- | `client.devices` | `list`, `get`, `create`, `delete`, `heartbeat` |
36
+ | `client.screens` | `list`, `get`, `create`, `delete`, `getDisplaySettings`, `patchDisplaySettings`, `updateDisplaySettings`, `batchUpdateDisplaySettings` |
37
+ | `client.devices` | `list`, `get`, `create`, `createBatch`, `delete`, `heartbeat` |
38
38
  | `client.impressions` | `create`, `createBatch` |
39
39
  | `client.analytics` | `get` |
40
40
  | `client.earnings` | `get` |
@@ -45,6 +45,36 @@ const { data: earnings } = await client.earnings.get({ period: 'month' });
45
45
  | `client.errors` | `list`, `get` |
46
46
  | `client.billing` | `get`, `getStripeStatus`, `requestPayout` |
47
47
 
48
+ ### Content fit
49
+
50
+ ```typescript
51
+ await client.screens.patchDisplaySettings('SCREEN_ID', {
52
+ content_fit: {
53
+ advertisements: 'fill',
54
+ default_streams: 'fill',
55
+ self_promo: 'fit',
56
+ },
57
+ });
58
+
59
+ await client.devices.createBatch({
60
+ defaults: {
61
+ display_settings: {
62
+ content_fit: { advertisements: 'fill', self_promo: 'fill' },
63
+ },
64
+ },
65
+ devices: [
66
+ { device_id: 'screen-001' },
67
+ {
68
+ device_id: 'screen-002',
69
+ display_settings: { content_fit: { self_promo: 'fit' } },
70
+ },
71
+ ],
72
+ });
73
+ ```
74
+
75
+ `fit` preserves the full creative and may letterbox; `fill` covers the screen
76
+ and may crop its edges. Omit `content_fit` to leave existing behavior unchanged.
77
+
48
78
  ## Error Handling
49
79
 
50
80
  ```typescript
package/dist/index.d.mts CHANGED
@@ -45,6 +45,43 @@ interface ListResponse<T> {
45
45
  has_more: boolean;
46
46
  };
47
47
  }
48
+ type ContentFitMode = 'fit' | 'fill';
49
+ interface ContentFitSettings {
50
+ /** Direct and programmatic advertisements. */
51
+ advertisements?: ContentFitMode;
52
+ /** Default/background streams. */
53
+ default_streams?: ContentFitMode;
54
+ /** Self-promotion and QR-code house ads. */
55
+ self_promo?: ContentFitMode;
56
+ }
57
+ interface PartnerDisplaySettingsInput {
58
+ content_fit?: ContentFitSettings;
59
+ [key: string]: unknown;
60
+ }
61
+ interface PartnerDisplaySettingsResponse {
62
+ object: 'display_settings' | string;
63
+ screen_id: string;
64
+ content_fit: Required<ContentFitSettings>;
65
+ [key: string]: unknown;
66
+ }
67
+ interface PartnerDeviceRegistrationInput {
68
+ /** Stable partner-owned device identifier. */
69
+ device_id?: string;
70
+ /** Legacy SDK alias retained for backwards compatibility. */
71
+ device_name?: string;
72
+ device_type?: string;
73
+ name?: string;
74
+ display?: Record<string, unknown>;
75
+ display_settings?: PartnerDisplaySettingsInput;
76
+ location?: Record<string, unknown>;
77
+ venue?: Record<string, unknown>;
78
+ placement?: Record<string, unknown>;
79
+ [key: string]: unknown;
80
+ }
81
+ interface PartnerDeviceBatchRegistrationInput {
82
+ devices: PartnerDeviceRegistrationInput[];
83
+ defaults?: Omit<PartnerDeviceRegistrationInput, 'device_id' | 'device_name'>;
84
+ }
48
85
  interface Screen {
49
86
  screen_id: string;
50
87
  name: string;
@@ -160,6 +197,128 @@ interface BillingInfo {
160
197
  usage_this_month: Record<string, number>;
161
198
  stripe_connected: boolean;
162
199
  }
200
+ /**
201
+ * Comparison operators accepted for a Route threshold condition — the same set
202
+ * the API validates against (services/fein/clipTriggerSchema VALID_OPERATORS).
203
+ */
204
+ type RouteConditionOp = 'gt' | 'gte' | 'lt' | 'lte' | 'eq' | 'neq';
205
+ /** A threshold condition: fires when `field` crosses `value` via `op`. */
206
+ interface RouteCondition {
207
+ field: string;
208
+ op?: RouteConditionOp;
209
+ value?: number | string | boolean;
210
+ }
211
+ /** Channels a Route action can fire on. */
212
+ type RouteChannel = 'webhook' | 'whatsapp' | 'sms' | 'slack' | 'email' | 'clip';
213
+ /** One channel action fired when a Route matches. */
214
+ interface RouteAction {
215
+ channel: RouteChannel;
216
+ webhookId?: string;
217
+ recipientE164?: string;
218
+ recipientEmail?: string;
219
+ slackChannelId?: string;
220
+ templateName?: string;
221
+ attachClip?: boolean;
222
+ }
223
+ /** Scheduled-digest config (mode = 'digest'). */
224
+ interface RouteDigest {
225
+ metric: 'count' | 'avg' | 'max';
226
+ windowMinutes: number;
227
+ intervalMinutes: number;
228
+ nextRunAt?: string;
229
+ }
230
+ /** A Sense Anything Route — a (condition -> channel actions) alert/automation rule. */
231
+ interface SensingRoute {
232
+ routeId: string;
233
+ ownerKind: 'earner_user' | 'partner';
234
+ ownerId: string;
235
+ partnerId?: string | null;
236
+ name: string;
237
+ enabled: boolean;
238
+ profileName?: string | null;
239
+ mode: 'threshold' | 'digest';
240
+ condition: RouteCondition | null;
241
+ actions: RouteAction[];
242
+ screenMongoIds: string[];
243
+ sustainWindowSeconds?: number;
244
+ sustainMinSamples?: number;
245
+ debounceSeconds?: number;
246
+ activeTz?: string | null;
247
+ activeStartMinute?: number | null;
248
+ activeEndMinute?: number | null;
249
+ activeDaysMask?: number;
250
+ digest: RouteDigest | null;
251
+ createdAt: string;
252
+ updatedAt: string;
253
+ }
254
+ /** Request body to create a Route. */
255
+ interface CreateRouteParams {
256
+ name: string;
257
+ screenMongoIds: string[];
258
+ actions: RouteAction[];
259
+ mode?: 'threshold' | 'digest';
260
+ enabled?: boolean;
261
+ profileName?: string;
262
+ condition?: RouteCondition;
263
+ digest?: {
264
+ metric: 'count' | 'avg' | 'max';
265
+ field?: string;
266
+ windowMinutes: number;
267
+ intervalMinutes: number;
268
+ };
269
+ sustainWindowSeconds?: number;
270
+ sustainMinSamples?: number;
271
+ debounceSeconds?: number;
272
+ activeTz?: string;
273
+ activeStartMinute?: number;
274
+ activeEndMinute?: number;
275
+ activeDaysMask?: number;
276
+ }
277
+ /** Request body to update a Route (partial, non-clobbering). */
278
+ type UpdateRouteParams = Partial<CreateRouteParams>;
279
+ /**
280
+ * The webhook events a Route fire can deliver. The event type is in the
281
+ * `X-Trillboards-Event` request header: a custom sensed field delivers
282
+ * `sensing.threshold_crossed`, a known semantic delivers the matching
283
+ * `audience.*` / `venue.*` event, and a scheduled digest delivers
284
+ * `venue.traffic_summary`.
285
+ */
286
+ type RouteWebhookEvent = 'sensing.threshold_crossed' | 'audience.spike' | 'audience.venue_busy' | 'audience.purchase_intent' | 'audience.demographics_update' | 'venue.traffic_summary';
287
+ /**
288
+ * The aggregate summary delivered as the `observed` value of a digest Route fire
289
+ * (`venue.traffic_summary`). The digest runner builds it over the Route's window.
290
+ */
291
+ interface RouteDigestSummary {
292
+ metric: 'count' | 'avg' | 'max';
293
+ field: string | null;
294
+ /** The headline value for `metric`. null for an avg/max window with no samples. */
295
+ value: number | null;
296
+ count: number;
297
+ avg: number | null;
298
+ max: number | null;
299
+ window_minutes: number;
300
+ window_end: string;
301
+ }
302
+ /**
303
+ * The FLAT webhook request body delivered when a Route fires. Unlike the
304
+ * device/programmatic events there is NO `{event,timestamp,data}` wrapper — the
305
+ * event type rides the `X-Trillboards-Event` header. Verify the
306
+ * `X-Trillboards-Signature` header over the raw body before trusting it.
307
+ *
308
+ * `observed` is a scalar for threshold Routes; for a digest Route
309
+ * (`venue.traffic_summary`) it is a {@link RouteDigestSummary} object.
310
+ */
311
+ interface SensingThresholdCrossedEvent {
312
+ route_id: string;
313
+ route_name: string;
314
+ owner_kind: 'earner_user' | 'partner';
315
+ screen_id: string;
316
+ field: string | null;
317
+ op: RouteConditionOp | null;
318
+ threshold: number | string | boolean | null;
319
+ observed: number | string | boolean | RouteDigestSummary | null;
320
+ fired_at: string;
321
+ }
163
322
 
164
323
  /**
165
324
  * Internal HTTP client for the Trillboards API.
@@ -256,18 +415,18 @@ declare class ScreensClient {
256
415
  data: Screen;
257
416
  }>;
258
417
  /** Register a new device/screen. */
259
- create(body: {
260
- device_name: string;
261
- device_type?: string;
262
- venue_type?: string;
263
- country?: string;
264
- city?: string;
265
- timezone?: string;
266
- resolution?: string;
267
- }): Promise<{
418
+ create(body: PartnerDeviceRegistrationInput): Promise<{
268
419
  success: boolean;
269
420
  data: Screen;
270
421
  }>;
422
+ /** Get the resolved display settings for one screen. */
423
+ getDisplaySettings(screenId: string): Promise<PartnerDisplaySettingsResponse>;
424
+ /** Partially update display settings; omitted content-fit keys are preserved. */
425
+ patchDisplaySettings(screenId: string, settings: PartnerDisplaySettingsInput): Promise<PartnerDisplaySettingsResponse>;
426
+ /** Update display settings through the PUT endpoint. */
427
+ updateDisplaySettings(screenId: string, settings: PartnerDisplaySettingsInput): Promise<PartnerDisplaySettingsResponse>;
428
+ /** Apply a partial display-settings update to up to 100 screens. */
429
+ batchUpdateDisplaySettings(screenIds: string[], settings: PartnerDisplaySettingsInput): Promise<Record<string, unknown>>;
271
430
  /** Delete a screen/device. */
272
431
  delete(screenId: string): Promise<{
273
432
  success: boolean;
@@ -294,14 +453,17 @@ declare class DevicesClient {
294
453
  data: Device;
295
454
  }>;
296
455
  /** Register a new device. */
297
- create(body: {
298
- device_name: string;
299
- device_type?: string;
300
- platform?: string;
301
- }): Promise<{
456
+ create(body: PartnerDeviceRegistrationInput): Promise<{
302
457
  success: boolean;
303
458
  data: Device;
304
459
  }>;
460
+ /** Register or re-register up to 100 devices with optional fleet defaults. */
461
+ createBatch(body: PartnerDeviceBatchRegistrationInput): Promise<{
462
+ success: boolean;
463
+ summary: Record<string, number>;
464
+ devices: Array<Record<string, unknown>>;
465
+ errors: Array<Record<string, unknown>>;
466
+ }>;
305
467
  /** Delete a device. */
306
468
  delete(deviceId: string): Promise<{
307
469
  success: boolean;
@@ -573,6 +735,57 @@ declare class BillingClient {
573
735
  }>;
574
736
  }
575
737
 
738
+ /**
739
+ * RoutesClient — Sense Anything "Routes": alerting + automation on the sensing
740
+ * stream. A Route fires channel actions (webhook / managed WhatsApp / SMS /
741
+ * Slack / email) when a sensed field crosses a threshold on a set of your
742
+ * screens, or on a scheduled digest.
743
+ *
744
+ * Base path: /v1/partner/sensing/routes
745
+ */
746
+
747
+ declare class RoutesClient {
748
+ private readonly http;
749
+ constructor(http: HttpClient);
750
+ /** Create a Route. Every screen in `screenMongoIds` must be one you own. */
751
+ create(body: CreateRouteParams): Promise<{
752
+ success: boolean;
753
+ data: {
754
+ route: SensingRoute;
755
+ };
756
+ }>;
757
+ /** List your Routes. Pass `includeDisabled: false` to return only enabled Routes. */
758
+ list(params?: {
759
+ includeDisabled?: boolean;
760
+ }): Promise<{
761
+ success: boolean;
762
+ data: {
763
+ routes: SensingRoute[];
764
+ };
765
+ }>;
766
+ /** Get one Route by id. */
767
+ get(routeId: string): Promise<{
768
+ success: boolean;
769
+ data: {
770
+ route: SensingRoute;
771
+ };
772
+ }>;
773
+ /** Update a Route (partial, non-clobbering — only the fields you send change). */
774
+ update(routeId: string, body: UpdateRouteParams): Promise<{
775
+ success: boolean;
776
+ data: {
777
+ route: SensingRoute;
778
+ };
779
+ }>;
780
+ /** Soft-delete a Route. */
781
+ delete(routeId: string): Promise<{
782
+ success: boolean;
783
+ data: {
784
+ routeId: string;
785
+ };
786
+ }>;
787
+ }
788
+
576
789
  /**
577
790
  * TrillboardsClient — main entry point for the Trillboards Partner API SDK.
578
791
  *
@@ -595,6 +808,7 @@ declare class TrillboardsClient {
595
808
  readonly data: DataClient;
596
809
  readonly errors: ErrorsClient;
597
810
  readonly billing: BillingClient;
811
+ readonly routes: RoutesClient;
598
812
  /** The underlying HTTP client (exposed for advanced use cases). */
599
813
  readonly _http: HttpClient;
600
814
  constructor(options: ClientOptions);
@@ -784,7 +998,7 @@ declare const Webhooks: {
784
998
  * SDK version constant. Sent in User-Agent and X-Trillboards-Client headers.
785
999
  * Keep in sync with package.json version.
786
1000
  */
787
- declare const VERSION = "0.1.3";
1001
+ declare const VERSION = "0.4.1";
788
1002
 
789
1003
  type BleScanResultData = {
790
1004
  appleContinuitySubtype?: number | null;
@@ -1006,6 +1220,32 @@ type PartnerHeartbeatRequest = {
1006
1220
  last_vast_error_code?: number;
1007
1221
  last_vast_request_at?: string;
1008
1222
  last_vast_response_at?: string;
1223
+ /** Current GPS fix for a moving screen. Processed only for screens whose `mobility_type` is `mobile` or `semi_mobile` (declare it at registration or via PATCH /device/{deviceId}), OR for any screen still missing coordinates (a one-time self-heal that also kicks off venue classification). Static screens with valid coordinates ignore it. Updates live geo-targeting, geofencing and analytics. Fully optional — omit it on stationary screens. */
1224
+ location?: {
1225
+ /** Horizontal accuracy radius in meters. Fixes above ~500m are clamped. */
1226
+ accuracy_m?: number;
1227
+ /** Up to 200 fixes recorded while the device was offline, replayed as a historical track. Timestamps MUST be in ascending order — a non-chronological batch is rejected with HTTP 400. Only the top-level `location` updates the live serving position. */
1228
+ buffered_locations?: Array<{
1229
+ accuracy_m?: number;
1230
+ heading?: number;
1231
+ lat: number;
1232
+ lng: number;
1233
+ speed_mps?: number;
1234
+ timestamp?: number;
1235
+ }>;
1236
+ /** Bearing in degrees (0–360, 0 = true north). Omit if unavailable. */
1237
+ heading?: number;
1238
+ /** Latitude in decimal degrees (WGS 84). */
1239
+ lat?: number;
1240
+ /** Longitude in decimal degrees (WGS 84). */
1241
+ lng?: number;
1242
+ /** `gps` — a live on-device fix. `gps_buffered` — a fix recorded while offline and replayed on reconnect. */
1243
+ source?: "gps" | "gps_buffered";
1244
+ /** Ground speed in meters per second. Omit if unavailable. */
1245
+ speed_mps?: number;
1246
+ /** Unix epoch milliseconds of the on-device fix. Send the device clock value; the server tolerates up to 10 minutes of skew. A position jump implying > 320 km/h between consecutive fixes is rejected. */
1247
+ timestamp?: number;
1248
+ };
1009
1249
  /** Alternate namespace for telemetry keys (legacy support). */
1010
1250
  metadata?: Record<string, unknown>;
1011
1251
  muted?: boolean;
@@ -1163,12 +1403,12 @@ interface heartbeatOperation {
1163
1403
  response: PartnerHeartbeatResponse;
1164
1404
  }
1165
1405
  declare const generatedTypes: {
1166
- readonly schemaCount: 71;
1167
- readonly operationCount: 175;
1168
- readonly schemas: readonly ["Ad", "AdSettings", "AudienceAnalyticsResponse", "AudienceAttentionPrediction", "AudienceExportResponse", "AudienceLoyaltyFeaturesRow", "AudienceMetricsResponse", "AudienceSegment", "AudienceSocialAttention", "BatchResult", "BleScanResultData", "ChangelogEntry", "ChangelogResponse", "ContentPreferencesInput", "ContentPreferencesResponse", "ContentPreset", "DashboardResponse", "DataExportSummaryResponse", "DemographicsResponse", "Device", "DeviceCapabilityPayload", "DeviceSummary", "DisplaySettingsInput", "DisplaySettingsResponse", "EarningsBreakdownResponse", "EarningsResponse", "Error", "HeaderBiddingSettings", "HttpProbeResult", "MdnsNetworkDevice", "Pagination", "Partner", "PartnerAdDeliveryProfile", "PartnerDefaultStream", "PartnerDefaultStreamCreate", "PartnerDefaultStreamUpdate", "PartnerDeviceHeartbeatBody", "PartnerHeartbeatCommand", "PartnerHeartbeatData", "PartnerHeartbeatMeasurementMetadata", "PartnerHeartbeatQueryData", "PartnerHeartbeatQueryResponse", "PartnerHeartbeatRequest", "PartnerHeartbeatResponse", "PartnerHeartbeatTelemetry", "PartnerLBarContent", "PartnerLBarDisplayPreferences", "PartnerLBarSettings", "PartnerSafeHeartbeatTelemetry", "PartnerSelfPromoAd", "PartnerSelfPromoCreate", "PartnerSelfPromoPlacement", "PartnerStats", "PayoutResponse", "PlaygroundResult", "PlaygroundValidationError", "ProgrammaticSettingsInput", "ProgrammaticSettingsResponse", "RequestMetadataResponse", "RolePermissions", "SDKConfig", "ScreenAnalyticsResponse", "SsdpDeviceInfo", "TeamInviteResponse", "TeamMember", "Transaction", "Webhook", "WebhookDelivery", "WebhookEvent", "WifiEnvironmentSnapshot", "WifiScanResult"];
1169
- readonly operations: readonly ["listPartnerSelfPromoAds", "createPartnerSelfPromoAd", "listPartnerSelfPromoPlacements", "schedulePartnerSelfPromo", "createPartnerSelfPromoUpload", "disableSelfPromoAd", "registerAgent", "getAnalytics", "getAudienceContinuity", "getAudienceProfile", "getBleSummary", "getContentPerformance", "searchCreativeCatalog", "getCreativeScenes", "getCrossScreenFlow", "getPartnerAnalyticsDashboard", "getDeviceSuiteSignature", "exportPartnerAnalytics", "exportPartnerAdsByDay", "getFleetHourly", "getHaloFunnel", "getLoyaltyClock", "getNetworkSummary", "getNetworkTrend", "getProximitySummary", "getRevenueAttentionCorrelation", "getSceneFeed", "getSceneIntelligence", "rotateApiKey", "getAudienceAnalytics", "exportAudienceData", "getAudienceHeatmap", "getLiveAudience", "getLookalikeScreens", "predictScreenAudience", "getResolvedHouseholdReach", "listAudienceSegments", "createAudienceSegment", "deleteAudienceSegment", "getAudienceSegment", "updateAudienceSegment", "matchAudienceSegment", "estimateSegmentReach", "generateSegmentVastTag", "getAudienceStats", "cancelBillingSubscription", "purchaseCredits", "createCreditCheckout", "listBillingPlans", "setupBilling", "createBillingSubscription", "getBillingSubscription", "getBillingUsage", "getUsageSummary", "stripeWebhookCallback", "getConnectDashboard", "getConnectEarningsChart", "getConnectScreenHealth", "listContentPresets", "getContentPreset", "getDashboard", "exportProximityGraphEdges", "getDataExportSummary", "exportDataset", "getGeohashAudiencePanel", "registerDevice", "deleteDevice", "getDevice", "updateDevice", "getAdsForDevice", "ackDeviceCommand", "getDeviceHeartbeat", "heartbeat", "recordProgrammaticEvent", "listDevices", "registerDevicesBatch", "batchUpdateDeviceOrientation", "partnerDocsBrowser", "getEarnings", "getEarningsBreakdown", "requestPayout", "getTransactions", "getActiveSSEConnections", "subscribeToEvents", "getFleetAnalytics", "pushFleetCommand", "getFleetOverview", "updateFleetSettings", "recordImpressionGet", "recordImpressionPost", "recordImpressionsBatch", "getPartnerInfo", "listIntentCategories", "getIntentCategory", "getIntentPricing", "getMeasurementMethodology", "getNetworkConfig", "patchNetworkConfig", "updateNetworkConfig", "getNetworkTrends", "partnerPing", "partnerPingAuth", "getPricing", "quickStart", "registerPartner", "generateSandboxEvent", "resetSandbox", "createSandboxScreen", "getSandboxStatus", "getScreenAudienceSegments", "batchUpdateContentPreferences", "batchUpdateDisplaySettings", "batchUpdateProgrammaticSettings", "resolvePartnerScreen", "getScreenAnalytics", "getPartnerScreenAtmosphere", "getPartnerScreenIntelligence", "getPartnerScreenTasteProfile", "getPartnerScreenTraffic", "getPartnerScreenVAS", "applyContentPreset", "getAudienceMetrics", "getContentPreferences", "patchContentPreferences", "updateContentPreferences", "listPartnerDefaultStreams", "createPartnerDefaultStream", "createPartnerDefaultStreamImages", "reorderPartnerDefaultStreams", "createPartnerDefaultStreamUpload", "deletePartnerDefaultStream", "updatePartnerDefaultStream", "getScreenDemographics", "getDisplaySettings", "patchDisplaySettings", "updateDisplaySettings", "getPartnerLBarSettings", "updatePartnerLBarSettings", "updatePartnerLBarLiveUpdates", "getProgrammaticSettings", "patchProgrammaticSettings", "updateProgrammaticSettings", "createStripeConnectAccount", "getStripeLoginLink", "getStripeOnboardingLink", "requestStripePayout", "getStripePayoutHistory", "getStripeAccountStatus", "handleStripeWebhook", "listTeamMembers", "acceptInvitation", "inviteTeamMember", "getInvitationByToken", "resendInvitation", "removeTeamMember", "changeTeamMemberRole", "getTrackingPublicKey", "recordTrackingBatch", "getUsageSummary__get__usage", "getUsageDashboard", "getRateLimitStatus", "queryChangelog", "playgroundDryRun", "getRequestMetadata", "getVastConfig", "getVenuesNearby", "getVenueAtmosphere", "getVenueTraffic", "getVenueIntelligence", "listWebhooks", "createWebhook", "deleteWebhook", "updateWebhook", "getWebhookDeliveries", "testWebhook"];
1406
+ readonly schemaCount: 99;
1407
+ readonly operationCount: 210;
1408
+ readonly schemas: readonly ["Ad", "AdSettings", "AudienceAnalyticsResponse", "AudienceAttentionPrediction", "AudienceExportResponse", "AudienceLoyaltyFeaturesRow", "AudienceMetricsResponse", "AudienceSegment", "AudienceSocialAttention", "BatchResult", "BleScanResultData", "ChangelogEntry", "ChangelogResponse", "ContentFitSettings", "ContentPreferencesInput", "ContentPreferencesResponse", "ContentPreset", "CreatePartnerSensingRouteRequest", "CreativeClassification", "DashboardResponse", "DataExportSummaryResponse", "DemographicsResponse", "Device", "DeviceCapabilityPayload", "DeviceSummary", "DisplaySettingsInput", "DisplaySettingsResponse", "EarningsBreakdownResponse", "EarningsResponse", "Error", "FleetCommand", "FleetCommandEvent", "HeaderBiddingSettings", "HttpProbeResult", "MdnsNetworkDevice", "Pagination", "Partner", "PartnerAdDeliveryProfile", "PartnerDefaultStream", "PartnerDefaultStreamCreate", "PartnerDefaultStreamUpdate", "PartnerDeviceHeartbeatBody", "PartnerHeartbeatCommand", "PartnerHeartbeatData", "PartnerHeartbeatMeasurementMetadata", "PartnerHeartbeatQueryData", "PartnerHeartbeatQueryResponse", "PartnerHeartbeatRequest", "PartnerHeartbeatResponse", "PartnerHeartbeatTelemetry", "PartnerLBarContent", "PartnerLBarDisplayPreferences", "PartnerLBarSettings", "PartnerMonetizationRequirements", "PartnerNetworkConfig", "PartnerNetworkConfigUpdate", "PartnerPlay", "PartnerRegistrationDisplaySettings", "PartnerRequirement", "PartnerSafeHeartbeatTelemetry", "PartnerSelfPromoAd", "PartnerSelfPromoCreate", "PartnerSelfPromoPlacement", "PartnerStats", "PayoutResponse", "PlaygroundResult", "PlaygroundValidationError", "ProgrammaticSettingsInput", "ProgrammaticSettingsResponse", "RequestMetadataResponse", "ResolvedContentPolicy", "ResolvedSensingConfig", "RolePermissions", "SDKConfig", "ScreenAnalyticsResponse", "ScreenGroup", "ScreenGroupContentPolicy", "ScreenGroupContentPolicyInput", "ScreenGroupEvent", "ScreenGroupSensingConfig", "ScreenGroupSensingConfigInput", "SensingPerformanceMode", "SensingRoute", "SensingRouteAction", "SensingRouteCondition", "SensingSettingsResponse", "SensingThresholdCrossedEvent", "SsdpDeviceInfo", "TeamInviteResponse", "TeamMember", "Transaction", "UpdatePartnerSensingRouteRequest", "VastWaterfall", "VastWaterfallSource", "Webhook", "WebhookDelivery", "WebhookEvent", "WifiEnvironmentSnapshot", "WifiScanResult"];
1409
+ readonly operations: readonly ["listPartnerSelfPromoAds", "createPartnerSelfPromoAd", "listPartnerSelfPromoPlacements", "schedulePartnerSelfPromo", "createPartnerSelfPromoUpload", "disableSelfPromoAd", "registerAgent", "getAnalytics", "getAudienceContinuity", "getAudienceProfile", "getBleSummary", "getContentPerformance", "searchCreativeCatalog", "getCreativeScenes", "getCrossScreenFlow", "getPartnerAnalyticsDashboard", "getDeviceSuiteSignature", "exportPartnerAnalytics", "exportPartnerAdsByDay", "getFleetHourly", "getHaloFunnel", "getLoyaltyClock", "getNetworkSummary", "getNetworkTrend", "getProximitySummary", "getRevenueAttentionCorrelation", "getSceneFeed", "getSceneIntelligence", "rotateApiKey", "getAudienceAnalytics", "exportAudienceData", "getAudienceHeatmap", "getLiveAudience", "getLookalikeScreens", "predictScreenAudience", "getResolvedHouseholdReach", "listAudienceSegments", "createAudienceSegment", "deleteAudienceSegment", "getAudienceSegment", "updateAudienceSegment", "matchAudienceSegment", "estimateSegmentReach", "generateSegmentVastTag", "getAudienceStats", "cancelBillingSubscription", "purchaseCredits", "createCreditCheckout", "listBillingPlans", "setupBilling", "createBillingSubscription", "getBillingSubscription", "getBillingUsage", "getUsageSummary", "stripeWebhookCallback", "getConnectDashboard", "getConnectEarningsChart", "getConnectScreenHealth", "listContentPresets", "getContentPreset", "submitPartnerCreative", "getPartnerCreative", "getDashboard", "exportProximityGraphEdges", "getDataExportSummary", "exportDataset", "getGeohashAudiencePanel", "getOutcomeAttribution", "registerDevice", "deleteDevice", "getDevice", "updateDevice", "getAdsForDevice", "ackDeviceCommand", "getDeviceHeartbeat", "heartbeat", "recordProgrammaticEvent", "listDevices", "registerDeviceV2", "registerDevicesBatch", "batchUpdateDeviceOrientation", "reconcileDevices", "partnerDocsBrowser", "getEarnings", "getEarningsBreakdown", "requestPayout", "getTransactions", "getActiveSSEConnections", "subscribeToEvents", "getFleetCommand", "getFleetAnalytics", "pushFleetCommand", "getFleetOverview", "updateFleetSettings", "recordImpressionGet", "recordImpressionPost", "recordImpressionsBatch", "getPartnerInfo", "listIntentCategories", "getIntentCategory", "getIntentPricing", "getMeasurementMethodology", "getNetworkConfig", "patchNetworkConfig", "updateNetworkConfig", "getNetworkTrends", "partnerPing", "partnerPingAuth", "recordPartnerPlay", "recordPartnerPlaysBatch", "getPricing", "recordProgrammaticEventLegacyAlias", "quickStart", "registerPartner", "generateSandboxEvent", "resetSandbox", "createSandboxScreen", "getSandboxStatus", "listScreenGroups", "createScreenGroup", "deleteScreenGroup", "getScreenGroup", "updateScreenGroup", "getScreenGroupAnalytics", "createScreenGroupCommand", "getScreenGroupContentPolicy", "updateScreenGroupContentPolicy", "removeScreenGroupMembers", "listScreenGroupMembers", "addScreenGroupMembers", "getScreenGroupSensingConfig", "updateScreenGroupSensingConfig", "getScreenAudienceSegments", "batchUpdateContentPreferences", "batchUpdateDisplaySettings", "batchUpdateProgrammaticSettings", "resolvePartnerScreen", "getScreenAnalytics", "getPartnerScreenAtmosphere", "getPartnerScreenIntelligence", "getPartnerScreenTasteProfile", "getPartnerScreenTraffic", "getPartnerScreenVAS", "applyContentPreset", "getAudienceMetrics", "getContentPreferences", "patchContentPreferences", "updateContentPreferences", "listPartnerDefaultStreams", "createPartnerDefaultStream", "createPartnerDefaultStreamImages", "reorderPartnerDefaultStreams", "createPartnerDefaultStreamUpload", "deletePartnerDefaultStream", "updatePartnerDefaultStream", "getScreenDemographics", "getDisplaySettings", "patchDisplaySettings", "updateDisplaySettings", "getPartnerLBarSettings", "updatePartnerLBarSettings", "updatePartnerLBarLiveUpdates", "getProgrammaticSettings", "patchProgrammaticSettings", "updateProgrammaticSettings", "getResolvedContentPolicy", "getResolvedSensingConfig", "getScreenSensingChips", "interpretScreenSensingIntent", "deployScreenSensingProfile", "getScreenSensingSettings", "updateScreenSensingSettings", "listPartnerSensingRoutes", "createPartnerSensingRoute", "deletePartnerSensingRoute", "getPartnerSensingRoute", "updatePartnerSensingRoute", "createStripeConnectAccount", "getStripeLoginLink", "getStripeOnboardingLink", "requestStripePayout", "getStripePayoutHistory", "getStripeAccountStatus", "handleStripeWebhook", "listTeamMembers", "acceptInvitation", "inviteTeamMember", "getInvitationByToken", "resendInvitation", "removeTeamMember", "changeTeamMemberRole", "getTrackingPublicKey", "recordTrackingBatch", "getUsageSummary__get__usage", "getUsageDashboard", "getRateLimitStatus", "queryChangelog", "playgroundDryRun", "getRequestMetadata", "getVastConfig", "getVenuesNearby", "getVenueAtmosphere", "getVenueTraffic", "getVenueIntelligence", "listWebhooks", "createWebhook", "deleteWebhook", "updateWebhook", "getWebhookDeliveries", "testWebhook"];
1170
1410
  };
1171
1411
  type GeneratedSchemaName = (typeof generatedTypes.schemas)[number];
1172
1412
  type GeneratedOperationName = (typeof generatedTypes.operations)[number];
1173
1413
 
1174
- export { AnalyticsClient, type AnalyticsData, type ApiErrorType, AudienceClient, type AudienceData, BillingClient, type BillingInfo, type BleScanResultData, type ClientOptions, type ConstructEventOptions, DataClient, type Device, type DeviceCapabilityPayload, DevicesClient, EarningsClient, type EarningsData, type ErrorDetail, type ErrorEntry, type ErrorResponseBody, ErrorsClient, FleetClient, type FleetCommand, type GeneratedOperationName, type GeneratedSchemaName, type HttpProbeResult, type Impression, ImpressionsClient, type ListResponse, type MdnsNetworkDevice, type ParsedSignatureHeader, type PartnerAdDeliveryProfile, type PartnerDeviceHeartbeatBody, type PartnerHeartbeatMeasurementMetadata, type PartnerHeartbeatQueryData, type PartnerHeartbeatQueryResponse, type PartnerHeartbeatRequest, type PartnerHeartbeatResponse, type PartnerSafeHeartbeatTelemetry, type RequestOptions, type RetryOptions, type Screen, ScreensClient, type SsdpDeviceInfo, TrillboardsClient, TrillboardsError, type TrillboardsErrorOptions, VERSION, type Webhook, type WebhookEvent, type WebhookHeaders, Webhooks, WebhooksClient, type WifiEnvironmentSnapshot, type WifiScanResult, constructEvent, constructEventLegacy, generatedTypes, type getDeviceHeartbeatOperation, type heartbeatOperation, parseSignatureHeader, retryWithBackoff };
1414
+ export { AnalyticsClient, type AnalyticsData, type ApiErrorType, AudienceClient, type AudienceData, BillingClient, type BillingInfo, type BleScanResultData, type ClientOptions, type ConstructEventOptions, type ContentFitMode, type ContentFitSettings, type CreateRouteParams, DataClient, type Device, type DeviceCapabilityPayload, DevicesClient, EarningsClient, type EarningsData, type ErrorDetail, type ErrorEntry, type ErrorResponseBody, ErrorsClient, FleetClient, type FleetCommand, type GeneratedOperationName, type GeneratedSchemaName, type HttpProbeResult, type Impression, ImpressionsClient, type ListResponse, type MdnsNetworkDevice, type ParsedSignatureHeader, type PartnerAdDeliveryProfile, type PartnerDeviceBatchRegistrationInput, type PartnerDeviceHeartbeatBody, type PartnerDeviceRegistrationInput, type PartnerDisplaySettingsInput, type PartnerDisplaySettingsResponse, type PartnerHeartbeatMeasurementMetadata, type PartnerHeartbeatQueryData, type PartnerHeartbeatQueryResponse, type PartnerHeartbeatRequest, type PartnerHeartbeatResponse, type PartnerSafeHeartbeatTelemetry, type RequestOptions, type RetryOptions, type RouteAction, type RouteChannel, type RouteCondition, type RouteConditionOp, type RouteDigest, type RouteDigestSummary, type RouteWebhookEvent, RoutesClient, type Screen, ScreensClient, type SensingRoute, type SensingThresholdCrossedEvent, type SsdpDeviceInfo, TrillboardsClient, TrillboardsError, type TrillboardsErrorOptions, type UpdateRouteParams, VERSION, type Webhook, type WebhookEvent, type WebhookHeaders, Webhooks, WebhooksClient, type WifiEnvironmentSnapshot, type WifiScanResult, constructEvent, constructEventLegacy, generatedTypes, type getDeviceHeartbeatOperation, type heartbeatOperation, parseSignatureHeader, retryWithBackoff };