een-api-toolkit 0.3.43 → 0.3.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.claude/agents/docs-accuracy-reviewer.md +35 -5
  2. package/.claude/agents/een-automations-agent.md +264 -0
  3. package/.claude/agents/een-devices-agent.md +5 -7
  4. package/.claude/agents/een-events-agent.md +30 -16
  5. package/.claude/agents/een-media-agent.md +12 -15
  6. package/.claude/agents/een-users-agent.md +2 -2
  7. package/CHANGELOG.md +6 -8
  8. package/dist/index.cjs +3 -3
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.d.ts +815 -0
  11. package/dist/index.js +986 -719
  12. package/dist/index.js.map +1 -1
  13. package/docs/AI-CONTEXT.md +17 -1
  14. package/docs/ai-reference/AI-AUTH.md +1 -1
  15. package/docs/ai-reference/AI-AUTOMATIONS.md +833 -0
  16. package/docs/ai-reference/AI-DEVICES.md +1 -1
  17. package/docs/ai-reference/AI-EVENTS.md +1 -1
  18. package/docs/ai-reference/AI-GROUPING.md +128 -66
  19. package/docs/ai-reference/AI-MEDIA.md +1 -1
  20. package/docs/ai-reference/AI-SETUP.md +1 -1
  21. package/docs/ai-reference/AI-USERS.md +1 -1
  22. package/examples/vue-automations/.env.example +11 -0
  23. package/examples/vue-automations/README.md +205 -0
  24. package/examples/vue-automations/e2e/app.spec.ts +83 -0
  25. package/examples/vue-automations/e2e/auth.spec.ts +468 -0
  26. package/examples/vue-automations/index.html +13 -0
  27. package/examples/vue-automations/package-lock.json +1722 -0
  28. package/examples/vue-automations/package.json +29 -0
  29. package/examples/vue-automations/playwright.config.ts +46 -0
  30. package/examples/vue-automations/src/App.vue +122 -0
  31. package/examples/vue-automations/src/main.ts +23 -0
  32. package/examples/vue-automations/src/router/index.ts +61 -0
  33. package/examples/vue-automations/src/views/Automations.vue +692 -0
  34. package/examples/vue-automations/src/views/Callback.vue +76 -0
  35. package/examples/vue-automations/src/views/Home.vue +172 -0
  36. package/examples/vue-automations/src/views/Login.vue +33 -0
  37. package/examples/vue-automations/src/views/Logout.vue +66 -0
  38. package/examples/vue-automations/src/vite-env.d.ts +1 -0
  39. package/examples/vue-automations/tsconfig.json +21 -0
  40. package/examples/vue-automations/tsconfig.node.json +10 -0
  41. package/examples/vue-automations/vite.config.ts +12 -0
  42. package/examples/vue-event-subscriptions/e2e/auth.spec.ts +8 -12
  43. package/package.json +1 -1
  44. package/scripts/setup-agents.ts +38 -19
package/dist/index.d.ts CHANGED
@@ -110,6 +110,59 @@ export declare interface AlertAction {
110
110
  status?: AlertActionStatus;
111
111
  }
112
112
 
113
+ /**
114
+ * Alert Action Rule entity from EEN API v3.0.
115
+ *
116
+ * @remarks
117
+ * Connects alerts to actions. When an alert matches the rule's criteria,
118
+ * the associated alert actions are executed.
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * import { listAlertActionRules, type AlertActionRule } from 'een-api-toolkit'
123
+ *
124
+ * const { data, error } = await listAlertActionRules({
125
+ * enabled: true,
126
+ * pageSize: 20
127
+ * })
128
+ * ```
129
+ *
130
+ * @category Automations
131
+ */
132
+ export declare interface AlertActionRule {
133
+ /** Unique identifier */
134
+ id: string;
135
+ /** ISO 8601 timestamp when created */
136
+ createTimestamp: string;
137
+ /** Human-readable name */
138
+ name: string;
139
+ /** Optional notes about the rule */
140
+ notes?: string;
141
+ /** Whether the rule is enabled */
142
+ enabled: boolean;
143
+ /** Alert types this rule applies to */
144
+ alertTypes: string[];
145
+ /** Actor IDs this rule applies to */
146
+ actorIds: string[];
147
+ /** Actor types this rule applies to */
148
+ actorTypes: string[];
149
+ /** Alert condition rule IDs this rule applies to */
150
+ ruleIds: string[];
151
+ /** Alert action IDs to execute when rule matches */
152
+ alertActionIds: string[];
153
+ /** Minimum priority for alerts (inclusive) */
154
+ priority__gte?: number;
155
+ /** Maximum priority for alerts (inclusive) */
156
+ priority__lte?: number;
157
+ }
158
+
159
+ /**
160
+ * Union type for all alert action settings.
161
+ *
162
+ * @category Automations
163
+ */
164
+ export declare type AlertActionSettings = NotificationSettings | SmsSettings | SmtpSettings | SlackSettings | WebhookSettings | OutputPortSettings | PlaySpeakerAudioClipSettings | GenericAlertActionSettings;
165
+
113
166
  /**
114
167
  * Status of an alert action.
115
168
  *
@@ -117,6 +170,114 @@ export declare interface AlertAction {
117
170
  */
