@seamapi/http 0.0.2 → 0.2.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.
Files changed (132) hide show
  1. package/dist/connect.cjs +1807 -96
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +472 -15
  4. package/lib/params-serializer.d.ts +5 -0
  5. package/lib/params-serializer.js +42 -0
  6. package/lib/params-serializer.js.map +1 -0
  7. package/lib/seam/connect/auth.d.ts +4 -3
  8. package/lib/seam/connect/auth.js +59 -8
  9. package/lib/seam/connect/auth.js.map +1 -1
  10. package/lib/seam/connect/client.d.ts +10 -10
  11. package/lib/seam/connect/client.js +16 -49
  12. package/lib/seam/connect/client.js.map +1 -1
  13. package/lib/seam/connect/index.d.ts +2 -1
  14. package/lib/seam/connect/index.js +2 -1
  15. package/lib/seam/connect/index.js.map +1 -1
  16. package/lib/seam/connect/options.d.ts +23 -0
  17. package/lib/seam/connect/options.js +39 -0
  18. package/lib/seam/connect/options.js.map +1 -0
  19. package/lib/seam/connect/parse-options.d.ts +6 -2
  20. package/lib/seam/connect/parse-options.js +35 -10
  21. package/lib/seam/connect/parse-options.js.map +1 -1
  22. package/lib/seam/connect/routes/access-codes-unmanaged.d.ts +27 -0
  23. package/lib/seam/connect/routes/access-codes-unmanaged.js +84 -0
  24. package/lib/seam/connect/routes/access-codes-unmanaged.js.map +1 -0
  25. package/lib/seam/connect/routes/access-codes.d.ts +38 -0
  26. package/lib/seam/connect/routes/access-codes.js +113 -0
  27. package/lib/seam/connect/routes/access-codes.js.map +1 -0
  28. package/lib/seam/connect/routes/acs-access-groups.d.ts +36 -0
  29. package/lib/seam/connect/routes/acs-access-groups.js +107 -0
  30. package/lib/seam/connect/routes/acs-access-groups.js.map +1 -0
  31. package/lib/seam/connect/routes/acs-credentials.d.ts +24 -0
  32. package/lib/seam/connect/routes/acs-credentials.js +78 -0
  33. package/lib/seam/connect/routes/acs-credentials.js.map +1 -0
  34. package/lib/seam/connect/routes/acs-systems.d.ts +18 -0
  35. package/lib/seam/connect/routes/acs-systems.js +63 -0
  36. package/lib/seam/connect/routes/acs-systems.js.map +1 -0
  37. package/lib/seam/connect/routes/acs-users.d.ts +39 -0
  38. package/lib/seam/connect/routes/acs-users.js +113 -0
  39. package/lib/seam/connect/routes/acs-users.js.map +1 -0
  40. package/lib/seam/connect/routes/acs.d.ts +18 -0
  41. package/lib/seam/connect/routes/acs.js +63 -0
  42. package/lib/seam/connect/routes/acs.js.map +1 -0
  43. package/lib/seam/connect/routes/action-attempts.d.ts +18 -0
  44. package/lib/seam/connect/routes/action-attempts.js +63 -0
  45. package/lib/seam/connect/routes/action-attempts.js.map +1 -0
  46. package/lib/seam/connect/routes/client-sessions.d.ts +30 -0
  47. package/lib/seam/connect/routes/client-sessions.js +93 -0
  48. package/lib/seam/connect/routes/client-sessions.js.map +1 -0
  49. package/lib/seam/connect/routes/connect-webviews.d.ts +27 -0
  50. package/lib/seam/connect/routes/connect-webviews.js +85 -0
  51. package/lib/seam/connect/routes/connect-webviews.js.map +1 -0
  52. package/lib/seam/connect/routes/connected-accounts.d.ts +21 -0
  53. package/lib/seam/connect/routes/connected-accounts.js +70 -0
  54. package/lib/seam/connect/routes/connected-accounts.js.map +1 -0
  55. package/lib/seam/connect/routes/devices-unmanaged.d.ts +21 -0
  56. package/lib/seam/connect/routes/devices-unmanaged.js +70 -0
  57. package/lib/seam/connect/routes/devices-unmanaged.js.map +1 -0
  58. package/lib/seam/connect/routes/devices.d.ts +29 -0
  59. package/lib/seam/connect/routes/devices.js +89 -0
  60. package/lib/seam/connect/routes/devices.js.map +1 -0
  61. package/lib/seam/connect/routes/events.d.ts +18 -0
  62. package/lib/seam/connect/routes/events.js +63 -0
  63. package/lib/seam/connect/routes/events.js.map +1 -0
  64. package/lib/seam/connect/routes/index.d.ts +21 -0
  65. package/lib/seam/connect/routes/index.js +22 -0
  66. package/lib/seam/connect/routes/index.js.map +1 -0
  67. package/lib/seam/connect/routes/locks.d.ts +24 -0
  68. package/lib/seam/connect/routes/locks.js +79 -0
  69. package/lib/seam/connect/routes/locks.js.map +1 -0
  70. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.d.ts +27 -0
  71. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js +84 -0
  72. package/lib/seam/connect/routes/noise-sensors-noise-thresholds.js.map +1 -0
  73. package/lib/seam/connect/routes/noise-sensors.d.ts +12 -0
  74. package/lib/seam/connect/routes/noise-sensors.js +51 -0
  75. package/lib/seam/connect/routes/noise-sensors.js.map +1 -0
  76. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.d.ts +27 -0
  77. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js +85 -0
  78. package/lib/seam/connect/routes/thermostats-climate-setting-schedules.js.map +1 -0
  79. package/lib/seam/connect/routes/thermostats.d.ts +38 -0
  80. package/lib/seam/connect/routes/thermostats.js +109 -0
  81. package/lib/seam/connect/routes/thermostats.js.map +1 -0
  82. package/lib/seam/connect/routes/webhooks.d.ts +24 -0
  83. package/lib/seam/connect/routes/webhooks.js +78 -0
  84. package/lib/seam/connect/routes/webhooks.js.map +1 -0
  85. package/lib/seam/connect/routes/workspaces.d.ts +17 -7
  86. package/lib/seam/connect/routes/workspaces.js +61 -11
  87. package/lib/seam/connect/routes/workspaces.js.map +1 -1
  88. package/lib/seam/connect/seam-http.d.ts +24 -0
  89. package/lib/seam/connect/seam-http.js +82 -0
  90. package/lib/seam/connect/seam-http.js.map +1 -0
  91. package/package.json +9 -3
  92. package/src/lib/params-serializer.ts +55 -0
  93. package/src/lib/seam/connect/auth.ts +101 -13
  94. package/src/lib/seam/connect/client.ts +30 -62
  95. package/src/lib/seam/connect/env.d.ts +11 -0
  96. package/src/lib/seam/connect/index.ts +2 -1
  97. package/src/lib/seam/connect/{client-options.ts → options.ts} +37 -15
  98. package/src/lib/seam/connect/parse-options.ts +55 -14
  99. package/src/lib/seam/connect/routes/access-codes-unmanaged.ts +170 -0
  100. package/src/lib/seam/connect/routes/access-codes.ts +226 -0
  101. package/src/lib/seam/connect/routes/acs-access-groups.ts +216 -0
  102. package/src/lib/seam/connect/routes/acs-credentials.ts +151 -0
  103. package/src/lib/seam/connect/routes/acs-systems.ts +118 -0
  104. package/src/lib/seam/connect/routes/acs-users.ts +221 -0
  105. package/src/lib/seam/connect/routes/acs.ts +101 -0
  106. package/src/lib/seam/connect/routes/action-attempts.ts +118 -0
  107. package/src/lib/seam/connect/routes/client-sessions.ts +187 -0
  108. package/src/lib/seam/connect/routes/connect-webviews.ts +170 -0
  109. package/src/lib/seam/connect/routes/connected-accounts.ts +139 -0
  110. package/src/lib/seam/connect/routes/devices-unmanaged.ts +134 -0
  111. package/src/lib/seam/connect/routes/devices.ts +166 -0
  112. package/src/lib/seam/connect/routes/events.ts +114 -0
  113. package/src/lib/seam/connect/routes/index.ts +21 -0
  114. package/src/lib/seam/connect/routes/locks.ts +148 -0
  115. package/src/lib/seam/connect/routes/noise-sensors-noise-thresholds.ts +170 -0
  116. package/src/lib/seam/connect/routes/noise-sensors.ts +86 -0
  117. package/src/lib/seam/connect/routes/thermostats-climate-setting-schedules.ts +192 -0
  118. package/src/lib/seam/connect/routes/thermostats.ts +208 -0
  119. package/src/lib/seam/connect/routes/webhooks.ts +151 -0
  120. package/src/lib/seam/connect/routes/workspaces.ts +118 -22
  121. package/src/lib/seam/connect/seam-http.ts +141 -0
  122. package/lib/seam/connect/axios.d.ts +0 -3
  123. package/lib/seam/connect/axios.js +0 -17
  124. package/lib/seam/connect/axios.js.map +0 -1
  125. package/lib/seam/connect/client-options.d.ts +0 -19
  126. package/lib/seam/connect/client-options.js +0 -29
  127. package/lib/seam/connect/client-options.js.map +0 -1
  128. package/lib/seam/connect/legacy/workspaces.d.ts +0 -8
  129. package/lib/seam/connect/legacy/workspaces.js +0 -10
  130. package/lib/seam/connect/legacy/workspaces.js.map +0 -1
  131. package/src/lib/seam/connect/axios.ts +0 -23
  132. package/src/lib/seam/connect/legacy/workspaces.ts +0 -26