118
171
  export declare type AlertActionStatus = 'fired' | 'success' | 'partialSuccess' | 'silenced' | 'failed' | 'internalError';
119
172
 
173
+ /**
174
+ * Supported alert action types.
175
+ *
176
+ * @category Automations
177
+ */
178
+ export declare type AlertActionType = 'notification' | 'sms' | 'smtp' | 'slack' | 'webhook' | 'brivo' | 'zendesk' | 'immix' | 'zapier' | 'sentinel' | 'evalinkTalos' | 'outputPort' | 'ebus' | 'playSpeakerAudioClip' | 'zulipPrivate' | 'zulipStream';
179
+
180
+ /**
181
+ * Alert Condition Rule entity from EEN API v3.0.
182
+ *
183
+ * @remarks
184
+ * Defines rules that process events and create alerts. Each rule specifies
185
+ * input event types and the output alert type to generate.
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * import { listAlertConditionRules, type AlertConditionRule } from 'een-api-toolkit'
190
+ *
191
+ * const { data, error } = await listAlertConditionRules({
192
+ * enabled: true,
193
+ * include: ['actions', 'insights']
194
+ * })
195
+ * ```
196
+ *
197
+ * @category Automations
198
+ */
199
+ export declare interface AlertConditionRule {
200
+ /** Unique identifier */
201
+ id: string;
202
+ /** ISO 8601 timestamp when created */
203
+ createTimestamp: string;
204
+ /** Rule type identifier */
205
+ type: string;
206
+ /** ID of the user who created the rule */
207
+ creatorId: string;
208
+ /** Human-readable name */
209
+ name: string;
210
+ /** Optional notes about the rule */
211
+ notes?: string;
212
+ /** Whether the rule is enabled */
213
+ enabled: boolean;
214
+ /** Priority level (1-10) */
215
+ priority: number;
216
+ /** Actors (cameras, bridges, etc.) this rule applies to */
217
+ actors: AlertConditionRuleActor[];
218
+ /** Input event types that trigger this rule */
219
+ inputEventTypes: string[];
220
+ /** Output alert type generated by this rule */
221
+ outputAlertType: string;
222
+ /** Actions associated with this rule (requires include=actions) */
223
+ actions?: AlertConditionRuleAction[];
224
+ /** Insights about rule performance (requires include=insights) */
225
+ insights?: AlertConditionRuleInsights;
226
+ }
227
+
228
+ /**
229
+ * Action reference in alert condition rules.
230
+ *
231
+ * @category Automations
232
+ */
233
+ export declare interface AlertConditionRuleAction {
234
+ /** Action ID */
235
+ id: string;
236
+ /** Action name */
237
+ name?: string;
238
+ /** Action type */
239
+ type?: string;
240
+ }
241
+
242
+ /**
243
+ * Actor configuration for alert condition rules.
244
+ *
245
+ * @category Automations
246
+ */
247
+ export declare interface AlertConditionRuleActor {
248
+ /** Actor ID */
249
+ id: string;
250
+ /** Actor type */
251
+ type: string;
252
+ /** Actor account ID */
253
+ accountId?: string;
254
+ }
255
+
256
+ /**
257
+ * Fields that can be included in alert condition rule responses.
258
+ *
259
+ * @category Automations
260
+ */
261
+ export declare type AlertConditionRuleInclude = 'actions' | 'insights';
262
+
263
+ /**
264
+ * Insights data for alert condition rules.
265
+ *
266
+ * @category Automations
267
+ */
268
+ export declare interface AlertConditionRuleInsights {
269
+ /** Total number of alerts triggered */
270
+ totalAlerts?: number;
271
+ /** ISO 8601 timestamp of last triggered alert */
272
+ lastTriggered?: string;
273
+ /** Count of alerts by time period */
274
+ alertCounts?: {
275
+ last24Hours?: number;
276
+ last7Days?: number;
277
+ last30Days?: number;
278
+ };
279
+ }
280
+
120
281
  /**
121
282
  * Fields that can be included in alert responses.
122
283
  *
@@ -147,6 +308,44 @@ export declare interface AlertType {
147
308
  description: string;
148
309
  }
149
310
 
311
+ /**
312
+ * Alert Action entity from EEN API v3.0.
313
+ *
314
+ * @remarks
315
+ * Represents an action that can be executed when an alert is triggered.
316
+ * Actions include notifications, webhooks, integrations, and physical outputs.
317
+ *
318
+ * @example
319
+ * ```typescript
320
+ * import { listAlertActions, type AlertAction } from 'een-api-toolkit'
321
+ *
322
+ * const { data, error } = await listAlertActions({ enabled: true })
323
+ * if (data) {
324
+ * data.results.forEach((action) => {
325
+ * console.log(`Action: ${action.name} (${action.type})`)
326
+ * })
327
+ * }
328
+ * ```
329
+ *
330
+ * @category Automations
331
+ */
332
+ export declare interface AutomationAlertAction {
333
+ /** Unique identifier */
334
+ id: string;
335
+ /** ISO 8601 timestamp when created */
336
+ createTimestamp: string;
337
+ /** Action type */
338
+ type: AlertActionType;
339
+ /** Human-readable name */
340
+ name: string;
341
+ /** Optional notes about the action */
342
+ notes?: string;
343
+ /** Whether the action is enabled */
344
+ enabled: boolean;
345
+ /** Type-specific settings */
346
+ settings: AlertActionSettings;
347
+ }
348
+
150
349
  /**
151
350
  * Bridge entity from EEN API v3.0.
152
351
  *
@@ -974,6 +1173,67 @@ declare interface Event_2 {
974
1173
  }
975
1174
  export { Event_2 as Event }
976
1175
 
1176
+ /**
1177
+ * Event Alert Condition Rule entity from EEN API v3.0.
1178
+ *
1179
+ * @remarks
1180
+ * Defines conditions under which events trigger alerts. These rules filter
1181
+ * incoming events and determine when to generate alerts.
1182
+ *
1183
+ * @example
1184
+ * ```typescript
1185
+ * import { listEventAlertConditionRules, type EventAlertConditionRule } from 'een-api-toolkit'
1186
+ *
1187
+ * const { data, error } = await listEventAlertConditionRules({
1188
+ * enabled: true,
1189
+ * pageSize: 50
1190
+ * })
1191
+ * if (data) {
1192
+ * data.results.forEach((rule: EventAlertConditionRule) => {
1193
+ * console.log(`Rule: ${rule.name}, Priority: ${rule.priority}`)
1194
+ * })
1195
+ * }
1196
+ * ```
1197
+ *
1198
+ * @category Automations
1199
+ */
1200
+ export declare interface EventAlertConditionRule {
1201
+ /** Unique identifier */
1202
+ id: string;
1203
+ /** ISO 8601 timestamp when created */
1204
+ createTimestamp: string;
1205
+ /** ISO 8601 timestamp when last updated */
1206
+ updateTimestamp: string;
1207
+ /** Human-readable name */
1208
+ name: string;
1209
+ /** Priority level (1-10, higher is more important) */
1210
+ priority: number;
1211
+ /** Optional notes about the rule */
1212
+ notes?: string;
1213
+ /** Whether the rule is enabled */
1214
+ enabled: boolean;
1215
+ /** Cooldown period in seconds between alerts */
1216
+ cooldownSeconds: number;
1217
+ /** Human validation configuration */
1218
+ humanValidation?: HumanValidation;
1219
+ /** Event filter configuration */
1220
+ eventFilter: EventFilter;
1221
+ /** Output alert types generated by this rule */
1222
+ outputAlertTypes: string[];
1223
+ }
1224
+
1225
+ /**
1226
+ * Field values available for filtering event alert condition rules.
1227
+ *
1228
+ * @category Automations
1229
+ */
1230
+ export declare interface EventAlertConditionRuleFieldValues {
1231
+ /** Available event types */
1232
+ eventTypes?: string[];
1233
+ /** Available output alert types */
1234
+ outputAlertTypes?: string[];
1235
+ }
1236
+
977
1237
  /**
978
1238
  * Event data object within an event.
979
1239
  *
@@ -1010,6 +1270,18 @@ export declare interface EventFieldValues {
1010
1270
  type: string[];
1011
1271
  }
1012
1272
 
1273
+ /**
1274
+ * Event filter configuration for event alert condition rules.
1275
+ *
1276
+ * @category Automations
1277
+ */
1278
+ export declare interface EventFilter {
1279
+ /** Event types to include */
1280
+ types: string[];
1281
+ /** Resource filter configuration */
1282
+ resourceFilter?: EventResourceFilter;
1283
+ }
1284
+
1013
1285
  /**
1014
1286
  * Event metric entity from EEN API v3.0.
1015
1287
  *
@@ -1056,6 +1328,22 @@ export declare interface EventMetric {
1056
1328
  [key: string]: unknown;
1057
1329
  }
1058
1330
 
1331
+ /**
1332
+ * Resource filter for event filtering.
1333
+ *
1334
+ * @category Automations
1335
+ */
1336
+ export declare interface EventResourceFilter {
1337
+ /** Filter by specific account IDs */
1338
+ accountIds?: string[];
1339
+ /** Filter by specific actor IDs */
1340
+ actorIds?: string[];
1341
+ /** Filter by actor tags (all must match) */
1342
+ actorTags__contains?: string[];
1343
+ /** Filter by actor tags (any must match) */
1344
+ actorTags__any?: string[];
1345
+ }
1346
+
1059
1347
  /**
1060
1348
  * Event subscription entity from EEN API v3.0.
1061
1349
  *
@@ -1347,6 +1635,13 @@ export declare interface FilterCreate {
1347
1635
  */
1348
1636
  export declare function formatTimestamp(timestamp: string): string;
1349
1637
 
1638
+ /**
1639
+ * Generic settings type for alert actions with unknown types.
1640
+ *
1641
+ * @category Automations
1642
+ */
1643
+ declare type GenericAlertActionSettings = Record<string, unknown>;
1644
+
1350
1645
  /**
1351
1646
  * Exchange authorization code for access token
1352
1647
  */
@@ -1391,6 +1686,96 @@ export declare function getAccessToken(code: string): Promise<Result<TokenRespon
1391
1686
  */
1392
1687
  export declare function getAlert(alertId: string, params?: GetAlertParams): Promise<Result<Alert>>;
1393
1688
 
1689
+ /**
1690
+ * Get a specific alert action by ID.
1691
+ *
1692
+ * @remarks
1693
+ * Fetches a single alert action from `/api/v3.0/alertActions/{id}`.
1694
+ *
1695
+ * @param actionId - The unique identifier of the action to fetch
1696
+ * @returns A Result containing the action or an error
1697
+ *
1698
+ * @example
1699
+ * ```typescript
1700
+ * import { getAlertAction } from 'een-api-toolkit'
1701
+ *
1702
+ * const { data, error } = await getAlertAction('action-123')
1703
+ *
1704
+ * if (data) {
1705
+ * console.log(`Action: ${data.name} (${data.type})`)
1706
+ * console.log('Settings:', data.settings)
1707
+ * }
1708
+ * ```
1709
+ *
1710
+ * @category Automations
1711
+ */
1712
+ export declare function getAlertAction(actionId: string): Promise<Result<AutomationAlertAction>>;
1713
+
1714
+ /**
1715
+ * Get a specific alert action rule by ID.
1716
+ *
1717
+ * @remarks
1718
+ * Fetches a single alert action rule from `/api/v3.0/alertActionRules/{id}`.
1719
+ *
1720
+ * @param ruleId - The unique identifier of the rule to fetch
1721
+ * @returns A Result containing the rule or an error
1722
+ *
1723
+ * @example
1724
+ * ```typescript
1725
+ * import { getAlertActionRule } from 'een-api-toolkit'
1726
+ *
1727
+ * const { data, error } = await getAlertActionRule('rule-123')
1728
+ *
1729
+ * if (data) {
1730
+ * console.log(`Rule: ${data.name}`)
1731
+ * console.log(`Alert types: ${data.alertTypes.join(', ')}`)
1732
+ * console.log(`Actions: ${data.alertActionIds.length}`)
1733
+ * }
1734
+ * ```
1735
+ *
1736
+ * @category Automations
1737
+ */
1738
+ export declare function getAlertActionRule(ruleId: string): Promise<Result<AlertActionRule>>;
1739
+
1740
+ /**
1741
+ * Get a specific alert condition rule by ID.
1742
+ *
1743
+ * @remarks
1744
+ * Fetches a single alert condition rule from `/api/v3.0/alertConditionRules/{id}`.
1745
+ * Use the `include` parameter to request additional fields like actions or insights.
1746
+ *
1747
+ * @param ruleId - The unique identifier of the rule to fetch
1748
+ * @param params - Optional parameters (e.g., include additional fields)
1749
+ * @returns A Result containing the rule or an error
1750
+ *
1751
+ * @example
1752
+ * ```typescript
1753
+ * import { getAlertConditionRule } from 'een-api-toolkit'
1754
+ *
1755
+ * const { data, error } = await getAlertConditionRule('rule-123', {
1756
+ * include: ['actions', 'insights']
1757
+ * })
1758
+ *
1759
+ * if (data) {
1760
+ * console.log(`Rule: ${data.name}`)
1761
+ * console.log(`Actions: ${data.actions?.length ?? 0}`)
1762
+ * }
1763
+ * ```
1764
+ *
1765
+ * @category Automations
1766
+ */
1767
+ export declare function getAlertConditionRule(ruleId: string, params?: GetAlertConditionRuleParams): Promise<Result<AlertConditionRule>>;
1768
+
1769
+ /**
1770
+ * Parameters for getting a single alert condition rule.
1771
+ *
1772
+ * @category Automations
1773
+ */
1774
+ export declare interface GetAlertConditionRuleParams {
1775
+ /** Fields to include in response */
1776
+ include?: AlertConditionRuleInclude[];
1777
+ }
1778
+
1394
1779
  /**
1395
1780
  * Parameters for getting a single alert by ID.
1396
1781
  *
@@ -1725,6 +2110,71 @@ export declare function getCurrentUser(): Promise<Result<UserProfile>>;
1725
2110
  */