@@ -1,35 +1,492 @@
1
- import { AxiosRequestConfig, Axios } from 'axios';
2
- import { RouteRequestParams, RouteResponse } from '@seamapi/types/connect';
1
+ import { Axios, AxiosRequestConfig } from 'axios';
2
+ import { AxiosRetry } from 'axios-retry';
3
+ import { RouteRequestBody, RouteResponse, RouteRequestParams } from '@seamapi/types/connect';
3
4
  import { SetNonNullable } from 'type-fest';
4
5
 
5
- type SeamHttpOptions = SeamHttpOptionsWithApiKey | SeamHttpOptionsWithClientSessionToken;
6
- interface SeamHttpCommonOptions {
7
- endpoint?: string;
6
+ type Client = Axios;
7
+ interface ClientOptions {
8
8
  axiosOptions?: AxiosRequestConfig;
9
- enableLegacyMethodBehaivor?: boolean;
9
+ axiosRetryOptions?: AxiosRetryConfig;
10
+ client?: Client;
11
+ }
12
+ type AxiosRetryConfig = Parameters<AxiosRetry>[1];
13
+
14
+ type SeamHttpOptions = SeamHttpOptionsFromEnv | SeamHttpOptionsWithClient | SeamHttpOptionsWithApiKey | SeamHttpOptionsWithClientSessionToken;
15
+ interface SeamHttpCommonOptions extends ClientOptions {
16
+ endpoint?: string;
17
+ }
18
+ type SeamHttpFromPublishableKeyOptions = SeamHttpCommonOptions;
19
+ type SeamHttpOptionsFromEnv = SeamHttpCommonOptions;
20
+ interface SeamHttpOptionsWithClient {
21
+ client: Client;
10
22
  }
23
+ declare const isSeamHttpOptionsWithClient: (options: SeamHttpOptions) => options is SeamHttpOptionsWithClient;
11
24
  interface SeamHttpOptionsWithApiKey extends SeamHttpCommonOptions {
12
25
  apiKey: string;
13
26
  }
27
+ declare const isSeamHttpOptionsWithApiKey: (options: SeamHttpOptions) => options is SeamHttpOptionsWithApiKey;
14
28
  interface SeamHttpOptionsWithClientSessionToken extends SeamHttpCommonOptions {
15
29
  clientSessionToken: string;
16
30
  }
31
+ declare const isSeamHttpOptionsWithClientSessionToken: (options: SeamHttpOptions) => options is SeamHttpOptionsWithClientSessionToken;
32
+ declare class SeamHttpInvalidOptionsError extends Error {
33
+ constructor(message: string);
34
+ }
35
+
36
+ declare class SeamHttpAccessCodesUnmanaged {
37
+ client: Client;
38
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
39
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAccessCodesUnmanaged;
40
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAccessCodesUnmanaged;
41
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAccessCodesUnmanaged;
42
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpAccessCodesUnmanaged>;
43
+ convertToManaged(body: AccessCodesUnmanagedConvertToManagedBody): Promise<void>;
44
+ delete(body: AccessCodesUnmanagedDeleteBody): Promise<void>;
45
+ get(body: AccessCodesUnmanagedGetBody): Promise<AccessCodesUnmanagedGetResponse['access_code']>;
46
+ list(body: AccessCodesUnmanagedListBody): Promise<AccessCodesUnmanagedListResponse['access_codes']>;
47
+ update(body: AccessCodesUnmanagedUpdateBody): Promise<void>;
48
+ }
49
+ type AccessCodesUnmanagedConvertToManagedBody = RouteRequestBody<'/access_codes/unmanaged/convert_to_managed'>;
50
+ type AccessCodesUnmanagedDeleteBody = RouteRequestBody<'/access_codes/unmanaged/delete'>;
51
+ type AccessCodesUnmanagedGetBody = RouteRequestBody<'/access_codes/unmanaged/get'>;
52
+ type AccessCodesUnmanagedGetResponse = SetNonNullable<Required<RouteResponse<'/access_codes/unmanaged/get'>>>;
53
+ type AccessCodesUnmanagedListBody = RouteRequestBody<'/access_codes/unmanaged/list'>;
54
+ type AccessCodesUnmanagedListResponse = SetNonNullable<Required<RouteResponse<'/access_codes/unmanaged/list'>>>;
55
+ type AccessCodesUnmanagedUpdateBody = RouteRequestBody<'/access_codes/unmanaged/update'>;
56
+
57
+ declare class SeamHttpAccessCodes {
58
+ client: Client;
59
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
60
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAccessCodes;
61
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAccessCodes;
62
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAccessCodes;
63
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpAccessCodes>;
64
+ get unmanaged(): SeamHttpAccessCodesUnmanaged;
65
+ create(body: AccessCodesCreateBody): Promise<AccessCodesCreateResponse['access_code']>;
66
+ createMultiple(body: AccessCodesCreateMultipleBody): Promise<AccessCodesCreateMultipleResponse['access_codes']>;
67
+ delete(body: AccessCodesDeleteBody): Promise<void>;
68
+ generateCode(body: AccessCodesGenerateCodeBody): Promise<AccessCodesGenerateCodeResponse['generated_code']>;
69
+ get(body: AccessCodesGetBody): Promise<AccessCodesGetResponse['access_code']>;
70
+ list(body: AccessCodesListBody): Promise<AccessCodesListResponse['access_codes']>;
71
+ pullBackupAccessCode(body: AccessCodesPullBackupAccessCodeBody): Promise<AccessCodesPullBackupAccessCodeResponse['backup_access_code']>;
72
+ update(body: AccessCodesUpdateBody): Promise<void>;
73
+ }
74
+ type AccessCodesCreateBody = RouteRequestBody<'/access_codes/create'>;
75
+ type AccessCodesCreateResponse = SetNonNullable<Required<RouteResponse<'/access_codes/create'>>>;
76
+ type AccessCodesCreateMultipleBody = RouteRequestBody<'/access_codes/create_multiple'>;
77
+ type AccessCodesCreateMultipleResponse = SetNonNullable<Required<RouteResponse<'/access_codes/create_multiple'>>>;
78
+ type AccessCodesDeleteBody = RouteRequestBody<'/access_codes/delete'>;
79
+ type AccessCodesGenerateCodeBody = RouteRequestBody<'/access_codes/generate_code'>;
80
+ type AccessCodesGenerateCodeResponse = SetNonNullable<Required<RouteResponse<'/access_codes/generate_code'>>>;
81
+ type AccessCodesGetBody = RouteRequestBody<'/access_codes/get'>;
82
+ type AccessCodesGetResponse = SetNonNullable<Required<RouteResponse<'/access_codes/get'>>>;
83
+ type AccessCodesListBody = RouteRequestBody<'/access_codes/list'>;
84
+ type AccessCodesListResponse = SetNonNullable<Required<RouteResponse<'/access_codes/list'>>>;
85
+ type AccessCodesPullBackupAccessCodeBody = RouteRequestBody<'/access_codes/pull_backup_access_code'>;
86
+ type AccessCodesPullBackupAccessCodeResponse = SetNonNullable<Required<RouteResponse<'/access_codes/pull_backup_access_code'>>>;
87
+ type AccessCodesUpdateBody = RouteRequestBody<'/access_codes/update'>;
88
+
89
+ declare class SeamHttpAcsAccessGroups {
90
+ client: Client;
91
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
92
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcsAccessGroups;
93
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcsAccessGroups;
94
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcsAccessGroups;
95
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpAcsAccessGroups>;
96
+ addUser(body: AcsAccessGroupsAddUserBody): Promise<void>;
97
+ create(body: AcsAccessGroupsCreateBody): Promise<AcsAccessGroupsCreateResponse['acs_access_group']>;
98
+ delete(body: AcsAccessGroupsDeleteBody): Promise<void>;
99
+ get(body: AcsAccessGroupsGetBody): Promise<AcsAccessGroupsGetResponse['acs_access_group']>;
100
+ list(body: AcsAccessGroupsListBody): Promise<AcsAccessGroupsListResponse['acs_access_groups']>;
101
+ listUsers(body: AcsAccessGroupsListUsersBody): Promise<AcsAccessGroupsListUsersResponse['acs_users']>;
102
+ removeUser(body: AcsAccessGroupsRemoveUserBody): Promise<void>;
103
+ update(body: AcsAccessGroupsUpdateBody): Promise<void>;
104
+ }
105
+ type AcsAccessGroupsAddUserBody = RouteRequestBody<'/acs/access_groups/add_user'>;
106
+ type AcsAccessGroupsCreateBody = RouteRequestBody<'/acs/access_groups/create'>;
107
+ type AcsAccessGroupsCreateResponse = SetNonNullable<Required<RouteResponse<'/acs/access_groups/create'>>>;
108
+ type AcsAccessGroupsDeleteBody = RouteRequestBody<'/acs/access_groups/delete'>;
109
+ type AcsAccessGroupsGetBody = RouteRequestBody<'/acs/access_groups/get'>;
110
+ type AcsAccessGroupsGetResponse = SetNonNullable<Required<RouteResponse<'/acs/access_groups/get'>>>;
111
+ type AcsAccessGroupsListBody = RouteRequestBody<'/acs/access_groups/list'>;
112
+ type AcsAccessGroupsListResponse = SetNonNullable<Required<RouteResponse<'/acs/access_groups/list'>>>;
113
+ type AcsAccessGroupsListUsersBody = RouteRequestBody<'/acs/access_groups/list_users'>;
114
+ type AcsAccessGroupsListUsersResponse = SetNonNullable<Required<RouteResponse<'/acs/access_groups/list_users'>>>;
115
+ type AcsAccessGroupsRemoveUserBody = RouteRequestBody<'/acs/access_groups/remove_user'>;
116
+ type AcsAccessGroupsUpdateBody = RouteRequestBody<'/acs/access_groups/update'>;
117
+
118
+ declare class SeamHttpAcsCredentials {
119
+ client: Client;
120
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
121
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcsCredentials;
122
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcsCredentials;
123
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcsCredentials;
124
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpAcsCredentials>;
125
+ create(body: AcsCredentialsCreateBody): Promise<AcsCredentialsCreateResponse['acs_credential']>;
126
+ delete(body: AcsCredentialsDeleteBody): Promise<void>;
127
+ get(body: AcsCredentialsGetBody): Promise<AcsCredentialsGetResponse['acs_credential']>;
128
+ list(body: AcsCredentialsListBody): Promise<AcsCredentialsListResponse['acs_credentials']>;
129
+ }
130
+ type AcsCredentialsCreateBody = RouteRequestBody<'/acs/credentials/create'>;
131
+ type AcsCredentialsCreateResponse = SetNonNullable<Required<RouteResponse<'/acs/credentials/create'>>>;
132
+ type AcsCredentialsDeleteBody = RouteRequestBody<'/acs/credentials/delete'>;
133
+ type AcsCredentialsGetBody = RouteRequestBody<'/acs/credentials/get'>;
134
+ type AcsCredentialsGetResponse = SetNonNullable<Required<RouteResponse<'/acs/credentials/get'>>>;
135
+ type AcsCredentialsListBody = RouteRequestBody<'/acs/credentials/list'>;
136
+ type AcsCredentialsListResponse = SetNonNullable<Required<RouteResponse<'/acs/credentials/list'>>>;
137
+
138
+ declare class SeamHttpAcsSystems {
139
+ client: Client;
140
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
141
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcsSystems;
142
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcsSystems;
143
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcsSystems;
144
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpAcsSystems>;
145
+ get(body: AcsSystemsGetBody): Promise<AcsSystemsGetResponse['acs_system']>;
146
+ list(body: AcsSystemsListBody): Promise<AcsSystemsListResponse['acs_systems']>;
147
+ }
148
+ type AcsSystemsGetBody = RouteRequestBody<'/acs/systems/get'>;
149
+ type AcsSystemsGetResponse = SetNonNullable<Required<RouteResponse<'/acs/systems/get'>>>;
150
+ type AcsSystemsListBody = RouteRequestBody<'/acs/systems/list'>;
151
+ type AcsSystemsListResponse = SetNonNullable<Required<RouteResponse<'/acs/systems/list'>>>;
152
+
153
+ declare class SeamHttpAcsUsers {
154
+ client: Client;
155
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
156
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcsUsers;
157
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcsUsers;
158
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcsUsers;
159
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpAcsUsers>;
160
+ addToAccessGroup(body: AcsUsersAddToAccessGroupBody): Promise<void>;
161
+ create(body: AcsUsersCreateBody): Promise<AcsUsersCreateResponse['acs_user']>;
162
+ delete(body: AcsUsersDeleteBody): Promise<void>;
163
+ get(body: AcsUsersGetBody): Promise<AcsUsersGetResponse['acs_user']>;
164
+ list(body: AcsUsersListBody): Promise<AcsUsersListResponse['acs_users']>;
165
+ removeFromAccessGroup(body: AcsUsersRemoveFromAccessGroupBody): Promise<void>;
166
+ suspend(body: AcsUsersSuspendBody): Promise<void>;
167
+ unsuspend(body: AcsUsersUnsuspendBody): Promise<void>;
168
+ update(body: AcsUsersUpdateBody): Promise<void>;
169
+ }
170
+ type AcsUsersAddToAccessGroupBody = RouteRequestBody<'/acs/users/add_to_access_group'>;
171
+ type AcsUsersCreateBody = RouteRequestBody<'/acs/users/create'>;
172
+ type AcsUsersCreateResponse = SetNonNullable<Required<RouteResponse<'/acs/users/create'>>>;
173
+ type AcsUsersDeleteBody = RouteRequestBody<'/acs/users/delete'>;
174
+ type AcsUsersGetBody = RouteRequestBody<'/acs/users/get'>;
175
+ type AcsUsersGetResponse = SetNonNullable<Required<RouteResponse<'/acs/users/get'>>>;
176
+ type AcsUsersListBody = RouteRequestBody<'/acs/users/list'>;
177
+ type AcsUsersListResponse = SetNonNullable<Required<RouteResponse<'/acs/users/list'>>>;
178
+ type AcsUsersRemoveFromAccessGroupBody = RouteRequestBody<'/acs/users/remove_from_access_group'>;
179
+ type AcsUsersSuspendBody = RouteRequestBody<'/acs/users/suspend'>;
180
+ type AcsUsersUnsuspendBody = RouteRequestBody<'/acs/users/unsuspend'>;
181
+ type AcsUsersUpdateBody = RouteRequestBody<'/acs/users/update'>;
182
+
183
+ declare class SeamHttpAcs {
184
+ client: Client;
185
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
186
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpAcs;
187
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpAcs;
188
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpAcs;
189
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpAcs>;
190
+ get accessGroups(): SeamHttpAcsAccessGroups;
191
+ get credentials(): SeamHttpAcsCredentials;
192
+ get systems(): SeamHttpAcsSystems;
193
+ get users(): SeamHttpAcsUsers;
194
+ }
195
+
196
+ declare class SeamHttpActionAttempts {
197
+ client: Client;
198
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
199
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpActionAttempts;
200
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpActionAttempts;
201
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpActionAttempts;
202
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpActionAttempts>;
203
+ get(body: ActionAttemptsGetBody): Promise<ActionAttemptsGetResponse['action_attempt']>;
204
+ list(body: ActionAttemptsListBody): Promise<ActionAttemptsListResponse['action_attempts']>;
205
+ }
206
+ type ActionAttemptsGetBody = RouteRequestBody<'/action_attempts/get'>;
207
+ type ActionAttemptsGetResponse = SetNonNullable<Required<RouteResponse<'/action_attempts/get'>>>;
208
+ type ActionAttemptsListBody = RouteRequestBody<'/action_attempts/list'>;
209
+ type ActionAttemptsListResponse = SetNonNullable<Required<RouteResponse<'/action_attempts/list'>>>;
210
+
211
+ declare class SeamHttpClientSessions {
212
+ client: Client;
213
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
214
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpClientSessions;
215
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpClientSessions;
216
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpClientSessions;
217
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpClientSessions>;
218
+ create(body: ClientSessionsCreateBody): Promise<ClientSessionsCreateResponse['client_session']>;
219
+ delete(body: ClientSessionsDeleteBody): Promise<void>;
220
+ get(body: ClientSessionsGetBody): Promise<ClientSessionsGetResponse['client_session']>;
221
+ getOrCreate(body: ClientSessionsGetOrCreateBody): Promise<ClientSessionsGetOrCreateResponse['client_session']>;
222
+ grantAccess(body: ClientSessionsGrantAccessBody): Promise<ClientSessionsGrantAccessResponse['client_session']>;
223
+ list(body: ClientSessionsListBody): Promise<ClientSessionsListResponse['client_sessions']>;
224
+ }
225
+ type ClientSessionsCreateBody = RouteRequestBody<'/client_sessions/create'>;
226
+ type ClientSessionsCreateResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/create'>>>;
227
+ type ClientSessionsDeleteBody = RouteRequestBody<'/client_sessions/delete'>;
228
+ type ClientSessionsGetBody = RouteRequestBody<'/client_sessions/get'>;
229
+ type ClientSessionsGetResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/get'>>>;
230
+ type ClientSessionsGetOrCreateBody = RouteRequestBody<'/client_sessions/get_or_create'>;
231
+ type ClientSessionsGetOrCreateResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/get_or_create'>>>;
232
+ type ClientSessionsGrantAccessBody = RouteRequestBody<'/client_sessions/grant_access'>;
233
+ type ClientSessionsGrantAccessResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/grant_access'>>>;
234
+ type ClientSessionsListBody = RouteRequestBody<'/client_sessions/list'>;
235
+ type ClientSessionsListResponse = SetNonNullable<Required<RouteResponse<'/client_sessions/list'>>>;
236
+
237
+ declare class SeamHttpConnectWebviews {
238
+ client: Client;
239
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
240
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpConnectWebviews;
241
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpConnectWebviews;
242
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpConnectWebviews;
243
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpConnectWebviews>;
244
+ create(body: ConnectWebviewsCreateBody): Promise<ConnectWebviewsCreateResponse['connect_webview']>;
245
+ delete(body: ConnectWebviewsDeleteBody): Promise<void>;
246
+ get(body: ConnectWebviewsGetBody): Promise<ConnectWebviewsGetResponse['connect_webview']>;
247
+ list(body: ConnectWebviewsListBody): Promise<ConnectWebviewsListResponse['connect_webviews']>;
248
+ view(params?: ConnectWebviewsViewParams): Promise<void>;
249
+ }
250
+ type ConnectWebviewsCreateBody = RouteRequestBody<'/connect_webviews/create'>;
251
+ type ConnectWebviewsCreateResponse = SetNonNullable<Required<RouteResponse<'/connect_webviews/create'>>>;
252
+ type ConnectWebviewsDeleteBody = RouteRequestBody<'/connect_webviews/delete'>;
253
+ type ConnectWebviewsGetBody = RouteRequestBody<'/connect_webviews/get'>;
254
+ type ConnectWebviewsGetResponse = SetNonNullable<Required<RouteResponse<'/connect_webviews/get'>>>;
255
+ type ConnectWebviewsListBody = RouteRequestBody<'/connect_webviews/list'>;
256
+ type ConnectWebviewsListResponse = SetNonNullable<Required<RouteResponse<'/connect_webviews/list'>>>;
257
+ type ConnectWebviewsViewParams = RouteRequestParams<'/connect_webviews/view'>;
258
+
259
+ declare class SeamHttpConnectedAccounts {
260
+ client: Client;
261
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
262
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpConnectedAccounts;
263
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpConnectedAccounts;
264
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpConnectedAccounts;
265
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpConnectedAccounts>;
266
+ delete(body: ConnectedAccountsDeleteBody): Promise<void>;
267
+ get(body: ConnectedAccountsGetBody): Promise<ConnectedAccountsGetResponse['connected_account']>;
268
+ list(params?: ConnectedAccountsListParams): Promise<ConnectedAccountsListResponse['connected_accounts']>;
269
+ }
270
+ type ConnectedAccountsDeleteBody = RouteRequestBody<'/connected_accounts/delete'>;
271
+ type ConnectedAccountsGetBody = RouteRequestBody<'/connected_accounts/get'>;
272
+ type ConnectedAccountsGetResponse = SetNonNullable<Required<RouteResponse<'/connected_accounts/get'>>>;
273
+ type ConnectedAccountsListParams = RouteRequestParams<'/connected_accounts/list'>;
274
+ type ConnectedAccountsListResponse = SetNonNullable<Required<RouteResponse<'/connected_accounts/list'>>>;
275
+
276
+ declare class SeamHttpDevicesUnmanaged {
277
+ client: Client;
278
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
279
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpDevicesUnmanaged;
280
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpDevicesUnmanaged;
281
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpDevicesUnmanaged;
282
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpDevicesUnmanaged>;
283
+ get(body: DevicesUnmanagedGetBody): Promise<DevicesUnmanagedGetResponse['device']>;
284
+ list(body: DevicesUnmanagedListBody): Promise<DevicesUnmanagedListResponse['devices']>;
285
+ update(body: DevicesUnmanagedUpdateBody): Promise<void>;
286
+ }
287
+ type DevicesUnmanagedGetBody = RouteRequestBody<'/devices/unmanaged/get'>;
288
+ type DevicesUnmanagedGetResponse = SetNonNullable<Required<RouteResponse<'/devices/unmanaged/get'>>>;
289
+ type DevicesUnmanagedListBody = RouteRequestBody<'/devices/unmanaged/list'>;
290
+ type DevicesUnmanagedListResponse = SetNonNullable<Required<RouteResponse<'/devices/unmanaged/list'>>>;
291
+ type DevicesUnmanagedUpdateBody = RouteRequestBody<'/devices/unmanaged/update'>;
292
+
293
+ declare class SeamHttpDevices {
294
+ client: Client;
295
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
296
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpDevices;
297
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpDevices;
298
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpDevices;
299
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpDevices>;
300
+ get unmanaged(): SeamHttpDevicesUnmanaged;
301
+ delete(body: DevicesDeleteBody): Promise<void>;
302
+ get(body: DevicesGetBody): Promise<DevicesGetResponse['device']>;
303
+ list(body: DevicesListBody): Promise<DevicesListResponse['devices']>;
304
+ listDeviceProviders(body: DevicesListDeviceProvidersBody): Promise<DevicesListDeviceProvidersResponse['device_providers']>;
305
+ update(body: DevicesUpdateBody): Promise<void>;
306
+ }
307
+ type DevicesDeleteBody = RouteRequestBody<'/devices/delete'>;
308
+ type DevicesGetBody = RouteRequestBody<'/devices/get'>;
309
+ type DevicesGetResponse = SetNonNullable<Required<RouteResponse<'/devices/get'>>>;
310
+ type DevicesListBody = RouteRequestBody<'/devices/list'>;
311
+ type DevicesListResponse = SetNonNullable<Required<RouteResponse<'/devices/list'>>>;
312
+ type DevicesListDeviceProvidersBody = RouteRequestBody<'/devices/list_device_providers'>;
313
+ type DevicesListDeviceProvidersResponse = SetNonNullable<Required<RouteResponse<'/devices/list_device_providers'>>>;
314
+ type DevicesUpdateBody = RouteRequestBody<'/devices/update'>;
315
+
316
+ declare class SeamHttpEvents {
317
+ client: Client;
318
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
319
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpEvents;
320
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpEvents;
321
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpEvents;
322
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpEvents>;
323
+ get(body: EventsGetBody): Promise<EventsGetResponse['event']>;
324
+ list(body: EventsListBody): Promise<EventsListResponse['events']>;
325
+ }
326
+ type EventsGetBody = RouteRequestBody<'/events/get'>;
327
+ type EventsGetResponse = SetNonNullable<Required<RouteResponse<'/events/get'>>>;
328
+ type EventsListBody = RouteRequestBody<'/events/list'>;
329
+ type EventsListResponse = SetNonNullable<Required<RouteResponse<'/events/list'>>>;
330
+
331
+ declare class SeamHttpLocks {
332
+ client: Client;
333
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
334
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpLocks;
335
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpLocks;
336
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpLocks;
337
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpLocks>;
338
+ get(body: LocksGetBody): Promise<LocksGetResponse['device']>;
339
+ list(body: LocksListBody): Promise<LocksListResponse['devices']>;
340
+ lockDoor(body: LocksLockDoorBody): Promise<LocksLockDoorResponse['action_attempt']>;
341
+ unlockDoor(body: LocksUnlockDoorBody): Promise<LocksUnlockDoorResponse['action_attempt']>;
342
+ }
343
+ type LocksGetBody = RouteRequestBody<'/locks/get'>;
344
+ type LocksGetResponse = SetNonNullable<Required<RouteResponse<'/locks/get'>>>;
345
+ type LocksListBody = RouteRequestBody<'/locks/list'>;
346
+ type LocksListResponse = SetNonNullable<Required<RouteResponse<'/locks/list'>>>;
347
+ type LocksLockDoorBody = RouteRequestBody<'/locks/lock_door'>;
348
+ type LocksLockDoorResponse = SetNonNullable<Required<RouteResponse<'/locks/lock_door'>>>;
349
+ type LocksUnlockDoorBody = RouteRequestBody<'/locks/unlock_door'>;
350
+ type LocksUnlockDoorResponse = SetNonNullable<Required<RouteResponse<'/locks/unlock_door'>>>;
351
+
352
+ declare class SeamHttpNoiseSensorsNoiseThresholds {
353
+ client: Client;
354
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
355
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpNoiseSensorsNoiseThresholds;
356
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpNoiseSensorsNoiseThresholds;
357
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpNoiseSensorsNoiseThresholds;
358
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpNoiseSensorsNoiseThresholds>;
359
+ create(body: NoiseSensorsNoiseThresholdsCreateBody): Promise<void>;
360
+ delete(body: NoiseSensorsNoiseThresholdsDeleteBody): Promise<void>;
361
+ get(body: NoiseSensorsNoiseThresholdsGetBody): Promise<NoiseSensorsNoiseThresholdsGetResponse['noise_threshold']>;
362
+ list(body: NoiseSensorsNoiseThresholdsListBody): Promise<NoiseSensorsNoiseThresholdsListResponse['noise_thresholds']>;
363
+ update(body: NoiseSensorsNoiseThresholdsUpdateBody): Promise<void>;
364
+ }
365
+ type NoiseSensorsNoiseThresholdsCreateBody = RouteRequestBody<'/noise_sensors/noise_thresholds/create'>;
366
+ type NoiseSensorsNoiseThresholdsDeleteBody = RouteRequestBody<'/noise_sensors/noise_thresholds/delete'>;
367
+ type NoiseSensorsNoiseThresholdsGetBody = RouteRequestBody<'/noise_sensors/noise_thresholds/get'>;
368
+ type NoiseSensorsNoiseThresholdsGetResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/get'>>>;
369
+ type NoiseSensorsNoiseThresholdsListBody = RouteRequestBody<'/noise_sensors/noise_thresholds/list'>;
370
+ type NoiseSensorsNoiseThresholdsListResponse = SetNonNullable<Required<RouteResponse<'/noise_sensors/noise_thresholds/list'>>>;
371
+ type NoiseSensorsNoiseThresholdsUpdateBody = RouteRequestBody<'/noise_sensors/noise_thresholds/update'>;
372
+
373
+ declare class SeamHttpNoiseSensors {
374
+ client: Client;
375
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
376
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpNoiseSensors;
377
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpNoiseSensors;
378
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpNoiseSensors;
379
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpNoiseSensors>;
380
+ get noiseThresholds(): SeamHttpNoiseSensorsNoiseThresholds;
381
+ }
382
+
383
+ declare class SeamHttpThermostatsClimateSettingSchedules {
384
+ client: Client;
385
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
386
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpThermostatsClimateSettingSchedules;
387
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpThermostatsClimateSettingSchedules;
388
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpThermostatsClimateSettingSchedules;
389
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpThermostatsClimateSettingSchedules>;
390
+ create(body: ThermostatsClimateSettingSchedulesCreateBody): Promise<ThermostatsClimateSettingSchedulesCreateResponse['climate_setting_schedule']>;
391
+ delete(body: ThermostatsClimateSettingSchedulesDeleteBody): Promise<void>;
392
+ get(body: ThermostatsClimateSettingSchedulesGetBody): Promise<ThermostatsClimateSettingSchedulesGetResponse['climate_setting_schedule']>;
393
+ list(body: ThermostatsClimateSettingSchedulesListBody): Promise<ThermostatsClimateSettingSchedulesListResponse['climate_setting_schedules']>;
394
+ update(body: ThermostatsClimateSettingSchedulesUpdateBody): Promise<void>;
395
+ }
396
+ type ThermostatsClimateSettingSchedulesCreateBody = RouteRequestBody<'/thermostats/climate_setting_schedules/create'>;
397
+ type ThermostatsClimateSettingSchedulesCreateResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/create'>>>;
398
+ type ThermostatsClimateSettingSchedulesDeleteBody = RouteRequestBody<'/thermostats/climate_setting_schedules/delete'>;
399
+ type ThermostatsClimateSettingSchedulesGetBody = RouteRequestBody<'/thermostats/climate_setting_schedules/get'>;
400
+ type ThermostatsClimateSettingSchedulesGetResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/get'>>>;
401
+ type ThermostatsClimateSettingSchedulesListBody = RouteRequestBody<'/thermostats/climate_setting_schedules/list'>;
402
+ type ThermostatsClimateSettingSchedulesListResponse = SetNonNullable<Required<RouteResponse<'/thermostats/climate_setting_schedules/list'>>>;
403
+ type ThermostatsClimateSettingSchedulesUpdateBody = RouteRequestBody<'/thermostats/climate_setting_schedules/update'>;
404
+
405
+ declare class SeamHttpThermostats {
406
+ client: Client;
407
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
408
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpThermostats;
409
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpThermostats;
410
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpThermostats;
411
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpThermostats>;
412
+ get climateSettingSchedules(): SeamHttpThermostatsClimateSettingSchedules;
413
+ cool(body: ThermostatsCoolBody): Promise<void>;
414
+ get(body: ThermostatsGetBody): Promise<ThermostatsGetResponse['thermostat']>;
415
+ heat(body: ThermostatsHeatBody): Promise<void>;
416
+ heatCool(body: ThermostatsHeatCoolBody): Promise<void>;
417
+ list(body: ThermostatsListBody): Promise<ThermostatsListResponse['thermostats']>;
418
+ off(body: ThermostatsOffBody): Promise<void>;
419
+ setFanMode(body: ThermostatsSetFanModeBody): Promise<void>;
420
+ update(body: ThermostatsUpdateBody): Promise<void>;
421
+ }
422
+ type ThermostatsCoolBody = RouteRequestBody<'/thermostats/cool'>;
423
+ type ThermostatsGetBody = RouteRequestBody<'/thermostats/get'>;
424
+ type ThermostatsGetResponse = SetNonNullable<Required<RouteResponse<'/thermostats/get'>>>;
425
+ type ThermostatsHeatBody = RouteRequestBody<'/thermostats/heat'>;
426
+ type ThermostatsHeatCoolBody = RouteRequestBody<'/thermostats/heat_cool'>;
427
+ type ThermostatsListBody = RouteRequestBody<'/thermostats/list'>;
428
+ type ThermostatsListResponse = SetNonNullable<Required<RouteResponse<'/thermostats/list'>>>;
429
+ type ThermostatsOffBody = RouteRequestBody<'/thermostats/off'>;
430
+ type ThermostatsSetFanModeBody = RouteRequestBody<'/thermostats/set_fan_mode'>;
431
+ type ThermostatsUpdateBody = RouteRequestBody<'/thermostats/update'>;
432
+
433
+ declare class SeamHttpWebhooks {
434
+ client: Client;
435
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
436
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpWebhooks;
437
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpWebhooks;
438
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpWebhooks;
439
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpWebhooks>;
440
+ create(body: WebhooksCreateBody): Promise<WebhooksCreateResponse['webhook']>;
441
+ delete(body: WebhooksDeleteBody): Promise<void>;
442
+ get(body: WebhooksGetBody): Promise<WebhooksGetResponse['webhook']>;
443
+ list(params?: WebhooksListParams): Promise<WebhooksListResponse['webhooks']>;
444
+ }
445
+ type WebhooksCreateBody = RouteRequestBody<'/webhooks/create'>;
446
+ type WebhooksCreateResponse = SetNonNullable<Required<RouteResponse<'/webhooks/create'>>>;
447
+ type WebhooksDeleteBody = RouteRequestBody<'/webhooks/delete'>;
448
+ type WebhooksGetBody = RouteRequestBody<'/webhooks/get'>;
449
+ type WebhooksGetResponse = SetNonNullable<Required<RouteResponse<'/webhooks/get'>>>;
450
+ type WebhooksListParams = RouteRequestParams<'/webhooks/list'>;
451
+ type WebhooksListResponse = SetNonNullable<Required<RouteResponse<'/webhooks/list'>>>;
17
452
 
18
- declare class WorkspacesHttp {
19
- client: Axios;
20
- constructor(apiKeyOrOptionsOrClient: Axios | string | SeamHttpOptions);
453
+ declare class SeamHttpWorkspaces {
454
+ client: Client;
455
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
456
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttpWorkspaces;
457
+ static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttpWorkspaces;
458
+ static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttpWorkspaces;
459
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttpWorkspaces>;
21
460
  get(params?: WorkspacesGetParams): Promise<WorkspacesGetResponse['workspace']>;
461
+ list(params?: WorkspacesListParams): Promise<WorkspacesListResponse['workspaces']>;
462
+ resetSandbox(body: WorkspacesResetSandboxBody): Promise<void>;
22
463
  }
23
- type WorkspacesGetParams = SetNonNullable<Required<RouteRequestParams<'/workspaces/get'>>>;
464
+ type WorkspacesGetParams = RouteRequestParams<'/workspaces/get'>;
24
465
  type WorkspacesGetResponse = SetNonNullable<Required<RouteResponse<'/workspaces/get'>>>;
466
+ type WorkspacesListParams = RouteRequestParams<'/workspaces/list'>;
467
+ type WorkspacesListResponse = SetNonNullable<Required<RouteResponse<'/workspaces/list'>>>;
468
+ type WorkspacesResetSandboxBody = RouteRequestBody<'/workspaces/reset_sandbox'>;
25
469
 
26
470
  declare class SeamHttp {
27
- #private;
28
- client: Axios;
29
- constructor(apiKeyOrOptions: string | SeamHttpOptions);
471
+ client: Client;
472
+ constructor(apiKeyOrOptions?: string | SeamHttpOptions);
473
+ static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit<SeamHttpOptionsWithClient, 'client'>): SeamHttp;
30
474
  static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit<SeamHttpOptionsWithApiKey, 'apiKey'>): SeamHttp;
31
475
  static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit<SeamHttpOptionsWithClientSessionToken, 'clientSessionToken'>): SeamHttp;