1726
2111
  export declare function getEvent(eventId: string, params?: GetEventParams): Promise<Result<Event_2>>;
1727
2112
 
2113
+ /**
2114
+ * Get a specific event alert condition rule by ID.
2115
+ *
2116
+ * @remarks
2117
+ * Fetches a single event alert condition rule from
2118
+ * `/api/v3.0/eventAlertConditionRules/{id}`.
2119
+ *
2120
+ * @param ruleId - The unique identifier of the rule to fetch
2121
+ * @returns A Result containing the rule or an error
2122
+ *
2123
+ * @example
2124
+ * ```typescript
2125
+ * import { getEventAlertConditionRule } from 'een-api-toolkit'
2126
+ *
2127
+ * const { data, error } = await getEventAlertConditionRule('rule-123')
2128
+ *
2129
+ * if (error) {
2130
+ * if (error.code === 'NOT_FOUND') {
2131
+ * console.log('Rule not found')
2132
+ * }
2133
+ * return
2134
+ * }
2135
+ *
2136
+ * console.log(`Rule: ${data.name}, Priority: ${data.priority}`)
2137
+ * ```
2138
+ *
2139
+ * @category Automations
2140
+ */
2141
+ export declare function getEventAlertConditionRule(ruleId: string): Promise<Result<EventAlertConditionRule>>;
2142
+
2143
+ /**
2144
+ * Get available field values for event alert condition rules.
2145
+ *
2146
+ * @remarks
2147
+ * Fetches available values that can be used for filtering event alert condition rules.
2148
+ * Useful for building filter UI components.
2149
+ *
2150
+ * @param params - Optional filter parameters
2151
+ * @returns A Result containing field values or an error
2152
+ *
2153
+ * @example
2154
+ * ```typescript
2155
+ * import { getEventAlertConditionRuleFieldValues } from 'een-api-toolkit'
2156
+ *
2157
+ * const { data, error } = await getEventAlertConditionRuleFieldValues()
2158
+ * if (data) {
2159
+ * console.log('Available event types:', data.eventTypes)
2160
+ * console.log('Available alert types:', data.outputAlertTypes)
2161
+ * }
2162
+ * ```
2163
+ *
2164
+ * @category Automations
2165
+ */
2166
+ export declare function getEventAlertConditionRuleFieldValues(params?: GetEventAlertConditionRuleFieldValuesParams): Promise<Result<EventAlertConditionRuleFieldValues>>;
2167
+
2168
+ /**
2169
+ * Parameters for getting event alert condition rule field values.
2170
+ *
2171
+ * @category Automations
2172
+ */
2173
+ export declare interface GetEventAlertConditionRuleFieldValuesParams {
2174
+ /** Filter by enabled status */
2175
+ enabled?: boolean;
2176
+ }
2177
+
1728
2178
  /**
1729
2179
  * Get event metrics (time-series data) for a specific actor and event type.
1730
2180
  *
@@ -2366,6 +2816,27 @@ export declare function getUsers(params?: ListUsersParams): Promise<Result<Pagin
2366
2816
  */
2367
2817
  export declare function handleAuthCallback(code: string, state: string): Promise<Result<TokenResponse>>;
2368
2818
 
2819
+ /**
2820
+ * Automation types for EEN API v3.0
2821
+ *
2822
+ * @remarks
2823
+ * Types for Event Alert Condition Rules, Alert Condition Rules,
2824
+ * Alert Action Rules, and Alert Actions.
2825
+ *
2826
+ * @category Automations
2827
+ */
2828
+ /**
2829
+ * Human validation configuration for event alert condition rules.
2830
+ *
2831
+ * @category Automations
2832
+ */
2833
+ export declare interface HumanValidation {
2834
+ /** Whether human validation is required */
2835
+ required: boolean;
2836
+ /** Timeout in seconds for validation */
2837
+ timeoutSeconds?: number;
2838
+ }
2839
+
2369
2840
  /**
2370
2841
  * Initialize the EEN API Toolkit
2371
2842
  *
@@ -2584,6 +3055,193 @@ export declare interface LayoutSettings {
2584
3055
  paneColumns: number;
2585
3056
  }
2586
3057
 
3058
+ /**
3059
+ * List alert action rules with optional filters and pagination.
3060
+ *
3061
+ * @remarks
3062
+ * Fetches a paginated list of alert action rules from `/api/v3.0/alertActionRules`.
3063
+ * These rules connect alerts to actions - when an alert matches the rule's criteria,
3064
+ * the associated actions are executed.
3065
+ *
3066
+ * @param params - Optional filtering and pagination parameters
3067
+ * @returns A Result containing a paginated list of rules or an error
3068
+ *
3069
+ * @example
3070
+ * ```typescript
3071
+ * import { listAlertActionRules } from 'een-api-toolkit'
3072
+ *
3073
+ * // Get enabled rules for specific alert types
3074
+ * const { data, error } = await listAlertActionRules({
3075
+ * enabled: true,
3076
+ * alertType__in: ['een.motionDetectionAlert.v1']
3077
+ * })
3078
+ *
3079
+ * if (data) {
3080
+ * data.results.forEach(rule => {
3081
+ * console.log(`${rule.name}: ${rule.alertActionIds.length} actions`)
3082
+ * })
3083
+ * }
3084
+ * ```
3085
+ *
3086
+ * @category Automations
3087
+ */
3088
+ export declare function listAlertActionRules(params?: ListAlertActionRulesParams): Promise<Result<PaginatedResult<AlertActionRule>>>;
3089
+
3090
+ /**
3091
+ * Parameters for listing alert action rules.
3092
+ *
3093
+ * @example
3094
+ * ```typescript
3095
+ * const { data } = await listAlertActionRules({
3096
+ * enabled: true,
3097
+ * alertType__in: ['een.motionDetectionAlert.v1']
3098
+ * })
3099
+ * ```
3100
+ *
3101
+ * @category Automations
3102
+ */
3103
+ export declare interface ListAlertActionRulesParams {
3104
+ /** Number of results per page */
3105
+ pageSize?: number;
3106
+ /** Token for fetching a specific page */
3107
+ pageToken?: string;
3108
+ /** Filter by enabled status */
3109
+ enabled?: boolean;
3110
+ /** Filter by rule IDs */
3111
+ id__in?: string[];
3112
+ /** Filter by alert types */
3113
+ alertType__in?: string[];
3114
+ /** Filter by actor IDs */
3115
+ actorId__in?: string[];
3116
+ /** Filter by alert action IDs */
3117
+ alertActionId__in?: string[];
3118
+ /** Filter by alert condition rule IDs */
3119
+ ruleId__in?: string[];
3120
+ }
3121
+
3122
+ /**
3123
+ * List alert actions with optional filters and pagination.
3124
+ *
3125
+ * @remarks
3126
+ * Fetches a paginated list of alert actions from `/api/v3.0/alertActions`.
3127
+ * Alert actions define what happens when an alert is triggered (notifications,
3128
+ * webhooks, integrations, etc.).
3129
+ *
3130
+ * @param params - Optional filtering and pagination parameters
3131
+ * @returns A Result containing a paginated list of actions or an error
3132
+ *
3133
+ * @example
3134
+ * ```typescript
3135
+ * import { listAlertActions } from 'een-api-toolkit'
3136
+ *
3137
+ * // Get enabled webhook and notification actions
3138
+ * const { data, error } = await listAlertActions({
3139
+ * enabled: true,
3140
+ * type__in: ['notification', 'webhook']
3141
+ * })
3142
+ *
3143
+ * if (data) {
3144
+ * data.results.forEach(action => {
3145
+ * console.log(`${action.name} (${action.type})`)
3146
+ * })
3147
+ * }
3148
+ * ```
3149
+ *
3150
+ * @category Automations
3151
+ */
3152
+ export declare function listAlertActions(params?: ListAlertActionsParams): Promise<Result<PaginatedResult<AutomationAlertAction>>>;
3153
+
3154
+ /**
3155
+ * Parameters for listing alert actions.
3156
+ *
3157
+ * @example
3158
+ * ```typescript
3159
+ * const { data } = await listAlertActions({
3160
+ * enabled: true,
3161
+ * type__in: ['notification', 'webhook']
3162
+ * })
3163
+ * ```
3164
+ *
3165
+ * @category Automations
3166
+ */
3167
+ export declare interface ListAlertActionsParams {
3168
+ /** Number of results per page */
3169
+ pageSize?: number;
3170
+ /** Token for fetching a specific page */
3171
+ pageToken?: string;
3172
+ /** Filter by enabled status */
3173
+ enabled?: boolean;
3174
+ /** Filter by action IDs */
3175
+ id__in?: string[];
3176
+ /** Filter by action types */
3177
+ type__in?: AlertActionType[];
3178
+ }
3179
+
3180
+ /**
3181
+ * List alert condition rules with optional filters and pagination.
3182
+ *
3183
+ * @remarks
3184
+ * Fetches a paginated list of alert condition rules from
3185
+ * `/api/v3.0/alertConditionRules`. These rules process events and create alerts.
3186
+ *
3187
+ * @param params - Optional filtering and pagination parameters
3188
+ * @returns A Result containing a paginated list of rules or an error
3189
+ *
3190
+ * @example
3191
+ * ```typescript
3192
+ * import { listAlertConditionRules } from 'een-api-toolkit'
3193
+ *
3194
+ * // Get enabled rules with actions
3195
+ * const { data, error } = await listAlertConditionRules({
3196
+ * enabled: true,
3197
+ * include: ['actions', 'insights']
3198
+ * })
3199
+ *
3200
+ * if (data) {
3201
+ * data.results.forEach(rule => {
3202
+ * console.log(`${rule.name}: ${rule.inputEventTypes.length} event types`)
3203
+ * })
3204
+ * }
3205
+ * ```
3206
+ *
3207
+ * @category Automations
3208
+ */
3209
+ export declare function listAlertConditionRules(params?: ListAlertConditionRulesParams): Promise<Result<PaginatedResult<AlertConditionRule>>>;
3210
+
3211
+ /**
3212
+ * Parameters for listing alert condition rules.
3213
+ *
3214
+ * @example
3215
+ * ```typescript
3216
+ * const { data } = await listAlertConditionRules({
3217
+ * enabled: true,
3218
+ * include: ['actions', 'insights']
3219
+ * })
3220
+ * ```
3221
+ *
3222
+ * @category Automations
3223
+ */
3224
+ export declare interface ListAlertConditionRulesParams {
3225
+ /** Number of results per page */
3226
+ pageSize?: number;
3227
+ /** Token for fetching a specific page */
3228
+ pageToken?: string;
3229
+ /** Filter by enabled status */
3230
+ enabled?: boolean;
3231
+ /** Filter by rule IDs */
3232
+ id__in?: string[];
3233
+ /** Filter by actor IDs */
3234
+ actorId__in?: string[];
3235
+ /** Filter by input event types */
3236
+ inputEventType__in?: string[];
3237
+ /** Filter by output alert type */
3238
+ outputAlertType?: string;
3239
+ /** Filter by rule type */
3240
+ type?: string;
3241
+ /** Fields to include in response */
3242
+ include?: AlertConditionRuleInclude[];
3243
+ }
3244
+
2587
3245
  /**
2588
3246
  * List alerts with optional filters and pagination.
2589
3247
  *
@@ -2935,6 +3593,73 @@ export declare interface ListCamerasParams {
2935
3593
  status__ne?: CameraStatus;
2936
3594
  }
2937
3595
 
3596
+ /**
3597
+ * List event alert condition rules with optional filters and pagination.
3598
+ *
3599
+ * @remarks
3600
+ * Fetches a paginated list of event alert condition rules from
3601
+ * `/api/v3.0/eventAlertConditionRules`. These rules define conditions
3602
+ * under which events trigger alerts.
3603
+ *
3604
+ * For more details, see the
3605
+ * [EEN API Documentation](https://developer.eagleeyenetworks.com/reference/listalertconditionrules).
3606
+ *
3607
+ * @param params - Optional filtering and pagination parameters
3608
+ * @returns A Result containing a paginated list of rules or an error
3609
+ *
3610
+ * @example
3611
+ * ```typescript
3612
+ * import { listEventAlertConditionRules } from 'een-api-toolkit'
3613
+ *
3614
+ * // Get enabled rules
3615
+ * const { data, error } = await listEventAlertConditionRules({
3616
+ * enabled: true,
3617
+ * pageSize: 50
3618
+ * })
3619
+ *
3620
+ * if (data) {
3621
+ * console.log(`Found ${data.results.length} rules`)
3622
+ * data.results.forEach(rule => {
3623
+ * console.log(`${rule.name}: priority ${rule.priority}`)
3624
+ * })
3625
+ * }
3626
+ * ```
3627
+ *
3628
+ * @category Automations
3629
+ */
3630
+ export declare function listEventAlertConditionRules(params?: ListEventAlertConditionRulesParams): Promise<Result<PaginatedResult<EventAlertConditionRule>>>;
3631
+
3632
+ /**
3633
+ * Parameters for listing event alert condition rules.
3634
+ *
3635
+ * @example
3636
+ * ```typescript
3637
+ * const { data } = await listEventAlertConditionRules({
3638
+ * enabled: true,
3639
+ * pageSize: 50,
3640
+ * outputAlertType__in: ['een.motionDetectionAlert.v1']
3641
+ * })
3642
+ * ```
3643
+ *
3644
+ * @category Automations
3645
+ */
3646
+ export declare interface ListEventAlertConditionRulesParams {
3647
+ /** Number of results per page */
3648
+ pageSize?: number;
3649
+ /** Token for fetching a specific page */
3650
+ pageToken?: string;
3651
+ /** Filter by enabled status */
3652
+ enabled?: boolean;
3653
+ /** Filter by rule IDs */
3654
+ id__in?: string[];
3655
+ /** Filter by output alert types */
3656
+ outputAlertType__in?: string[];
3657
+ /** Filter by minimum priority (inclusive) */
3658
+ priority__gte?: number;
3659
+ /** Filter by maximum priority (inclusive) */
3660
+ priority__lte?: number;
3661
+ }
3662
+
2938
3663
  /**
2939
3664
  * List available event field values for a specific actor.
2940
3665
  *
@@ -3881,6 +4606,16 @@ export { Notification_2 as Notification }
3881
4606
  */