32
- get workspaces(): WorkspacesHttp;
476
+ static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise<SeamHttp>;
477
+ get accessCodes(): SeamHttpAccessCodes;
478
+ get acs(): SeamHttpAcs;
479
+ get actionAttempts(): SeamHttpActionAttempts;
480
+ get clientSessions(): SeamHttpClientSessions;
481
+ get connectedAccounts(): SeamHttpConnectedAccounts;
482
+ get connectWebviews(): SeamHttpConnectWebviews;
483
+ get devices(): SeamHttpDevices;
484
+ get events(): SeamHttpEvents;
485
+ get locks(): SeamHttpLocks;
486
+ get noiseSensors(): SeamHttpNoiseSensors;
487
+ get thermostats(): SeamHttpThermostats;
488
+ get webhooks(): SeamHttpWebhooks;
489
+ get workspaces(): SeamHttpWorkspaces;
33
490
  }
34
491
 
35
- export { SeamHttp };
492
+ export { SeamHttp, SeamHttpFromPublishableKeyOptions, SeamHttpInvalidOptionsError, SeamHttpOptions, SeamHttpOptionsFromEnv, SeamHttpOptionsWithApiKey, SeamHttpOptionsWithClient, SeamHttpOptionsWithClientSessionToken, isSeamHttpOptionsWithApiKey, isSeamHttpOptionsWithClient, isSeamHttpOptionsWithClientSessionToken };
@@ -0,0 +1,5 @@
1
+ import type { CustomParamsSerializer } from 'axios';
2
+ export declare const paramsSerializer: CustomParamsSerializer;
3
+ export declare class UnserializableParamError extends Error {
4
+ constructor(name: string, message: string);
5
+ }
@@ -0,0 +1,42 @@
1
+ export const paramsSerializer = (params) => {
2
+ const searchParams = new URLSearchParams();
3
+ for (const [name, value] of Object.entries(params)) {
4
+ if (value == null)
5
+ continue;
6
+ if (Array.isArray(value)) {
7
+ if (value.length === 0)
8
+ searchParams.set(name, '');
9
+ if (value.length === 1 && value[0] === '') {
10
+ throw new UnserializableParamError(name, `is a single element array containing the empty string which is unsupported because it serializes to the empty array`);
11
+ }
12
+ for (const v of value) {
13
+ throwIfUnserializable(name, v);
14
+ searchParams.append(name, v);
15
+ }
16
+ continue;
17
+ }
18
+ throwIfUnserializable(name, value);
19
+ searchParams.set(name, value);
20
+ }
21
+ searchParams.sort();
22
+ return searchParams.toString();
23
+ };
24
+ const throwIfUnserializable = (k, v) => {
25
+ if (v == null) {
26
+ throw new UnserializableParamError(k, `is ${v} or contains ${v}`);
27
+ }
28
+ if (typeof v === 'function') {
29
+ throw new UnserializableParamError(k, 'is a function or contains a function');
30
+ }
31
+ if (typeof v === 'object') {
32
+ throw new UnserializableParamError(k, 'is an object or contains an object');
33
+ }
34
+ };
35
+ export class UnserializableParamError extends Error {
36
+ constructor(name, message) {
37
+ super(`Could not serialize parameter: '${name}' ${message}`);
38
+ this.name = this.constructor.name;
39
+ Error.captureStackTrace(this, this.constructor);
40
+ }
41
+ }
42
+ //# sourceMappingURL=params-serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params-serializer.js","sourceRoot":"","sources":["../src/lib/params-serializer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAA2B,CAAC,MAAM,EAAE,EAAE;IACjE,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAA;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAClD,IAAI,KAAK,IAAI,IAAI;YAAE,SAAQ;QAE3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzC,MAAM,IAAI,wBAAwB,CAChC,IAAI,EACJ,qHAAqH,CACtH,CAAA;aACF;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;gBACrB,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC9B,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;aAC7B;YACD,SAAQ;SACT;QAED,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAClC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;KAC9B;IAED,YAAY,CAAC,IAAI,EAAE,CAAA;IACnB,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,CAAS,EAAE,CAAU,EAAQ,EAAE;IAC5D,IAAI,CAAC,IAAI,IAAI,EAAE;QACb,MAAM,IAAI,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;KAClE;IAED,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;QAC3B,MAAM,IAAI,wBAAwB,CAChC,CAAC,EACD,sCAAsC,CACvC,CAAA;KACF;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,MAAM,IAAI,wBAAwB,CAAC,CAAC,EAAE,oCAAoC,CAAC,CAAA;KAC5E;AACH,CAAC,CAAA;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,mCAAmC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAA;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;CACF"}
@@ -1,7 +1,8 @@
1
- import { type SeamHttpOptions } from './client-options.js';
1
+ import type { Options } from './parse-options.js';
2
2
  type Headers = Record<string, string>;
3
- export declare const getAuthHeaders: (options: SeamHttpOptions) => Headers;
4
- export declare class InvalidSeamTokenError extends Error {
3
+ export declare const getAuthHeaders: (options: Options) => Headers;
4
+ export declare class SeamHttpInvalidTokenError extends Error {
5
5
  constructor(message: string);
6
6
  }
7
+ export declare const warnOnInsecureuserIdentifierKey: (userIdentifierKey: string) => void;
7
8
  export {};