3882
4607
  export declare type NotificationCategory = 'health' | 'video' | 'operational' | 'audit' | 'job' | 'security' | 'sharing';
3883
4608
 
4609
+ /**
4610
+ * Push notification settings.
4611
+ *
4612
+ * @category Automations
4613
+ */
4614
+ export declare interface NotificationSettings {
4615
+ /** User IDs to notify */
4616
+ userIds: string[];
4617
+ }
4618
+
3884
4619
  /**
3885
4620
  * Status of a notification delivery.
3886
4621
  *
@@ -3888,6 +4623,20 @@ export declare type NotificationCategory = 'health' | 'video' | 'operational' |
3888
4623
  */
3889
4624
  export declare type NotificationStatus = 'pending' | 'bounced' | 'dropped' | 'deferred' | 'delivered' | 'sent' | 'outsideUsersSchedule' | 'notificationsDisabled' | 'noNotificationActions' | 'sendingFailed' | 'throttled' | 'unableToGetSettings';
3890
4625
 
4626
+ /**
4627
+ * Output port settings for triggering physical outputs.
4628
+ *
4629
+ * @category Automations
4630
+ */
4631
+ export declare interface OutputPortSettings {
4632
+ /** Device ID */
4633
+ deviceId: string;
4634
+ /** Output port index */
4635
+ outputPort: number;
4636
+ /** Duration in milliseconds */
4637
+ durationMs?: number;
4638
+ }
4639
+
3891
4640
  /**
3892
4641
  * Paginated response from list operations.
3893
4642
  *
@@ -3939,6 +4688,20 @@ export declare interface PaginationParams {
3939
4688
  pageToken?: string;
3940
4689
  }
3941
4690
 
4691
+ /**
4692
+ * Speaker audio clip playback settings.
4693
+ *
4694
+ * @category Automations
4695
+ */
4696
+ export declare interface PlaySpeakerAudioClipSettings {
4697
+ /** Speaker device ID */
4698
+ speakerId: string;
4699
+ /** Audio clip ID to play */
4700
+ audioClipId: string;
4701
+ /** Volume level (0-100) */
4702
+ volume?: number;
4703
+ }
4704
+
3942
4705
  /**
3943
4706
  * Result of getting a recorded image.
3944
4707
  *
@@ -4006,6 +4769,44 @@ export declare type Result<T> = {
4006
4769
  */
4007
4770
  export declare function revokeToken(): Promise<Result<void>>;
4008
4771
 
4772
+ /**
4773
+ * Slack integration settings.
4774
+ *
4775
+ * @category Automations
4776
+ */
4777
+ export declare interface SlackSettings {
4778
+ /** Slack webhook URL */
4779
+ webhookUrl: string;
4780
+ /** Channel to post to */
4781
+ channel?: string;
4782
+ /** Bot username */
4783
+ username?: string;
4784
+ }
4785
+
4786
+ /**
4787
+ * SMS notification settings.
4788
+ *
4789
+ * @category Automations
4790
+ */
4791
+ export declare interface SmsSettings {
4792
+ /** Phone numbers to send SMS to */
4793
+ phoneNumbers: string[];
4794
+ }
4795
+
4796
+ /**
4797
+ * Email (SMTP) notification settings.
4798
+ *
4799
+ * @category Automations
4800
+ */
4801
+ export declare interface SmtpSettings {
4802
+ /** Email addresses to send to */
4803
+ recipients: string[];
4804
+ /** Email subject template */
4805
+ subject?: string;
4806
+ /** Email body template */
4807
+ body?: string;
4808
+ }
4809
+
4009
4810
  /**
4010
4811
  * SSE connection handle.
4011
4812
  *
@@ -4522,4 +5323,18 @@ export declare interface WebhookDeliveryConfigCreate {
4522
5323
  technicalContactName: string;
4523
5324
  }
4524
5325
 
5326
+ /**
5327
+ * Webhook settings.
5328
+ *
5329
+ * @category Automations
5330
+ */
5331
+ export declare interface WebhookSettings {
5332
+ /** Webhook URL */
5333
+ url: string;
5334
+ /** HTTP method */
5335
+ method?: 'GET' | 'POST' | 'PUT';
5336
+ /** Custom headers */
5337
+ headers?: Record<string, string>;
5338
+ }
5339
+
4525
5340
  export { }